# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/remoteproc/ti,pru-rproc.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: TI Programmable Realtime Unit (PRU) cores

maintainers:
  - Suman Anna <s-anna@ti.com>

description: |
  Each Programmable Real-Time Unit and Industrial Communication Subsystem
  (PRU-ICSS or PRUSS) has two 32-bit load/store RISC CPU cores called
  Programmable Real-Time Units (PRUs), each represented by a node. Each PRU
  core has a dedicated Instruction RAM, Control and Debug register sets, and
  use the Data RAMs present within the PRU-ICSS for code execution.

  The K3 SoCs containing ICSSG v1.0 (eg: AM65x SR1.0) also have two Auxiliary
  PRU cores called RTUs with slightly different IP integration. The K3 SoCs
  containing the revised ICSSG v1.1 (eg: J721E, AM65x SR2.0) have an extra two
  auxiliary Transmit PRU cores called Tx_PRUs that augment the PRUs. Each RTU
  or Tx_PRU core can also be used independently like a PRU, or alongside a
  corresponding PRU core to provide/implement auxiliary functionality/support.

  Each PRU, RTU or Tx_PRU core node should be defined as a child node of the
  corresponding PRU-ICSS node. Each node can optionally be rendered inactive by
  using the standard DT string property, "status".

  Please see the overall PRU-ICSS bindings document for additional details
  including a complete example,
    Documentation/devicetree/bindings/soc/ti/ti,pruss.yaml

properties:
  compatible:
    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
      - ti,am654-rtu    # for RTUs in K3 AM65x SoC family
      - ti,am654-tx-pru # for Tx_PRUs in K3 AM65x SR2.0 SoCs
      - ti,j721e-pru    # for PRUs in K3 J721E SoC family
      - ti,j721e-rtu    # for RTUs in K3 J721E SoC family
      - ti,j721e-tx-pru # for Tx_PRUs in K3 J721E SoC family

  reg:
    items:
      - description: Address and Size of the PRU Instruction RAM
      - description: Address and Size of the PRU CTRL sub-module registers
      - description: Address and Size of the PRU Debug sub-module registers

  reg-names:
    items:
      - const: iram
      - const: control
      - const: debug

  firmware-name:
    description: |
      Should contain the name of the default firmware image
      file located on the firmware search path.

if:
  properties:
    compatible:
      enum:
        - ti,am654-rtu
        - ti,j721e-rtu
        - ti,am642-rtu
then:
  properties:
    $nodename:
      pattern: "^rtu@[0-9a-f]+$"
else:
  if:
    properties:
      compatible:
        enum:
          - ti,am654-tx-pru
          - ti,j721e-tx-pru
          - ti,am642-tx-pru
  then:
    properties:
      $nodename:
        pattern: "^txpru@[0-9a-f]+"
  else:
    properties:
      $nodename:
        pattern: "^pru@[0-9a-f]+$"

required:
  - compatible
  - reg
  - reg-names
  - firmware-name

additionalProperties: false

examples:
  - |
    /* AM33xx PRU-ICSS */
    pruss_tm: target-module@300000 {  /* 0x4a300000, ap 9 04.0 */
      compatible = "ti,sysc-pruss", "ti,sysc";
      #address-cells = <1>;
      #size-cells = <1>;
      ranges = <0x0 0x300000 0x80000>;

      pruss: pruss@0 {
        compatible = "ti,am3356-pruss";
        reg = <0x0 0x80000>;
        #address-cells = <1>;
        #size-cells = <1>;
        ranges;

        pruss_mem: memories@0 {
          reg = <0x0 0x2000>,
                <0x2000 0x2000>,
                <0x10000 0x3000>;
          reg-names = "dram0", "dram1", "shrdram2";
        };

        pru0: pru@34000 {
          compatible = "ti,am3356-pru";
          reg = <0x34000 0x2000>,
                <0x22000 0x400>,
                <0x22400 0x100>;
          reg-names = "iram", "control", "debug";
          firmware-name = "am335x-pru0-fw";
        };

        pru1: pru@38000 {
          compatible = "ti,am3356-pru";
          reg = <0x38000 0x2000>,
                <0x24000 0x400>,
                <0x24400 0x100>;
          reg-names = "iram", "control", "debug";
          firmware-name = "am335x-pru1-fw";
        };
      };
    };

  - |
    /* AM65x SR2.0 ICSSG */
    #include <dt-bindings/soc/ti,sci_pm_domain.h>

    icssg0: icssg@b000000 {
      compatible = "ti,am654-icssg";
      reg = <0xb000000 0x80000>;
      power-domains = <&k3_pds 62 TI_SCI_PD_EXCLUSIVE>;
      #address-cells = <1>;
      #size-cells = <1>;
      ranges = <0x0 0xb000000 0x80000>;

      icssg0_mem: memories@0 {
        reg = <0x0 0x2000>,
              <0x2000 0x2000>,
              <0x10000 0x10000>;
        reg-names = "dram0", "dram1", "shrdram2";
      };

      pru0_0: pru@34000 {
        compatible = "ti,am654-pru";
        reg = <0x34000 0x4000>,
              <0x22000 0x100>,
              <0x22400 0x100>;
        reg-names = "iram", "control", "debug";
        firmware-name = "am65x-pru0_0-fw";
      };

      rtu0_0: rtu@4000 {
        compatible = "ti,am654-rtu";
        reg = <0x4000 0x2000>,
              <0x23000 0x100>,
              <0x23400 0x100>;
        reg-names = "iram", "control", "debug";
        firmware-name = "am65x-rtu0_0-fw";
      };

      tx_pru0_0: txpru@a000 {
        compatible = "ti,am654-tx-pru";
        reg = <0xa000 0x1800>,
              <0x25000 0x100>,
              <0x25400 0x100>;
        reg-names = "iram", "control", "debug";
        firmware-name = "am65x-txpru0_0-fw";
      };

      pru0_1: pru@38000 {
        compatible = "ti,am654-pru";
        reg = <0x38000 0x4000>,
              <0x24000 0x100>,
              <0x24400 0x100>;
        reg-names = "iram", "control", "debug";
        firmware-name = "am65x-pru0_1-fw";
      };

      rtu0_1: rtu@6000 {
        compatible = "ti,am654-rtu";
        reg = <0x6000 0x2000>,
              <0x23800 0x100>,
              <0x23c00 0x100>;
        reg-names = "iram", "control", "debug";
        firmware-name = "am65x-rtu0_1-fw";
      };

      tx_pru0_1: txpru@c000 {
        compatible = "ti,am654-tx-pru";
        reg = <0xc000 0x1800>,
              <0x25800 0x100>,
              <0x25c00 0x100>;
        reg-names = "iram", "control", "debug";
        firmware-name = "am65x-txpru0_1-fw";
      };
    };
