GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / remoteproc / mtk,scp.yaml
1 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/remoteproc/mtk,scp.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: Mediatek SCP Bindings
8
9 maintainers:
10   - Tinghan Shen <tinghan.shen@mediatek.com>
11
12 description:
13   This binding provides support for ARM Cortex M4 Co-processor found on some
14   Mediatek SoCs.
15
16 properties:
17   compatible:
18     enum:
19       - mediatek,mt8183-scp
20       - mediatek,mt8186-scp
21       - mediatek,mt8188-scp
22       - mediatek,mt8192-scp
23       - mediatek,mt8195-scp
24
25   reg:
26     description:
27       Should contain the address ranges for memory regions SRAM, CFG, and,
28       on some platforms, L1TCM.
29     minItems: 2
30     maxItems: 3
31
32   reg-names:
33     minItems: 2
34     items:
35       - const: sram
36       - const: cfg
37       - const: l1tcm
38
39   clocks:
40     description:
41       Clock for co-processor (see ../clock/clock-bindings.txt).
42       Required by mt8183 and mt8192.
43     maxItems: 1
44
45   clock-names:
46     const: main
47
48   interrupts:
49     maxItems: 1
50
51   firmware-name:
52     $ref: /schemas/types.yaml#/definitions/string
53     description:
54       If present, name (or relative path) of the file within the
55       firmware search path containing the firmware image used when
56       initializing SCP.
57
58   memory-region:
59     maxItems: 1
60
61 required:
62   - compatible
63   - reg
64   - reg-names
65
66 allOf:
67   - if:
68       properties:
69         compatible:
70           enum:
71             - mediatek,mt8183-scp
72             - mediatek,mt8192-scp
73     then:
74       required:
75         - clocks
76         - clock-names
77
78   - if:
79       properties:
80         compatible:
81           enum:
82             - mediatek,mt8183-scp
83             - mediatek,mt8186-scp
84             - mediatek,mt8188-scp
85     then:
86       properties:
87         reg:
88           maxItems: 2
89         reg-names:
90           maxItems: 2
91
92 additionalProperties:
93   type: object
94   description:
95     Subnodes of the SCP represent rpmsg devices. The names of the devices
96     are not important. The properties of these nodes are defined by the
97     individual bindings for the rpmsg devices.
98   properties:
99     mediatek,rpmsg-name:
100       $ref: /schemas/types.yaml#/definitions/string-array
101       description:
102         Contains the name for the rpmsg device. Used to match
103         the subnode to rpmsg device announced by SCP.
104
105   required:
106     - mediatek,rpmsg-name
107
108 examples:
109   - |
110     #include <dt-bindings/clock/mt8192-clk.h>
111
112     scp@10500000 {
113         compatible = "mediatek,mt8192-scp";
114         reg = <0x10500000 0x80000>,
115               <0x10700000 0x8000>,
116               <0x10720000 0xe0000>;
117         reg-names = "sram", "cfg", "l1tcm";
118         clocks = <&infracfg CLK_INFRA_SCPSYS>;
119         clock-names = "main";
120
121         cros_ec {
122             mediatek,rpmsg-name = "cros-ec-rpmsg";
123         };
124     };