xref: /openbmc/linux/Documentation/devicetree/bindings/remoteproc/st,stm32-rproc.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
134376eb1SArnaud Pouliquen# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
234376eb1SArnaud Pouliquen%YAML 1.2
334376eb1SArnaud Pouliquen---
4*82f2734dSRob Herring$id: http://devicetree.org/schemas/remoteproc/st,stm32-rproc.yaml#
5*82f2734dSRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
634376eb1SArnaud Pouliquen
784e85359SKrzysztof Kozlowskititle: STMicroelectronics STM32 remote processor controller
834376eb1SArnaud Pouliquen
934376eb1SArnaud Pouliquendescription:
1034376eb1SArnaud Pouliquen  This document defines the binding for the remoteproc component that loads and
1134376eb1SArnaud Pouliquen  boots firmwares on the ST32MP family chipset.
1234376eb1SArnaud Pouliquen
1334376eb1SArnaud Pouliquenmaintainers:
14f4eedebdSPatrice Chotard  - Fabien Dessenne <fabien.dessenne@foss.st.com>
15f4eedebdSPatrice Chotard  - Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
1634376eb1SArnaud Pouliquen
1734376eb1SArnaud Pouliquenproperties:
1834376eb1SArnaud Pouliquen  compatible:
1934376eb1SArnaud Pouliquen    const: st,stm32mp1-m4
2034376eb1SArnaud Pouliquen
2134376eb1SArnaud Pouliquen  reg:
2234376eb1SArnaud Pouliquen    description:
2334376eb1SArnaud Pouliquen      Address ranges of the RETRAM and MCU SRAM memories used by the remote
2434376eb1SArnaud Pouliquen      processor.
2534376eb1SArnaud Pouliquen    maxItems: 3
2634376eb1SArnaud Pouliquen
2734376eb1SArnaud Pouliquen  resets:
2834376eb1SArnaud Pouliquen    minItems: 1
2934376eb1SArnaud Pouliquen    maxItems: 2
3034376eb1SArnaud Pouliquen
3134376eb1SArnaud Pouliquen  reset-names:
32*82f2734dSRob Herring    items:
3339bd2b6aSRob Herring      - const: mcu_rst
3439bd2b6aSRob Herring      - const: hold_boot
3539bd2b6aSRob Herring    minItems: 1
3639bd2b6aSRob Herring
3739bd2b6aSRob Herring  st,syscfg-holdboot:
3834376eb1SArnaud Pouliquen    description: remote processor reset hold boot
3934376eb1SArnaud Pouliquen    $ref: /schemas/types.yaml#/definitions/phandle-array
4034376eb1SArnaud Pouliquen    items:
4134376eb1SArnaud Pouliquen      - items:
42*82f2734dSRob Herring          - description: Phandle of syscon block
4339bd2b6aSRob Herring          - description: The offset of the hold boot setting register
4439bd2b6aSRob Herring          - description: The field mask of the hold boot
4539bd2b6aSRob Herring
46be1de12cSArnaud Pouliquen  st,syscfg-tz:
47be1de12cSArnaud Pouliquen    deprecated: true
4834376eb1SArnaud Pouliquen    description:
4934376eb1SArnaud Pouliquen      Reference to the system configuration which holds the RCC trust zone mode
5034376eb1SArnaud Pouliquen    $ref: /schemas/types.yaml#/definitions/phandle-array
5134376eb1SArnaud Pouliquen    items:
5234376eb1SArnaud Pouliquen      - items:
5371bbcd2eSArnaud Pouliquen          - description: Phandle of syscon block
5471bbcd2eSArnaud Pouliquen          - description: The offset of the trust zone setting register
5534376eb1SArnaud Pouliquen          - description: The field mask of the trust zone state
5634376eb1SArnaud Pouliquen
5734376eb1SArnaud Pouliquen  interrupts:
5834376eb1SArnaud Pouliquen    description: Should contain the WWDG1 watchdog reset interrupt
5934376eb1SArnaud Pouliquen    maxItems: 1
6034376eb1SArnaud Pouliquen
6134376eb1SArnaud Pouliquen  wakeup-source: true
6234376eb1SArnaud Pouliquen
6334376eb1SArnaud Pouliquen  mboxes:
6434376eb1SArnaud Pouliquen    description:
6534376eb1SArnaud Pouliquen      This property is required only if the rpmsg/virtio functionality is used.
6634376eb1SArnaud Pouliquen    items:
6734376eb1SArnaud Pouliquen      - description: |
6834376eb1SArnaud Pouliquen          A channel (a) used to communicate through virtqueues with the
6934376eb1SArnaud Pouliquen          remote proc.
7034376eb1SArnaud Pouliquen          Bi-directional channel:
7134376eb1SArnaud Pouliquen            - from local to remote = send message
7234376eb1SArnaud Pouliquen            - from remote to local = send message ack
73aca8f94eSArnaud Pouliquen      - description: |
74aca8f94eSArnaud Pouliquen          A channel (b) working the opposite direction of channel (a)
7596af01cdSArnaud Pouliquen      - description: |
76aca8f94eSArnaud Pouliquen          A channel (c) used by the local proc to notify the remote proc that it
7796af01cdSArnaud Pouliquen          is about to be shut down.
78aca8f94eSArnaud Pouliquen          Unidirectional channel:
7934376eb1SArnaud Pouliquen            - from local to remote, where ACK from the remote means that it is
8034376eb1SArnaud Pouliquen              ready for shutdown
8134376eb1SArnaud Pouliquen      - description: |
8234376eb1SArnaud Pouliquen          A channel (d) used by the local proc to notify the remote proc that it
8334376eb1SArnaud Pouliquen          has to stop interprocessor communication.
8434376eb1SArnaud Pouliquen          Unidirectional channel:
8534376eb1SArnaud Pouliquen            - from local to remote, where ACK from the remote means that communication
86aca8f94eSArnaud Pouliquen              as been stopped on the remote side.
8734376eb1SArnaud Pouliquen    minItems: 1
8834376eb1SArnaud Pouliquen
8934376eb1SArnaud Pouliquen  mbox-names:
9034376eb1SArnaud Pouliquen    items:
9134376eb1SArnaud Pouliquen      - const: vq0
9234376eb1SArnaud Pouliquen      - const: vq1
9334376eb1SArnaud Pouliquen      - const: shutdown
9434376eb1SArnaud Pouliquen      - const: detach
9534376eb1SArnaud Pouliquen    minItems: 1
9634376eb1SArnaud Pouliquen
9734376eb1SArnaud Pouliquen  memory-region:
98*82f2734dSRob Herring    description:
9934376eb1SArnaud Pouliquen      List of phandles to the reserved memory regions associated with the
10034376eb1SArnaud Pouliquen      remoteproc device. This is variable and describes the memories shared with
10139bd2b6aSRob Herring      the remote processor (e.g. remoteproc firmware and carveouts, rpmsg
10239bd2b6aSRob Herring      vrings, ...).
10339bd2b6aSRob Herring      (see ../reserved-memory/reserved-memory.txt)
104be1de12cSArnaud Pouliquen
105be1de12cSArnaud Pouliquen  st,syscfg-pdds:
10634376eb1SArnaud Pouliquen    $ref: /schemas/types.yaml#/definitions/phandle-array
107e67bae44SArnaud Pouliquen    description: |
108*82f2734dSRob Herring      Reference to the system configuration which holds the remote
109e67bae44SArnaud Pouliquen    items:
110e67bae44SArnaud Pouliquen      - items:
11139bd2b6aSRob Herring          - description: Phandle of syscon block
11239bd2b6aSRob Herring          - description: The offset of the power setting register
11339bd2b6aSRob Herring          - description: The field mask of the PDDS selection
114be1de12cSArnaud Pouliquen
115be1de12cSArnaud Pouliquen  st,syscfg-m4-state:
116e67bae44SArnaud Pouliquen    $ref: /schemas/types.yaml#/definitions/phandle-array
117e67bae44SArnaud Pouliquen    description: |
118*82f2734dSRob Herring      Reference to the tamp register which exposes the Cortex-M4 state.
119e67bae44SArnaud Pouliquen    items:
120e67bae44SArnaud Pouliquen      - items:
121e67bae44SArnaud Pouliquen          - description: Phandle of syscon block with the tamp register
12239bd2b6aSRob Herring          - description: The offset of the tamp register
12339bd2b6aSRob Herring          - description: The field mask of the Cortex-M4 state
12439bd2b6aSRob Herring
125be1de12cSArnaud Pouliquen  st,syscfg-rsc-tbl:
126be1de12cSArnaud Pouliquen    $ref: /schemas/types.yaml#/definitions/phandle-array
127e67bae44SArnaud Pouliquen    description: |
12834376eb1SArnaud Pouliquen      Reference to the tamp register which references the Cortex-M4
12934376eb1SArnaud Pouliquen      resource table address.
13034376eb1SArnaud Pouliquen    items:
13134376eb1SArnaud Pouliquen      - items:
13234376eb1SArnaud Pouliquen          - description: Phandle of syscon block with the tamp register
13334376eb1SArnaud Pouliquen          - description: The offset of the tamp register
13434376eb1SArnaud Pouliquen          - description: The field mask of the Cortex-M4 resource table address
13534376eb1SArnaud Pouliquen
13634376eb1SArnaud Pouliquen  st,auto-boot:
13734376eb1SArnaud Pouliquen    $ref: /schemas/types.yaml#/definitions/flag
13834376eb1SArnaud Pouliquen    description:
13934376eb1SArnaud Pouliquen      If defined, when remoteproc is probed, it loads the default firmware and
14034376eb1SArnaud Pouliquen      starts the remote processor.
14134376eb1SArnaud Pouliquen
14234376eb1SArnaud Pouliquenrequired:
14334376eb1SArnaud Pouliquen  - compatible
14434376eb1SArnaud Pouliquen  - reg
14534376eb1SArnaud Pouliquen  - resets
14634376eb1SArnaud Pouliquen
14734376eb1SArnaud PouliquenallOf:
14834376eb1SArnaud Pouliquen  - if:
14934376eb1SArnaud Pouliquen      properties:
15034376eb1SArnaud Pouliquen        reset-names:
15134376eb1SArnaud Pouliquen          not:
15234376eb1SArnaud Pouliquen            contains:
15334376eb1SArnaud Pouliquen              const: hold_boot
154e67bae44SArnaud Pouliquen    then:
155e67bae44SArnaud Pouliquen      required:
15634376eb1SArnaud Pouliquen        - st,syscfg-holdboot
15734376eb1SArnaud Pouliquen    else:
15834376eb1SArnaud Pouliquen      properties:
159        st,syscfg-holdboot: false
160
161additionalProperties: false
162
163examples:
164  - |
165    #include <dt-bindings/reset/stm32mp1-resets.h>
166    m4@10000000 {
167      compatible = "st,stm32mp1-m4";
168      reg = <0x10000000 0x40000>,
169            <0x30000000 0x40000>,
170            <0x38000000 0x10000>;
171      resets = <&rcc MCU_R>;
172      reset-names = "mcu_rst";
173      /* Hold boot managed using system config*/
174      st,syscfg-holdboot = <&rcc 0x10C 0x1>;
175      st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>;
176      st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>;
177    };
178  - |
179    #include <dt-bindings/reset/stm32mp1-resets.h>
180    m4@10000000 {
181      compatible = "st,stm32mp1-m4";
182      reg = <0x10000000 0x40000>,
183            <0x30000000 0x40000>,
184            <0x38000000 0x10000>;
185      /* Hold boot managed using SCMI reset controller */
186      resets = <&scmi MCU_R>, <&scmi MCU_HOLD_BOOT_R>;
187      reset-names = "mcu_rst", "hold_boot";
188      st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>;
189      st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>;
190    };
191
192...
193