File Index
Files and directories
Sign in
FILE

st,stm32-rproc.yaml

File preview with syntax highlighting.

linux-6.19.14/Documentation/devicetree/bindings/remoteproc/st,stm32-rproc.yaml YAML
  1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
  2%YAML 1.2
  3---
  4$id: http://devicetree.org/schemas/remoteproc/st,stm32-rproc.yaml#
  5$schema: http://devicetree.org/meta-schemas/core.yaml#
  6
  7title: STMicroelectronics STM32 remote processor controller
  8
  9description:
 10  This document defines the binding for the remoteproc component that loads and
 11  boots firmwares on the ST32MP family chipset.
 12
 13maintainers:
 14  - Fabien Dessenne <fabien.dessenne@foss.st.com>
 15  - Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
 16
 17properties:
 18  compatible:
 19    const: st,stm32mp1-m4
 20
 21  reg:
 22    description:
 23      Address ranges of the RETRAM and MCU SRAM memories used by the remote
 24      processor.
 25    maxItems: 3
 26
 27  resets:
 28    minItems: 1
 29    maxItems: 2
 30
 31  reset-names:
 32    items:
 33      - const: mcu_rst
 34      - const: hold_boot
 35    minItems: 1
 36
 37  st,syscfg-holdboot:
 38    description: remote processor reset hold boot
 39    $ref: /schemas/types.yaml#/definitions/phandle-array
 40    items:
 41      - items:
 42          - description: Phandle of syscon block
 43          - description: The offset of the hold boot setting register
 44          - description: The field mask of the hold boot
 45
 46  st,syscfg-tz:
 47    deprecated: true
 48    description:
 49      Reference to the system configuration which holds the RCC trust zone mode
 50    $ref: /schemas/types.yaml#/definitions/phandle-array
 51    items:
 52      - items:
 53          - description: Phandle of syscon block
 54          - description: The offset of the trust zone setting register
 55          - description: The field mask of the trust zone state
 56
 57  interrupts:
 58    description: Should contain the WWDG1 watchdog reset interrupt
 59    maxItems: 1
 60
 61  wakeup-source: true
 62
 63  mboxes:
 64    description:
 65      This property is required only if the rpmsg/virtio functionality is used.
 66    items:
 67      - description: |
 68          A channel (a) used to communicate through virtqueues with the
 69          remote proc.
 70          Bi-directional channel:
 71            - from local to remote = send message
 72            - from remote to local = send message ack
 73      - description: |
 74          A channel (b) working the opposite direction of channel (a)
 75      - description: |
 76          A channel (c) used by the local proc to notify the remote proc that it
 77          is about to be shut down.
 78          Unidirectional channel:
 79            - from local to remote, where ACK from the remote means that it is
 80              ready for shutdown
 81      - description: |
 82          A channel (d) used by the local proc to notify the remote proc that it
 83          has to stop interprocessor communication.
 84          Unidirectional channel:
 85            - from local to remote, where ACK from the remote means that communication
 86              as been stopped on the remote side.
 87    minItems: 1
 88
 89  mbox-names:
 90    items:
 91      - const: vq0
 92      - const: vq1
 93      - const: shutdown
 94      - const: detach
 95    minItems: 1
 96
 97  memory-region:
 98    description:
 99      List of phandles to the reserved memory regions associated with the
100      remoteproc device. This is variable and describes the memories shared with
101      the remote processor (e.g. remoteproc firmware and carveouts, rpmsg
102      vrings, ...).
103      (see ../reserved-memory/reserved-memory.txt)
104
105  st,syscfg-pdds:
106    $ref: /schemas/types.yaml#/definitions/phandle-array
107    description: |
108      Reference to the system configuration which holds the remote
109    items:
110      - items:
111          - description: Phandle of syscon block
112          - description: The offset of the power setting register
113          - description: The field mask of the PDDS selection
114
115  st,syscfg-m4-state:
116    $ref: /schemas/types.yaml#/definitions/phandle-array
117    description: |
118      Reference to the tamp register which exposes the Cortex-M4 state.
119    items:
120      - items:
121          - description: Phandle of syscon block with the tamp register
122          - description: The offset of the tamp register
123          - description: The field mask of the Cortex-M4 state
124
125  st,syscfg-rsc-tbl:
126    $ref: /schemas/types.yaml#/definitions/phandle-array
127    description: |
128      Reference to the tamp register which references the Cortex-M4
129      resource table address.
130    items:
131      - items:
132          - description: Phandle of syscon block with the tamp register
133          - description: The offset of the tamp register
134          - description: The field mask of the Cortex-M4 resource table address
135
136  st,auto-boot:
137    $ref: /schemas/types.yaml#/definitions/flag
138    description:
139      If defined, when remoteproc is probed, it loads the default firmware and
140      starts the remote processor.
141
142  firmware-name:
143    maxItems: 1
144    description: Default name of the remote processor firmware.
145
146required:
147  - compatible
148  - reg
149  - resets
150
151allOf:
152  - if:
153      properties:
154        reset-names:
155          not:
156            contains:
157              const: hold_boot
158    then:
159      required:
160        - st,syscfg-holdboot
161    else:
162      properties:
163        st,syscfg-holdboot: false
164
165additionalProperties: false
166
167examples:
168  - |
169    #include <dt-bindings/reset/stm32mp1-resets.h>
170    m4@10000000 {
171      compatible = "st,stm32mp1-m4";
172      reg = <0x10000000 0x40000>,
173            <0x30000000 0x40000>,
174            <0x38000000 0x10000>;
175      resets = <&rcc MCU_R>;
176      reset-names = "mcu_rst";
177      /* Hold boot managed using system config*/
178      st,syscfg-holdboot = <&rcc 0x10C 0x1>;
179      st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>;
180      st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>;
181    };
182  - |
183    #include <dt-bindings/reset/stm32mp1-resets.h>
184    m4@10000000 {
185      compatible = "st,stm32mp1-m4";
186      reg = <0x10000000 0x40000>,
187            <0x30000000 0x40000>,
188            <0x38000000 0x10000>;
189      /* Hold boot managed using SCMI reset controller */
190      resets = <&scmi MCU_R>, <&scmi MCU_HOLD_BOOT_R>;
191      reset-names = "mcu_rst", "hold_boot";
192      st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>;
193      st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>;
194    };
195
196...
~/ Read-only file preview.