forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
2.3 KiB
74 lines
2.3 KiB
Hisilicon Hi6220 Mailbox Driver |
|
=============================== |
|
|
|
Hisilicon Hi6220 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. Must be 3. |
|
<&phandle slot_id dst_irq ack_irq> |
|
phandle: Label name of mailbox controller |
|
slot_id: Slot id used either for TX or RX |
|
dst_irq: IRQ identifier index number which used by MCU |
|
ack_irq: IRQ identifier index number with generating a |
|
TX/RX interrupt to application processor, |
|
mailbox driver uses it to acknowledge interrupt |
|
- interrupts: Contains the interrupt information for the mailbox |
|
device. The format is dependent on which interrupt |
|
controller the SoCs use. |
|
|
|
Optional Properties: |
|
-------------------- |
|
- hi6220,mbox-tx-noirq: Property of MCU firmware's feature, so mailbox driver |
|
use this flag to ask MCU to enable "automatic idle |
|
flag" mode or IRQ generated mode to acknowledge a TX |
|
completion. |
|
|
|
Example: |
|
-------- |
|
|
|
mailbox: mailbox@f7510000 { |
|
compatible = "hisilicon,hi6220-mbox"; |
|
reg = <0x0 0xf7510000 0x0 0x1000>, /* IPC_S */ |
|
<0x0 0x06dff800 0x0 0x0800>; /* Mailbox */ |
|
interrupt-parent = <&gic>; |
|
interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; |
|
#mbox-cells = <3>; |
|
}; |
|
|
|
|
|
Mailbox client |
|
=============== |
|
|
|
Required properties: |
|
-------------------- |
|
- compatible: Many (See the client docs). |
|
- mboxes: Standard property to specify a Mailbox (See ./mailbox.txt) |
|
Cells must match 'mbox-cells' (See Mailbox Device Node above). |
|
|
|
Optional Properties: |
|
-------------------- |
|
- mbox-names: Name given to channels seen in the 'mboxes' property. |
|
|
|
Example: |
|
-------- |
|
|
|
stub_clock: stub_clock { |
|
compatible = "hisilicon,hi6220-stub-clk"; |
|
hisilicon,hi6220-clk-sram = <&sram>; |
|
#clock-cells = <1>; |
|
mbox-names = "mbox-tx", "mbox-rx"; |
|
mboxes = <&mailbox 1 0 11>, <&mailbox 0 1 10>; |
|
};
|
|
|