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,mt8192-scp
21      - mediatek,mt8195-scp
22
23  reg:
24    description:
25      Should contain the address ranges for memory regions SRAM, CFG, and
26      L1TCM.
27    maxItems: 3
28
29  reg-names:
30    items:
31      - const: sram
32      - const: cfg
33      - const: l1tcm
34
35  clocks:
36    description:
37      Clock for co-processor (see ../clock/clock-bindings.txt).
38      Required by mt8183 and mt8192.
39    maxItems: 1
40
41  clock-names:
42    const: main
43
44required:
45  - compatible
46  - reg
47  - reg-names
48
49if:
50  properties:
51    compatible:
52      enum:
53        - mediatek,mt8183-scp
54        - mediatek,mt8192-scp
55then:
56  required:
57    - clocks
58    - clock-names
59
60additionalProperties:
61  type: object
62  description:
63    Subnodes of the SCP represent rpmsg devices. The names of the devices
64    are not important. The properties of these nodes are defined by the
65    individual bindings for the rpmsg devices.
66  properties:
67    mediatek,rpmsg-name:
68      $ref: /schemas/types.yaml#/definitions/string-array
69      description:
70        Contains the name for the rpmsg device. Used to match
71        the subnode to rpmsg device announced by SCP.
72
73  required:
74    - mediatek,rpmsg-name
75
76examples:
77  - |
78    #include <dt-bindings/clock/mt8183-clk.h>
79
80    scp@10500000 {
81        compatible = "mediatek,mt8183-scp";
82        reg = <0x10500000 0x80000>,
83              <0x10700000 0x8000>,
84              <0x10720000 0xe0000>;
85        reg-names = "sram", "cfg", "l1tcm";
86        clocks = <&infracfg CLK_INFRA_SCPSYS>;
87        clock-names = "main";
88
89        cros_ec {
90            mediatek,rpmsg-name = "cros-ec-rpmsg";
91        };
92    };
93