Re: [RFC 8/9] dt-bindings: serial: meson-uart: convert to yaml

Rob Herring
2019-08-01T15:15:05Z

On Thu, Aug 1, 2019 at 7:56 AM Neil Armstrong <narmstrong@baylibre.com> wrote:
>
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> ---
> .../bindings/serial/amlogic,meson-uart.txt | 38 ----------
> .../bindings/serial/amlogic,meson-uart.yaml | 75 +++++++++++++++++++
> 2 files changed, 75 insertions(+), 38 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/serial/amlogic,meson-uart.txt
> create mode 100644 Documentation/devicetree/bindings/serial/amlogic,meson-uart.yaml
>
> diff --git a/Documentation/devicetree/bindings/serial/amlogic,meson-uart.txt b/Documentation/devicetree/bindings/serial/amlogic,meson-uart.txt
> deleted file mode 100644
> index c06c045126fc..000000000000
> --- a/Documentation/devicetree/bindings/serial/amlogic,meson-uart.txt
> +++ /dev/null
> @@ -1,38 +0,0 @@
> -Amlogic Meson SoC UART Serial Interface
> -=======================================
> -
> -The Amlogic Meson SoC UART Serial Interface is present on a large range
> -of SoCs, and can be present either in the "Always-On" power domain or the
> -"Everything-Else" power domain.
> -
> -The particularity of the "Always-On" Serial Interface is that the hardware
> -is active since power-on and does not need any clock gating and is usable
> -as very early serial console.
> -
> -Required properties:
> -- compatible : compatible: value should be different for each SoC family as :
> - - Meson6 : "amlogic,meson6-uart"
> - - Meson8 : "amlogic,meson8-uart"
> - - Meson8b : "amlogic,meson8b-uart"
> - - GX (GXBB, GXL, GXM) : "amlogic,meson-gx-uart"
> - eventually followed by : "amlogic,meson-ao-uart" if this UART interface
> - is in the "Always-On" power domain.
> -- reg : offset and length of the register set for the device.
> -- interrupts : identifier to the device interrupt
> -- clocks : a list of phandle + clock-specifier pairs, one for each
> - entry in clock names.
> -- clock-names :
> - * "xtal" for external xtal clock identifier
> - * "pclk" for the bus core clock, either the clk81 clock or the gate clock
> - * "baud" for the source of the baudrate generator, can be either the xtal
> - or the pclk.
> -
> -e.g.
> -uart_A: serial@84c0 {
> - compatible = "amlogic,meson-gx-uart";
> - reg = <0x0 0x84c0 0x0 0x14>;
> - interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
> - /* Use xtal as baud rate clock source */
> - clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
> - clock-names = "xtal", "pclk", "baud";
> -};
> diff --git a/Documentation/devicetree/bindings/serial/amlogic,meson-uart.yaml b/Documentation/devicetree/bindings/serial/amlogic,meson-uart.yaml
> new file mode 100644
> index 000000000000..e150e3504fa0
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/serial/amlogic,meson-uart.yaml
> @@ -0,0 +1,75 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +# Copyright 2019 BayLibre, SAS
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/serial/amlogic,meson-uart.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: Amlogic Meson SoC UART Serial Interface
> +
> +maintainers:
> + - Neil Armstrong <narmstrong@baylibre.com>
> +
> +description: |
> + The Amlogic Meson SoC UART Serial Interface is present on a large range
> + of SoCs, and can be present either in the "Always-On" power domain or the
> + "Everything-Else" power domain.
> +
> + The particularity of the "Always-On" Serial Interface is that the hardware
> + is active since power-on and does not need any clock gating and is usable
> + as very early serial console.
> +
> +properties:
> + compatible:
> + oneOf:
> + - description: Allways-on power domain UART controller
> + items:
> + - enum:
> + - amlogic,meson6-uart
> + - amlogic,meson8-uart
> + - amlogic,meson8b-uart
> + - amlogic,meson-gx-uart
> + - const: amlogic,meson-ao-uart
> + - description: Everything-Else power domain UART controller
> + enum:
> + - amlogic,meson6-uart
> + - amlogic,meson8-uart
> + - amlogic,meson8b-uart
> + - amlogic,meson-gx-uart
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> + clocks:
> + minItems: 3
> + maxItems: 3

Should list out what each clock is.

items:
- description: external xtal clock identifier
- description: the bus core clock, either the clk81 clock or the gate clock
- description: the source of the baudrate generator, can be either
the xtal or the pclk

This makes minItems/maxItems implicit.

> +
> + clock-names:
> + description: |
> + "xtal" for external xtal clock identifier
> + "pclk" for the bus core clock, either the clk81 clock or the gate clock
> + "baud" for the source of the baudrate generator, can be either the xtal
> + or the pclk.

Then this description can be dropped.

> + items:
> + - const: xtal
> + - const: pclk
> + - const: baud
> +
> +required:
> + - compatible
> + - reg
> + - clocks
> + - clock-names

interrupts?

If the old binding was wrong, it's fine to fix here. Just mention what
you're fixing in the commit message.

> +
> +examples:
> + - |
> + serial@84c0 {
> + compatible = "amlogic,meson-gx-uart";
> + reg = <0x84c0 0x14>;
> + interrupts = <26>;
> + clocks = <&xtal>, <&pclk>, <&xtal>;
> + clock-names = "xtal", "pclk", "baud";
> + };
> --
> 2.22.0
>