xref: /linux/Documentation/devicetree/bindings/remoteproc/st,stm32-rproc.yaml (revision cdd5b5a9761fd66d17586e4f4ba6588c70e640ea)
134376eb1SArnaud Pouliquen# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
234376eb1SArnaud Pouliquen%YAML 1.2
334376eb1SArnaud Pouliquen---
482f2734dSRob Herring$id: http://devicetree.org/schemas/remoteproc/st,stm32-rproc.yaml#
582f2734dSRob 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:
28*ef7129dbSArnaud Pouliquen    minItems: 1
29*ef7129dbSArnaud Pouliquen    maxItems: 2
30*ef7129dbSArnaud Pouliquen
31*ef7129dbSArnaud Pouliquen  reset-names:
32*ef7129dbSArnaud Pouliquen    items:
33*ef7129dbSArnaud Pouliquen      - const: mcu_rst
34*ef7129dbSArnaud Pouliquen      - const: hold_boot
35*ef7129dbSArnaud Pouliquen    minItems: 1
3634376eb1SArnaud Pouliquen
3734376eb1SArnaud Pouliquen  st,syscfg-holdboot:
3834376eb1SArnaud Pouliquen    description: remote processor reset hold boot
3982f2734dSRob Herring    $ref: /schemas/types.yaml#/definitions/phandle-array
4039bd2b6aSRob Herring    items:
4139bd2b6aSRob Herring      - items:
4239bd2b6aSRob 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
4534376eb1SArnaud Pouliquen
4634376eb1SArnaud Pouliquen  st,syscfg-tz:
47*ef7129dbSArnaud Pouliquen    deprecated: true
4834376eb1SArnaud Pouliquen    description:
4934376eb1SArnaud Pouliquen      Reference to the system configuration which holds the RCC trust zone mode
5082f2734dSRob Herring    $ref: /schemas/types.yaml#/definitions/phandle-array
5139bd2b6aSRob Herring    items:
5239bd2b6aSRob Herring      - items:
5339bd2b6aSRob Herring          - description: Phandle of syscon block
54be1de12cSArnaud Pouliquen          - description: The offset of the trust zone setting register
55be1de12cSArnaud 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
6171bbcd2eSArnaud Pouliquen  wakeup-source: true
6271bbcd2eSArnaud 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
7334376eb1SArnaud Pouliquen      - description: |
7434376eb1SArnaud Pouliquen          A channel (b) working the opposite direction of channel (a)
7534376eb1SArnaud Pouliquen      - description: |
7634376eb1SArnaud Pouliquen          A channel (c) used by the local proc to notify the remote proc that it
7734376eb1SArnaud Pouliquen          is about to be shut down.
7834376eb1SArnaud Pouliquen          Unidirectional channel:
7934376eb1SArnaud Pouliquen            - from local to remote, where ACK from the remote means that it is
8034376eb1SArnaud Pouliquen              ready for shutdown
81aca8f94eSArnaud Pouliquen      - description: |
82aca8f94eSArnaud Pouliquen          A channel (d) used by the local proc to notify the remote proc that it
8396af01cdSArnaud Pouliquen          has to stop interprocessor communication.
84aca8f94eSArnaud Pouliquen          Unidirectional channel:
8596af01cdSArnaud 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
94aca8f94eSArnaud Pouliquen      - const: detach
9534376eb1SArnaud Pouliquen    minItems: 1
9634376eb1SArnaud Pouliquen
9734376eb1SArnaud Pouliquen  memory-region:
9834376eb1SArnaud Pouliquen    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
10134376eb1SArnaud Pouliquen      the remote processor (e.g. remoteproc firmware and carveouts, rpmsg
10234376eb1SArnaud Pouliquen      vrings, ...).
10334376eb1SArnaud Pouliquen      (see ../reserved-memory/reserved-memory.txt)
10434376eb1SArnaud Pouliquen
10534376eb1SArnaud Pouliquen  st,syscfg-pdds:
10682f2734dSRob Herring    $ref: /schemas/types.yaml#/definitions/phandle-array
10734376eb1SArnaud Pouliquen    description: |
10834376eb1SArnaud Pouliquen      Reference to the system configuration which holds the remote
10939bd2b6aSRob Herring    items:
11039bd2b6aSRob Herring      - items:
11139bd2b6aSRob Herring          - description: Phandle of syscon block
112be1de12cSArnaud Pouliquen          - description: The offset of the power setting register
113be1de12cSArnaud Pouliquen          - description: The field mask of the PDDS selection
11434376eb1SArnaud Pouliquen
115e67bae44SArnaud Pouliquen  st,syscfg-m4-state:
11682f2734dSRob Herring    $ref: /schemas/types.yaml#/definitions/phandle-array
117e67bae44SArnaud Pouliquen    description: |
118e67bae44SArnaud Pouliquen      Reference to the tamp register which exposes the Cortex-M4 state.
11939bd2b6aSRob Herring    items:
12039bd2b6aSRob Herring      - items:
12139bd2b6aSRob Herring          - description: Phandle of syscon block with the tamp register
122be1de12cSArnaud Pouliquen          - description: The offset of the tamp register
123be1de12cSArnaud Pouliquen          - description: The field mask of the Cortex-M4 state
124e67bae44SArnaud Pouliquen
125e67bae44SArnaud Pouliquen  st,syscfg-rsc-tbl:
12682f2734dSRob Herring    $ref: /schemas/types.yaml#/definitions/phandle-array
127e67bae44SArnaud Pouliquen    description: |
128e67bae44SArnaud Pouliquen      Reference to the tamp register which references the Cortex-M4
129e67bae44SArnaud Pouliquen      resource table address.
13039bd2b6aSRob Herring    items:
13139bd2b6aSRob Herring      - items:
13239bd2b6aSRob Herring          - description: Phandle of syscon block with the tamp register
133be1de12cSArnaud Pouliquen          - description: The offset of the tamp register
134be1de12cSArnaud Pouliquen          - description: The field mask of the Cortex-M4 resource table address
135e67bae44SArnaud 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
146*ef7129dbSArnaud Pouliquen
147*ef7129dbSArnaud PouliquenallOf:
148*ef7129dbSArnaud Pouliquen  - if:
149*ef7129dbSArnaud Pouliquen      properties:
150*ef7129dbSArnaud Pouliquen        reset-names:
151*ef7129dbSArnaud Pouliquen          not:
152*ef7129dbSArnaud Pouliquen            contains:
153*ef7129dbSArnaud Pouliquen              const: hold_boot
154*ef7129dbSArnaud Pouliquen    then:
155*ef7129dbSArnaud Pouliquen      required:
15634376eb1SArnaud Pouliquen        - st,syscfg-holdboot
157*ef7129dbSArnaud Pouliquen    else:
158*ef7129dbSArnaud Pouliquen      properties:
159*ef7129dbSArnaud Pouliquen        st,syscfg-holdboot: false
16034376eb1SArnaud Pouliquen
16134376eb1SArnaud PouliquenadditionalProperties: false
16234376eb1SArnaud Pouliquen
16334376eb1SArnaud Pouliquenexamples:
16434376eb1SArnaud Pouliquen  - |
16534376eb1SArnaud Pouliquen    #include <dt-bindings/reset/stm32mp1-resets.h>
166*ef7129dbSArnaud Pouliquen    m4@10000000 {
16734376eb1SArnaud Pouliquen      compatible = "st,stm32mp1-m4";
16834376eb1SArnaud Pouliquen      reg = <0x10000000 0x40000>,
16934376eb1SArnaud Pouliquen            <0x30000000 0x40000>,
17034376eb1SArnaud Pouliquen            <0x38000000 0x10000>;
17134376eb1SArnaud Pouliquen      resets = <&rcc MCU_R>;
172*ef7129dbSArnaud Pouliquen      reset-names = "mcu_rst";
173*ef7129dbSArnaud Pouliquen      /* Hold boot managed using system config*/
17434376eb1SArnaud Pouliquen      st,syscfg-holdboot = <&rcc 0x10C 0x1>;
175*ef7129dbSArnaud Pouliquen      st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>;
176*ef7129dbSArnaud Pouliquen      st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>;
177*ef7129dbSArnaud Pouliquen    };
178*ef7129dbSArnaud Pouliquen  - |
179*ef7129dbSArnaud Pouliquen    #include <dt-bindings/reset/stm32mp1-resets.h>
180*ef7129dbSArnaud Pouliquen    m4@10000000 {
181*ef7129dbSArnaud Pouliquen      compatible = "st,stm32mp1-m4";
182*ef7129dbSArnaud Pouliquen      reg = <0x10000000 0x40000>,
183*ef7129dbSArnaud Pouliquen            <0x30000000 0x40000>,
184*ef7129dbSArnaud Pouliquen            <0x38000000 0x10000>;
185*ef7129dbSArnaud Pouliquen      /* Hold boot managed using SCMI reset controller */
186*ef7129dbSArnaud Pouliquen      resets = <&scmi MCU_R>, <&scmi MCU_HOLD_BOOT_R>;
187*ef7129dbSArnaud Pouliquen      reset-names = "mcu_rst", "hold_boot";
188e67bae44SArnaud Pouliquen      st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>;
189e67bae44SArnaud Pouliquen      st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>;
19034376eb1SArnaud Pouliquen    };
19134376eb1SArnaud Pouliquen
19234376eb1SArnaud Pouliquen...
193