Commit c7ee3a40 authored by Rafał Miłecki's avatar Rafał Miłecki Committed by Jakub Kicinski
Browse files

dt-bindings: net: convert Broadcom Starfighter 2 binding to the json-schema



This helps validating DTS files. Only the current (not deprecated one)
binding was converted.

Minor changes:
1. Dropped dsa/dsa.txt references
2. Updated node name to match dsa.yaml requirement
3. Fixed 2 typos in examples

The new binding was validated using the dt_binding_check.

Signed-off-by: default avatarRafał Miłecki <rafal@milecki.pl>
Link: https://lore.kernel.org/r/20210106213202.17459-1-zajec5@gmail.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 49888961
Loading
Loading
Loading
Loading
+3 −98
Original line number Diff line number Diff line
* Broadcom Starfighter 2 integrated swich

Required properties:
See dsa/brcm,bcm7445-switch-v4.0.yaml for the documentation.

- compatible: should be one of
	"brcm,bcm7445-switch-v4.0"
	"brcm,bcm7278-switch-v4.0"
	"brcm,bcm7278-switch-v4.8"
- reg: addresses and length of the register sets for the device, must be 6
  pairs of register addresses and lengths
- interrupts: interrupts for the devices, must be two interrupts
- #address-cells: must be 1, see dsa/dsa.txt
- #size-cells: must be 0, see dsa/dsa.txt

Deprecated binding required properties:
*Deprecated* binding required properties:

- dsa,mii-bus: phandle to the MDIO bus controller, see dsa/dsa.txt
- dsa,ethernet: phandle to the CPU network interface controller, see dsa/dsa.txt
- #address-cells: must be 2, see dsa/dsa.txt

Subnodes:

The integrated switch subnode should be specified according to the binding
described in dsa/dsa.txt.

Optional properties:

- reg-names: litteral names for the device base register addresses, when present
  must be: "core", "reg", "intrl2_0", "intrl2_1", "fcb", "acb"

- interrupt-names: litternal names for the device interrupt lines, when present
  must be: "switch_0" and "switch_1"

- brcm,num-gphy: specify the maximum number of integrated gigabit PHYs in the
  switch

- brcm,num-rgmii-ports: specify the maximum number of RGMII interfaces supported
  by the switch

- brcm,fcb-pause-override: boolean property, if present indicates that the switch
  supports Failover Control Block pause override capability

- brcm,acb-packets-inflight: boolean property, if present indicates that the switch
  Admission Control Block supports reporting the number of packets in-flight in a
  switch queue

- resets: a single phandle and reset identifier pair. See
  Documentation/devicetree/bindings/reset/reset.txt for details.

- reset-names: If the "reset" property is specified, this property should have
  the value "switch" to denote the switch reset line.

- clocks: when provided, the first phandle is to the switch's main clock and
  is valid for both BCM7445 and BCM7278. The second phandle is only applicable
  to BCM7445 and is to support dividing the switch core clock.

- clock-names: when provided, the first phandle must be "sw_switch", and the
  second must be named "sw_switch_mdiv".

Port subnodes:

Optional properties:

- brcm,use-bcm-hdr: boolean property, if present, indicates that the switch
  port has Broadcom tags enabled (per-packet metadata)

Example:

switch_top@f0b00000 {
	compatible = "simple-bus";
	#size-cells = <1>;
	#address-cells = <1>;
	ranges = <0 0xf0b00000 0x40804>;

	ethernet_switch@0 {
		compatible = "brcm,bcm7445-switch-v4.0";
		#size-cells = <0>;
		#address-cells = <1>;
		reg = <0x0 0x40000
			0x40000 0x110
			0x40340 0x30
			0x40380 0x30
			0x40400 0x34
			0x40600 0x208>;
		reg-names = "core", "reg", intrl2_0", "intrl2_1",
			    "fcb, "acb";
		interrupts = <0 0x18 0
				0 0x19 0>;
		brcm,num-gphy = <1>;
		brcm,num-rgmii-ports = <2>;
		brcm,fcb-pause-override;
		brcm,acb-packets-inflight;

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

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

Example using the old DSA DeviceTree binding:

switch_top@f0b00000 {
@@ -132,7 +37,7 @@ switch_top@f0b00000 {
		switch@0 {
			reg = <0 0>;
			#size-cells = <0>;
			#address-cells <1>;
			#address-cells = <1>;

			port@0 {
				label = "gphy";
+172 −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,sf2.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Broadcom Starfighter 2 integrated swich

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

properties:
  compatible:
    items:
      - enum:
          - brcm,bcm7278-switch-v4.0
          - brcm,bcm7278-switch-v4.8
          - brcm,bcm7445-switch-v4.0

  reg:
    minItems: 6
    maxItems: 6

  reg-names:
    items:
      - const: core
      - const: reg
      - const: intrl2_0
      - const: intrl2_1
      - const: fcb
      - const: acb

  interrupts:
    minItems: 2
    maxItems: 2

  interrupt-names:
    items:
      - const: switch_0
      - const: switch_1

  resets:
    maxItems: 1

  reset-names:
    const: switch

  clocks:
    minItems: 1
    maxItems: 2
    items:
      - description: switch's main clock
      - description: dividing of the switch core clock

  clock-names:
    minItems: 1
    maxItems: 2
    items:
      - const: sw_switch
      - const: sw_switch_mdiv

  brcm,num-gphy:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: maximum number of integrated gigabit PHYs in the switch

  brcm,num-rgmii-ports:
    $ref: /schemas/types.yaml#/definitions/uint32
    description: maximum number of RGMII interfaces supported by the switch

  brcm,fcb-pause-override:
    description: if present indicates that the switch supports Failover Control
      Block pause override capability
    type: boolean

  brcm,acb-packets-inflight:
    description: if present indicates that the switch Admission Control Block
      supports reporting the number of packets in-flight in a switch queue
    type: boolean

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

  ports:
    type: object

    properties:
      brcm,use-bcm-hdr:
        description: if present, indicates that the switch port has Broadcom
          tags enabled (per-packet metadata)
        type: boolean

required:
  - reg
  - interrupts
  - "#address-cells"
  - "#size-cells"

allOf:
  - $ref: "dsa.yaml#"
  - if:
      properties:
        compatible:
          contains:
            enum:
              - brcm,bcm7278-switch-v4.0
              - brcm,bcm7278-switch-v4.8
    then:
      properties:
        clocks:
          minItems: 1
          maxItems: 1
        clock-names:
          minItems: 1
          maxItems: 1
      required:
        - clocks
        - clock-names
  - if:
      properties:
        compatible:
          contains:
            const: brcm,bcm7445-switch-v4.0
    then:
      properties:
        clocks:
          minItems: 2
          maxItems: 2
        clock-names:
          minItems: 2
          maxItems: 2
      required:
        - clocks
        - clock-names

additionalProperties: false

examples:
  - |
    switch@f0b00000 {
            compatible = "brcm,bcm7445-switch-v4.0";
            #address-cells = <1>;
            #size-cells = <0>;
            reg = <0xf0b00000 0x40000>,
                  <0xf0b40000 0x110>,
                  <0xf0b40340 0x30>,
                  <0xf0b40380 0x30>,
                  <0xf0b40400 0x34>,
                  <0xf0b40600 0x208>;
            reg-names = "core", "reg", "intrl2_0", "intrl2_1",
                        "fcb", "acb";
            interrupts = <0 0x18 0>,
                         <0 0x19 0>;
            clocks = <&sw_switch>, <&sw_switch_mdiv>;
            clock-names = "sw_switch", "sw_switch_mdiv";
            brcm,num-gphy = <1>;
            brcm,num-rgmii-ports = <2>;
            brcm,fcb-pause-override;
            brcm,acb-packets-inflight;

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

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