[PATCH v3 4/8] dt-bindings: net: Convert GENET binding to YAML
Rob Herring
robh at kernel.org
Wed Dec 8 11:32:16 PST 2021
On Mon, Dec 06, 2021 at 10:00:45AM -0800, Florian Fainelli wrote:
> Convert the GENET binding to YAML, leveraging brcm,unimac-mdio.yaml and
> the standard ethernet-controller.yaml files.
>
> Signed-off-by: Florian Fainelli <f.fainelli at gmail.com>
> ---
> .../devicetree/bindings/net/brcm,bcmgenet.txt | 125 ---------------
> .../bindings/net/brcm,bcmgenet.yaml | 145 ++++++++++++++++++
> MAINTAINERS | 2 +-
> 3 files changed, 146 insertions(+), 126 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/net/brcm,bcmgenet.txt
> create mode 100644 Documentation/devicetree/bindings/net/brcm,bcmgenet.yaml
>
> diff --git a/Documentation/devicetree/bindings/net/brcm,bcmgenet.txt b/Documentation/devicetree/bindings/net/brcm,bcmgenet.txt
> deleted file mode 100644
> index 0b5994fba35f..000000000000
> --- a/Documentation/devicetree/bindings/net/brcm,bcmgenet.txt
> +++ /dev/null
> @@ -1,125 +0,0 @@
> -* Broadcom BCM7xxx Ethernet Controller (GENET)
> -
> -Required properties:
> -- compatible: should contain one of "brcm,genet-v1", "brcm,genet-v2",
> - "brcm,genet-v3", "brcm,genet-v4", "brcm,genet-v5", "brcm,bcm2711-genet-v5" or
> - "brcm,bcm7712-genet-v5".
> -- reg: address and length of the register set for the device
> -- interrupts and/or interrupts-extended: must be two cells, the first cell
> - is the general purpose interrupt line, while the second cell is the
> - interrupt for the ring RX and TX queues operating in ring mode. An
> - optional third interrupt cell for Wake-on-LAN can be specified.
> - See Documentation/devicetree/bindings/interrupt-controller/interrupts.txt
> - for information on the property specifics.
> -- phy-mode: see ethernet.txt file in the same directory
> -- #address-cells: should be 1
> -- #size-cells: should be 1
> -
> -Optional properties:
> -- clocks: When provided, must be two phandles to the functional clocks nodes
> - of the GENET block. The first phandle is the main GENET clock used during
> - normal operation, while the second phandle is the Wake-on-LAN clock.
> -- clock-names: When provided, names of the functional clock phandles, first
> - name should be "enet" and second should be "enet-wol".
> -
> -- phy-handle: See ethernet.txt file in the same directory; used to describe
> - configurations where a PHY (internal or external) is used.
> -
> -- fixed-link: When the GENET interface is connected to a MoCA hardware block or
> - when operating in a RGMII to RGMII type of connection, or when the MDIO bus is
> - voluntarily disabled, this property should be used to describe the "fixed link".
> - See Documentation/devicetree/bindings/net/fixed-link.txt for information on
> - the property specifics
> -
> -Required child nodes:
> -
> -- mdio bus node: this node should always be present regardless of the PHY
> - configuration of the GENET instance
> -
> -MDIO bus node required properties:
> -
> -- compatible: should contain one of "brcm,genet-mdio-v1", "brcm,genet-mdio-v2"
> - "brcm,genet-mdio-v3", "brcm,genet-mdio-v4", "brcm,genet-mdio-v5", the version
> - has to match the parent node compatible property (e.g: brcm,genet-v4 pairs
> - with brcm,genet-mdio-v4)
> -- reg: address and length relative to the parent node base register address
> -- #address-cells: address cell for MDIO bus addressing, should be 1
> -- #size-cells: size of the cells for MDIO bus addressing, should be 0
> -
> -Ethernet PHY node properties:
> -
> -See Documentation/devicetree/bindings/net/phy.txt for the list of required and
> -optional properties.
> -
> -Internal Gigabit PHY example:
> -
> -ethernet at f0b60000 {
> - phy-mode = "internal";
> - phy-handle = <&phy1>;
> - mac-address = [ 00 10 18 36 23 1a ];
> - compatible = "brcm,genet-v4";
> - #address-cells = <0x1>;
> - #size-cells = <0x1>;
> - reg = <0xf0b60000 0xfc4c>;
> - interrupts = <0x0 0x14 0x0>, <0x0 0x15 0x0>;
> -
> - mdio at e14 {
> - compatible = "brcm,genet-mdio-v4";
> - #address-cells = <0x1>;
> - #size-cells = <0x0>;
> - reg = <0xe14 0x8>;
> -
> - phy1: ethernet-phy at 1 {
> - max-speed = <1000>;
> - reg = <0x1>;
> - compatible = "ethernet-phy-ieee802.3-c22";
> - };
> - };
> -};
> -
> -MoCA interface / MAC to MAC example:
> -
> -ethernet at f0b80000 {
> - phy-mode = "moca";
> - fixed-link = <1 0 1000 0 0>;
> - mac-address = [ 00 10 18 36 24 1a ];
> - compatible = "brcm,genet-v4";
> - #address-cells = <0x1>;
> - #size-cells = <0x1>;
> - reg = <0xf0b80000 0xfc4c>;
> - interrupts = <0x0 0x16 0x0>, <0x0 0x17 0x0>;
> -
> - mdio at e14 {
> - compatible = "brcm,genet-mdio-v4";
> - #address-cells = <0x1>;
> - #size-cells = <0x0>;
> - reg = <0xe14 0x8>;
> - };
> -};
> -
> -
> -External MDIO-connected Gigabit PHY/switch:
> -
> -ethernet at f0ba0000 {
> - phy-mode = "rgmii";
> - phy-handle = <&phy0>;
> - mac-address = [ 00 10 18 36 26 1a ];
> - compatible = "brcm,genet-v4";
> - #address-cells = <0x1>;
> - #size-cells = <0x1>;
> - reg = <0xf0ba0000 0xfc4c>;
> - interrupts = <0x0 0x18 0x0>, <0x0 0x19 0x0>;
> -
> - mdio at e14 {
> - compatible = "brcm,genet-mdio-v4";
> - #address-cells = <0x1>;
> - #size-cells = <0x0>;
> - reg = <0xe14 0x8>;
> -
> - phy0: ethernet-phy at 0 {
> - max-speed = <1000>;
> - reg = <0x0>;
> - compatible = "ethernet-phy-ieee802.3-c22";
> - };
> - };
> -};
> diff --git a/Documentation/devicetree/bindings/net/brcm,bcmgenet.yaml b/Documentation/devicetree/bindings/net/brcm,bcmgenet.yaml
> new file mode 100644
> index 000000000000..ba9a6d156815
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/net/brcm,bcmgenet.yaml
> @@ -0,0 +1,145 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/net/brcm,bcmgenet.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Broadcom BCM7xxx Ethernet Controller (GENET) binding
> +
> +maintainers:
> + - Doug Berger <opendmb at gmail.com>
> + - Florian Fainelli <f.fainelli at gmail.com>
> +
> +properties:
> + compatible:
> + enum:
> + - brcm,genet-v1
> + - brcm,genet-v2
> + - brcm,genet-v3
> + - brcm,genet-v4
> + - brcm,genet-v5
> + - brcm,bcm2711-genet-v5
> + - brcm,bcm7712-genet-v5
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + minItems: 2
> + items:
> + - description: general purpose interrupt line
> + - description: RX and TX rings interrupt line
> + - description: Wake-on-LAN interrupt line
> +
> +
> + clocks:
> + minItems: 1
> + items:
> + - description: main clock
> + - description: EEE clock
> + - description: Wake-on-LAN clock
> +
> + clock-names:
> + minItems: 1
> + items:
> + - const: enet
> + - const: enet-eee
> + - const: enet-wol
> +
> + "#address-cells":
> + const: 1
> +
> + "#size-cells":
> + const: 1
> +
> +patternProperties:
> + "^mdio@[0-9a-f]+$":
> + type: object
> + $ref: "brcm,unimac-mdio.yaml"
> +
> + description:
> + GENET internal UniMAC MDIO bus
> +
> +required:
> + - reg
> + - interrupts
> + - phy-mode
> + - "#address-cells"
> + - "#size-cells"
> +
> +allOf:
> + - $ref: ethernet-controller.yaml
> +
> +additionalProperties: true
This should be 'unevaluatedProperties: false'. I'll fixup while
applying.
> +
> +examples:
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> +
> + - |
> + ethernet at f0b60000 {
> + phy-mode = "internal";
> + phy-handle = <&phy1>;
> + mac-address = [ 00 10 18 36 23 1a ];
> + compatible = "brcm,genet-v4";
> + reg = <0xf0b60000 0xfc4c>;
> + interrupts = <0x0 0x14 0x0>, <0x0 0x15 0x0>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + mdio0: mdio at e14 {
> + compatible = "brcm,genet-mdio-v4";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + reg = <0xe14 0x8>;
> +
> + phy1: ethernet-phy at 1 {
> + max-speed = <1000>;
> + reg = <1>;
> + compatible = "ethernet-phy-ieee802.3-c22";
> + };
> + };
> + };
> +
> + - |
> + ethernet at f0b80000 {
> + phy-mode = "moca";
> + fixed-link = <1 0 1000 0 0>;
> + mac-address = [ 00 10 18 36 24 1a ];
> + compatible = "brcm,genet-v4";
> + #address-cells = <1>;
> + #size-cells = <1>;
> + reg = <0xf0b80000 0xfc4c>;
> + interrupts = <0x0 0x16 0x0>, <0x0 0x17 0x0>;
> +
> + mdio1: mdio at e14 {
> + compatible = "brcm,genet-mdio-v4";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + reg = <0xe14 0x8>;
> + };
> + };
> +
> + - |
> + ethernet at f0ba0000 {
> + phy-mode = "rgmii";
> + phy-handle = <&phy0>;
> + mac-address = [ 00 10 18 36 26 1a ];
> + compatible = "brcm,genet-v4";
> + #address-cells = <1>;
> + #size-cells = <1>;
> + reg = <0xf0ba0000 0xfc4c>;
> + interrupts = <0x0 0x18 0x0>, <0x0 0x19 0x0>;
> +
> + mdio2: mdio at e14 {
> + compatible = "brcm,genet-mdio-v4";
> + #address-cells = <1>;
> + #size-cells = <0>;
> + reg = <0xe14 0x8>;
> +
> + phy0: ethernet-phy at 0 {
> + max-speed = <1000>;
> + reg = <0>;
> + compatible = "ethernet-phy-ieee802.3-c22";
> + };
> + };
> + };
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 7a2345ce8521..5e1064c23f41 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -3819,7 +3819,7 @@ M: Florian Fainelli <f.fainelli at gmail.com>
> L: bcm-kernel-feedback-list at broadcom.com
> L: netdev at vger.kernel.org
> S: Supported
> -F: Documentation/devicetree/bindings/net/brcm,bcmgenet.txt
> +F: Documentation/devicetree/bindings/net/brcm,bcmgenet.yaml
> F: Documentation/devicetree/bindings/net/brcm,unimac-mdio.yaml
> F: drivers/net/ethernet/broadcom/genet/
> F: drivers/net/ethernet/broadcom/unimac.h
> --
> 2.25.1
>
>
More information about the linux-arm-kernel
mailing list