Re: [PATCH] dt-bindings: net: cdns,macb: Convert to json-schema

From: Rob Herring
Date: Wed Dec 01 2021 - 18:25:38 EST


On Fri, Nov 26, 2021 at 12:57:00PM +0100, Geert Uytterhoeven wrote:
> Convert the Cadence MACB/GEM Ethernet controller Device Tree binding
> documentation to json-schema.
>
> Re-add "cdns,gem" (removed in commit a217d8711da5c87f ("dt-bindings:
> Remove PicoXcell bindings")) as there are active users on non-PicoXcell
> platforms.
> Add missing "ether_clk" clock.
> Add missing properties.
>
> Signed-off-by: Geert Uytterhoeven <geert@xxxxxxxxxxxxxx>
> ---
> .../devicetree/bindings/net/cdns,macb.yaml | 162 ++++++++++++++++++
> .../devicetree/bindings/net/macb.txt | 60 -------
> 2 files changed, 162 insertions(+), 60 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/net/cdns,macb.yaml
> delete mode 100644 Documentation/devicetree/bindings/net/macb.txt
>
> diff --git a/Documentation/devicetree/bindings/net/cdns,macb.yaml b/Documentation/devicetree/bindings/net/cdns,macb.yaml
> new file mode 100644
> index 0000000000000000..c7d00350430aa503
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/cdns,macb.yaml
> @@ -0,0 +1,162 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/cdns,macb.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Cadence MACB/GEM Ethernet controller
> +
> +maintainers:
> + - Nicolas Ferre <nicolas.ferre@xxxxxxxxxxxxx>
> + - Claudiu Beznea <claudiu.beznea@xxxxxxxxxxxxx>
> +
> +properties:
> + compatible:
> + oneOf:
> + - items:
> + - enum:
> + - cdns,at91rm9200-emac # Atmel at91rm9200 SoC
> + - const: cdns,emac # Generic
> +
> + - items:
> + - enum:
> + - cdns,zynq-gem # Xilinx Zynq-7xxx SoC
> + - cdns,zynqmp-gem # Xilinx Zynq Ultrascale+ MPSoC
> + - const: cdns,gem # Generic
> +
> + - items:
> + - enum:
> + - cdns,at91sam9260-macb # Atmel at91sam9 SoCs
> + - cdns,sam9x60-macb # Microchip sam9x60 SoC
> + - const: cdns,macb # Generic
> +
> + - items:
> + - enum:
> + - atmel,sama5d3-macb # 10/100Mbit IP on Atmel sama5d3 SoCs
> + - enum:
> + - cdns,at91sam9260-macb # Atmel at91sam9 SoCs.
> + - const: cdns,macb # Generic
> +
> + - enum:
> + - atmel,sama5d29-gem # GEM XL IP (10/100) on Atmel sama5d29 SoCs
> + - atmel,sama5d2-gem # GEM IP (10/100) on Atmel sama5d2 SoCs
> + - atmel,sama5d3-gem # Gigabit IP on Atmel sama5d3 SoCs
> + - atmel,sama5d4-gem # GEM IP (10/100) on Atmel sama5d4 SoCs
> + - cdns,at32ap7000-macb # Other 10/100 usage or use the generic form
> + - cdns,np4-macb # NP4 SoC devices
> + - microchip,sama7g5-emac # Microchip SAMA7G5 ethernet interface
> + - microchip,sama7g5-gem # Microchip SAMA7G5 gigabit ethernet interface
> + - sifive,fu540-c000-gem # SiFive FU540-C000 SoC
> + - cdns,emac # Generic
> + - cdns,gem # Generic
> + - cdns,macb # Generic
> +
> + reg:
> + minItems: 1
> + items:
> + - description: Basic register set
> + - description: GEMGXL Management block registers on SiFive FU540-C000 SoC
> +
> + interrupts:
> + minItems: 1
> + maxItems: 8
> + description: One interrupt per available hardware queue
> +
> + clocks:
> + minItems: 1
> + maxItems: 5
> +
> + clock-names:
> + minItems: 1
> + items:
> + - enum: [ ether_clk, hclk, pclk ]
> + - enum: [ hclk, pclk ]
> + - const: tx_clk
> + - enum: [ rx_clk, tsu_clk ]
> + - const: tsu_clk
> +
> + local-mac-address: true
> +
> + phy-mode: true
> +
> + phy-handle: true
> +
> + fixed-link: true
> +
> + iommus:
> + maxItems: 1
> +
> + power-domains:
> + maxItems: 1
> +
> + '#address-cells':
> + const: 1
> +
> + '#size-cells':
> + const: 0
> +
> + '#stream-id-cells':
> + const: 1

I can't figure out why you have this here. I'll drop it while applying.

> +
> + mdio:
> + type: object
> + description:
> + Node containing PHY children. If this node is not present, then PHYs will
> + be direct children.
> +
> +patternProperties:
> + "^ethernet-phy@[0-9a-f]$":
> + type: object
> + $ref: ethernet-phy.yaml#
> +
> + properties:
> + reset-gpios: true
> +
> + magic-packet:
> + description:
> + Indicates that the hardware supports waking up via magic packet.
> +
> + unevaluatedProperties: false
> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> + - clocks
> + - clock-names
> + - phy-mode
> +
> +allOf:
> + - $ref: ethernet-controller.yaml#
> +
> + - if:
> + not:
> + properties:
> + compatible:
> + contains:
> + const: sifive,fu540-c000-gem
> + then:
> + properties:
> + reg:
> + maxItems: 1
> +
> +unevaluatedProperties: false
> +
> +examples:
> + - |
> + macb0: ethernet@fffc4000 {
> + compatible = "cdns,at32ap7000-macb";
> + reg = <0xfffc4000 0x4000>;
> + interrupts = <21>;
> + phy-mode = "rmii";
> + local-mac-address = [3a 0e 03 04 05 06];
> + clock-names = "pclk", "hclk", "tx_clk";
> + clocks = <&clkc 30>, <&clkc 30>, <&clkc 13>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + ethernet-phy@1 {
> + reg = <0x1>;
> + reset-gpios = <&pioE 6 1>;
> + };
> + };
> diff --git a/Documentation/devicetree/bindings/net/macb.txt b/Documentation/devicetree/bindings/net/macb.txt
> deleted file mode 100644
> index a1b06fd1962e4d93..0000000000000000
> --- a/Documentation/devicetree/bindings/net/macb.txt
> +++ /dev/null
> @@ -1,60 +0,0 @@
> -* Cadence MACB/GEM Ethernet controller
> -
> -Required properties:
> -- compatible: Should be "cdns,[<chip>-]{macb|gem}"
> - Use "cdns,at91rm9200-emac" Atmel at91rm9200 SoC.
> - Use "cdns,at91sam9260-macb" for Atmel at91sam9 SoCs.
> - Use "cdns,sam9x60-macb" for Microchip sam9x60 SoC.
> - Use "cdns,np4-macb" for NP4 SoC devices.
> - Use "cdns,at32ap7000-macb" for other 10/100 usage or use the generic form: "cdns,macb".
> - Use "atmel,sama5d2-gem" for the GEM IP (10/100) available on Atmel sama5d2 SoCs.
> - Use "atmel,sama5d29-gem" for GEM XL IP (10/100) available on Atmel sama5d29 SoCs.
> - Use "atmel,sama5d3-macb" for the 10/100Mbit IP available on Atmel sama5d3 SoCs.
> - Use "atmel,sama5d3-gem" for the Gigabit IP available on Atmel sama5d3 SoCs.
> - Use "atmel,sama5d4-gem" for the GEM IP (10/100) available on Atmel sama5d4 SoCs.
> - Use "cdns,zynq-gem" Xilinx Zynq-7xxx SoC.
> - Use "cdns,zynqmp-gem" for Zynq Ultrascale+ MPSoC.
> - Use "sifive,fu540-c000-gem" for SiFive FU540-C000 SoC.
> - Use "microchip,sama7g5-emac" for Microchip SAMA7G5 ethernet interface.
> - Use "microchip,sama7g5-gem" for Microchip SAMA7G5 gigabit ethernet interface.
> - Or the generic form: "cdns,emac".
> -- reg: Address and length of the register set for the device
> - For "sifive,fu540-c000-gem", second range is required to specify the
> - address and length of the registers for GEMGXL Management block.
> -- interrupts: Should contain macb interrupt
> -- phy-mode: See ethernet.txt file in the same directory.
> -- clock-names: Tuple listing input clock names.
> - Required elements: 'pclk', 'hclk'
> - Optional elements: 'tx_clk'
> - Optional elements: 'rx_clk' applies to cdns,zynqmp-gem
> - Optional elements: 'tsu_clk'
> -- clocks: Phandles to input clocks.
> -
> -Optional properties:
> -- mdio: node containing PHY children. If this node is not present, then PHYs
> - will be direct children.
> -
> -The MAC address will be determined using the optional properties
> -defined in ethernet.txt.
> -
> -Optional properties for PHY child node:
> -- reset-gpios : Should specify the gpio for phy reset
> -- magic-packet : If present, indicates that the hardware supports waking
> - up via magic packet.
> -- phy-handle : see ethernet.txt file in the same directory
> -
> -Examples:
> -
> - macb0: ethernet@fffc4000 {
> - compatible = "cdns,at32ap7000-macb";
> - reg = <0xfffc4000 0x4000>;
> - interrupts = <21>;
> - phy-mode = "rmii";
> - local-mac-address = [3a 0e 03 04 05 06];
> - clock-names = "pclk", "hclk", "tx_clk";
> - clocks = <&clkc 30>, <&clkc 30>, <&clkc 13>;
> - ethernet-phy@1 {
> - reg = <0x1>;
> - reset-gpios = <&pioE 6 1>;
> - };
> - };
> --
> 2.25.1
>
>