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 Bindings
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,mt8192-scp
22      - mediatek,mt8195-scp
23
24  reg:
25    description:
26      Should contain the address ranges for memory regions SRAM, CFG, and,
27      on some platforms, L1TCM.
28    minItems: 2
29    maxItems: 3
30
31  reg-names:
32    minItems: 2
33    items:
34      - const: sram
35      - const: cfg
36      - const: l1tcm
37
38  clocks:
39    description:
40      Clock for co-processor (see ../clock/clock-bindings.txt).
41      Required by mt8183 and mt8192.
42    maxItems: 1
43
44  clock-names:
45    const: main
46
47  interrupts:
48    maxItems: 1
49
50  firmware-name:
51    $ref: /schemas/types.yaml#/definitions/string
52    description:
53      If present, name (or relative path) of the file within the
54      firmware search path containing the firmware image used when
55      initializing SCP.
56
57  memory-region:
58    maxItems: 1
59
60required:
61  - compatible
62  - reg
63  - reg-names
64
65allOf:
66  - if:
67      properties:
68        compatible:
69          enum:
70            - mediatek,mt8183-scp
71            - mediatek,mt8192-scp
72    then:
73      required:
74        - clocks
75        - clock-names
76
77  - if:
78      properties:
79        compatible:
80          enum:
81            - mediatek,mt8183-scp
82            - mediatek,mt8186-scp
83    then:
84      properties:
85        reg:
86          maxItems: 2
87        reg-names:
88          maxItems: 2
89
90additionalProperties:
91  type: object
92  description:
93    Subnodes of the SCP represent rpmsg devices. The names of the devices
94    are not important. The properties of these nodes are defined by the
95    individual bindings for the rpmsg devices.
96  properties:
97    mediatek,rpmsg-name:
98      $ref: /schemas/types.yaml#/definitions/string-array
99      description:
100        Contains the name for the rpmsg device. Used to match
101        the subnode to rpmsg device announced by SCP.
102
103  required:
104    - mediatek,rpmsg-name
105
106examples:
107  - |
108    #include <dt-bindings/clock/mt8192-clk.h>
109
110    scp@10500000 {
111        compatible = "mediatek,mt8192-scp";
112        reg = <0x10500000 0x80000>,
113              <0x10700000 0x8000>,
114              <0x10720000 0xe0000>;
115        reg-names = "sram", "cfg", "l1tcm";
116        clocks = <&infracfg CLK_INFRA_SCPSYS>;
117        clock-names = "main";
118
119        cros_ec {
120            mediatek,rpmsg-name = "cros-ec-rpmsg";
121        };
122    };
123