blob: 898823d97ab3cd2d3f699417d4b2adb2bdd09cee [file] [log] [blame]
Hisilicon Mailbox Driver
========================
The Hisilicon mailbox supports up to 32 channels. Each channel
is unidirectional with a maximum message size of 8 words. I/O is
performed using register access (there is no DMA) and the cell
raises an interrupt when messages are received.
Mailbox Device Node:
====================
Required properties:
--------------------
- compatible: Shall be "hisilicon,hi6220-mbox"
- reg: Contains the mailbox register address range (base
address and length); the first item is for IPC
registers, the second item is shared buffer for
slots.
- #mbox-cells Common mailbox binding property to identify the number
of cells required for the mailbox specifier. Should be 1.
- interrupts: Contains the interrupt information for the mailbox
device. The format is dependent on which interrupt
controller the SoCs use.
Example:
--------
mailbox: mailbox@F7510000 {
#mbox-cells = <1>;
compatible = "hisilicon,hi6220-mbox";
reg = <0x0 0xF7510000 0x0 0x1000>, /* IPC_S */
<0x0 0x06DFF800 0x0 0x0800>; /* Mailbox */
interrupt-parent = <&gic>;
interrupts = <0 94 4>;
};
Mailbox client
===============
"mboxes" and the optional "mbox-names" (please see
Documentation/devicetree/bindings/mailbox/mailbox.txt for details). Each value
of the mboxes property should contain a phandle to the mailbox controller
device node and second argument is the channel index. It must be 0 (hardware
support only one channel). The equivalent "mbox-names" property value can be
used to give a name to the communication channel to be used by the client user.
Example:
--------
stub_clock: stub_clock {
compatible = "hisilicon,hi6220-stub-clk";
hisilicon,hi6220-clk-sram = <&sram>;
#clock-cells = <1>;
mbox-names = "mbox-tx";
mboxes = <&mailbox 1>;
};