Skip to content

Commit

Permalink
dt-bindings: net: convert Broadcom Starfighter 2 binding to the json-…
Browse files Browse the repository at this point in the history
…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: Rafał Miłecki <rafal@milecki.pl>
Link: https://lore.kernel.org/r/20210106213202.17459-1-zajec5@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  • Loading branch information
Rafał Miłecki authored and Jakub Kicinski committed Jan 10, 2021
1 parent 4988896 commit c7ee3a4
Show file tree
Hide file tree
Showing 2 changed files with 175 additions and 98 deletions.
101 changes: 3 additions & 98 deletions Documentation/devicetree/bindings/net/brcm,bcm7445-switch-v4.0.txt
Original file line number Diff line number Diff line change
@@ -1,108 +1,13 @@
* 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 {
Expand Down Expand Up @@ -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";
Expand Down
172 changes: 172 additions & 0 deletions Documentation/devicetree/bindings/net/dsa/brcm,sf2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
# 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>;
};
};
};

0 comments on commit c7ee3a4

Please sign in to comment.