The samsung exynos mailbox controller has 16 flag bits for hardware interrupt generation and a shared register for passing mailbox messages. When the controller is used by the ACPM protocol the shared register is ignored and the mailbox controller acts as a doorbell. The controller just raises the interrupt to APM after the ACPM protocol has written the message to SRAM. I mark this as v3 because it is a continuation of: https://lore.kernel.org/linux-arm-kernel/20241017163649.3007062-1-tudor.ambarus@xxxxxxxxxx/ Changes in v4: - rename bindings file to be based on compatible: google,gs101-acpm-mbox - specify doorbell or data mode via '#mbox-cells' dt property. Update driver and introduce exynos_mbox_of_xlate() to parse the mode. - s/samsung/Samsung/, s/exynos/Exynos/ - use writel instead of writel_relaxed - remove stray of_match_ptr() Changes in v3: - decouple the mailbox controller driver from the ACPM protocol driver - address Krzysztof's review comments v2: https://lore.kernel.org/linux-arm-kernel/20241017163649.3007062-1-tudor.ambarus@xxxxxxxxxx/ v1: https://lore.kernel.org/linux-arm-kernel/20241004165301.1979527-1-tudor.ambarus@xxxxxxxxxx/ Signed-off-by: Tudor Ambarus <tudor.ambarus@xxxxxxxxxx> --- Tudor Ambarus (3): dt-bindings: mailbox: add google,gs101-mbox bindings mailbox: add Samsung Exynos driver MAINTAINERS: add entry for Samsung Exynos mailbox driver .../bindings/mailbox/google,gs101-mbox.yaml | 79 +++++++++ MAINTAINERS | 10 ++ drivers/mailbox/Kconfig | 11 ++ drivers/mailbox/Makefile | 2 + drivers/mailbox/exynos-mailbox.c | 184 +++++++++++++++++++++ include/dt-bindings/mailbox/google,gs101.h | 14 ++ 6 files changed, 300 insertions(+) --- base-commit: fac04efc5c793dccbd07e2d59af9f90b7fc0dca4 change-id: 20241212-acpm-v4-upstream-mbox-948714004b05 Best regards, -- Tudor Ambarus <tudor.ambarus@xxxxxxxxxx>