Message ID | 20221104045204.746124-5-colin.foster@in-advantage.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | dt-binding preparation for ocelot switches | expand |
On Thu, Nov 03, 2022 at 09:52:02PM -0700, Colin Foster wrote: > diff --git a/Documentation/devicetree/bindings/net/ethernet-switch.yaml b/Documentation/devicetree/bindings/net/ethernet-switch.yaml > new file mode 100644 > index 000000000000..fbaac536673d > --- /dev/null > +++ b/Documentation/devicetree/bindings/net/ethernet-switch.yaml > @@ -0,0 +1,49 @@ > +# 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: Ethernet Switch Device Tree Bindings I vaguely remember Krzysztof saying during other reviews that "Device Tree Bindings" in the title is superfluous. Suggest: "Generic Ethernet Switch". > + > +maintainers: > + - Andrew Lunn <andrew@lunn.ch> > + - Florian Fainelli <f.fainelli@gmail.com> > + - Vivien Didelot <vivien.didelot@gmail.com> > + > +description: > + This binding represents Ethernet Switches which have a dedicated CPU > + port. That port is usually connected to an Ethernet Controller of the > + SoC. Such setups are typical for embedded devices. This description was taken from the DSA switch schema and not adapted for the generic Ethernet switch schema. Suggest instead: 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 autonomously between ports. (this should also clarify if it's okay to reference ethernet-switch.yaml from drivers which don't speak switchdev, which I believe it is). (my suggestion is open to further comments for improvement) > + > +select: false > + > +properties: > + $nodename: > + pattern: "^(ethernet-)?switch(@.*)?$" > + > +patternProperties: > + "^(ethernet-)?ports$": > + type: object > + properties: > + '#address-cells': > + const: 1 > + '#size-cells': > + const: 0 > + > + patternProperties: > + "^(ethernet-)?port@[0-9]+$": > + type: object > + description: Ethernet switch ports > + > + $ref: /schemas/net/dsa/dsa-port.yaml# I wonder if you actually meant dsa-port.yaml and not ethernet-controller.yaml? > + > +oneOf: > + - required: > + - ports > + - required: > + - ethernet-ports > + > +additionalProperties: true > + > +... > diff --git a/MAINTAINERS b/MAINTAINERS > index 3106a9f0567a..3b6c3989c419 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -14326,6 +14326,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 > -- > 2.25.1 >
diff --git a/Documentation/devicetree/bindings/net/dsa/dsa.yaml b/Documentation/devicetree/bindings/net/dsa/dsa.yaml index af9010c4f069..2290a9d32b21 100644 --- a/Documentation/devicetree/bindings/net/dsa/dsa.yaml +++ b/Documentation/devicetree/bindings/net/dsa/dsa.yaml @@ -18,6 +18,8 @@ description: select: false +$ref: "/schemas/net/ethernet-switch.yaml#" + properties: $nodename: pattern: "^(ethernet-)?switch(@.*)?$" @@ -32,32 +34,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 - - additionalProperties: true - - patternProperties: - "^(ethernet-)?port@[0-9]+$": - type: object - description: Ethernet switch ports - - $ref: dsa-port.yaml# - - unevaluatedProperties: true - -oneOf: - - required: - - ports - - required: - - ethernet-ports - additionalProperties: true ... diff --git a/Documentation/devicetree/bindings/net/ethernet-switch.yaml b/Documentation/devicetree/bindings/net/ethernet-switch.yaml new file mode 100644 index 000000000000..fbaac536673d --- /dev/null +++ b/Documentation/devicetree/bindings/net/ethernet-switch.yaml @@ -0,0 +1,49 @@ +# 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: Ethernet Switch Device Tree Bindings + +maintainers: + - Andrew Lunn <andrew@lunn.ch> + - Florian Fainelli <f.fainelli@gmail.com> + - Vivien Didelot <vivien.didelot@gmail.com> + +description: + This binding represents Ethernet Switches which have a dedicated CPU + port. That port is usually connected to an Ethernet Controller of the + SoC. Such setups are typical for embedded devices. + +select: false + +properties: + $nodename: + pattern: "^(ethernet-)?switch(@.*)?$" + +patternProperties: + "^(ethernet-)?ports$": + type: object + properties: + '#address-cells': + const: 1 + '#size-cells': + const: 0 + + patternProperties: + "^(ethernet-)?port@[0-9]+$": + type: object + description: Ethernet switch ports + + $ref: /schemas/net/dsa/dsa-port.yaml# + +oneOf: + - required: + - ports + - required: + - ethernet-ports + +additionalProperties: true + +... diff --git a/MAINTAINERS b/MAINTAINERS index 3106a9f0567a..3b6c3989c419 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -14326,6 +14326,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
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> --- v1 -> v2 * No net change, but deletions from dsa.yaml included the changes for "addionalProperties: true" under ports and "unevaluatedProperties: true" under port. --- .../devicetree/bindings/net/dsa/dsa.yaml | 28 +---------- .../bindings/net/ethernet-switch.yaml | 49 +++++++++++++++++++ MAINTAINERS | 1 + 3 files changed, 52 insertions(+), 26 deletions(-) create mode 100644 Documentation/devicetree/bindings/net/ethernet-switch.yaml