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 bindings
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@st.com>
15  - Arnaud Pouliquen <arnaud.pouliquen@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     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  mboxes:
54    description:
55      This property is required only if the rpmsg/virtio functionality is used.
56    items:
57      - description: |
58          A channel (a) used to communicate through virtqueues with the
59          remote proc.
60          Bi-directional channel:
61            - from local to remote = send message
62            - from remote to local = send message ack
63      - description: |
64          A channel (b) working the opposite direction of channel (a)
65      - description: |
66          A channel (c) used by the local proc to notify the remote proc that it
67          is about to be shut down.
68          Unidirectional channel:
69            - from local to remote, where ACK from the remote means that it is
70              ready for shutdown
71    minItems: 1
72    maxItems: 3
73
74  mbox-names:
75    items:
76      - const: vq0
77      - const: vq1
78      - const: shutdown
79    minItems: 1
80    maxItems: 3
81
82  memory-region:
83    description:
84      List of phandles to the reserved memory regions associated with the
85      remoteproc device. This is variable and describes the memories shared with
86      the remote processor (e.g. remoteproc firmware and carveouts, rpmsg
87      vrings, ...).
88      (see ../reserved-memory/reserved-memory.txt)
89
90  st,syscfg-pdds:
91    allOf:
92      - $ref: "/schemas/types.yaml#/definitions/phandle-array"
93    description: |
94      Reference to the system configuration which holds the remote
95        1st cell: phandle to syscon block
96        2nd cell: register offset containing the deep sleep setting
97        3rd cell: register bitmask for the deep sleep bit
98    maxItems: 1
99
100  st,auto-boot:
101    $ref: /schemas/types.yaml#/definitions/flag
102    description:
103      If defined, when remoteproc is probed, it loads the default firmware and
104      starts the remote processor.
105
106required:
107  - compatible
108  - reg
109  - resets
110  - st,syscfg-holdboot
111  - st,syscfg-tz
112
113additionalProperties: false
114
115examples:
116  - |
117    #include <dt-bindings/reset/stm32mp1-resets.h>
118    m4_rproc: m4@10000000 {
119      compatible = "st,stm32mp1-m4";
120      reg = <0x10000000 0x40000>,
121            <0x30000000 0x40000>,
122            <0x38000000 0x10000>;
123      resets = <&rcc MCU_R>;
124      st,syscfg-holdboot = <&rcc 0x10C 0x1>;
125      st,syscfg-tz = <&rcc 0x000 0x1>;
126    };
127
128...
129