Commit | Line | Data |
---|---|---|
1cb17866 LY |
1 | Hisilicon Hi6220 Mailbox Driver |
2 | =============================== | |
3 | ||
4 | Hisilicon Hi6220 mailbox supports up to 32 channels. Each channel | |
5 | is unidirectional with a maximum message size of 8 words. I/O is | |
6 | performed using register access (there is no DMA) and the cell | |
7 | raises an interrupt when messages are received. | |
8 | ||
9 | Mailbox Device Node: | |
10 | ==================== | |
11 | ||
12 | Required properties: | |
13 | -------------------- | |
14 | - compatible: Shall be "hisilicon,hi6220-mbox" | |
15 | - reg: Contains the mailbox register address range (base | |
16 | address and length); the first item is for IPC | |
17 | registers, the second item is shared buffer for | |
18 | slots. | |
19 | - #mbox-cells: Common mailbox binding property to identify the number | |
20 | of cells required for the mailbox specifier. Must be 3. | |
21 | <&phandle slot_id dst_irq ack_irq> | |
22 | phandle: Label name of mailbox controller | |
23 | slot_id: Slot id used either for TX or RX | |
24 | dst_irq: IRQ identifier index number which used by MCU | |
25 | ack_irq: IRQ identifier index number with generating a | |
26 | TX/RX interrupt to application processor, | |
27 | mailbox driver uses it to acknowledge interrupt | |
28 | - interrupts: Contains the interrupt information for the mailbox | |
29 | device. The format is dependent on which interrupt | |
30 | controller the SoCs use. | |
31 | ||
32 | Optional Properties: | |
33 | -------------------- | |
34 | - hi6220,mbox-tx-noirq: Property of MCU firmware's feature, so mailbox driver | |
35 | use this flag to ask MCU to enable "automatic idle | |
36 | flag" mode or IRQ generated mode to acknowledge a TX | |
37 | completion. | |
38 | ||
39 | Example: | |
40 | -------- | |
41 | ||
42 | mailbox: mailbox@f7510000 { | |
43 | compatible = "hisilicon,hi6220-mbox"; | |
44 | reg = <0x0 0xf7510000 0x0 0x1000>, /* IPC_S */ | |
45 | <0x0 0x06dff800 0x0 0x0800>; /* Mailbox */ | |
46 | interrupt-parent = <&gic>; | |
47 | interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>; | |
48 | #mbox-cells = <3>; | |
49 | }; | |
50 | ||
51 | ||
52 | Mailbox client | |
53 | =============== | |
54 | ||
55 | Required properties: | |
56 | -------------------- | |
57 | - compatible: Many (See the client docs). | |
58 | - mboxes: Standard property to specify a Mailbox (See ./mailbox.txt) | |
59 | Cells must match 'mbox-cells' (See Mailbox Device Node above). | |
60 | ||
61 | Optional Properties: | |
62 | -------------------- | |
63 | - mbox-names: Name given to channels seen in the 'mboxes' property. | |
64 | ||
65 | Example: | |
66 | -------- | |
67 | ||
68 | stub_clock: stub_clock { | |
69 | compatible = "hisilicon,hi6220-stub-clk"; | |
70 | hisilicon,hi6220-clk-sram = <&sram>; | |
71 | #clock-cells = <1>; | |
72 | mbox-names = "mbox-tx", "mbox-rx"; | |
73 | mboxes = <&mailbox 1 0 11>, <&mailbox 0 1 10>; | |
74 | }; |