On Fri, Jul 10, 2020 at 11:06:18AM +0200, Kurt Kanzenbach wrote: > For future DSA drivers it makes sense to add a generic DSA yaml binding which > can be used then. This was created using the properties from dsa.txt. It > includes the ports and the dsa,member property. > > Suggested-by: Florian Fainelli <f.fainelli@xxxxxxxxx> > Signed-off-by: Kurt Kanzenbach <kurt@xxxxxxxxxxxxx> > --- > .../devicetree/bindings/net/dsa/dsa.yaml | 80 +++++++++++++++++++ > 1 file changed, 80 insertions(+) > create mode 100644 Documentation/devicetree/bindings/net/dsa/dsa.yaml > > diff --git a/Documentation/devicetree/bindings/net/dsa/dsa.yaml b/Documentation/devicetree/bindings/net/dsa/dsa.yaml > new file mode 100644 > index 000000000000..bec257231bf8 > --- /dev/null > +++ b/Documentation/devicetree/bindings/net/dsa/dsa.yaml > @@ -0,0 +1,80 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/net/dsa/dsa.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Distributed Switch Architecture Device Tree Bindings DSA is a Linuxism, right? > + > +maintainers: > + - Andrew Lunn <andrew@xxxxxxx> > + - Florian Fainelli <f.fainelli@xxxxxxxxx> > + - Vivien Didelot <vivien.didelot@xxxxxxxxx> > + > +description: > + Switches are true Linux devices and can be probed by any means. Once probed, Bindings are OS independent. > + they register to the DSA framework, passing a node pointer. This node is > + expected to fulfil the following binding, and may contain additional > + properties as required by the device it is embedded within. Describe what type of h/w should use this binding. > + > +properties: > + $nodename: > + pattern: "^switch(@.*)?$" > + > + dsa,member: > + minItems: 2 > + maxItems: 2 > + description: > + A two element list indicates which DSA cluster, and position within the > + cluster a switch takes. <0 0> is cluster 0, switch 0. <0 1> is cluster 0, > + switch 1. <1 0> is cluster 1, switch 0. A switch not part of any cluster > + (single device hanging off a CPU port) must not specify this property > + $ref: /schemas/types.yaml#/definitions/uint32-array > + > + ports: > + type: object > + properties: > + '#address-cells': > + const: 1 > + '#size-cells': > + const: 0 > + > + patternProperties: > + "^port@[0-9]+$": As ports and port are OF graph nodes, it would be better if we standardized on a different name for these. I think we've used 'ethernet-port' some. > + type: object > + description: DSA switch ports > + > + allOf: > + - $ref: ../ethernet-controller.yaml# How does this and 'ethernet' both apply? > + > + properties: > + reg: > + description: Port number > + > + label: > + description: > + Describes the label associated with this port, which will become > + the netdev name > + $ref: /schemas/types.yaml#definitions/string > + > + link: > + description: > + Should be a list of phandles to other switch's DSA port. This > + port is used as the outgoing port towards the phandle ports. The > + full routing information must be given, not just the one hop > + routes to neighbouring switches > + $ref: /schemas/types.yaml#definitions/phandle-array > + > + ethernet: > + description: > + Should be a phandle to a valid Ethernet device node. This host > + device is what the switch port is connected to > + $ref: /schemas/types.yaml#definitions/phandle > + > + required: > + - reg > + > +required: > + - ports > + > +... > -- > 2.20.1 >