Re: [RFC 3/9] dt-bindings: spi: meson: convert to yaml

Rob Herring
2019-08-01T14:42:23Z

On Thu, Aug 1, 2019 at 7:56 AM Neil Armstrong <narmstrong@baylibre.com> wrote:
>
> Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
> ---
> .../bindings/spi/amlogic,meson-gx-spicc.yaml | 74 +++++++++++++++++++
> .../bindings/spi/amlogic,meson6-spifc.yaml | 57 ++++++++++++++
> .../devicetree/bindings/spi/spi-meson.txt | 55 --------------
> 3 files changed, 131 insertions(+), 55 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/spi/amlogic,meson-gx-spicc.yaml
> create mode 100644 Documentation/devicetree/bindings/spi/amlogic,meson6-spifc.yaml
> delete mode 100644 Documentation/devicetree/bindings/spi/spi-meson.txt
>
> diff --git a/Documentation/devicetree/bindings/spi/amlogic,meson-gx-spicc.yaml b/Documentation/devicetree/bindings/spi/amlogic,meson-gx-spicc.yaml
> new file mode 100644
> index 000000000000..6e2c41c730b5
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/spi/amlogic,meson-gx-spicc.yaml
> @@ -0,0 +1,74 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +# Copyright 2019 BayLibre, SAS
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/spi/amlogic,meson-gx-spicc.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: Amlogic Meson SPI Communication Controller
> +
> +maintainers:
> + - Neil Armstrong <narmstrong@baylibre.com>
> +
> +allOf:
> + - $ref: "spi-controller.yaml#"
> +
> +description: |
> + The Meson SPICC is a generic SPI controller for general purpose Full-Duplex
> + communications with dedicated 16 words RX/TX PIO FIFOs.
> +
> +properties:
> + compatible:
> + oneOf:
> + - description: SPICC controller on Amlogic GX and compatible SoCs
> + enum:
> + - amlogic,meson-gx-spicc
> + - description: SPICC controller on Amlogic AXG and compatible SoCs
> + enum:
> + - amlogic,meson-axg-spicc

'oneOf' results in vague error messages and can be avoided here. Plus
I don't think the descriptions add much as I could pretty much
generate the desc "<block> controller on <vendor> <soc> and compatible
SoCs" from <vendor>,<soc>-<block>.

Though, if you want to keep the description, do it as a comment:

enum:
- amlogic,meson-gx-spicc # SPICC controller on Amlogic GX and compatible SoCs
- amlogic,meson-axg-spicc # SPICC controller on Amlogic AXG and
compatible SoCs

> +
> + interrupts:
> + maxItems: 1
> +
> + reg:
> + maxItems: 1
> +
> + resets:
> + description: phandle of the internal reset line

Standard property, don't need a description unless there's something
special about this binding.

> + maxItems: 1
> +
> + clocks:
> + maxItems: 1
> +
> + clock-names:
> + description: input clock for the baud rate generator
> + items:
> + - const: core
> +

> + "#address-cells":
> + const: 1
> +
> + "#size-cells":
> + const: 0

These 2 can be dropped as they are covered by spi-controller.yaml.

> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> + - clocks
> + - clock-names
> + - "#address-cells"
> + - "#size-cells"
> +
> +examples:
> + - |
> + spi@c1108d80 {
> + compatible = "amlogic,meson-gx-spicc";
> + reg = <0xc1108d80 0x80>;
> + interrupts = <112>;
> + clocks = <&clk81>;
> + clock-names = "core";
> + #address-cells = <1>;
> + #size-cells = <0>;

Probably should add a slave node. Once I figure out how to always
build the examples with W=12, the lack of a chlid node will throw a
dtc warning.

> + };
> +
> diff --git a/Documentation/devicetree/bindings/spi/amlogic,meson6-spifc.yaml b/Documentation/devicetree/bindings/spi/amlogic,meson6-spifc.yaml
> new file mode 100644
> index 000000000000..5f34aed1ad40
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/spi/amlogic,meson6-spifc.yaml

Some of the same comments apply to this one.

> @@ -0,0 +1,57 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +# Copyright 2019 BayLibre, SAS
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/spi/amlogic,meson6-spifc.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: Amlogic Meson SPI Flash Controller
> +
> +maintainers:
> + - Neil Armstrong <narmstrong@baylibre.com>
> +
> +allOf:
> + - $ref: "spi-controller.yaml#"
> +
> +description: |
> + The Meson SPIFC is a controller optimized for communication with SPI
> + NOR memories, without DMA support and a 64-byte unified transmit /
> + receive buffer.
> +
> +properties:
> + compatible:
> + oneOf:
> + - enum:
> + - amlogic,meson6-spifc
> + - enum:
> + - amlogic,meson-gxbb-spifc

Drop the oneOf. A single enum is sufficient.

> +
> + reg:
> + maxItems: 1
> +
> + clocks:
> + maxItems: 1
> +
> + "#address-cells":
> + const: 1
> +
> + "#size-cells":
> + const: 0
> +
> +required:
> + - compatible
> + - reg
> + - clocks
> + - "#address-cells"
> + - "#size-cells"
> +
> +examples:
> + - |
> + spi@c1108c80 {
> + compatible = "amlogic,meson6-spifc";
> + reg = <0xc1108c80 0x80>;
> + clocks = <&clk81>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + };
> +