1*4882a593Smuzhiyun# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2*4882a593Smuzhiyun%YAML 1.2 3*4882a593Smuzhiyun--- 4*4882a593Smuzhiyun$id: "http://devicetree.org/schemas/remoteproc/st,stm32-rproc.yaml#" 5*4882a593Smuzhiyun$schema: "http://devicetree.org/meta-schemas/core.yaml#" 6*4882a593Smuzhiyun 7*4882a593Smuzhiyuntitle: STMicroelectronics STM32 remote processor controller bindings 8*4882a593Smuzhiyun 9*4882a593Smuzhiyundescription: 10*4882a593Smuzhiyun This document defines the binding for the remoteproc component that loads and 11*4882a593Smuzhiyun boots firmwares on the ST32MP family chipset. 12*4882a593Smuzhiyun 13*4882a593Smuzhiyunmaintainers: 14*4882a593Smuzhiyun - Fabien Dessenne <fabien.dessenne@st.com> 15*4882a593Smuzhiyun - Arnaud Pouliquen <arnaud.pouliquen@st.com> 16*4882a593Smuzhiyun 17*4882a593Smuzhiyunproperties: 18*4882a593Smuzhiyun compatible: 19*4882a593Smuzhiyun const: st,stm32mp1-m4 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun reg: 22*4882a593Smuzhiyun description: 23*4882a593Smuzhiyun Address ranges of the RETRAM and MCU SRAM memories used by the remote 24*4882a593Smuzhiyun processor. 25*4882a593Smuzhiyun maxItems: 3 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun resets: 28*4882a593Smuzhiyun maxItems: 1 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun st,syscfg-holdboot: 31*4882a593Smuzhiyun description: remote processor reset hold boot 32*4882a593Smuzhiyun - Phandle of syscon block. 33*4882a593Smuzhiyun - The offset of the hold boot setting register. 34*4882a593Smuzhiyun - The field mask of the hold boot. 35*4882a593Smuzhiyun $ref: "/schemas/types.yaml#/definitions/phandle-array" 36*4882a593Smuzhiyun maxItems: 1 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun st,syscfg-tz: 39*4882a593Smuzhiyun description: 40*4882a593Smuzhiyun Reference to the system configuration which holds the RCC trust zone mode 41*4882a593Smuzhiyun - Phandle of syscon block. 42*4882a593Smuzhiyun - The offset of the RCC trust zone mode register. 43*4882a593Smuzhiyun - The field mask of the RCC trust zone mode. 44*4882a593Smuzhiyun $ref: "/schemas/types.yaml#/definitions/phandle-array" 45*4882a593Smuzhiyun maxItems: 1 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun interrupts: 48*4882a593Smuzhiyun description: Should contain the WWDG1 watchdog reset interrupt 49*4882a593Smuzhiyun maxItems: 1 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun wakeup-source: true 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun mboxes: 54*4882a593Smuzhiyun description: 55*4882a593Smuzhiyun This property is required only if the rpmsg/virtio functionality is used. 56*4882a593Smuzhiyun items: 57*4882a593Smuzhiyun - description: | 58*4882a593Smuzhiyun A channel (a) used to communicate through virtqueues with the 59*4882a593Smuzhiyun remote proc. 60*4882a593Smuzhiyun Bi-directional channel: 61*4882a593Smuzhiyun - from local to remote = send message 62*4882a593Smuzhiyun - from remote to local = send message ack 63*4882a593Smuzhiyun - description: | 64*4882a593Smuzhiyun A channel (b) working the opposite direction of channel (a) 65*4882a593Smuzhiyun - description: | 66*4882a593Smuzhiyun A channel (c) used by the local proc to notify the remote proc that it 67*4882a593Smuzhiyun is about to be shut down. 68*4882a593Smuzhiyun Unidirectional channel: 69*4882a593Smuzhiyun - from local to remote, where ACK from the remote means that it is 70*4882a593Smuzhiyun ready for shutdown 71*4882a593Smuzhiyun minItems: 1 72*4882a593Smuzhiyun maxItems: 3 73*4882a593Smuzhiyun 74*4882a593Smuzhiyun mbox-names: 75*4882a593Smuzhiyun items: 76*4882a593Smuzhiyun - const: vq0 77*4882a593Smuzhiyun - const: vq1 78*4882a593Smuzhiyun - const: shutdown 79*4882a593Smuzhiyun minItems: 1 80*4882a593Smuzhiyun maxItems: 3 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun memory-region: 83*4882a593Smuzhiyun description: 84*4882a593Smuzhiyun List of phandles to the reserved memory regions associated with the 85*4882a593Smuzhiyun remoteproc device. This is variable and describes the memories shared with 86*4882a593Smuzhiyun the remote processor (e.g. remoteproc firmware and carveouts, rpmsg 87*4882a593Smuzhiyun vrings, ...). 88*4882a593Smuzhiyun (see ../reserved-memory/reserved-memory.txt) 89*4882a593Smuzhiyun 90*4882a593Smuzhiyun st,syscfg-pdds: 91*4882a593Smuzhiyun $ref: "/schemas/types.yaml#/definitions/phandle-array" 92*4882a593Smuzhiyun description: | 93*4882a593Smuzhiyun Reference to the system configuration which holds the remote 94*4882a593Smuzhiyun 1st cell: phandle to syscon block 95*4882a593Smuzhiyun 2nd cell: register offset containing the deep sleep setting 96*4882a593Smuzhiyun 3rd cell: register bitmask for the deep sleep bit 97*4882a593Smuzhiyun maxItems: 1 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun st,auto-boot: 100*4882a593Smuzhiyun $ref: /schemas/types.yaml#/definitions/flag 101*4882a593Smuzhiyun description: 102*4882a593Smuzhiyun If defined, when remoteproc is probed, it loads the default firmware and 103*4882a593Smuzhiyun starts the remote processor. 104*4882a593Smuzhiyun 105*4882a593Smuzhiyunrequired: 106*4882a593Smuzhiyun - compatible 107*4882a593Smuzhiyun - reg 108*4882a593Smuzhiyun - resets 109*4882a593Smuzhiyun - st,syscfg-holdboot 110*4882a593Smuzhiyun - st,syscfg-tz 111*4882a593Smuzhiyun 112*4882a593SmuzhiyunadditionalProperties: false 113*4882a593Smuzhiyun 114*4882a593Smuzhiyunexamples: 115*4882a593Smuzhiyun - | 116*4882a593Smuzhiyun #include <dt-bindings/reset/stm32mp1-resets.h> 117*4882a593Smuzhiyun m4_rproc: m4@10000000 { 118*4882a593Smuzhiyun compatible = "st,stm32mp1-m4"; 119*4882a593Smuzhiyun reg = <0x10000000 0x40000>, 120*4882a593Smuzhiyun <0x30000000 0x40000>, 121*4882a593Smuzhiyun <0x38000000 0x10000>; 122*4882a593Smuzhiyun resets = <&rcc MCU_R>; 123*4882a593Smuzhiyun st,syscfg-holdboot = <&rcc 0x10C 0x1>; 124*4882a593Smuzhiyun st,syscfg-tz = <&rcc 0x000 0x1>; 125*4882a593Smuzhiyun }; 126*4882a593Smuzhiyun 127*4882a593Smuzhiyun... 128