Files
linux/Documentation/devicetree/bindings/remoteproc/st,stm32-rproc.yaml
Rob Herring 39bd2b6a37 dt-bindings: Improve phandle-array schemas
The 'phandle-array' type is a bit ambiguous. It can be either just an
array of phandles or an array of phandles plus args. Many schemas for
phandle-array properties aren't clear in the schema which case applies
though the description usually describes it.

The array of phandles case boils down to needing:

items:
  maxItems: 1

The phandle plus args cases should typically take this form:

items:
  - items:
      - description: A phandle
      - description: 1st arg cell
      - description: 2nd arg cell

With this change, some examples need updating so that the bracketing of
property values matches the schema.

Signed-off-by: Rob Herring <robh@kernel.org>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Acked-by: Vinod Koul <vkoul@kernel.org>
Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
Acked-by: Georgi Djakov <djakov@kernel.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Acked-by: Mark Brown <broonie@kernel.org>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Acked-by: Stephen Boyd <sboyd@kernel.org>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: Marc Kleine-Budde <mkl@pengutronix.de>
Link: https://lore.kernel.org/r/20220119015038.2433585-1-robh@kernel.org
2022-02-04 09:43:42 -06:00

159 lines
4.7 KiB
YAML

# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/remoteproc/st,stm32-rproc.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"
title: STMicroelectronics STM32 remote processor controller bindings
description:
This document defines the binding for the remoteproc component that loads and
boots firmwares on the ST32MP family chipset.
maintainers:
- Fabien Dessenne <fabien.dessenne@foss.st.com>
- Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
properties:
compatible:
const: st,stm32mp1-m4
reg:
description:
Address ranges of the RETRAM and MCU SRAM memories used by the remote
processor.
maxItems: 3
resets:
maxItems: 1
st,syscfg-holdboot:
description: remote processor reset hold boot
$ref: "/schemas/types.yaml#/definitions/phandle-array"
items:
- items:
- description: Phandle of syscon block
- description: The offset of the hold boot setting register
- description: The field mask of the hold boot
st,syscfg-tz:
description:
Reference to the system configuration which holds the RCC trust zone mode
$ref: "/schemas/types.yaml#/definitions/phandle-array"
items:
- items:
- description: Phandle of syscon block
- description: FIXME
- description: FIXME
interrupts:
description: Should contain the WWDG1 watchdog reset interrupt
maxItems: 1
wakeup-source: true
mboxes:
description:
This property is required only if the rpmsg/virtio functionality is used.
items:
- description: |
A channel (a) used to communicate through virtqueues with the
remote proc.
Bi-directional channel:
- from local to remote = send message
- from remote to local = send message ack
- description: |
A channel (b) working the opposite direction of channel (a)
- description: |
A channel (c) used by the local proc to notify the remote proc that it
is about to be shut down.
Unidirectional channel:
- from local to remote, where ACK from the remote means that it is
ready for shutdown
- description: |
A channel (d) used by the local proc to notify the remote proc that it
has to stop interprocessor communnication.
Unidirectional channel:
- from local to remote, where ACK from the remote means that communnication
as been stopped on the remote side.
minItems: 1
mbox-names:
items:
- const: vq0
- const: vq1
- const: shutdown
- const: detach
minItems: 1
memory-region:
description:
List of phandles to the reserved memory regions associated with the
remoteproc device. This is variable and describes the memories shared with
the remote processor (e.g. remoteproc firmware and carveouts, rpmsg
vrings, ...).
(see ../reserved-memory/reserved-memory.txt)
st,syscfg-pdds:
$ref: "/schemas/types.yaml#/definitions/phandle-array"
description: |
Reference to the system configuration which holds the remote
items:
- items:
- description: Phandle of syscon block
- description: FIXME
- description: FIXME
st,syscfg-m4-state:
$ref: "/schemas/types.yaml#/definitions/phandle-array"
description: |
Reference to the tamp register which exposes the Cortex-M4 state.
items:
- items:
- description: Phandle of syscon block with the tamp register
- description: FIXME
- description: FIXME
st,syscfg-rsc-tbl:
$ref: "/schemas/types.yaml#/definitions/phandle-array"
description: |
Reference to the tamp register which references the Cortex-M4
resource table address.
items:
- items:
- description: Phandle of syscon block with the tamp register
- description: FIXME
- description: FIXME
st,auto-boot:
$ref: /schemas/types.yaml#/definitions/flag
description:
If defined, when remoteproc is probed, it loads the default firmware and
starts the remote processor.
required:
- compatible
- reg
- resets
- st,syscfg-holdboot
- st,syscfg-tz
additionalProperties: false
examples:
- |
#include <dt-bindings/reset/stm32mp1-resets.h>
m4_rproc: m4@10000000 {
compatible = "st,stm32mp1-m4";
reg = <0x10000000 0x40000>,
<0x30000000 0x40000>,
<0x38000000 0x10000>;
resets = <&rcc MCU_R>;
st,syscfg-holdboot = <&rcc 0x10C 0x1>;
st,syscfg-tz = <&rcc 0x000 0x1>;
st,syscfg-rsc-tbl = <&tamp 0x144 0xFFFFFFFF>;
st,syscfg-m4-state = <&tamp 0x148 0xFFFFFFFF>;
};
...