GNU Linux-libre 6.1.90-gnu
[releases.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 bindings
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     maxItems: 1
29
30   st,syscfg-holdboot:
31     description: remote processor reset hold boot
32     $ref: "/schemas/types.yaml#/definitions/phandle-array"
33     items:
34       - items:
35           - description: Phandle of syscon block
36           - description: The offset of the hold boot setting register
37           - description: The field mask of the hold boot
38
39   st,syscfg-tz:
40     description:
41       Reference to the system configuration which holds the RCC trust zone mode
42     $ref: "/schemas/types.yaml#/definitions/phandle-array"
43     items:
44       - items:
45           - description: Phandle of syscon block
46           - description: The offset of the trust zone setting register
47           - description: The field mask of the trust zone state
48
49   interrupts:
50     description: Should contain the WWDG1 watchdog reset interrupt
51     maxItems: 1
52
53   wakeup-source: true
54
55   mboxes:
56     description:
57       This property is required only if the rpmsg/virtio functionality is used.
58     items:
59       - description: |
60           A channel (a) used to communicate through virtqueues with the
61           remote proc.
62           Bi-directional channel:
63             - from local to remote = send message
64             - from remote to local = send message ack
65       - description: |
66           A channel (b) working the opposite direction of channel (a)
67       - description: |
68           A channel (c) used by the local proc to notify the remote proc that it
69           is about to be shut down.
70           Unidirectional channel:
71             - from local to remote, where ACK from the remote means that it is
72               ready for shutdown
73       - description: |
74           A channel (d) used by the local proc to notify the remote proc that it
75           has to stop interprocessor communnication.
76           Unidirectional channel:
77             - from local to remote, where ACK from the remote means that communnication
78               as been stopped on the remote side.
79     minItems: 1
80
81   mbox-names:
82     items:
83       - const: vq0
84       - const: vq1
85       - const: shutdown
86       - const: detach
87     minItems: 1
88
89   memory-region:
90     description:
91       List of phandles to the reserved memory regions associated with the
92       remoteproc device. This is variable and describes the memories shared with
93       the remote processor (e.g. remoteproc firmware and carveouts, rpmsg
94       vrings, ...).
95       (see ../reserved-memory/reserved-memory.txt)
96
97   st,syscfg-pdds:
98     $ref: "/schemas/types.yaml#/definitions/phandle-array"
99     description: |
100       Reference to the system configuration which holds the remote
101     items:
102       - items:
103           - description: Phandle of syscon block
104           - description: The offset of the power setting register
105           - description: The field mask of the PDDS selection
106
107   st,syscfg-m4-state:
108     $ref: "/schemas/types.yaml#/definitions/phandle-array"
109     description: |
110       Reference to the tamp register which exposes the Cortex-M4 state.
111     items:
112       - items:
113           - description: Phandle of syscon block with the tamp register
114           - description: The offset of the tamp register
115           - description: The field mask of the Cortex-M4 state
116
117   st,syscfg-rsc-tbl:
118     $ref: "/schemas/types.yaml#/definitions/phandle-array"
119     description: |
120       Reference to the tamp register which references the Cortex-M4
121       resource table address.
122     items:
123       - items:
124           - description: Phandle of syscon block with the tamp register
125           - description: The offset of the tamp register
126           - description: The field mask of the Cortex-M4 resource table address
127
128   st,auto-boot:
129     $ref: /schemas/types.yaml#/definitions/flag
130     description:
131       If defined, when remoteproc is probed, it loads the default firmware and
132       starts the remote processor.
133
134 required:
135   - compatible
136   - reg
137   - resets
138   - st,syscfg-holdboot
139   - st,syscfg-tz
140
141 additionalProperties: false
142
143 examples:
144   - |
145     #include <dt-bindings/reset/stm32mp1-resets.h>
146     m4_rproc: m4@10000000 {
147       compatible = "st,stm32mp1-m4";
148       reg = <0x10000000 0x40000>,
149             <0x30000000 0x40000>,
150             <0x38000000 0x10000>;
151       resets = <&rcc MCU_R>;
152       st,syscfg-holdboot = <&rcc 0x10C 0x1>;
153       st,syscfg-tz = <&rcc 0x000 0x1>;
154       st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>;
155       st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>;
156     };
157
158 ...