Merge commit '81fd23e2b3ccf71c807e671444e8accaba98ca53' of https://git.pengutronix...
[linux-2.6-microblaze.git] / Documentation / devicetree / bindings / remoteproc / fsl,imx-rproc.yaml
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
7 title: NXP i.MX Co-Processor Bindings
8
9 description:
10   This binding provides support for ARM Cortex M4 Co-processor found on some NXP iMX SoCs.
11
12 maintainers:
13   - Peng Fan <peng.fan@nxp.com>
14
15 properties:
16   compatible:
17     enum:
18       - fsl,imx8mq-cm4
19       - fsl,imx8mm-cm4
20       - fsl,imx8mn-cm7
21       - fsl,imx8mp-cm7
22       - fsl,imx8ulp-cm33
23       - fsl,imx7d-cm4
24       - fsl,imx7ulp-cm4
25       - fsl,imx6sx-cm4
26
27   clocks:
28     maxItems: 1
29
30   syscon:
31     $ref: /schemas/types.yaml#/definitions/phandle
32     description:
33       Phandle to syscon block which provide access to System Reset Controller
34
35   mbox-names:
36     items:
37       - const: tx
38       - const: rx
39       - const: rxdb
40
41   mboxes:
42     description:
43       This property is required only if the rpmsg/virtio functionality is used.
44       List of <&phandle type channel> - 1 channel for TX, 1 channel for RX, 1 channel for RXDB.
45       (see mailbox/fsl,mu.yaml)
46     minItems: 1
47     maxItems: 3
48
49   memory-region:
50     description:
51       If present, a phandle for a reserved memory area that used for vdev buffer,
52       resource table, vring region and others used by remote processor.
53     minItems: 1
54     maxItems: 32
55
56   fsl,auto-boot:
57     $ref: /schemas/types.yaml#/definitions/flag
58     description:
59       Indicate whether need to load the default firmware and start the remote
60       processor automatically.
61
62 required:
63   - compatible
64
65 additionalProperties: false
66
67 examples:
68   - |
69     #include <dt-bindings/clock/imx7d-clock.h>
70     m4_reserved_sysmem1: cm4@80000000 {
71       reg = <0x80000000 0x80000>;
72     };
73
74     m4_reserved_sysmem2: cm4@81000000 {
75       reg = <0x81000000 0x80000>;
76     };
77
78     imx7d-cm4 {
79       compatible        = "fsl,imx7d-cm4";
80       memory-region     = <&m4_reserved_sysmem1>, <&m4_reserved_sysmem2>;
81       syscon            = <&src>;
82       clocks            = <&clks IMX7D_ARM_M4_ROOT_CLK>;
83     };
84
85   - |
86     #include <dt-bindings/clock/imx8mm-clock.h>
87
88     imx8mm-cm4 {
89       compatible = "fsl,imx8mm-cm4";
90       clocks = <&clk IMX8MM_CLK_M4_DIV>;
91       mbox-names = "tx", "rx", "rxdb";
92       mboxes = <&mu 0 1
93                 &mu 1 1
94                 &mu 3 1>;
95       memory-region = <&vdev0buffer>, <&vdev0vring0>, <&vdev0vring1>, <&rsc_table>;
96       syscon = <&src>;
97     };
98 ...