On Fri, Nov 26, 2021 at 07:00:55PM +0100, Clément Léger wrote: > Le Fri, 26 Nov 2021 17:50:05 +0000, > Vladimir Oltean <vladimir.oltean@xxxxxxx> a écrit : > > > On Fri, Nov 26, 2021 at 06:27:36PM +0100, Clément Léger wrote: > > > + ethernet-ports: > > > + type: object > > > + > > > + properties: > > > + '#address-cells': > > > + const: 1 > > > + '#size-cells': > > > + const: 0 > > > + > > > + additionalProperties: false > > > + > > > + patternProperties: > > > + "^port@[0-9a-f]+$": > > > + type: object > > > + description: Ethernet ports handled by the switch > > > + > > > + $ref: ethernet-controller.yaml# > > > + > > > + unevaluatedProperties: false > > > + > > > + properties: > > > + reg: > > > + description: Switch port number > > > + > > > + phy-handle: true > > > + > > > + phy-mode: true > > > + > > > + fixed-link: true > > > + > > > + mac-address: true > > > + > > > + required: > > > + - reg > > > + > > > + oneOf: > > > + - required: > > > + - phy-handle > > > + - phy-mode > > > + - required: > > > + - fixed-link > > > > Are you practically saying that a phy-mode would not be required with > > fixed-link? Because it still is... > > I tried to get it right by looking at a binding you probably know > (dsa.yaml), but none of them are using a oneOf property for these > properties so I tried to guess what was really required or not. I will > add the phy-mode property in the required field since it seems always > needed: So if it works without a phy-mode it is probably because of this in ocelot_port_phylink_create(): /* DT bindings of internal PHY ports are broken and don't * specify a phy-mode */ if (phy_mode == PHY_INTERFACE_MODE_NA) phy_mode = PHY_INTERFACE_MODE_INTERNAL; but yeah, remove that and try out a fixed-link with no phy-mode, see that you'll get an error. > > + required: > + - reg > + - phy-mode > + > + oneOf: > + - required: > + - phy-handle > + - required: > + - fixed-link Looks good to me. > > Does it looks good to you ? > > Thanks, > > > > > > + > > > +required: > > > + - compatible > > > + - reg > > > + - reg-names > > > + - interrupts > > > + - interrupt-names > > > + - ethernet-port > > > > -- > Clément Léger, > Embedded Linux and Kernel engineer at Bootlin > https://bootlin.com/