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