aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorOlof Johansson <olof@lixom.net>2014-09-24 01:10:18 -0400
committerOlof Johansson <olof@lixom.net>2014-09-24 01:10:27 -0400
commit791cc88c57b524b4267a9ea550b5306749fc7479 (patch)
treec7cd6c33f5c6a97e326e49fe1653df4774e23696 /Documentation
parent9cdf6bd51030e8b80b752adc016719a5b5d75d50 (diff)
parent75288cc66dc478b32e43970dd6913396526504ae (diff)
Merge tag 'mailbox-for-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap into next/drivers
Mailbox related changes for omaps to get it to work with device tree. * tag 'mailbox-for-v3.18' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: mailbox/omap: add support for parsing dt devices Documentation: dt: add omap mailbox bindings Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/devicetree/bindings/mailbox/omap-mailbox.txt108
1 files changed, 108 insertions, 0 deletions
diff --git a/Documentation/devicetree/bindings/mailbox/omap-mailbox.txt b/Documentation/devicetree/bindings/mailbox/omap-mailbox.txt
new file mode 100644
index 000000000000..48edc4b92afb
--- /dev/null
+++ b/Documentation/devicetree/bindings/mailbox/omap-mailbox.txt
@@ -0,0 +1,108 @@
1OMAP2+ Mailbox Driver
2=====================
3
4The OMAP mailbox hardware facilitates communication between different processors
5using a queued mailbox interrupt mechanism. The IP block is external to the
6various processor subsystems and is connected on an interconnect bus. The
7communication is achieved through a set of registers for message storage and
8interrupt configuration registers.
9
10Each mailbox IP block has a certain number of h/w fifo queues and output
11interrupt lines. An output interrupt line is routed to an interrupt controller
12within a processor subsystem, and there can be more than one line going to a
13specific processor's interrupt controller. The interrupt line connections are
14fixed for an instance and are dictated by the IP integration into the SoC
15(excluding the SoCs that have a Interrupt Crossbar IP). Each interrupt line is
16programmable through a set of interrupt configuration registers, and have a rx
17and tx interrupt source per h/w fifo. Communication between different processors
18is achieved through the appropriate programming of the rx and tx interrupt
19sources on the appropriate interrupt lines.
20
21The number of h/w fifo queues and interrupt lines dictate the usable registers.
22All the current OMAP SoCs except for the newest DRA7xx SoC has a single IP
23instance. DRA7xx has multiple instances with different number of h/w fifo queues
24and interrupt lines between different instances. The interrupt lines can also be
25routed to different processor sub-systems on DRA7xx as they are routed through
26the Crossbar, a kind of interrupt router/multiplexer.
27
28Mailbox Device Node:
29====================
30A Mailbox device node is used to represent a Mailbox IP instance within a SoC.
31The sub-mailboxes are represented as child nodes of this parent node.
32
33Required properties:
34--------------------
35- compatible: Should be one of the following,
36 "ti,omap2-mailbox" for OMAP2420, OMAP2430 SoCs
37 "ti,omap3-mailbox" for OMAP3430, OMAP3630 SoCs
38 "ti,omap4-mailbox" for OMAP44xx, OMAP54xx, AM33xx,
39 AM43xx and DRA7xx SoCs
40- reg: Contains the mailbox register address range (base
41 address and length)
42- interrupts: Contains the interrupt information for the mailbox
43 device. The format is dependent on which interrupt
44 controller the OMAP device uses
45- ti,hwmods: Name of the hwmod associated with the mailbox
46- ti,mbox-num-users: Number of targets (processor devices) that the mailbox
47 device can interrupt
48- ti,mbox-num-fifos: Number of h/w fifo queues within the mailbox IP block
49
50Child Nodes:
51============
52A child node is used for representing the actual sub-mailbox device that is
53used for the communication between the host processor and a remote processor.
54Each child node should have a unique node name across all the different
55mailbox device nodes.
56
57Required properties:
58--------------------
59- ti,mbox-tx: sub-mailbox descriptor property defining a Tx fifo
60- ti,mbox-rx: sub-mailbox descriptor property defining a Rx fifo
61
62Sub-mailbox Descriptor Data
63---------------------------
64Each of the above ti,mbox-tx and ti,mbox-rx properties should have 3 cells of
65data that represent the following:
66 Cell #1 (fifo_id) - mailbox fifo id used either for transmitting
67 (ti,mbox-tx) or for receiving (ti,mbox-rx)
68 Cell #2 (irq_id) - irq identifier index number to use from the parent's
69 interrupts data. Should be 0 for most of the cases, a
70 positive index value is seen only on mailboxes that have
71 multiple interrupt lines connected to the MPU processor.
72 Cell #3 (usr_id) - mailbox user id for identifying the interrupt line
73 associated with generating a tx/rx fifo interrupt.
74
75Example:
76--------
77
78/* OMAP4 */
79mailbox: mailbox@4a0f4000 {
80 compatible = "ti,omap4-mailbox";
81 reg = <0x4a0f4000 0x200>;
82 interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
83 ti,hwmods = "mailbox";
84 ti,mbox-num-users = <3>;
85 ti,mbox-num-fifos = <8>;
86 mbox_ipu: mbox_ipu {
87 ti,mbox-tx = <0 0 0>;
88 ti,mbox-rx = <1 0 0>;
89 };
90 mbox_dsp: mbox_dsp {
91 ti,mbox-tx = <3 0 0>;
92 ti,mbox-rx = <2 0 0>;
93 };
94};
95
96/* AM33xx */
97mailbox: mailbox@480C8000 {
98 compatible = "ti,omap4-mailbox";
99 reg = <0x480C8000 0x200>;
100 interrupts = <77>;
101 ti,hwmods = "mailbox";
102 ti,mbox-num-users = <4>;
103 ti,mbox-num-fifos = <8>;
104 mbox_wkupm3: wkup_m3 {
105 ti,mbox-tx = <0 0 0>;
106 ti,mbox-rx = <0 0 3>;
107 };
108};