1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/remoteproc/fsl,imx-rproc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: NXP i.MX Co-Processor
8
9description:
10  This binding provides support for ARM Cortex M4 Co-processor found on some NXP iMX SoCs.
11
12maintainers:
13  - Peng Fan <peng.fan@nxp.com>
14
15properties:
16  compatible:
17    enum:
18      - fsl,imx6sx-cm4
19      - fsl,imx7d-cm4
20      - fsl,imx7ulp-cm4
21      - fsl,imx8mm-cm4
22      - fsl,imx8mn-cm7
23      - fsl,imx8mp-cm7
24      - fsl,imx8mq-cm4
25      - fsl,imx8qm-cm4
26      - fsl,imx8qxp-cm4
27      - fsl,imx8ulp-cm33
28      - fsl,imx93-cm33
29
30  clocks:
31    maxItems: 1
32
33  syscon:
34    $ref: /schemas/types.yaml#/definitions/phandle
35    description:
36      Phandle to syscon block which provide access to System Reset Controller
37
38  mbox-names:
39    items:
40      - const: tx
41      - const: rx
42      - const: rxdb
43
44  mboxes:
45    description:
46      This property is required only if the rpmsg/virtio functionality is used.
47      List of <&phandle type channel> - 1 channel for TX, 1 channel for RX, 1 channel for RXDB.
48      (see mailbox/fsl,mu.yaml)
49    minItems: 1
50    maxItems: 3
51
52  memory-region:
53    description:
54      If present, a phandle for a reserved memory area that used for vdev buffer,
55      resource table, vring region and others used by remote processor.
56    minItems: 1
57    maxItems: 32
58
59  power-domains:
60    maxItems: 8
61
62  fsl,auto-boot:
63    $ref: /schemas/types.yaml#/definitions/flag
64    description:
65      Indicate whether need to load the default firmware and start the remote
66      processor automatically.
67
68  fsl,entry-address:
69    $ref: /schemas/types.yaml#/definitions/uint32
70    description:
71      Specify CPU entry address for SCU enabled processor.
72
73  fsl,resource-id:
74    $ref: /schemas/types.yaml#/definitions/uint32
75    description:
76      This property is to specify the resource id of the remote processor in SoC
77      which supports SCFW
78
79required:
80  - compatible
81
82additionalProperties: false
83
84examples:
85  - |
86    #include <dt-bindings/clock/imx7d-clock.h>
87    m4_reserved_sysmem1: cm4@80000000 {
88      reg = <0x80000000 0x80000>;
89    };
90
91    m4_reserved_sysmem2: cm4@81000000 {
92      reg = <0x81000000 0x80000>;
93    };
94
95    imx7d-cm4 {
96      compatible	= "fsl,imx7d-cm4";
97      memory-region	= <&m4_reserved_sysmem1>, <&m4_reserved_sysmem2>;
98      syscon		= <&src>;
99      clocks		= <&clks IMX7D_ARM_M4_ROOT_CLK>;
100    };
101
102  - |
103    #include <dt-bindings/clock/imx8mm-clock.h>
104
105    imx8mm-cm4 {
106      compatible = "fsl,imx8mm-cm4";
107      clocks = <&clk IMX8MM_CLK_M4_DIV>;
108      mbox-names = "tx", "rx", "rxdb";
109      mboxes = <&mu 0 1
110                &mu 1 1
111                &mu 3 1>;
112      memory-region = <&vdev0buffer>, <&vdev0vring0>, <&vdev0vring1>, <&rsc_table>;
113      syscon = <&src>;
114    };
115...
116