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