12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- NVIDIA Tegra Hardware Synchronization Primitives (HSP)
- The HSP modules are used for the processors to share resources and communicate
- together. It provides a set of hardware synchronization primitives for
- interprocessor communication. So the interprocessor communication (IPC)
- protocols can use hardware synchronization primitives, when operating between
- two processors not in an SMP relationship.
- The features that HSP supported are shared mailboxes, shared semaphores,
- arbitrated semaphores and doorbells.
- Required properties:
- - name : Should be hsp
- - compatible
- Array of strings.
- one of:
- - "nvidia,tegra186-hsp"
- - reg : Offset and length of the register set for the device.
- - interrupt-names
- Array of strings.
- Contains a list of names for the interrupts described by the interrupt
- property. May contain the following entries, in any order:
- - "doorbell"
- Users of this binding MUST look up entries in the interrupt property
- by name, using this interrupt-names property to do so.
- - interrupts
- Array of interrupt specifiers.
- Must contain one entry per entry in the interrupt-names property,
- in a matching order.
- - #mbox-cells : Should be 2.
- The mbox specifier of the "mboxes" property in the client node should
- contain two data. The first one should be the HSP type and the second
- one should be the ID that the client is going to use. Those information
- can be found in the following file.
- - <dt-bindings/mailbox/tegra186-hsp.h>.
- Example:
- hsp_top0: hsp@3c00000 {
- compatible = "nvidia,tegra186-hsp";
- reg = <0x0 0x03c00000 0x0 0xa0000>;
- interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
- interrupt-names = "doorbell";
- #mbox-cells = <2>;
- };
- client {
- ...
- mboxes = <&hsp_top0 HSP_MBOX_TYPE_DB HSP_DB_MASTER_XXX>;
- };
|