xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/remoteproc/st,stm32-rproc.yaml (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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