162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/remoteproc/ti,pru-consumer.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: TI PRU Consumer Common Properties
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Suman Anna <s-anna@ti.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: |
1362306a36Sopenharmony_ci  A PRU application/consumer/user node typically uses one or more PRU device
1462306a36Sopenharmony_ci  nodes to implement a PRU application/functionality. Each application/client
1562306a36Sopenharmony_ci  node would need a reference to at least a PRU node, and optionally define
1662306a36Sopenharmony_ci  some properties needed for hardware/firmware configuration. The below
1762306a36Sopenharmony_ci  properties are a list of common properties supported by the PRU remoteproc
1862306a36Sopenharmony_ci  infrastructure.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci  The application nodes shall define their own bindings like regular platform
2162306a36Sopenharmony_ci  devices, so below are in addition to each node's bindings.
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciproperties:
2462306a36Sopenharmony_ci  ti,prus:
2562306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle-array
2662306a36Sopenharmony_ci    description: phandles to the PRU, RTU or Tx_PRU nodes used
2762306a36Sopenharmony_ci    minItems: 1
2862306a36Sopenharmony_ci    maxItems: 6
2962306a36Sopenharmony_ci    items:
3062306a36Sopenharmony_ci      maxItems: 1
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci  firmware-name:
3362306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/string-array
3462306a36Sopenharmony_ci    minItems: 1
3562306a36Sopenharmony_ci    maxItems: 6
3662306a36Sopenharmony_ci    description: |
3762306a36Sopenharmony_ci      firmwares for the PRU cores, the default firmware for the core from
3862306a36Sopenharmony_ci      the PRU node will be used if not provided. The firmware names should
3962306a36Sopenharmony_ci      correspond to the PRU cores listed in the 'ti,prus' property
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci  ti,pruss-gp-mux-sel:
4262306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32-array
4362306a36Sopenharmony_ci    minItems: 1
4462306a36Sopenharmony_ci    maxItems: 6
4562306a36Sopenharmony_ci    items:
4662306a36Sopenharmony_ci      enum: [0, 1, 2, 3, 4]
4762306a36Sopenharmony_ci    description: |
4862306a36Sopenharmony_ci      array of values for the GP_MUX_SEL under PRUSS_GPCFG register for a PRU.
4962306a36Sopenharmony_ci      This selects the internal muxing scheme for the PRU instance. Values
5062306a36Sopenharmony_ci      should correspond to the PRU cores listed in the 'ti,prus' property. The
5162306a36Sopenharmony_ci      GP_MUX_SEL setting is a per-slice setting (one setting for PRU0, RTU0,
5262306a36Sopenharmony_ci      and Tx_PRU0 on K3 SoCs). Use the same value for all cores within the
5362306a36Sopenharmony_ci      same slice in the associative array. If the array size is smaller than
5462306a36Sopenharmony_ci      the size of 'ti,prus' property, the default out-of-reset value (0) for the
5562306a36Sopenharmony_ci      PRU core is used.
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_cirequired:
5862306a36Sopenharmony_ci  - ti,prus
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ciadditionalProperties: true
61