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