.. | .. |
---|
1 | | -OMAP2+ Mailbox Driver |
---|
| 1 | +OMAP2+ and K3 Mailbox |
---|
2 | 2 | ===================== |
---|
3 | 3 | |
---|
4 | 4 | The OMAP mailbox hardware facilitates communication between different processors |
---|
.. | .. |
---|
7 | 7 | communication is achieved through a set of registers for message storage and |
---|
8 | 8 | interrupt configuration registers. |
---|
9 | 9 | |
---|
10 | | -Each mailbox IP block has a certain number of h/w fifo queues and output |
---|
| 10 | +Each mailbox IP block/cluster has a certain number of h/w fifo queues and output |
---|
11 | 11 | interrupt lines. An output interrupt line is routed to an interrupt controller |
---|
12 | 12 | within a processor subsystem, and there can be more than one line going to a |
---|
13 | 13 | specific processor's interrupt controller. The interrupt line connections are |
---|
.. | .. |
---|
23 | 23 | instance. DRA7xx has multiple instances with different number of h/w fifo queues |
---|
24 | 24 | and interrupt lines between different instances. The interrupt lines can also be |
---|
25 | 25 | routed to different processor sub-systems on DRA7xx as they are routed through |
---|
26 | | -the Crossbar, a kind of interrupt router/multiplexer. |
---|
| 26 | +the Crossbar, a kind of interrupt router/multiplexer. The K3 AM65x and J721E |
---|
| 27 | +SoCs has each of these instances form a cluster and combine multiple clusters |
---|
| 28 | +into a single IP block present within the Main NavSS. The interrupt lines from |
---|
| 29 | +all these clusters are multiplexed and routed to different processor subsystems |
---|
| 30 | +over a limited number of common interrupt output lines of an Interrupt Router. |
---|
27 | 31 | |
---|
28 | 32 | Mailbox Device Node: |
---|
29 | 33 | ==================== |
---|
30 | | -A Mailbox device node is used to represent a Mailbox IP instance within a SoC. |
---|
31 | | -The sub-mailboxes are represented as child nodes of this parent node. |
---|
| 34 | +A Mailbox device node is used to represent a Mailbox IP instance/cluster within |
---|
| 35 | +a SoC. The sub-mailboxes are represented as child nodes of this parent node. |
---|
32 | 36 | |
---|
33 | 37 | Required properties: |
---|
34 | 38 | -------------------- |
---|
.. | .. |
---|
37 | 41 | "ti,omap3-mailbox" for OMAP3430, OMAP3630 SoCs |
---|
38 | 42 | "ti,omap4-mailbox" for OMAP44xx, OMAP54xx, AM33xx, |
---|
39 | 43 | AM43xx and DRA7xx SoCs |
---|
| 44 | + "ti,am654-mailbox" for K3 AM65x and J721E SoCs |
---|
40 | 45 | - reg: Contains the mailbox register address range (base |
---|
41 | 46 | address and length) |
---|
42 | 47 | - interrupts: Contains the interrupt information for the mailbox |
---|
43 | 48 | 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 |
---|
| 49 | + controller the Mailbox device uses |
---|
46 | 50 | - #mbox-cells: Common mailbox binding property to identify the number |
---|
47 | 51 | of cells required for the mailbox specifier. Should be |
---|
48 | 52 | 1 |
---|
49 | 53 | - ti,mbox-num-users: Number of targets (processor devices) that the mailbox |
---|
50 | 54 | device can interrupt |
---|
51 | 55 | - ti,mbox-num-fifos: Number of h/w fifo queues within the mailbox IP block |
---|
| 56 | + |
---|
| 57 | +SoC-specific Required properties: |
---|
| 58 | +--------------------------------- |
---|
| 59 | +The following are mandatory properties for the OMAP architecture based SoCs |
---|
| 60 | +only: |
---|
| 61 | +- ti,hwmods: Name of the hwmod associated with the mailbox. This |
---|
| 62 | + should be defined in the mailbox node only if the node |
---|
| 63 | + is not defined as a child node of a corresponding sysc |
---|
| 64 | + interconnect node. |
---|
| 65 | + |
---|
| 66 | +The following are mandatory properties for the K3 AM65x and J721E SoCs only: |
---|
| 67 | +- interrupt-parent: Should contain a phandle to the TI-SCI interrupt |
---|
| 68 | + controller node that is used to dynamically program |
---|
| 69 | + the interrupt routes between the IP and the main GIC |
---|
| 70 | + controllers. See the following binding for additional |
---|
| 71 | + details, |
---|
| 72 | + Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.yaml |
---|
52 | 73 | |
---|
53 | 74 | Child Nodes: |
---|
54 | 75 | ============ |
---|
.. | .. |
---|
98 | 119 | Example: |
---|
99 | 120 | -------- |
---|
100 | 121 | |
---|
101 | | -/* OMAP4 */ |
---|
| 122 | +1. /* OMAP4 */ |
---|
102 | 123 | mailbox: mailbox@4a0f4000 { |
---|
103 | 124 | compatible = "ti,omap4-mailbox"; |
---|
104 | 125 | reg = <0x4a0f4000 0x200>; |
---|
.. | .. |
---|
123 | 144 | ... |
---|
124 | 145 | }; |
---|
125 | 146 | |
---|
126 | | -/* AM33xx */ |
---|
| 147 | +2. /* AM33xx */ |
---|
127 | 148 | mailbox: mailbox@480c8000 { |
---|
128 | 149 | compatible = "ti,omap4-mailbox"; |
---|
129 | 150 | reg = <0x480C8000 0x200>; |
---|
.. | .. |
---|
137 | 158 | ti,mbox-rx = <0 0 3>; |
---|
138 | 159 | }; |
---|
139 | 160 | }; |
---|
| 161 | + |
---|
| 162 | +3. /* AM65x */ |
---|
| 163 | +&cbass_main { |
---|
| 164 | + cbass_main_navss: interconnect0 { |
---|
| 165 | + mailbox0_cluster0: mailbox@31f80000 { |
---|
| 166 | + compatible = "ti,am654-mailbox"; |
---|
| 167 | + reg = <0x00 0x31f80000 0x00 0x200>; |
---|
| 168 | + #mbox-cells = <1>; |
---|
| 169 | + ti,mbox-num-users = <4>; |
---|
| 170 | + ti,mbox-num-fifos = <16>; |
---|
| 171 | + interrupt-parent = <&intr_main_navss>; |
---|
| 172 | + interrupts = <164 0>; |
---|
| 173 | + |
---|
| 174 | + mbox_mcu_r5fss0_core0: mbox-mcu-r5fss0-core0 { |
---|
| 175 | + ti,mbox-tx = <1 0 0>; |
---|
| 176 | + ti,mbox-rx = <0 0 0>; |
---|
| 177 | + }; |
---|
| 178 | + }; |
---|
| 179 | + }; |
---|
| 180 | +}; |
---|