summaryrefslogtreecommitdiffstats
path: root/include/dt-bindings/mailbox
diff options
context:
space:
mode:
authorMikko Perttunen <mperttunen@nvidia.com>2018-11-28 10:54:12 +0100
committerJassi Brar <jaswinder.singh@linaro.org>2018-12-22 05:31:26 +0100
commitfed8b7e366e7c8f81e957ef91aa8f0a38e038c66 (patch)
tree8f955b9714287794e1c562b46accdb50bf176de3 /include/dt-bindings/mailbox
parentmailbox: Allow multiple controllers per device (diff)
downloadlinux-fed8b7e366e7c8f81e957ef91aa8f0a38e038c66.tar.xz
linux-fed8b7e366e7c8f81e957ef91aa8f0a38e038c66.zip
dt-bindings: tegra186-hsp: Add shared mailboxes
Shared mailboxes are a mechanism to transport data from one processor in the system to another. They are bidirectional links with both a producer and a consumer. Interrupts are used to let the consumer know when data was written to the mailbox by the producer, and to let the producer know when the consumer has read the data from the mailbox. These interrupts are mapped to one or more "shared interrupts". Typically each processor in the system owns one of these shared interrupts. Add documentation to the device tree bindings about how clients can use mailbox specifiers to request a specific shared mailbox and select which direction they drive. Also document how to specify the shared interrupts in addition to the existing doorbell interrupt. Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com> Acked-by: Jon Hunter <jonathanh@nvidia.com> Reviewed-by: Rob Herring <robh@kernel.org> Acked-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Jassi Brar <jaswinder.singh@linaro.org>
Diffstat (limited to 'include/dt-bindings/mailbox')
-rw-r--r--include/dt-bindings/mailbox/tegra186-hsp.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/include/dt-bindings/mailbox/tegra186-hsp.h b/include/dt-bindings/mailbox/tegra186-hsp.h
index bcab5b7ca785..3bdec7a84d35 100644
--- a/include/dt-bindings/mailbox/tegra186-hsp.h
+++ b/include/dt-bindings/mailbox/tegra186-hsp.h
@@ -22,4 +22,15 @@
#define TEGRA_HSP_DB_MASTER_CCPLEX 17
#define TEGRA_HSP_DB_MASTER_BPMP 19
+/*
+ * Shared mailboxes are unidirectional, so the direction needs to be specified
+ * in the device tree.
+ */
+#define TEGRA_HSP_SM_MASK 0x00ffffff
+#define TEGRA_HSP_SM_FLAG_RX (0 << 31)
+#define TEGRA_HSP_SM_FLAG_TX (1 << 31)
+
+#define TEGRA_HSP_SM_RX(x) (TEGRA_HSP_SM_FLAG_RX | ((x) & TEGRA_HSP_SM_MASK))
+#define TEGRA_HSP_SM_TX(x) (TEGRA_HSP_SM_FLAG_TX | ((x) & TEGRA_HSP_SM_MASK))
+
#endif