0001 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: "http://devicetree.org/schemas/remoteproc/fsl,imx-rproc.yaml#"
0005 $schema: "http://devicetree.org/meta-schemas/core.yaml#"
0006
0007 title: NXP i.MX Co-Processor Bindings
0008
0009 description:
0010 This binding provides support for ARM Cortex M4 Co-processor found on some NXP iMX SoCs.
0011
0012 maintainers:
0013 - Peng Fan <peng.fan@nxp.com>
0014
0015 properties:
0016 compatible:
0017 enum:
0018 - fsl,imx6sx-cm4
0019 - fsl,imx7d-cm4
0020 - fsl,imx7ulp-cm4
0021 - fsl,imx8mm-cm4
0022 - fsl,imx8mn-cm7
0023 - fsl,imx8mp-cm7
0024 - fsl,imx8mq-cm4
0025 - fsl,imx8ulp-cm33
0026 - fsl,imx93-cm33
0027
0028 clocks:
0029 maxItems: 1
0030
0031 syscon:
0032 $ref: /schemas/types.yaml#/definitions/phandle
0033 description:
0034 Phandle to syscon block which provide access to System Reset Controller
0035
0036 mbox-names:
0037 items:
0038 - const: tx
0039 - const: rx
0040 - const: rxdb
0041
0042 mboxes:
0043 description:
0044 This property is required only if the rpmsg/virtio functionality is used.
0045 List of <&phandle type channel> - 1 channel for TX, 1 channel for RX, 1 channel for RXDB.
0046 (see mailbox/fsl,mu.yaml)
0047 minItems: 1
0048 maxItems: 3
0049
0050 memory-region:
0051 description:
0052 If present, a phandle for a reserved memory area that used for vdev buffer,
0053 resource table, vring region and others used by remote processor.
0054 minItems: 1
0055 maxItems: 32
0056
0057 fsl,auto-boot:
0058 $ref: /schemas/types.yaml#/definitions/flag
0059 description:
0060 Indicate whether need to load the default firmware and start the remote
0061 processor automatically.
0062
0063 required:
0064 - compatible
0065
0066 additionalProperties: false
0067
0068 examples:
0069 - |
0070 #include <dt-bindings/clock/imx7d-clock.h>
0071 m4_reserved_sysmem1: cm4@80000000 {
0072 reg = <0x80000000 0x80000>;
0073 };
0074
0075 m4_reserved_sysmem2: cm4@81000000 {
0076 reg = <0x81000000 0x80000>;
0077 };
0078
0079 imx7d-cm4 {
0080 compatible = "fsl,imx7d-cm4";
0081 memory-region = <&m4_reserved_sysmem1>, <&m4_reserved_sysmem2>;
0082 syscon = <&src>;
0083 clocks = <&clks IMX7D_ARM_M4_ROOT_CLK>;
0084 };
0085
0086 - |
0087 #include <dt-bindings/clock/imx8mm-clock.h>
0088
0089 imx8mm-cm4 {
0090 compatible = "fsl,imx8mm-cm4";
0091 clocks = <&clk IMX8MM_CLK_M4_DIV>;
0092 mbox-names = "tx", "rx", "rxdb";
0093 mboxes = <&mu 0 1
0094 &mu 1 1
0095 &mu 3 1>;
0096 memory-region = <&vdev0buffer>, <&vdev0vring0>, <&vdev0vring1>, <&rsc_table>;
0097 syscon = <&src>;
0098 };
0099 ...