Commit ab7eff24 authored by Kurt Kanzenbach's avatar Kurt Kanzenbach Committed by Florian Fainelli
Browse files

dt-bindings: net: dsa: b53: Add YAML bindings



Convert the b53 DSA device tree bindings to YAML in order to allow
for automatic checking and such.

Reviewed-by: default avatarRob Herring <robh@kernel.org>
Suggested-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
Signed-off-by: default avatarKurt Kanzenbach <kurt@kmk-computers.de>
parent 51e40c25
Loading
Loading
Loading
Loading
+0 −149
Original line number Diff line number Diff line
Broadcom BCM53xx Ethernet switches
==================================

Required properties:

- compatible: For external switch chips, compatible string must be exactly one
  of: "brcm,bcm5325"
      "brcm,bcm53115"
      "brcm,bcm53125"
      "brcm,bcm53128"
      "brcm,bcm5365"
      "brcm,bcm5395"
      "brcm,bcm5389"
      "brcm,bcm5397"
      "brcm,bcm5398"

  For the BCM11360 SoC, must be:
      "brcm,bcm11360-srab" and the mandatory "brcm,cygnus-srab" string

  For the BCM5310x SoCs with an integrated switch, must be one of:
      "brcm,bcm53010-srab"
      "brcm,bcm53011-srab"
      "brcm,bcm53012-srab"
      "brcm,bcm53018-srab"
      "brcm,bcm53019-srab" and the mandatory "brcm,bcm5301x-srab" string

  For the BCM5831X/BCM1140x SoCs with an integrated switch, must be one of:
      "brcm,bcm11404-srab"
      "brcm,bcm11407-srab"
      "brcm,bcm11409-srab"
      "brcm,bcm58310-srab"
      "brcm,bcm58311-srab"
      "brcm,bcm58313-srab" and the mandatory "brcm,omega-srab" string

  For the BCM585xx/586XX/88312 SoCs with an integrated switch, must be one of:
      "brcm,bcm58522-srab"
      "brcm,bcm58523-srab"
      "brcm,bcm58525-srab"
      "brcm,bcm58622-srab"
      "brcm,bcm58623-srab"
      "brcm,bcm58625-srab"
      "brcm,bcm88312-srab" and the mandatory "brcm,nsp-srab string

  For the BCM63xx/33xx SoCs with an integrated switch, must be one of:
      "brcm,bcm3384-switch"
      "brcm,bcm6328-switch"
      "brcm,bcm6368-switch" and the mandatory "brcm,bcm63xx-switch"

Required properties for BCM585xx/586xx/88312 SoCs:

 - reg: a total of 3 register base addresses, the first one must be the
   Switch Register Access block base, the second is the port 5/4 mux
   configuration register and the third one is the SGMII configuration
   and status register base address.

 - interrupts: a total of 13 interrupts must be specified, in the following
   order: port 0-5, 7-8 link status change, then the integrated PHY interrupt,
   then the timestamping interrupt and the sleep timer interrupts for ports
   5,7,8.

Optional properties for BCM585xx/586xx/88312 SoCs:

  - reg-names: a total of 3 names matching the 3 base register address, must
    be in the following order:
	"srab"
	"mux_config"
	"sgmii_config"

  - interrupt-names: a total of 13 names matching the 13 interrupts specified
    must be in the following order:
	"link_state_p0"
	"link_state_p1"
	"link_state_p2"
	"link_state_p3"
	"link_state_p4"
	"link_state_p5"
	"link_state_p7"
	"link_state_p8"
	"phy"
	"ts"
	"imp_sleep_timer_p5"
	"imp_sleep_timer_p7"
	"imp_sleep_timer_p8"

See Documentation/devicetree/bindings/net/dsa/dsa.txt for a list of additional
required and optional properties.

Examples:

Ethernet switch connected via MDIO to the host, CPU port wired to eth0:

	eth0: ethernet@10001000 {
		compatible = "brcm,unimac";
		reg = <0x10001000 0x1000>;

		fixed-link {
			speed = <1000>;
			full-duplex;
		};
	};

	mdio0: mdio@10000000 {
		compatible = "brcm,unimac-mdio";
		#address-cells = <1>;
		#size-cells = <0>;

		switch0: ethernet-switch@1e {
			compatible = "brcm,bcm53125";
			reg = <30>;
			#address-cells = <1>;
			#size-cells = <0>;

			ports {
				#address-cells = <1>;
				#size-cells = <0>;

				port0@0 {
					reg = <0>;
					label = "lan1";
				};

				port1@1 {
					reg = <1>;
					label = "lan2";
				};

				port5@5 {
					reg = <5>;
					label = "cable-modem";
					fixed-link {
						speed = <1000>;
						full-duplex;
					};
					phy-mode = "rgmii-txid";
				};

				port8@8 {
					reg = <8>;
					label = "cpu";
					fixed-link {
						speed = <1000>;
						full-duplex;
					};
					phy-mode = "rgmii-txid";
					ethernet = <&eth0>;
				};
			};
		};
	};
+249 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/dsa/brcm,b53.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom BCM53xx Ethernet switches

allOf:
  - $ref: dsa.yaml#

maintainers:
  - Florian Fainelli <f.fainelli@gmail.com>

description:
  Broadcom BCM53xx Ethernet switches

properties:
  compatible:
    oneOf:
      - const: brcm,bcm5325
      - const: brcm,bcm53115
      - const: brcm,bcm53125
      - const: brcm,bcm53128
      - const: brcm,bcm5365
      - const: brcm,bcm5395
      - const: brcm,bcm5389
      - const: brcm,bcm5397
      - const: brcm,bcm5398
      - items:
          - const: brcm,bcm11360-srab
          - const: brcm,cygnus-srab
      - items:
          - enum:
              - brcm,bcm53010-srab
              - brcm,bcm53011-srab
              - brcm,bcm53012-srab
              - brcm,bcm53018-srab
              - brcm,bcm53019-srab
          - const: brcm,bcm5301x-srab
      - items:
          - enum:
              - brcm,bcm11404-srab
              - brcm,bcm11407-srab
              - brcm,bcm11409-srab
              - brcm,bcm58310-srab
              - brcm,bcm58311-srab
              - brcm,bcm58313-srab
          - const: brcm,omega-srab
      - items:
          - enum:
              - brcm,bcm58522-srab
              - brcm,bcm58523-srab
              - brcm,bcm58525-srab
              - brcm,bcm58622-srab
              - brcm,bcm58623-srab
              - brcm,bcm58625-srab
              - brcm,bcm88312-srab
          - const: brcm,nsp-srab
      - items:
          - enum:
              - brcm,bcm3384-switch
              - brcm,bcm6328-switch
              - brcm,bcm6368-switch
          - const: brcm,bcm63xx-switch

required:
  - compatible
  - reg

# BCM585xx/586xx/88312 SoCs
if:
  properties:
    compatible:
      contains:
        enum:
          - brcm,bcm58522-srab
          - brcm,bcm58523-srab
          - brcm,bcm58525-srab
          - brcm,bcm58622-srab
          - brcm,bcm58623-srab
          - brcm,bcm58625-srab
          - brcm,bcm88312-srab
then:
  properties:
    reg:
      minItems: 3
      maxItems: 3
    reg-names:
      items:
        - const: srab
        - const: mux_config
        - const: sgmii_config
    interrupts:
      minItems: 13
      maxItems: 13
    interrupt-names:
      items:
        - const: link_state_p0
        - const: link_state_p1
        - const: link_state_p2
        - const: link_state_p3
        - const: link_state_p4
        - const: link_state_p5
        - const: link_state_p7
        - const: link_state_p8
        - const: phy
        - const: ts
        - const: imp_sleep_timer_p5
        - const: imp_sleep_timer_p7
        - const: imp_sleep_timer_p8
  required:
    - interrupts
else:
  properties:
    reg:
      maxItems: 1

unevaluatedProperties: false

examples:
  - |
    mdio {
        #address-cells = <1>;
        #size-cells = <0>;

        ethernet-switch@1e {
            compatible = "brcm,bcm53125";
            reg = <30>;

            ethernet-ports {
                #address-cells = <1>;
                #size-cells = <0>;

                port@0 {
                    reg = <0>;
                    label = "lan1";
                };

                port@1 {
                    reg = <1>;
                    label = "lan2";
                };

                port@5 {
                    reg = <5>;
                    label = "cable-modem";
                    phy-mode = "rgmii-txid";
                    fixed-link {
                        speed = <1000>;
                        full-duplex;
                    };
                };

                port@8 {
                    reg = <8>;
                    label = "cpu";
                    phy-mode = "rgmii-txid";
                    ethernet = <&eth0>;
                    fixed-link {
                        speed = <1000>;
                        full-duplex;
                    };
                };
            };
        };
    };
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    axi {
        #address-cells = <1>;
        #size-cells = <1>;

        switch@36000 {
            compatible = "brcm,bcm58623-srab", "brcm,nsp-srab";
            reg = <0x36000 0x1000>,
                  <0x3f308 0x8>,
                  <0x3f410 0xc>;
            reg-names = "srab", "mux_config", "sgmii_config";
            interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
                         <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
            interrupt-names = "link_state_p0",
                              "link_state_p1",
                              "link_state_p2",
                              "link_state_p3",
                              "link_state_p4",
                              "link_state_p5",
                              "link_state_p7",
                              "link_state_p8",
                              "phy",
                              "ts",
                              "imp_sleep_timer_p5",
                              "imp_sleep_timer_p7",
                              "imp_sleep_timer_p8";

            ethernet-ports {
                #address-cells = <1>;
                #size-cells = <0>;

                port@0 {
                    label = "port0";
                    reg = <0>;
                };

                port@1 {
                    label = "port1";
                    reg = <1>;
                };

                port@2 {
                    label = "port2";
                    reg = <2>;
                };

                port@3 {
                    label = "port3";
                    reg = <3>;
                };

                port@4 {
                    label = "port4";
                    reg = <4>;
                };

                port@8 {
                    ethernet = <&amac2>;
                    label = "cpu";
                    reg = <8>;
                    fixed-link {
                        speed = <1000>;
                        full-duplex;
                    };
                };
            };
        };
    };
+1 −1
Original line number Diff line number Diff line
@@ -3380,7 +3380,7 @@ M: Florian Fainelli <f.fainelli@gmail.com>
L:	netdev@vger.kernel.org
L:	openwrt-devel@lists.openwrt.org (subscribers-only)
S:	Supported
F:	Documentation/devicetree/bindings/net/dsa/b53.txt
F:	Documentation/devicetree/bindings/net/dsa/brcm,b53.yaml
F:	drivers/net/dsa/b53/*
F:	include/linux/platform_data/b53.h