smb: client: Fix minor whitespace errors and warnings
[linux-modified.git] / Documentation / devicetree / bindings / remoteproc / st,stm32-rproc.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
7 title: STMicroelectronics STM32 remote processor controller
8
9 description:
10   This document defines the binding for the remoteproc component that loads and
11   boots firmwares on the ST32MP family chipset.
12
13 maintainers:
14   - Fabien Dessenne <fabien.dessenne@foss.st.com>
15   - Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
16
17 properties:
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 required:
143   - compatible
144   - reg
145   - resets
146
147 allOf:
148   - if:
149       properties:
150         reset-names:
151           not:
152             contains:
153               const: hold_boot
154     then:
155       required:
156         - st,syscfg-holdboot
157     else:
158       properties:
159         st,syscfg-holdboot: false
160
161 additionalProperties: false
162
163 examples:
164   - |
165     #include <dt-bindings/reset/stm32mp1-resets.h>
166     m4@10000000 {
167       compatible = "st,stm32mp1-m4";
168       reg = <0x10000000 0x40000>,
169             <0x30000000 0x40000>,
170             <0x38000000 0x10000>;
171       resets = <&rcc MCU_R>;
172       reset-names = "mcu_rst";
173       /* Hold boot managed using system config*/
174       st,syscfg-holdboot = <&rcc 0x10C 0x1>;
175       st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>;
176       st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>;
177     };
178   - |
179     #include <dt-bindings/reset/stm32mp1-resets.h>
180     m4@10000000 {
181       compatible = "st,stm32mp1-m4";
182       reg = <0x10000000 0x40000>,
183             <0x30000000 0x40000>,
184             <0x38000000 0x10000>;
185       /* Hold boot managed using SCMI reset controller */
186       resets = <&scmi MCU_R>, <&scmi MCU_HOLD_BOOT_R>;
187       reset-names = "mcu_rst", "hold_boot";
188       st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>;
189       st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>;
190     };
191
192 ...