xref: /openbmc/u-boot/doc/device-tree-bindings/mailbox/nvidia,tegra186-hsp.txt (revision 7edb17670cdca0ee5de8b8eb61753ad6b7fc33e6)
1*729c2db7SStephen WarrenNVIDIA Tegra Hardware Synchronization Primitives (HSP)
2*729c2db7SStephen Warren
3*729c2db7SStephen WarrenThe HSP modules are used for the processors to share resources and communicate
4*729c2db7SStephen Warrentogether. It provides a set of hardware synchronization primitives for
5*729c2db7SStephen Warreninterprocessor communication. So the interprocessor communication (IPC)
6*729c2db7SStephen Warrenprotocols can use hardware synchronization primitives, when operating between
7*729c2db7SStephen Warrentwo processors not in an SMP relationship.
8*729c2db7SStephen Warren
9*729c2db7SStephen WarrenThe features that HSP supported are shared mailboxes, shared semaphores,
10*729c2db7SStephen Warrenarbitrated semaphores and doorbells.
11*729c2db7SStephen Warren
12*729c2db7SStephen WarrenRequired properties:
13*729c2db7SStephen Warren- name : Should be hsp
14*729c2db7SStephen Warren- compatible
15*729c2db7SStephen Warren    Array of strings.
16*729c2db7SStephen Warren    one of:
17*729c2db7SStephen Warren    - "nvidia,tegra186-hsp"
18*729c2db7SStephen Warren- reg : Offset and length of the register set for the device.
19*729c2db7SStephen Warren- interrupt-names
20*729c2db7SStephen Warren    Array of strings.
21*729c2db7SStephen Warren    Contains a list of names for the interrupts described by the interrupt
22*729c2db7SStephen Warren    property. May contain the following entries, in any order:
23*729c2db7SStephen Warren    - "doorbell"
24*729c2db7SStephen Warren    Users of this binding MUST look up entries in the interrupt property
25*729c2db7SStephen Warren    by name, using this interrupt-names property to do so.
26*729c2db7SStephen Warren- interrupts
27*729c2db7SStephen Warren    Array of interrupt specifiers.
28*729c2db7SStephen Warren    Must contain one entry per entry in the interrupt-names property,
29*729c2db7SStephen Warren    in a matching order.
30*729c2db7SStephen Warren- #mbox-cells : Should be 2.
31*729c2db7SStephen Warren
32*729c2db7SStephen WarrenThe mbox specifier of the "mboxes" property in the client node should
33*729c2db7SStephen Warrencontain two data. The first one should be the HSP type and the second
34*729c2db7SStephen Warrenone should be the ID that the client is going to use. Those information
35*729c2db7SStephen Warrencan be found in the following file.
36*729c2db7SStephen Warren
37*729c2db7SStephen Warren- <dt-bindings/mailbox/tegra186-hsp.h>.
38*729c2db7SStephen Warren
39*729c2db7SStephen WarrenExample:
40*729c2db7SStephen Warren
41*729c2db7SStephen Warrenhsp_top0: hsp@3c00000 {
42*729c2db7SStephen Warren	compatible = "nvidia,tegra186-hsp";
43*729c2db7SStephen Warren	reg = <0x0 0x03c00000 0x0 0xa0000>;
44*729c2db7SStephen Warren	interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
45*729c2db7SStephen Warren	interrupt-names = "doorbell";
46*729c2db7SStephen Warren	#mbox-cells = <2>;
47*729c2db7SStephen Warren};
48*729c2db7SStephen Warren
49*729c2db7SStephen Warrenclient {
50*729c2db7SStephen Warren	...
51*729c2db7SStephen Warren	mboxes = <&hsp_top0 HSP_MBOX_TYPE_DB HSP_DB_MASTER_XXX>;
52*729c2db7SStephen Warren};
53