xref: /linux/Documentation/devicetree/bindings/mailbox/thead,th1520-mbox.yaml (revision 7f71507851fc7764b36a3221839607d3a45c2025)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/mailbox/thead,th1520-mbox.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: T-head TH1520 Mailbox Controller
8
9description:
10  The T-head mailbox controller enables communication and coordination between
11  cores within the SoC by passing messages (e.g., data, status, and control)
12  through mailbox channels. It also allows one core to signal another processor
13  using interrupts via the Interrupt Controller Unit (ICU).
14
15maintainers:
16  - Michal Wilczynski <m.wilczynski@samsung.com>
17
18properties:
19  compatible:
20    const: thead,th1520-mbox
21
22  clocks:
23    items:
24      - description: Clock for the local mailbox
25      - description: Clock for remote ICU 0
26      - description: Clock for remote ICU 1
27      - description: Clock for remote ICU 2
28
29  clock-names:
30    items:
31      - const: clk-local
32      - const: clk-remote-icu0
33      - const: clk-remote-icu1
34      - const: clk-remote-icu2
35
36  reg:
37    items:
38      - description: Mailbox local base address
39      - description: Remote ICU 0 base address
40      - description: Remote ICU 1 base address
41      - description: Remote ICU 2 base address
42
43  reg-names:
44    items:
45      - const: local
46      - const: remote-icu0
47      - const: remote-icu1
48      - const: remote-icu2
49
50  interrupts:
51    maxItems: 1
52
53  '#mbox-cells':
54    const: 1
55    description:
56      The one and only cell describes destination CPU ID.
57
58required:
59  - compatible
60  - clocks
61  - clock-names
62  - reg
63  - reg-names
64  - interrupts
65  - '#mbox-cells'
66
67additionalProperties: false
68
69examples:
70  - |
71    #include <dt-bindings/clock/thead,th1520-clk-ap.h>
72    soc {
73      #address-cells = <2>;
74      #size-cells = <2>;
75      mailbox@ffffc38000 {
76        compatible = "thead,th1520-mbox";
77        reg = <0xff 0xffc38000 0x0 0x4000>,
78              <0xff 0xffc44000 0x0 0x1000>,
79              <0xff 0xffc4c000 0x0 0x1000>,
80              <0xff 0xffc54000 0x0 0x1000>;
81        reg-names = "local", "remote-icu0", "remote-icu1", "remote-icu2";
82        clocks = <&clk CLK_MBOX0>, <&clk CLK_MBOX1>, <&clk CLK_MBOX2>,
83                 <&clk CLK_MBOX3>;
84        clock-names = "clk-local", "clk-remote-icu0", "clk-remote-icu1",
85                      "clk-remote-icu2";
86        interrupts = <28>;
87        #mbox-cells = <1>;
88      };
89    };
90