dt-bindings: remoteproc: convert stm32-rproc to json-schema

Convert the STM32 remoteproc bindings to DT schema format using
json-schema

Signed-off-by: Arnaud Pouliquen <arnaud.pouliquen@st.com>
[robh: Drop mbox-consumer.yaml reference]
Signed-off-by: Rob Herring <robh@kernel.org>
This commit is contained in:
Arnaud Pouliquen 2019-11-21 10:52:25 +01:00 committed by Rob Herring
parent 4360bf7244
commit 34376eb1b0
2 changed files with 128 additions and 63 deletions

View File

@ -0,0 +1,128 @@
# 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@st.com>
- Arnaud Pouliquen <arnaud.pouliquen@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:
allOf:
- $ref: "/schemas/types.yaml#/definitions/phandle-array"
description: remote processor reset hold boot
- Phandle of syscon block.
- The offset of the hold boot setting register.
- The field mask of the hold boot.
maxItems: 1
st,syscfg-tz:
allOf:
- $ref: "/schemas/types.yaml#/definitions/phandle-array"
description:
Reference to the system configuration which holds the RCC trust zone mode
- Phandle of syscon block.
- The offset of the RCC trust zone mode register.
- The field mask of the RCC trust zone mode.
maxItems: 1
interrupts:
description: Should contain the WWDG1 watchdog reset interrupt
maxItems: 1
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
minItems: 1
maxItems: 3
mbox-names:
items:
- const: vq0
- const: vq1
- const: shutdown
minItems: 1
maxItems: 3
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:
allOf:
- $ref: "/schemas/types.yaml#/definitions/phandle-array"
description: |
Reference to the system configuration which holds the remote
1st cell: phandle to syscon block
2nd cell: register offset containing the deep sleep setting
3rd cell: register bitmask for the deep sleep bit
maxItems: 1
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>;
};
...

View File

@ -1,63 +0,0 @@
STMicroelectronics STM32 Remoteproc
-----------------------------------
This document defines the binding for the remoteproc component that loads and
boots firmwares on the ST32MP family chipset.
Required properties:
- compatible: Must be "st,stm32mp1-m4"
- reg: Address ranges of the RETRAM and MCU SRAM memories used by the
remote processor.
- resets: Reference to a reset controller asserting the remote processor.
- st,syscfg-holdboot: Reference to the system configuration which holds the
remote processor reset hold boot
1st cell: phandle of syscon block
2nd cell: register offset containing the hold boot setting
3rd cell: register bitmask for the hold boot field
- st,syscfg-tz: Reference to the system configuration which holds the RCC trust
zone mode
1st cell: phandle to syscon block
2nd cell: register offset containing the RCC trust zone mode setting
3rd cell: register bitmask for the RCC trust zone mode bit
Optional properties:
- interrupts: Should contain the watchdog interrupt
- mboxes: This property is required only if the rpmsg/virtio functionality
is used. List of phandle and mailbox channel specifiers:
- 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
- a channel (b) working the opposite direction of channel (a)
- 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
- mbox-names: This property is required if the mboxes property is used.
- must be "vq0" for channel (a)
- must be "vq1" for channel (b)
- must be "shutdown" for channel (c)
- memory-region: 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 (eg: remoteproc
firmware and carveouts, rpmsg vrings, ...).
(see ../reserved-memory/reserved-memory.txt)
- st,syscfg-pdds: Reference to the system configuration which holds the remote
processor deep sleep setting
1st cell: phandle to syscon block
2nd cell: register offset containing the deep sleep setting
3rd cell: register bitmask for the deep sleep bit
- st,auto-boot: If defined, when remoteproc is probed, it loads the default
firmware and starts the remote processor.
Example:
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>;
};