162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/remoteproc/fsl,imx-rproc.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: NXP i.MX Co-Processor
862306a36Sopenharmony_ci
962306a36Sopenharmony_cidescription:
1062306a36Sopenharmony_ci  This binding provides support for ARM Cortex M4 Co-processor found on some NXP iMX SoCs.
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cimaintainers:
1362306a36Sopenharmony_ci  - Peng Fan <peng.fan@nxp.com>
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ciproperties:
1662306a36Sopenharmony_ci  compatible:
1762306a36Sopenharmony_ci    enum:
1862306a36Sopenharmony_ci      - fsl,imx6sx-cm4
1962306a36Sopenharmony_ci      - fsl,imx7d-cm4
2062306a36Sopenharmony_ci      - fsl,imx7ulp-cm4
2162306a36Sopenharmony_ci      - fsl,imx8mm-cm4
2262306a36Sopenharmony_ci      - fsl,imx8mn-cm7
2362306a36Sopenharmony_ci      - fsl,imx8mn-cm7-mmio
2462306a36Sopenharmony_ci      - fsl,imx8mp-cm7
2562306a36Sopenharmony_ci      - fsl,imx8mp-cm7-mmio
2662306a36Sopenharmony_ci      - fsl,imx8mq-cm4
2762306a36Sopenharmony_ci      - fsl,imx8qm-cm4
2862306a36Sopenharmony_ci      - fsl,imx8qxp-cm4
2962306a36Sopenharmony_ci      - fsl,imx8ulp-cm33
3062306a36Sopenharmony_ci      - fsl,imx93-cm33
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci  clocks:
3362306a36Sopenharmony_ci    maxItems: 1
3462306a36Sopenharmony_ci
3562306a36Sopenharmony_ci  syscon:
3662306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle
3762306a36Sopenharmony_ci    description:
3862306a36Sopenharmony_ci      Phandle to syscon block which provide access to System Reset Controller
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci  mbox-names:
4162306a36Sopenharmony_ci    items:
4262306a36Sopenharmony_ci      - const: tx
4362306a36Sopenharmony_ci      - const: rx
4462306a36Sopenharmony_ci      - const: rxdb
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci  mboxes:
4762306a36Sopenharmony_ci    description:
4862306a36Sopenharmony_ci      This property is required only if the rpmsg/virtio functionality is used.
4962306a36Sopenharmony_ci      List of <&phandle type channel> - 1 channel for TX, 1 channel for RX, 1 channel for RXDB.
5062306a36Sopenharmony_ci      (see mailbox/fsl,mu.yaml)
5162306a36Sopenharmony_ci    minItems: 1
5262306a36Sopenharmony_ci    maxItems: 3
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci  memory-region:
5562306a36Sopenharmony_ci    description:
5662306a36Sopenharmony_ci      If present, a phandle for a reserved memory area that used for vdev buffer,
5762306a36Sopenharmony_ci      resource table, vring region and others used by remote processor.
5862306a36Sopenharmony_ci    minItems: 1
5962306a36Sopenharmony_ci    maxItems: 32
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci  power-domains:
6262306a36Sopenharmony_ci    maxItems: 8
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci  fsl,auto-boot:
6562306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/flag
6662306a36Sopenharmony_ci    description:
6762306a36Sopenharmony_ci      Indicate whether need to load the default firmware and start the remote
6862306a36Sopenharmony_ci      processor automatically.
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci  fsl,entry-address:
7162306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
7262306a36Sopenharmony_ci    description:
7362306a36Sopenharmony_ci      Specify CPU entry address for SCU enabled processor.
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci  fsl,iomuxc-gpr:
7662306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle
7762306a36Sopenharmony_ci    description:
7862306a36Sopenharmony_ci      Phandle to IOMUXC GPR block which provide access to CM7 CPUWAIT bit.
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ci  fsl,resource-id:
8162306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
8262306a36Sopenharmony_ci    description:
8362306a36Sopenharmony_ci      This property is to specify the resource id of the remote processor in SoC
8462306a36Sopenharmony_ci      which supports SCFW
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_cirequired:
8762306a36Sopenharmony_ci  - compatible
8862306a36Sopenharmony_ci
8962306a36Sopenharmony_ciallOf:
9062306a36Sopenharmony_ci  - if:
9162306a36Sopenharmony_ci      properties:
9262306a36Sopenharmony_ci        compatible:
9362306a36Sopenharmony_ci          not:
9462306a36Sopenharmony_ci            contains:
9562306a36Sopenharmony_ci              enum:
9662306a36Sopenharmony_ci                - fsl,imx8mn-cm7-mmio
9762306a36Sopenharmony_ci                - fsl,imx8mp-cm7-mmio
9862306a36Sopenharmony_ci    then:
9962306a36Sopenharmony_ci      properties:
10062306a36Sopenharmony_ci        fsl,iomuxc-gpr: false
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ciadditionalProperties: false
10362306a36Sopenharmony_ci
10462306a36Sopenharmony_ciexamples:
10562306a36Sopenharmony_ci  - |
10662306a36Sopenharmony_ci    #include <dt-bindings/clock/imx7d-clock.h>
10762306a36Sopenharmony_ci    m4_reserved_sysmem1: cm4@80000000 {
10862306a36Sopenharmony_ci      reg = <0x80000000 0x80000>;
10962306a36Sopenharmony_ci    };
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ci    m4_reserved_sysmem2: cm4@81000000 {
11262306a36Sopenharmony_ci      reg = <0x81000000 0x80000>;
11362306a36Sopenharmony_ci    };
11462306a36Sopenharmony_ci
11562306a36Sopenharmony_ci    imx7d-cm4 {
11662306a36Sopenharmony_ci      compatible	= "fsl,imx7d-cm4";
11762306a36Sopenharmony_ci      memory-region	= <&m4_reserved_sysmem1>, <&m4_reserved_sysmem2>;
11862306a36Sopenharmony_ci      syscon		= <&src>;
11962306a36Sopenharmony_ci      clocks		= <&clks IMX7D_ARM_M4_ROOT_CLK>;
12062306a36Sopenharmony_ci    };
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ci  - |
12362306a36Sopenharmony_ci    #include <dt-bindings/clock/imx8mm-clock.h>
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci    imx8mm-cm4 {
12662306a36Sopenharmony_ci      compatible = "fsl,imx8mm-cm4";
12762306a36Sopenharmony_ci      clocks = <&clk IMX8MM_CLK_M4_DIV>;
12862306a36Sopenharmony_ci      mbox-names = "tx", "rx", "rxdb";
12962306a36Sopenharmony_ci      mboxes = <&mu 0 1
13062306a36Sopenharmony_ci                &mu 1 1
13162306a36Sopenharmony_ci                &mu 3 1>;
13262306a36Sopenharmony_ci      memory-region = <&vdev0buffer>, <&vdev0vring0>, <&vdev0vring1>, <&rsc_table>;
13362306a36Sopenharmony_ci      syscon = <&src>;
13462306a36Sopenharmony_ci    };
13562306a36Sopenharmony_ci...
136