Merge tag 'microblaze-v5.6-rc1' of git://git.monstr.eu/linux-2.6-microblaze
[sfrench/cifs-2.6.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     allOf:
32       - $ref: "/schemas/types.yaml#/definitions/phandle-array"
33     description: remote processor reset hold boot
34       - Phandle of syscon block.
35       - The offset of the hold boot setting register.
36       - The field mask of the hold boot.
37     maxItems: 1
38
39   st,syscfg-tz:
40     allOf:
41       - $ref: "/schemas/types.yaml#/definitions/phandle-array"
42     description:
43       Reference to the system configuration which holds the RCC trust zone mode
44       - Phandle of syscon block.
45       - The offset of the RCC trust zone mode register.
46       - The field mask of the RCC trust zone mode.
47     maxItems: 1
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     minItems: 1
74     maxItems: 3
75
76   mbox-names:
77     items:
78       - const: vq0
79       - const: vq1
80       - const: shutdown
81     minItems: 1
82     maxItems: 3
83
84   memory-region:
85     description:
86       List of phandles to the reserved memory regions associated with the
87       remoteproc device. This is variable and describes the memories shared with
88       the remote processor (e.g. remoteproc firmware and carveouts, rpmsg
89       vrings, ...).
90       (see ../reserved-memory/reserved-memory.txt)
91
92   st,syscfg-pdds:
93     allOf:
94       - $ref: "/schemas/types.yaml#/definitions/phandle-array"
95     description: |
96       Reference to the system configuration which holds the remote
97         1st cell: phandle to syscon block
98         2nd cell: register offset containing the deep sleep setting
99         3rd cell: register bitmask for the deep sleep bit
100     maxItems: 1
101
102   st,auto-boot:
103     $ref: /schemas/types.yaml#/definitions/flag
104     description:
105       If defined, when remoteproc is probed, it loads the default firmware and
106       starts the remote processor.
107
108 required:
109   - compatible
110   - reg
111   - resets
112   - st,syscfg-holdboot
113   - st,syscfg-tz
114
115 additionalProperties: false
116
117 examples:
118   - |
119     #include <dt-bindings/reset/stm32mp1-resets.h>
120     m4_rproc: m4@10000000 {
121       compatible = "st,stm32mp1-m4";
122       reg = <0x10000000 0x40000>,
123             <0x30000000 0x40000>,
124             <0x38000000 0x10000>;
125       resets = <&rcc MCU_R>;
126       st,syscfg-holdboot = <&rcc 0x10C 0x1>;
127       st,syscfg-tz = <&rcc 0x000 0x1>;
128     };
129
130 ...