xref: /linux/Documentation/devicetree/bindings/remoteproc/ti,pru-consumer.yaml (revision d6e21ef31e7fa43554f9c7666b7b4c54651c256f)
1*d6e21ef3SSuman Anna# SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
2*d6e21ef3SSuman Anna%YAML 1.2
3*d6e21ef3SSuman Anna---
4*d6e21ef3SSuman Anna$id: http://devicetree.org/schemas/remoteproc/ti,pru-consumer.yaml#
5*d6e21ef3SSuman Anna$schema: http://devicetree.org/meta-schemas/core.yaml#
6*d6e21ef3SSuman Anna
7*d6e21ef3SSuman Annatitle: Common TI PRU Consumer Binding
8*d6e21ef3SSuman Anna
9*d6e21ef3SSuman Annamaintainers:
10*d6e21ef3SSuman Anna  - Suman Anna <s-anna@ti.com>
11*d6e21ef3SSuman Anna
12*d6e21ef3SSuman Annadescription: |
13*d6e21ef3SSuman Anna  A PRU application/consumer/user node typically uses one or more PRU device
14*d6e21ef3SSuman Anna  nodes to implement a PRU application/functionality. Each application/client
15*d6e21ef3SSuman Anna  node would need a reference to at least a PRU node, and optionally define
16*d6e21ef3SSuman Anna  some properties needed for hardware/firmware configuration. The below
17*d6e21ef3SSuman Anna  properties are a list of common properties supported by the PRU remoteproc
18*d6e21ef3SSuman Anna  infrastructure.
19*d6e21ef3SSuman Anna
20*d6e21ef3SSuman Anna  The application nodes shall define their own bindings like regular platform
21*d6e21ef3SSuman Anna  devices, so below are in addition to each node's bindings.
22*d6e21ef3SSuman Anna
23*d6e21ef3SSuman Annaproperties:
24*d6e21ef3SSuman Anna  ti,prus:
25*d6e21ef3SSuman Anna    $ref: /schemas/types.yaml#/definitions/phandle-array
26*d6e21ef3SSuman Anna    description: phandles to the PRU, RTU or Tx_PRU nodes used
27*d6e21ef3SSuman Anna    minItems: 1
28*d6e21ef3SSuman Anna    maxItems: 6
29*d6e21ef3SSuman Anna    items:
30*d6e21ef3SSuman Anna      maxItems: 1
31*d6e21ef3SSuman Anna
32*d6e21ef3SSuman Anna  firmware-name:
33*d6e21ef3SSuman Anna    $ref: /schemas/types.yaml#/definitions/string-array
34*d6e21ef3SSuman Anna    minItems: 1
35*d6e21ef3SSuman Anna    maxItems: 6
36*d6e21ef3SSuman Anna    description: |
37*d6e21ef3SSuman Anna      firmwares for the PRU cores, the default firmware for the core from
38*d6e21ef3SSuman Anna      the PRU node will be used if not provided. The firmware names should
39*d6e21ef3SSuman Anna      correspond to the PRU cores listed in the 'ti,prus' property
40*d6e21ef3SSuman Anna
41*d6e21ef3SSuman Anna  ti,pruss-gp-mux-sel:
42*d6e21ef3SSuman Anna    $ref: /schemas/types.yaml#/definitions/uint32-array
43*d6e21ef3SSuman Anna    minItems: 1
44*d6e21ef3SSuman Anna    maxItems: 6
45*d6e21ef3SSuman Anna    items:
46*d6e21ef3SSuman Anna      enum: [0, 1, 2, 3, 4]
47*d6e21ef3SSuman Anna    description: |
48*d6e21ef3SSuman Anna      array of values for the GP_MUX_SEL under PRUSS_GPCFG register for a PRU.
49*d6e21ef3SSuman Anna      This selects the internal muxing scheme for the PRU instance. Values
50*d6e21ef3SSuman Anna      should correspond to the PRU cores listed in the 'ti,prus' property. The
51*d6e21ef3SSuman Anna      GP_MUX_SEL setting is a per-slice setting (one setting for PRU0, RTU0,
52*d6e21ef3SSuman Anna      and Tx_PRU0 on K3 SoCs). Use the same value for all cores within the
53*d6e21ef3SSuman Anna      same slice in the associative array. If the array size is smaller than
54*d6e21ef3SSuman Anna      the size of 'ti,prus' property, the default out-of-reset value (0) for the
55*d6e21ef3SSuman Anna      PRU core is used.
56*d6e21ef3SSuman Anna
57*d6e21ef3SSuman Annarequired:
58*d6e21ef3SSuman Anna  - ti,prus
59*d6e21ef3SSuman Anna
60*d6e21ef3SSuman AnnaadditionalProperties: true
61