Message ID | 20211126172739.329098-2-clement.leger@bootlin.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | Add FDMA support on ocelot switch driver | expand |
Context | Check | Description |
---|---|---|
netdev/tree_selection | success | Clearly marked for net-next |
netdev/apply | fail | Patch does not apply to net-next |
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... > + > +required: > + - compatible > + - reg > + - reg-names > + - interrupts > + - interrupt-names > + - ethernet-ports
Le Fri, 26 Nov 2021 17:50:05 +0000, Vladimir Oltean <vladimir.oltean@nxp.com> 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: + required: + - reg + - phy-mode + + oneOf: + - required: + - phy-handle + - required: + - fixed-link Does it looks good to you ? Thanks, > > > + > > +required: > > + - compatible > > + - reg > > + - reg-names > > + - interrupts > > + - interrupt-names > > + - ethernet-port
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@nxp.com> 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/
On Fri, Nov 26, 2021 at 06:27:36PM +0100, Clément Léger wrote: > Convert existing txt bindings to yaml format. Additionally, add bindings > for FDMA support and phy-mode property. Whenever i see 'additionally' i think a patch is doing two things, and it should probably be two or more patches. Do these needs to be combined into one patch? Andrew
Le Fri, 26 Nov 2021 23:41:26 +0100, Andrew Lunn <andrew@lunn.ch> a écrit : > On Fri, Nov 26, 2021 at 06:27:36PM +0100, Clément Léger wrote: > > Convert existing txt bindings to yaml format. Additionally, add bindings > > for FDMA support and phy-mode property. > > Whenever i see 'additionally' i think a patch is doing two things, and > it should probably be two or more patches. Do these needs to be > combined into one patch? > > Andrew Hi Andrew, You are right, actually, only the FDMA support should be in this patch. I'll resubmit a series only for this support.
diff --git a/Documentation/devicetree/bindings/net/mscc,vsc7514-switch.yaml b/Documentation/devicetree/bindings/net/mscc,vsc7514-switch.yaml new file mode 100644 index 000000000000..112f3ee98412 --- /dev/null +++ b/Documentation/devicetree/bindings/net/mscc,vsc7514-switch.yaml @@ -0,0 +1,191 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/net/mscc,vsc7514-switch.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Microchip VSC7514 Ethernet switch controller + +maintainers: + - Vladimir Oltean <vladimir.oltean@nxp.com> + - Claudiu Manoil <claudiu.manoil@nxp.com> + - Alexandre Belloni <alexandre.belloni@bootlin.com> + +description: | + Bindings for the Microchip VSC7514 switch driver + + The VSC7514 switch driver handles up to 11 ports and can inject/extract + packets using CPU. Additionally, PTP is supported as well as FDMA for faster + packet extraction/injection. + +properties: + $nodename: + pattern: "^switch@[0-9a-f]+$" + + compatible: + const: mscc,vsc7514-switch + + reg: + items: + - description: system target + - description: rewriter target + - description: qs target + - description: PTP target + - description: Port0 target + - description: Port1 target + - description: Port2 target + - description: Port3 target + - description: Port4 target + - description: Port5 target + - description: Port6 target + - description: Port7 target + - description: Port8 target + - description: Port9 target + - description: Port10 target + - description: QSystem target + - description: Analyzer target + - description: S0 target + - description: S1 target + - description: S2 target + - description: fdma target + + reg-names: + items: + - const: sys + - const: rew + - const: qs + - const: ptp + - const: port0 + - const: port1 + - const: port2 + - const: port3 + - const: port4 + - const: port5 + - const: port6 + - const: port7 + - const: port8 + - const: port9 + - const: port10 + - const: qsys + - const: ana + - const: s0 + - const: s1 + - const: s2 + - const: fdma + + interrupts: + minItems: 1 + items: + - description: PTP ready + - description: register based extraction + - description: frame dma based extraction + + interrupt-names: + minItems: 1 + items: + - const: ptp_rdy + - const: xtr + - const: fdma + + 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 + +required: + - compatible + - reg + - reg-names + - interrupts + - interrupt-names + - ethernet-ports + +additionalProperties: false + +examples: + - | + switch@1010000 { + compatible = "mscc,vsc7514-switch"; + reg = <0x1010000 0x10000>, + <0x1030000 0x10000>, + <0x1080000 0x100>, + <0x10e0000 0x10000>, + <0x11e0000 0x100>, + <0x11f0000 0x100>, + <0x1200000 0x100>, + <0x1210000 0x100>, + <0x1220000 0x100>, + <0x1230000 0x100>, + <0x1240000 0x100>, + <0x1250000 0x100>, + <0x1260000 0x100>, + <0x1270000 0x100>, + <0x1280000 0x100>, + <0x1800000 0x80000>, + <0x1880000 0x10000>, + <0x1040000 0x10000>, + <0x1050000 0x10000>, + <0x1060000 0x10000>, + <0x1a0 0x1c4>; + reg-names = "sys", "rew", "qs", "ptp", "port0", "port1", + "port2", "port3", "port4", "port5", "port6", + "port7", "port8", "port9", "port10", "qsys", + "ana", "s0", "s1", "s2", "fdma"; + interrupts = <18 21 16>; + interrupt-names = "ptp_rdy", "xtr", "fdma"; + + ethernet-ports { + #address-cells = <1>; + #size-cells = <0>; + + port0: port@0 { + reg = <0>; + phy-handle = <&phy0>; + phy-mode = "internal"; + }; + port1: port@1 { + reg = <1>; + phy-handle = <&phy1>; + phy-mode = "internal"; + }; + }; + }; + +... diff --git a/Documentation/devicetree/bindings/net/mscc-ocelot.txt b/Documentation/devicetree/bindings/net/mscc-ocelot.txt deleted file mode 100644 index 3b6290b45ce5..000000000000 --- a/Documentation/devicetree/bindings/net/mscc-ocelot.txt +++ /dev/null @@ -1,83 +0,0 @@ -Microsemi Ocelot network Switch -=============================== - -The Microsemi Ocelot network switch can be found on Microsemi SoCs (VSC7513, -VSC7514) - -Required properties: -- compatible: Should be "mscc,vsc7514-switch" -- reg: Must contain an (offset, length) pair of the register set for each - entry in reg-names. -- reg-names: Must include the following entries: - - "sys" - - "rew" - - "qs" - - "ptp" (optional due to backward compatibility) - - "qsys" - - "ana" - - "portX" with X from 0 to the number of last port index available on that - switch -- interrupts: Should contain the switch interrupts for frame extraction, - frame injection and PTP ready. -- interrupt-names: should contain the interrupt names: "xtr", "inj". Can contain - "ptp_rdy" which is optional due to backward compatibility. -- ethernet-ports: A container for child nodes representing switch ports. - -The ethernet-ports container has the following properties - -Required properties: - -- #address-cells: Must be 1 -- #size-cells: Must be 0 - -Each port node must have the following mandatory properties: -- reg: Describes the port address in the switch - -Port nodes may also contain the following optional standardised -properties, described in binding documents: - -- phy-handle: Phandle to a PHY on an MDIO bus. See - Documentation/devicetree/bindings/net/ethernet.txt for details. - -Example: - - switch@1010000 { - compatible = "mscc,vsc7514-switch"; - reg = <0x1010000 0x10000>, - <0x1030000 0x10000>, - <0x1080000 0x100>, - <0x10e0000 0x10000>, - <0x11e0000 0x100>, - <0x11f0000 0x100>, - <0x1200000 0x100>, - <0x1210000 0x100>, - <0x1220000 0x100>, - <0x1230000 0x100>, - <0x1240000 0x100>, - <0x1250000 0x100>, - <0x1260000 0x100>, - <0x1270000 0x100>, - <0x1280000 0x100>, - <0x1800000 0x80000>, - <0x1880000 0x10000>; - reg-names = "sys", "rew", "qs", "ptp", "port0", "port1", - "port2", "port3", "port4", "port5", "port6", - "port7", "port8", "port9", "port10", "qsys", - "ana"; - interrupts = <18 21 22>; - interrupt-names = "ptp_rdy", "xtr", "inj"; - - ethernet-ports { - #address-cells = <1>; - #size-cells = <0>; - - port0: port@0 { - reg = <0>; - phy-handle = <&phy0>; - }; - port1: port@1 { - reg = <1>; - phy-handle = <&phy1>; - }; - }; - };
Convert existing txt bindings to yaml format. Additionally, add bindings for FDMA support and phy-mode property. Signed-off-by: Clément Léger <clement.leger@bootlin.com> --- .../bindings/net/mscc,vsc7514-switch.yaml | 191 ++++++++++++++++++ .../devicetree/bindings/net/mscc-ocelot.txt | 83 -------- 2 files changed, 191 insertions(+), 83 deletions(-) create mode 100644 Documentation/devicetree/bindings/net/mscc,vsc7514-switch.yaml delete mode 100644 Documentation/devicetree/bindings/net/mscc-ocelot.txt