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 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@foss.st.com> 15 - Arnaud Pouliquen <arnaud.pouliquen@foss.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 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 firmware-name: 143 maxItems: 1 144 description: Default name of the remote processor firmware. 145 146required: 147 - compatible 148 - reg 149 - resets 150 151allOf: 152 - if: 153 properties: 154 reset-names: 155 not: 156 contains: 157 const: hold_boot 158 then: 159 required: 160 - st,syscfg-holdboot 161 else: 162 properties: 163 st,syscfg-holdboot: false 164 165additionalProperties: false 166 167examples: 168 - | 169 #include <dt-bindings/reset/stm32mp1-resets.h> 170 m4@10000000 { 171 compatible = "st,stm32mp1-m4"; 172 reg = <0x10000000 0x40000>, 173 <0x30000000 0x40000>, 174 <0x38000000 0x10000>; 175 resets = <&rcc MCU_R>; 176 reset-names = "mcu_rst"; 177 /* Hold boot managed using system config*/ 178 st,syscfg-holdboot = <&rcc 0x10C 0x1>; 179 st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>; 180 st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>; 181 }; 182 - | 183 #include <dt-bindings/reset/stm32mp1-resets.h> 184 m4@10000000 { 185 compatible = "st,stm32mp1-m4"; 186 reg = <0x10000000 0x40000>, 187 <0x30000000 0x40000>, 188 <0x38000000 0x10000>; 189 /* Hold boot managed using SCMI reset controller */ 190 resets = <&scmi MCU_R>, <&scmi MCU_HOLD_BOOT_R>; 191 reset-names = "mcu_rst", "hold_boot"; 192 st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>; 193 st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>; 194 }; 195 196... 197