Commit d0fe3f47 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull remoteproc updates from Bjorn Andersson:
 "This adds support for controlling the PRU and R5F clusters on the TI
  AM64x, the remote processor in i.MX7ULP, i.MX8MN/P and i.MX8ULP NXP
  and the audio, compute and modem remoteprocs in the Qualcomm SC8180x
  platform.

  It fixes improper ordering of cdev and device creation of the
  remoteproc control interface and it fixes resource leaks in the error
  handling path of rproc_add() and the Qualcomm modem and wifi
  remoteproc drivers.

  Lastly it fixes a few build warnings and replace the dummy parameter
  passed in the mailbox api of the stm32 driver to something not living
  on the stack"

* tag 'rproc-v5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc: (32 commits)
  remoteproc: qcom: pas: Add SC8180X adsp, cdsp and mpss
  dt-bindings: remoteproc: qcom: pas: Add SC8180X adsp, cdsp and mpss
  remoteproc: imx_rproc: support i.MX8ULP
  dt-bindings: remoteproc: imx_rproc: support i.MX8ULP
  remoteproc: stm32: fix mbox_send_message call
  remoteproc: core: Cleanup device in case of failure
  remoteproc: core: Fix cdev remove and rproc del
  remoteproc: core: Move validate before device add
  remoteproc: core: Move cdev add before device add
  remoteproc: pru: Add support for various PRU cores on K3 AM64x SoCs
  dt-bindings: remoteproc: pru: Update bindings for K3 AM64x SoCs
  remoteproc: qcom_wcnss: Use devm_qcom_smem_state_get()
  remoteproc: qcom_q6v5: Use devm_qcom_smem_state_get() to fix missing put()
  soc: qcom: smem_state: Add devm_qcom_smem_state_get()
  dt-bindings: remoteproc: qcom: pas: Fix indentation warnings
  remoteproc: imx-rproc: Fix IMX_REMOTEPROC configuration
  remoteproc: imx_rproc: support i.MX8MN/P
  remoteproc: imx_rproc: support i.MX7ULP
  remoteproc: imx_rproc: make clk optional
  remoteproc: imx_rproc: initial support for mutilple start/stop method
  ...
parents 77d34a46 aef6a521
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -17,7 +17,11 @@ properties:
    enum:
      - fsl,imx8mq-cm4
      - fsl,imx8mm-cm4
      - fsl,imx8mn-cm7
      - fsl,imx8mp-cm7
      - fsl,imx8ulp-cm33
      - fsl,imx7d-cm4
      - fsl,imx7ulp-cm4
      - fsl,imx6sx-cm4

  clocks:
@@ -49,10 +53,14 @@ properties:
    minItems: 1
    maxItems: 32

  fsl,auto-boot:
    $ref: /schemas/types.yaml#/definitions/flag
    description:
      Indicate whether need to load the default firmware and start the remote
      processor automatically.

required:
  - compatible
  - clocks
  - syscon

additionalProperties: false

+0 −228
Original line number Diff line number Diff line
Qualcomm ADSP Peripheral Image Loader

This document defines the binding for a component that loads and boots firmware
on the Qualcomm ADSP Hexagon core.

- compatible:
	Usage: required
	Value type: <string>
	Definition: must be one of:
		    "qcom,msm8974-adsp-pil"
		    "qcom,msm8996-adsp-pil"
		    "qcom,msm8996-slpi-pil"
		    "qcom,msm8998-adsp-pas"
		    "qcom,msm8998-slpi-pas"
		    "qcom,qcs404-adsp-pas"
		    "qcom,qcs404-cdsp-pas"
		    "qcom,qcs404-wcss-pas"
		    "qcom,sc7180-mpss-pas"
		    "qcom,sdm845-adsp-pas"
		    "qcom,sdm845-cdsp-pas"
                    "qcom,sdx55-mpss-pas"
		    "qcom,sm8150-adsp-pas"
		    "qcom,sm8150-cdsp-pas"
		    "qcom,sm8150-mpss-pas"
		    "qcom,sm8150-slpi-pas"
		    "qcom,sm8250-adsp-pas"
		    "qcom,sm8250-cdsp-pas"
		    "qcom,sm8250-slpi-pas"
		    "qcom,sm8350-adsp-pas"
		    "qcom,sm8350-cdsp-pas"
		    "qcom,sm8350-slpi-pas"
		    "qcom,sm8350-mpss-pas"

- interrupts-extended:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: reference to the interrupts that match interrupt-names

- interrupt-names:
	Usage: required
	Value type: <stringlist>
	Definition: The interrupts needed depends on the compatible
		    string:
	qcom,msm8974-adsp-pil:
	qcom,msm8996-adsp-pil:
	qcom,msm8996-slpi-pil:
	qcom,msm8998-adsp-pas:
	qcom,msm8998-slpi-pas:
	qcom,qcs404-adsp-pas:
	qcom,qcs404-cdsp-pas:
	qcom,sdm845-adsp-pas:
	qcom,sdm845-cdsp-pas:
	qcom,sm8150-adsp-pas:
	qcom,sm8150-cdsp-pas:
	qcom,sm8150-slpi-pas:
	qcom,sm8250-adsp-pas:
	qcom,sm8250-cdsp-pas:
	qcom,sm8250-slpi-pas:
	qcom,sm8350-adsp-pas:
	qcom,sm8350-cdsp-pas:
	qcom,sm8350-slpi-pas:
		    must be "wdog", "fatal", "ready", "handover", "stop-ack"
	qcom,qcs404-wcss-pas:
	qcom,sc7180-mpss-pas:
        qcom,sdx55-mpss-pas:
	qcom,sm8150-mpss-pas:
	qcom,sm8350-mpss-pas:
		    must be "wdog", "fatal", "ready", "handover", "stop-ack",
		    "shutdown-ack"

- firmware-name:
	Usage: optional
	Value type: <string>
	Definition: must list the relative firmware image path for the
		    Hexagon Core.

- clocks:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: reference to the xo clock and optionally aggre2 clock to be
		    held on behalf of the booting Hexagon core

- clock-names:
	Usage: required
	Value type: <stringlist>
	Definition: must be "xo" and optionally include "aggre2"

- cx-supply:
	Usage: required
	Value type: <phandle>
	Definition: reference to the regulator to be held on behalf of the
		    booting Hexagon core

- px-supply:
	Usage: required
	Value type: <phandle>
	Definition: reference to the px regulator to be held on behalf of the
		    booting Hexagon core

- power-domains:
	Usage: required
	Value type: <phandle>
	Definition: reference to power-domains that match the power-domain-names

- power-domain-names:
	Usage: required
	Value type: <stringlist>
	Definition: The power-domains needed depend on the compatible string:
	qcom,msm8974-adsp-pil:
	qcom,msm8996-adsp-pil:
	qcom,msm8998-adsp-pas:
		    must be "cx"
	qcom,msm8996-slpi-pil:
		    must be "ss_cx"
	qcom,msm8998-slpi-pas:
		    must be "ssc_cx"
	qcom,qcs404-adsp-pas:
		    must be "lpi_cx"
	qcom,qcs404-cdsp-pas:
	qcom,qcs404-wcss-pas:
		    must be "mx"
	qcom,sdm845-adsp-pas:
	qcom,sdm845-cdsp-pas:
	qcom,sm8150-adsp-pas:
	qcom,sm8150-cdsp-pas:
	qcom,sm8250-cdsp-pas:
	qcom,sm8350-cdsp-pas:
		    must be "cx", "load_state"
	qcom,sc7180-mpss-pas:
	qcom,sm8150-mpss-pas:
	qcom,sm8350-mpss-pas:
		    must be "cx", "load_state", "mss"
        qcom,sdx55-mpss-pas:
                    must be "cx", "mss"
	qcom,sm8250-adsp-pas:
	qcom,sm8350-adsp-pas:
	qcom,sm8150-slpi-pas:
	qcom,sm8250-slpi-pas:
	qcom,sm8350-slpi-pas:
		    must be "lcx", "lmx", "load_state"

- memory-region:
	Usage: required
	Value type: <phandle>
	Definition: reference to the reserved-memory for the ADSP

- qcom,smem-states:
	Usage: required
	Value type: <phandle>
	Definition: reference to the smem state for requesting the ADSP to
		    shut down

- qcom,smem-state-names:
	Usage: required
	Value type: <stringlist>
	Definition: must be "stop"


= SUBNODES
The adsp node may have an subnode named either "smd-edge" or "glink-edge" that
describes the communication edge, channels and devices related to the ADSP.
See ../soc/qcom/qcom,smd.txt and ../soc/qcom/qcom,glink.txt for details on how
to describe these.


= EXAMPLE
The following example describes the resources needed to boot control the
ADSP, as it is found on MSM8974 boards.

	adsp {
		compatible = "qcom,msm8974-adsp-pil";

		interrupts-extended = <&intc 0 162 IRQ_TYPE_EDGE_RISING>,
				      <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
				      <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
				      <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
				      <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
		interrupt-names = "wdog",
				  "fatal",
				  "ready",
				  "handover",
				  "stop-ack";

		clocks = <&rpmcc RPM_CXO_CLK>;
		clock-names = "xo";

		cx-supply = <&pm8841_s2>;

		memory-region = <&adsp_region>;

		qcom,smem-states = <&adsp_smp2p_out 0>;
		qcom,smem-state-names = "stop";

		smd-edge {
			interrupts = <0 156 IRQ_TYPE_EDGE_RISING>;

			qcom,ipc = <&apcs 8 8>;
			qcom,smd-edge = <1>;
		};
	};

The following example describes the resources needed to boot control the
SLPI, as it is found on MSM8996 boards.

	slpi {
		compatible = "qcom,msm8996-slpi-pil";
		interrupts-extended = <&intc 0 390 IRQ_TYPE_EDGE_RISING>,
				      <&slpi_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
				      <&slpi_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
				      <&slpi_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
				      <&slpi_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
		interrupt-names = "wdog",
				  "fatal",
				  "ready",
				  "handover",
				  "stop-ack";

		clocks = <&rpmcc MSM8996_RPM_SMD_XO_CLK_SRC>,
		         <&rpmcc MSM8996_RPM_SMD_AGGR2_NOC_CLK>;
		clock-names = "xo", "aggre2";

		cx-supply = <&pm8994_l26>;
		px-supply = <&pm8994_lvs2>;

		memory-region = <&slpi_region>;
		qcom,smem-states = <&slpi_smp2p_out 0>;
		qcom,smem-state-names = "stop";
        };
+547 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/remoteproc/qcom,adsp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm ADSP Peripheral Image Loader binding

maintainers:
  - Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>

description:
  This document defines the binding for a component that loads and boots
  firmware on the Qualcomm ADSP Hexagon core.

properties:
  compatible:
    enum:
      - qcom,msm8974-adsp-pil
      - qcom,msm8996-adsp-pil
      - qcom,msm8996-slpi-pil
      - qcom,msm8998-adsp-pas
      - qcom,msm8998-slpi-pas
      - qcom,qcs404-adsp-pas
      - qcom,qcs404-cdsp-pas
      - qcom,qcs404-wcss-pas
      - qcom,sc7180-mpss-pas
      - qcom,sc8180x-adsp-pas
      - qcom,sc8180x-cdsp-pas
      - qcom,sc8180x-mpss-pas
      - qcom,sdm845-adsp-pas
      - qcom,sdm845-cdsp-pas
      - qcom,sdx55-mpss-pas
      - qcom,sm8150-adsp-pas
      - qcom,sm8150-cdsp-pas
      - qcom,sm8150-mpss-pas
      - qcom,sm8150-slpi-pas
      - qcom,sm8250-adsp-pas
      - qcom,sm8250-cdsp-pas
      - qcom,sm8250-slpi-pas
      - qcom,sm8350-adsp-pas
      - qcom,sm8350-cdsp-pas
      - qcom,sm8350-slpi-pas
      - qcom,sm8350-mpss-pas

  reg:
    maxItems: 1

  clocks:
    minItems: 1
    maxItems: 8

  clock-names:
    minItems: 1
    maxItems: 8

  interrupts:
    minItems: 5
    maxItems: 6

  interrupt-names:
    minItems: 5
    maxItems: 6

  resets:
    minItems: 1
    maxItems: 3

  reset-names:
    minItems: 1
    maxItems: 3

  cx-supply:
    description: Phandle to the CX regulator

  px-supply:
    description: Phandle to the PX regulator

  power-domains:
    minItems: 1
    maxItems: 3

  power-domain-names:
    minItems: 1
    maxItems: 3

  firmware-name:
    $ref: /schemas/types.yaml#/definitions/string
    description: Firmware name for the Hexagon core

  memory-region:
    maxItems: 1
    description: Reference to the reserved-memory for the Hexagon core

  qcom,smem-states:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    description: States used by the AP to signal the Hexagon core
    items:
      - description: Stop the modem

  qcom,smem-state-names:
    $ref: /schemas/types.yaml#/definitions/string-array
    description: The names of the state bits used for SMP2P output
    items:
      - const: stop

  qcom,halt-regs:
    $ref: /schemas/types.yaml#/definitions/phandle-array
    description:
      Phandle reference to a syscon representing TCSR followed by the
      three offsets within syscon for q6, modem and nc halt registers.

  smd-edge:
    type: object
    description:
      Qualcomm Shared Memory subnode which represents communication edge,
      channels and devices related to the ADSP.

  glink-edge:
    type: object
    description:
      Qualcomm G-Link subnode which represents communication edge, channels
      and devices related to the ADSP.

required:
  - compatible
  - clocks
  - clock-names
  - interrupts
  - interrupt-names
  - memory-region
  - qcom,smem-states
  - qcom,smem-state-names

additionalProperties: false

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,msm8974-adsp-pil
              - qcom,msm8996-adsp-pil
              - qcom,msm8996-slpi-pil
              - qcom,msm8998-adsp-pas
              - qcom,qcs404-adsp-pas
              - qcom,qcs404-wcss-pas
              - qcom,sc8180x-adsp-pas
              - qcom,sc8180x-cdsp-pas
              - qcom,sc8180x-mpss-pas
              - qcom,sdm845-adsp-pas
              - qcom,sdm845-cdsp-pas
              - qcom,sm8150-adsp-pas
              - qcom,sm8150-cdsp-pas
              - qcom,sm8150-mpss-pas
              - qcom,sm8150-slpi-pas
              - qcom,sm8250-adsp-pas
              - qcom,sm8250-cdsp-pas
              - qcom,sm8250-slpi-pas
              - qcom,sm8350-adsp-pas
              - qcom,sm8350-cdsp-pas
              - qcom,sm8350-slpi-pas
              - qcom,sm8350-mpss-pas
    then:
      properties:
        clocks:
          items:
            - description: XO clock
        clock-names:
          items:
            - const: xo

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,msm8998-slpi-pas
    then:
      properties:
        clocks:
          items:
            - description: XO clock
            - description: AGGRE2 clock
        clock-names:
          items:
            - const: xo
            - const: aggre2

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,qcs404-cdsp-pas
    then:
      properties:
        clocks:
          items:
            - description: XO clock
            - description: SWAY clock
            - description: TBU clock
            - description: BIMC clock
            - description: AHB AON clock
            - description: Q6SS SLAVE clock
            - description: Q6SS MASTER clock
            - description: Q6 AXIM clock
        clock-names:
          items:
            - const: xo
            - const: sway
            - const: tbu
            - const: bimc
            - const: ahb_aon
            - const: q6ss_slave
            - const: q6ss_master
            - const: q6_axim

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sc7180-mpss-pas
    then:
      properties:
        clocks:
          items:
            - description: XO clock
            - description: IFACE clock
            - description: BUS clock
            - description: NAC clock
            - description: SNOC AXI clock
            - description: MNOC AXI clock
        clock-names:
          items:
            - const: xo
            - const: iface
            - const: bus
            - const: nav
            - const: snoc_axi
            - const: mnoc_axi

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,msm8974-adsp-pil
              - qcom,msm8996-adsp-pil
              - qcom,msm8996-slpi-pil
              - qcom,msm8998-adsp-pas
              - qcom,msm8998-slpi-pas
              - qcom,qcs404-adsp-pas
              - qcom,qcs404-cdsp-pas
              - qcom,qcs404-wcss-pas
              - qcom,sc8180x-adsp-pas
              - qcom,sc8180x-cdsp-pas
              - qcom,sdm845-adsp-pas
              - qcom,sdm845-cdsp-pas
              - qcom,sm8150-adsp-pas
              - qcom,sm8150-cdsp-pas
              - qcom,sm8150-slpi-pas
              - qcom,sm8250-adsp-pas
              - qcom,sm8250-cdsp-pas
              - qcom,sm8250-slpi-pas
              - qcom,sm8350-adsp-pas
              - qcom,sm8350-cdsp-pas
              - qcom,sm8350-slpi-pas
    then:
      properties:
        interrupts:
          items:
            - description: Watchdog interrupt
            - description: Fatal interrupt
            - description: Ready interrupt
            - description: Handover interrupt
            - description: Stop acknowledge interrupt
        interrupt-names:
          items:
            - const: wdog
            - const: fatal
            - const: ready
            - const: handover
            - const: stop-ack

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sc7180-mpss-pas
              - qcom,sc8180x-mpss-pas
              - qcom,sdx55-mpss-pas
              - qcom,sm8150-mpss-pas
              - qcom,sm8350-mpss-pas
    then:
      properties:
        interrupts:
          items:
            - description: Watchdog interrupt
            - description: Fatal interrupt
            - description: Ready interrupt
            - description: Handover interrupt
            - description: Stop acknowledge interrupt
            - description: Shutdown acknowledge interrupt
        interrupt-names:
          items:
            - const: wdog
            - const: fatal
            - const: ready
            - const: handover
            - const: stop-ack
            - const: shutdown-ack

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,msm8974-adsp-pil
    then:
      required:
        - cx-supply

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,msm8996-adsp-pil
              - qcom,msm8998-adsp-pas
    then:
      properties:
        power-domains:
          items:
            - description: CX power domain
        power-domain-names:
          items:
            - const: cx

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,msm8996-slpi-pil
              - qcom,msm8998-slpi-pas
    then:
      properties:
        power-domains:
          items:
            - description: SSC-CX power domain
        power-domain-names:
          items:
            - const: ssc_cx
      required:
        - px-supply

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sc7180-mpss-pas
    then:
      properties:
        power-domains:
          items:
            - description: Load State power domain
            - description: CX power domain
            - description: MX power domain
            - description: MSS power domain
        power-domain-names:
          items:
            - const: load_state
            - const: cx
            - const: mx
            - const: mss

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sm8150-adsp-pas
              - qcom,sm8150-cdsp-pas
    then:
      properties:
        power-domains:
          items:
            - description: Load State power domain
            - description: CX power domain
        power-domain-names:
          items:
            - const: load_state
            - const: cx

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sm8150-mpss-pas
              - qcom,sm8350-mpss-pas
    then:
      properties:
        power-domains:
          items:
            - description: Load State power domain
            - description: CX power domain
            - description: MSS power domain
        power-domain-names:
          items:
            - const: load_state
            - const: cx
            - const: mss

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sdx55-mpss-pas
    then:
      properties:
        power-domains:
          items:
            - description: CX power domain
            - description: MSS power domain
        power-domain-names:
          items:
            - const: cx
            - const: mss

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sc8180x-adsp-pas
              - qcom,sc8180x-cdsp-pas
              - qcom,sm8150-slpi-pas
              - qcom,sm8250-adsp-pas
              - qcom,sm8250-slpi-pas
              - qcom,sm8350-adsp-pas
              - qcom,sm8350-slpi-pas
    then:
      properties:
        power-domains:
          items:
            - description: Load State power domain
            - description: LCX power domain
            - description: LMX power domain
        power-domain-names:
          items:
            - const: load_state
            - const: lcx
            - const: lmx

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sm8350-cdsp-pas
    then:
      properties:
        power-domains:
          items:
            - description: Load State power domain
            - description: CX power domain
            - description: MXC power domain
        power-domain-names:
          items:
            - const: load_state
            - const: cx
            - const: mxc

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,qcs404-cdsp-pas
    then:
      properties:
        resets:
          items:
            - description: CDSP restart
        reset-names:
          items:
            - const: restart

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sc7180-mpss-pas
    then:
      properties:
        resets:
          items:
            - description: MSS restart
            - description: PDC reset
        reset-names:
          items:
            - const: mss_restart
            - const: pdc_reset

examples:
  - |
    #include <dt-bindings/clock/qcom,rpmcc.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    adsp {
        compatible = "qcom,msm8974-adsp-pil";

        interrupts-extended = <&intc 0 162 IRQ_TYPE_EDGE_RISING>,
                      <&adsp_smp2p_in 0 IRQ_TYPE_EDGE_RISING>,
                      <&adsp_smp2p_in 1 IRQ_TYPE_EDGE_RISING>,
                      <&adsp_smp2p_in 2 IRQ_TYPE_EDGE_RISING>,
                      <&adsp_smp2p_in 3 IRQ_TYPE_EDGE_RISING>;
        interrupt-names = "wdog",
                  "fatal",
                  "ready",
                  "handover",
                  "stop-ack";

        clocks = <&rpmcc RPM_CXO_CLK>;
        clock-names = "xo";

        cx-supply = <&pm8841_s2>;

        memory-region = <&adsp_region>;

        qcom,smem-states = <&adsp_smp2p_out 0>;
        qcom,smem-state-names = "stop";

        smd-edge {
            interrupts = <0 156 IRQ_TYPE_EDGE_RISING>;

            qcom,ipc = <&apcs 8 8>;
            qcom,smd-edge = <1>;
        };
    };
+26 −5
Original line number Diff line number Diff line
@@ -14,8 +14,12 @@ description: |
  processor subsystems/clusters (R5FSS). The dual core cluster can be used
  either in a LockStep mode providing safety/fault tolerance features or in a
  Split mode providing two individual compute cores for doubling the compute
  capacity. These are used together with other processors present on the SoC
  to achieve various system level goals.
  capacity on most SoCs. These are used together with other processors present
  on the SoC to achieve various system level goals.

  AM64x SoCs do not support LockStep mode, but rather a new non-safety mode
  called "Single-CPU" mode, where only Core0 is used, but with ability to use
  Core1's TCMs as well.

  Each Dual-Core R5F sub-system is represented as a single DTS node
  representing the cluster, with a pair of child DT nodes representing
@@ -33,6 +37,7 @@ properties:
      - ti,am654-r5fss
      - ti,j721e-r5fss
      - ti,j7200-r5fss
      - ti,am64-r5fss

  power-domains:
    description: |
@@ -56,11 +61,12 @@ properties:

  ti,cluster-mode:
    $ref: /schemas/types.yaml#/definitions/uint32
    enum: [0, 1]
    description: |
      Configuration Mode for the Dual R5F cores within the R5F cluster.
      Should be either a value of 1 (LockStep mode) or 0 (Split mode),
      default is LockStep mode if omitted.
      Should be either a value of 1 (LockStep mode) or 0 (Split mode) on
      most SoCs (AM65x, J721E, J7200), default is LockStep mode if omitted;
      and should be either a value of 0 (Split mode) or 2 (Single-CPU mode)
      on AM64x SoCs, default is Split mode if omitted.

# R5F Processor Child Nodes:
# ==========================
@@ -97,6 +103,7 @@ patternProperties:
          - ti,am654-r5f
          - ti,j721e-r5f
          - ti,j7200-r5f
          - ti,am64-r5f

      reg:
        items:
@@ -198,6 +205,20 @@ patternProperties:

    unevaluatedProperties: false

if:
  properties:
    compatible:
      enum:
        - ti,am64-r5fss
then:
  properties:
    ti,cluster-mode:
      enum: [0, 2]
else:
  properties:
    ti,cluster-mode:
      enum: [0, 1]

required:
  - compatible
  - power-domains
+5 −0
Original line number Diff line number Diff line
@@ -36,6 +36,9 @@ properties:
    enum:
      - ti,am3356-pru   # for AM335x SoC family (AM3356+ SoCs only)
      - ti,am4376-pru   # for AM437x SoC family (AM4376+ SoCs only)
      - ti,am642-pru    # for PRUs in K3 AM64x SoC family
      - ti,am642-rtu    # for RTUs in K3 AM64x SoC family
      - ti,am642-tx-pru # for Tx_PRUs in K3 AM64x SoC family
      - ti,am5728-pru   # for AM57xx SoC family
      - ti,k2g-pru      # for 66AK2G SoC family
      - ti,am654-pru    # for PRUs in K3 AM65x SoC family
@@ -68,6 +71,7 @@ if:
      enum:
        - ti,am654-rtu
        - ti,j721e-rtu
        - ti,am642-rtu
then:
  properties:
    $nodename:
@@ -79,6 +83,7 @@ else:
        enum:
          - ti,am654-tx-pru
          - ti,j721e-tx-pru
          - ti,am642-tx-pru
  then:
    properties:
      $nodename:
Loading