Skip to content

Commit

Permalink
dt-bindings: net: add generic ethernet-switch
Browse files Browse the repository at this point in the history
The dsa.yaml bindings had references that can apply to non-dsa switches. To
prevent duplication of this information, keep the dsa-specific information
inside dsa.yaml and move the remaining generic information to the newly
created ethernet-switch.yaml.

Signed-off-by: Colin Foster <colin.foster@in-advantage.com>
Suggested-by: Vladimir Oltean <olteanv@gmail.com>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Colin Foster authored and David S. Miller committed Jan 16, 2023
1 parent 000bd2a commit 7f5bccc
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 29 deletions.
31 changes: 2 additions & 29 deletions Documentation/devicetree/bindings/net/dsa/dsa.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,9 @@ description:

select: false

properties:
$nodename:
pattern: "^(ethernet-)?switch(@.*)?$"
$ref: /schemas/net/ethernet-switch.yaml#

properties:
dsa,member:
minItems: 2
maxItems: 2
Expand All @@ -32,32 +31,6 @@ properties:
(single device hanging off a CPU port) must not specify this property
$ref: /schemas/types.yaml#/definitions/uint32-array

patternProperties:
"^(ethernet-)?ports$":
type: object
properties:
'#address-cells':
const: 1
'#size-cells':
const: 0

unevaluatedProperties: false

patternProperties:
"^(ethernet-)?port@[0-9]+$":
type: object
description: Ethernet switch ports

$ref: dsa-port.yaml#

additionalProperties: true

oneOf:
- required:
- ports
- required:
- ethernet-ports

additionalProperties: true

$defs:
Expand Down
66 changes: 66 additions & 0 deletions Documentation/devicetree/bindings/net/ethernet-switch.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/ethernet-switch.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Generic Ethernet Switch

maintainers:
- Andrew Lunn <andrew@lunn.ch>
- Florian Fainelli <f.fainelli@gmail.com>
- Vladimir Oltean <olteanv@gmail.com>

description:
Ethernet switches are multi-port Ethernet controllers. Each port has
its own number and is represented as its own Ethernet controller.
The minimum required functionality is to pass packets to software.
They may or may not be able to forward packets automonously between
ports.

select: false

properties:
$nodename:
pattern: "^(ethernet-)?switch(@.*)?$"

patternProperties:
"^(ethernet-)?ports$":
type: object
unevaluatedProperties: false

properties:
'#address-cells':
const: 1
'#size-cells':
const: 0

patternProperties:
"^(ethernet-)?port@[0-9]+$":
type: object
description: Ethernet switch ports

$ref: ethernet-controller.yaml#

additionalProperties: true

oneOf:
- required:
- ports
- required:
- ethernet-ports

additionalProperties: true

$defs:
base:
description: An ethernet switch without any extra port properties
$ref: '#/'

patternProperties:
"^(ethernet-)?port@[0-9]+$":
description: Ethernet switch ports
$ref: ethernet-controller.yaml#
unevaluatedProperties: false

...
1 change: 1 addition & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -14543,6 +14543,7 @@ M: Florian Fainelli <f.fainelli@gmail.com>
M: Vladimir Oltean <olteanv@gmail.com>
S: Maintained
F: Documentation/devicetree/bindings/net/dsa/
F: Documentation/devicetree/bindings/net/ethernet-switch.yaml
F: drivers/net/dsa/
F: include/linux/dsa/
F: include/linux/platform_data/dsa.h
Expand Down

0 comments on commit 7f5bccc

Please sign in to comment.