xref: /linux/Documentation/devicetree/bindings/remoteproc/st,stm32-rproc.yaml (revision 71bbcd2eaf042ec3f10122e3f3b1be67dbfb1c16)
134376eb1SArnaud Pouliquen# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
234376eb1SArnaud Pouliquen%YAML 1.2
334376eb1SArnaud Pouliquen---
434376eb1SArnaud Pouliquen$id: "http://devicetree.org/schemas/remoteproc/st,stm32-rproc.yaml#"
534376eb1SArnaud Pouliquen$schema: "http://devicetree.org/meta-schemas/core.yaml#"
634376eb1SArnaud Pouliquen
734376eb1SArnaud Pouliquentitle: STMicroelectronics STM32 remote processor controller bindings
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:
1434376eb1SArnaud Pouliquen  - Fabien Dessenne <fabien.dessenne@st.com>
1534376eb1SArnaud Pouliquen  - Arnaud Pouliquen <arnaud.pouliquen@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     maxItems: 1
2934376eb1SArnaud Pouliquen
3034376eb1SArnaud Pouliquen  st,syscfg-holdboot:
3134376eb1SArnaud Pouliquen    allOf:
3234376eb1SArnaud Pouliquen      - $ref: "/schemas/types.yaml#/definitions/phandle-array"
3334376eb1SArnaud Pouliquen    description: remote processor reset hold boot
3434376eb1SArnaud Pouliquen      - Phandle of syscon block.
3534376eb1SArnaud Pouliquen      - The offset of the hold boot setting register.
3634376eb1SArnaud Pouliquen      - The field mask of the hold boot.
3734376eb1SArnaud Pouliquen    maxItems: 1
3834376eb1SArnaud Pouliquen
3934376eb1SArnaud Pouliquen  st,syscfg-tz:
4034376eb1SArnaud Pouliquen    allOf:
4134376eb1SArnaud Pouliquen      - $ref: "/schemas/types.yaml#/definitions/phandle-array"
4234376eb1SArnaud Pouliquen    description:
4334376eb1SArnaud Pouliquen      Reference to the system configuration which holds the RCC trust zone mode
4434376eb1SArnaud Pouliquen      - Phandle of syscon block.
4534376eb1SArnaud Pouliquen      - The offset of the RCC trust zone mode register.
4634376eb1SArnaud Pouliquen      - The field mask of the RCC trust zone mode.
4734376eb1SArnaud Pouliquen    maxItems: 1
4834376eb1SArnaud Pouliquen
4934376eb1SArnaud Pouliquen  interrupts:
5034376eb1SArnaud Pouliquen    description: Should contain the WWDG1 watchdog reset interrupt
5134376eb1SArnaud Pouliquen    maxItems: 1
5234376eb1SArnaud Pouliquen
53*71bbcd2eSArnaud Pouliquen  wakeup-source: true
54*71bbcd2eSArnaud Pouliquen
5534376eb1SArnaud Pouliquen  mboxes:
5634376eb1SArnaud Pouliquen    description:
5734376eb1SArnaud Pouliquen      This property is required only if the rpmsg/virtio functionality is used.
5834376eb1SArnaud Pouliquen    items:
5934376eb1SArnaud Pouliquen      - description: |
6034376eb1SArnaud Pouliquen          A channel (a) used to communicate through virtqueues with the
6134376eb1SArnaud Pouliquen          remote proc.
6234376eb1SArnaud Pouliquen          Bi-directional channel:
6334376eb1SArnaud Pouliquen            - from local to remote = send message
6434376eb1SArnaud Pouliquen            - from remote to local = send message ack
6534376eb1SArnaud Pouliquen      - description: |
6634376eb1SArnaud Pouliquen          A channel (b) working the opposite direction of channel (a)
6734376eb1SArnaud Pouliquen      - description: |
6834376eb1SArnaud Pouliquen          A channel (c) used by the local proc to notify the remote proc that it
6934376eb1SArnaud Pouliquen          is about to be shut down.
7034376eb1SArnaud Pouliquen          Unidirectional channel:
7134376eb1SArnaud Pouliquen            - from local to remote, where ACK from the remote means that it is
7234376eb1SArnaud Pouliquen              ready for shutdown
7334376eb1SArnaud Pouliquen    minItems: 1
7434376eb1SArnaud Pouliquen    maxItems: 3
7534376eb1SArnaud Pouliquen
7634376eb1SArnaud Pouliquen  mbox-names:
7734376eb1SArnaud Pouliquen    items:
7834376eb1SArnaud Pouliquen      - const: vq0
7934376eb1SArnaud Pouliquen      - const: vq1
8034376eb1SArnaud Pouliquen      - const: shutdown
8134376eb1SArnaud Pouliquen    minItems: 1
8234376eb1SArnaud Pouliquen    maxItems: 3
8334376eb1SArnaud Pouliquen
8434376eb1SArnaud Pouliquen  memory-region:
8534376eb1SArnaud Pouliquen    description:
8634376eb1SArnaud Pouliquen      List of phandles to the reserved memory regions associated with the
8734376eb1SArnaud Pouliquen      remoteproc device. This is variable and describes the memories shared with
8834376eb1SArnaud Pouliquen      the remote processor (e.g. remoteproc firmware and carveouts, rpmsg
8934376eb1SArnaud Pouliquen      vrings, ...).
9034376eb1SArnaud Pouliquen      (see ../reserved-memory/reserved-memory.txt)
9134376eb1SArnaud Pouliquen
9234376eb1SArnaud Pouliquen  st,syscfg-pdds:
9334376eb1SArnaud Pouliquen    allOf:
9434376eb1SArnaud Pouliquen      - $ref: "/schemas/types.yaml#/definitions/phandle-array"
9534376eb1SArnaud Pouliquen    description: |
9634376eb1SArnaud Pouliquen      Reference to the system configuration which holds the remote
9734376eb1SArnaud Pouliquen        1st cell: phandle to syscon block
9834376eb1SArnaud Pouliquen        2nd cell: register offset containing the deep sleep setting
9934376eb1SArnaud Pouliquen        3rd cell: register bitmask for the deep sleep bit
10034376eb1SArnaud Pouliquen    maxItems: 1
10134376eb1SArnaud Pouliquen
10234376eb1SArnaud Pouliquen  st,auto-boot:
10334376eb1SArnaud Pouliquen    $ref: /schemas/types.yaml#/definitions/flag
10434376eb1SArnaud Pouliquen    description:
10534376eb1SArnaud Pouliquen      If defined, when remoteproc is probed, it loads the default firmware and
10634376eb1SArnaud Pouliquen      starts the remote processor.
10734376eb1SArnaud Pouliquen
10834376eb1SArnaud Pouliquenrequired:
10934376eb1SArnaud Pouliquen  - compatible
11034376eb1SArnaud Pouliquen  - reg
11134376eb1SArnaud Pouliquen  - resets
11234376eb1SArnaud Pouliquen  - st,syscfg-holdboot
11334376eb1SArnaud Pouliquen  - st,syscfg-tz
11434376eb1SArnaud Pouliquen
11534376eb1SArnaud PouliquenadditionalProperties: false
11634376eb1SArnaud Pouliquen
11734376eb1SArnaud Pouliquenexamples:
11834376eb1SArnaud Pouliquen  - |
11934376eb1SArnaud Pouliquen    #include <dt-bindings/reset/stm32mp1-resets.h>
12034376eb1SArnaud Pouliquen    m4_rproc: m4@10000000 {
12134376eb1SArnaud Pouliquen      compatible = "st,stm32mp1-m4";
12234376eb1SArnaud Pouliquen      reg = <0x10000000 0x40000>,
12334376eb1SArnaud Pouliquen            <0x30000000 0x40000>,
12434376eb1SArnaud Pouliquen            <0x38000000 0x10000>;
12534376eb1SArnaud Pouliquen      resets = <&rcc MCU_R>;
12634376eb1SArnaud Pouliquen      st,syscfg-holdboot = <&rcc 0x10C 0x1>;
12734376eb1SArnaud Pouliquen      st,syscfg-tz = <&rcc 0x000 0x1>;
12834376eb1SArnaud Pouliquen    };
12934376eb1SArnaud Pouliquen
13034376eb1SArnaud Pouliquen...
131