Lines Matching +full:mhu +full:- +full:doorbell
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
3 ---
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
10 - Tushar Khandelwal <tushar.khandelwal@arm.com>
11 - Viresh Kumar <viresh.kumar@linaro.org>
14 The Arm Message Handling Unit (MHU) Version 2 is a mailbox controller that has
15 between 1 and 124 channel windows (each 32-bit wide) to provide unidirectional
20 be written to or read from. If a pair of MHU controllers is implemented
27 An MHU controller must be specified along with the supported transport
33 - Data-transfer: Each transfer is made of one or more words, using one or more
36 - Doorbell: Each transfer is made up of single bit flag, using any one of the
38 and the entire window shall be used in doorbell protocol. Optionally, data
39 may be transmitted through a shared memory region, wherein the MHU is used
49 - arm,mhuv2-tx
50 - arm,mhuv2-rx
52 - compatible
57 - description: Sender mode
59 - const: arm,mhuv2-tx
60 - const: arm,primecell
62 - description: Receiver-mode
64 - const: arm,mhuv2-rx
65 - const: arm,primecell
80 clock-names:
83 arm,mhuv2-protocols:
84 $ref: /schemas/types.yaml#/definitions/uint32-matrix
86 The MHUv2 controller may contain up to 124 channel windows (each 32-bit
97 for doorbell protocol, and 1 is reserved for data-transfer protocol.
102 doorbell protocol this field signifies the number of 32-bit channel
103 windows that implement the doorbell protocol. For data-transfer protocol,
104 this field signifies the number of 32-bit channel windows that implement
105 the data-transfer protocol.
111 mhu: mailbox@2b1f0000 {
114 arm,mhuv2-protocols = <0 2>, <1 1>, <1 5>, <1 7>;
119 windows are used in doorbell protocol (64 doorbells), followed by 1, 5 and
120 7 windows (separately) used in data-transfer protocol.
126 - enum: [ 0, 1 ]
127 - minimum: 0
131 '#mbox-cells':
135 doorbell, or data-transfer protocol, and the second argument (only
136 relevant in doorbell protocol, should be 0 otherwise) represents the
137 doorbell number within the 32 bit wide channel window.
139 From the example given above for arm,mhuv2-protocols, here is how a client
142 mboxes = <&mhu 0 5>; // Channel Window Group 0, doorbell 5.
143 mboxes = <&mhu 1 7>; // Channel Window Group 1, doorbell 7.
144 mboxes = <&mhu 2 0>; // Channel Window Group 2, data transfer protocol with 1 window.
145 mboxes = <&mhu 3 0>; // Channel Window Group 3, data transfer protocol with 5 windows.
146 mboxes = <&mhu 4 0>; // Channel Window Group 4, data transfer protocol with 7 windows.
155 const: arm,mhuv2-rx
158 - interrupts
161 - compatible
162 - reg
163 - '#mbox-cells'
164 - arm,mhuv2-protocols
170 - |
172 #address-cells = <2>;
173 #size-cells = <2>;
176 #mbox-cells = <2>;
177 compatible = "arm,mhuv2-tx", "arm,primecell";
180 clock-names = "apb_pclk";
182 arm,mhuv2-protocols = <1 5>, <1 2>, <1 5>, <1 7>, <0 2>;
186 #mbox-cells = <2>;
187 compatible = "arm,mhuv2-rx", "arm,primecell";
190 clock-names = "apb_pclk";
192 arm,mhuv2-protocols = <1 1>, <1 7>, <0 2>;
196 compatible = "fsl,imx8qxp-dsp";
199 clock-names = "ipg", "ocram", "core";
200 power-domains = <&pd 0>, <&pd 1>, <&pd 2>, <&pd 3>;
201 mbox-names = "txdb0", "txdb1", "rxdb0", "rxdb1";
202 mboxes = <&mhu_tx 2 0>, //data-transfer protocol with 5 windows, mhu-tx
203 <&mhu_tx 3 0>, //data-transfer protocol with 7 windows, mhu-tx
204 <&mhu_rx 2 27>, //doorbell protocol channel 2, doorbell 27, mhu-rx
205 <&mhu_rx 0 0>; //data-transfer protocol with 1 window, mhu-rx
206 memory-region = <&dsp_reserved>;