xref: /freebsd/sys/contrib/device-tree/Bindings/mailbox/arm-mhu.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotARM MHU Mailbox Driver
2*c66ec88fSEmmanuel Vadot======================
3*c66ec88fSEmmanuel Vadot
4*c66ec88fSEmmanuel VadotThe ARM's Message-Handling-Unit (MHU) is a mailbox controller that has
5*c66ec88fSEmmanuel Vadot3 independent channels/links to communicate with remote processor(s).
6*c66ec88fSEmmanuel Vadot MHU links are hardwired on a platform. A link raises interrupt for any
7*c66ec88fSEmmanuel Vadotreceived data. However, there is no specified way of knowing if the sent
8*c66ec88fSEmmanuel Vadotdata has been read by the remote. This driver assumes the sender polls
9*c66ec88fSEmmanuel VadotSTAT register and the remote clears it after having read the data.
10*c66ec88fSEmmanuel VadotThe last channel is specified to be a 'Secure' resource, hence can't be
11*c66ec88fSEmmanuel Vadotused by Linux running NS.
12*c66ec88fSEmmanuel Vadot
13*c66ec88fSEmmanuel VadotMailbox Device Node:
14*c66ec88fSEmmanuel Vadot====================
15*c66ec88fSEmmanuel Vadot
16*c66ec88fSEmmanuel VadotRequired properties:
17*c66ec88fSEmmanuel Vadot--------------------
18*c66ec88fSEmmanuel Vadot- compatible:		Shall be "arm,mhu" & "arm,primecell"
19*c66ec88fSEmmanuel Vadot- reg:			Contains the mailbox register address range (base
20*c66ec88fSEmmanuel Vadot			address and length)
21*c66ec88fSEmmanuel Vadot- #mbox-cells		Shall be 1 - the index of the channel needed.
22*c66ec88fSEmmanuel Vadot- interrupts:		Contains the interrupt information corresponding to
23*c66ec88fSEmmanuel Vadot			each of the 3 links of MHU.
24*c66ec88fSEmmanuel Vadot
25*c66ec88fSEmmanuel VadotExample:
26*c66ec88fSEmmanuel Vadot--------
27*c66ec88fSEmmanuel Vadot
28*c66ec88fSEmmanuel Vadot	mhu: mailbox@2b1f0000 {
29*c66ec88fSEmmanuel Vadot		#mbox-cells = <1>;
30*c66ec88fSEmmanuel Vadot		compatible = "arm,mhu", "arm,primecell";
31*c66ec88fSEmmanuel Vadot		reg = <0 0x2b1f0000 0x1000>;
32*c66ec88fSEmmanuel Vadot		interrupts = <0 36 4>, /* LP-NonSecure */
33*c66ec88fSEmmanuel Vadot			     <0 35 4>, /* HP-NonSecure */
34*c66ec88fSEmmanuel Vadot			     <0 37 4>; /* Secure */
35*c66ec88fSEmmanuel Vadot		clocks = <&clock 0 2 1>;
36*c66ec88fSEmmanuel Vadot		clock-names = "apb_pclk";
37*c66ec88fSEmmanuel Vadot	};
38*c66ec88fSEmmanuel Vadot
39*c66ec88fSEmmanuel Vadot	mhu_client: scb@2e000000 {
40*c66ec88fSEmmanuel Vadot		compatible = "fujitsu,mb86s70-scb-1.0";
41*c66ec88fSEmmanuel Vadot		reg = <0 0x2e000000 0x4000>;
42*c66ec88fSEmmanuel Vadot		mboxes = <&mhu 1>; /* HP-NonSecure */
43*c66ec88fSEmmanuel Vadot	};
44