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