[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <YhfkSbn0aGWztr9K@robh.at.kernel.org>
Date: Thu, 24 Feb 2022 14:02:17 -0600
From: Rob Herring <robh@...nel.org>
To: Shubhrajyoti Datta <shubhrajyoti.datta@...inx.com>
Cc: devicetree@...r.kernel.org, git@...inx.com,
michal.simek@...inx.com, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v3] dt-bindings: mailbox: zynqmp_ipi: convert to yaml
On Fri, Feb 18, 2022 at 06:28:08PM +0530, Shubhrajyoti Datta wrote:
> Convert the ipi doc to yaml.
>
> Signed-off-by: Shubhrajyoti Datta <shubhrajyoti.datta@...inx.com>
> ---
> v2:
> Fix the warnings reported by Rob
> v3:
> Run dtbs_check
>
> .../mailbox/xlnx,zynqmp-ipi-mailbox.txt | 127 ------------------
> .../mailbox/xlnx,zynqmp-ipi-mailbox.yaml | 126 +++++++++++++++++
> 2 files changed, 126 insertions(+), 127 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.txt
> create mode 100644 Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.yaml
>
> diff --git a/Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.txt b/Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.txt
> deleted file mode 100644
> index ad76edccf881..000000000000
> --- a/Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.txt
> +++ /dev/null
> @@ -1,127 +0,0 @@
> -Xilinx IPI Mailbox Controller
> -========================================
> -
> -The Xilinx IPI(Inter Processor Interrupt) mailbox controller is to manage
> -messaging between two Xilinx Zynq UltraScale+ MPSoC IPI agents. Each IPI
> -agent owns registers used for notification and buffers for message.
> -
> - +-------------------------------------+
> - | Xilinx ZynqMP IPI Controller |
> - +-------------------------------------+
> - +--------------------------------------------------+
> -ATF | |
> - | |
> - | |
> - +--------------------------+ |
> - | |
> - | |
> - +--------------------------------------------------+
> - +------------------------------------------+
> - | +----------------+ +----------------+ |
> -Hardware | | IPI Agent | | IPI Buffers | |
> - | | Registers | | | |
> - | | | | | |
> - | +----------------+ +----------------+ |
> - | |
> - | Xilinx IPI Agent Block |
> - +------------------------------------------+
> -
> -
> -Controller Device Node:
> -===========================
> -Required properties:
> ---------------------
> -IPI agent node:
> -- compatible: Shall be: "xlnx,zynqmp-ipi-mailbox"
> -- interrupt-parent: Phandle for the interrupt controller
> -- interrupts: Interrupt information corresponding to the
> - interrupt-names property.
> -- xlnx,ipi-id: local Xilinx IPI agent ID
> -- #address-cells: number of address cells of internal IPI mailbox nodes
> -- #size-cells: number of size cells of internal IPI mailbox nodes
> -
> -Internal IPI mailbox node:
> -- reg: IPI buffers address ranges
> -- reg-names: Names of the reg resources. It should have:
> - * local_request_region
> - - IPI request msg buffer written by local and read
> - by remote
> - * local_response_region
> - - IPI response msg buffer written by local and read
> - by remote
> - * remote_request_region
> - - IPI request msg buffer written by remote and read
> - by local
> - * remote_response_region
> - - IPI response msg buffer written by remote and read
> - by local
> -- #mbox-cells: Shall be 1. It contains:
> - * tx(0) or rx(1) channel
> -- xlnx,ipi-id: remote Xilinx IPI agent ID of which the mailbox is
> - connected to.
> -
> -Optional properties:
> ---------------------
> -- method: The method of accessing the IPI agent registers.
> - Permitted values are: "smc" and "hvc". Default is
> - "smc".
> -
> -Client Device Node:
> -===========================
> -Required properties:
> ---------------------
> -- mboxes: Standard property to specify a mailbox
> - (See ./mailbox.txt)
> -- mbox-names: List of identifier strings for each mailbox
> - channel.
> -
> -Example:
> -===========================
> - zynqmp_ipi {
> - compatible = "xlnx,zynqmp-ipi-mailbox";
> - interrupt-parent = <&gic>;
> - interrupts = <0 29 4>;
> - xlnx,ipi-id = <0>;
> - #address-cells = <1>;
> - #size-cells = <1>;
> - ranges;
> -
> - /* APU<->RPU0 IPI mailbox controller */
> - ipi_mailbox_rpu0: mailbox@...90400 {
> - reg = <0xff990400 0x20>,
> - <0xff990420 0x20>,
> - <0xff990080 0x20>,
> - <0xff9900a0 0x20>;
> - reg-names = "local_request_region",
> - "local_response_region",
> - "remote_request_region",
> - "remote_response_region";
> - #mbox-cells = <1>;
> - xlnx,ipi-id = <1>;
> - };
> - /* APU<->RPU1 IPI mailbox controller */
> - ipi_mailbox_rpu1: mailbox@...90440 {
> - reg = <0xff990440 0x20>,
> - <0xff990460 0x20>,
> - <0xff990280 0x20>,
> - <0xff9902a0 0x20>;
> - reg-names = "local_request_region",
> - "local_response_region",
> - "remote_request_region",
> - "remote_response_region";
> - #mbox-cells = <1>;
> - xlnx,ipi-id = <2>;
> - };
> - };
> - rpu0 {
> - ...
> - mboxes = <&ipi_mailbox_rpu0 0>,
> - <&ipi_mailbox_rpu0 1>;
> - mbox-names = "tx", "rx";
> - };
> - rpu1 {
> - ...
> - mboxes = <&ipi_mailbox_rpu1 0>,
> - <&ipi_mailbox_rpu1 1>;
> - mbox-names = "tx", "rx";
> - };
> diff --git a/Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.yaml b/Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.yaml
> new file mode 100644
> index 000000000000..6d65448ae838
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mailbox/xlnx,zynqmp-ipi-mailbox.yaml
> @@ -0,0 +1,126 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/mailbox/xlnx,zynqmp-ipi-mailbox.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: Xilinx IPI(Inter Processor Interrupt) mailbox controller
> +
> +description: |
> + The Xilinx IPI(Inter Processor Interrupt) mailbox controller is to manage
> + messaging between two Xilinx Zynq UltraScale+ MPSoC IPI agents. Each IPI
> + agent owns registers used for notification and buffers for message.
> +
> + +-------------------------------------+
> + | Xilinx ZynqMP IPI Controller |
> + +-------------------------------------+
> + +--------------------------------------------------+
> + TF-A | |
> + | |
> + | |
> + +--------------------------+ |
> + | |
> + | |
> + +--------------------------------------------------+
Doesn't look like this is formatted correctly.
> + +------------------------------------------+
> + | +----------------+ +----------------+ |
> + Hardware | | IPI Agent | | IPI Buffers | |
> + | | Registers | | | |
> + | | | | | |
> + | +----------------+ +----------------+ |
> + | |
> + | Xilinx IPI Agent Block |
> + +------------------------------------------+
> +
> +maintainers:
> + - Shubhrajyoti Datta <shubhrajyoti.datta@...inx.com>
> +
> +properties:
> + compatible:
> + const: xlnx,zynqmp-ipi-mailbox
> +
> + method:
> + description: |
> + The method of calling the PM-API firmware layer.
> + Permitted values are.
> + - "smc" : SMC #0, following the SMCCC
> + - "hvc" : HVC #0, following the SMCCC
> + Default is smc.
All this can be expressed as a schema.
> +
> + '#address-cells':
> + const: 2
> +
> + '#size-cells':
> + const: 2
> +
> + xlnx,ipi-id:
> + allOf:
Don't need allOf.
> + - $ref: /schemas/types.yaml#/definitions/uint32
> + description:
> + Remote Xilinx IPI agent ID of which the mailbox is connected to.
> +
> + interrupts:
> + maxItems: 1
> +
> + child-node:
You have a child node called 'child-node'?
> + description: Internal ipi mailbox node
> + type: object # DT nodes are json objects
> + properties:
> + xlnx,ipi-id:
> + allOf:
Don't need allOf.
> + - $ref: /schemas/types.yaml#/definitions/uint32
> + description:
> + Remote Xilinx IPI agent ID of which the mailbox is connected to.
> +
> + "#mbox-cells":
> + const: 1
> + description:
> + It contains tx(0) or rx(1) channel IPI id number.
> +
> + reg:
> + maxItems: 4
> +
> + reg-names:
> + items:
> + - const: local_request_region
> + - const: local_response_region
> + - const: remote_request_region
> + - const: remote_response_region
> +
> +required:
> + - compatible
> + - interrupts
> + - '#address-cells'
> + - '#size-cells'
> +
> +additionalProperties: true
This is never correct to be true except for common, incomplete schemas.
> +
> +examples:
> + - |
> + zynqmp_ipi {
> + compatible = "xlnx,zynqmp-ipi-mailbox";
> + interrupts = <0 29 4>;
> + xlnx,ipi-id = <0>;
> + #address-cells = <2>;
> + #size-cells = <2>;
You dropped 'ranges'.
> +
> + ipi_mailbox_rpu0: mailbox@...905c0 {
> + reg = <0x0 0xff9905c0 0x0 0x20>,
> + <0x0 0xff9905e0 0x0 0x20>,
> + <0x0 0xff990e80 0x0 0x20>,
> + <0x0 0xff990ea0 0x0 0x20>;
> + reg-names = "local_request_region",
> + "local_response_region",
> + "remote_request_region",
> + "remote_response_region";
> + #mbox-cells = <1>;
> + xlnx,ipi-id = <4>;
> + };
> + };
> +
> + rpu0 {
> + mboxes = <&ipi_mailbox_rpu0 0>,
> + <&ipi_mailbox_rpu0 1>;
> + mbox-names = "tx", "rx";
> + };
> +...
> --
> 2.17.1
>
>
Powered by blists - more mailing lists