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
7title: Mediatek SCP
8
9maintainers:
10  - Tinghan Shen <tinghan.shen@mediatek.com>
11
12description:
13  This binding provides support for ARM Cortex M4 Co-processor found on some
14  Mediatek SoCs.
15
16properties:
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
61required:
62  - compatible
63  - reg
64  - reg-names
65
66allOf:
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
92additionalProperties:
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
108examples:
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    };
125