From: Horatiu Vultur <horatiu.vultur@microchip.com> To: <davem@davemloft.net>, <kuba@kernel.org>, <robh+dt@kernel.org>, <andrew@lunn.ch>, <linux@armlinux.org.uk>, <f.fainelli@gmail.com>, <alexandre.belloni@bootlin.com>, <vladimir.oltean@nxp.com>, <UNGLinuxDriver@microchip.com>, <netdev@vger.kernel.org>, <devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <linux-phy@lists.infradead.org>, <linux-pm@vger.kernel.org> Cc: Horatiu Vultur <horatiu.vultur@microchip.com> Subject: [RFC PATCH net-next 00/12] Add lan966x driver Date: Mon, 20 Sep 2021 11:52:06 +0200 [thread overview] Message-ID: <20210920095218.1108151-1-horatiu.vultur@microchip.com> (raw) This patch series cover multiple drivers but I have put everything in one single series so it would be easier to follow the big picture. Eventually this series will be split in multiple ones once we drop the RFC. The Microchip LAN966X is a compact and cost-effective, multi-port Gigabit AVB/TSN Ethernet Switches with two integrated 10/100/1000BASE-T PHYs and a 600 MHz ARM Cortex A7 CPU subsystem. The LAN966X includes eight ports. In addition to the two integrated PHYs, the lAN966X supports up to 2 RGMII/RMII, up to 3 1000BASE-X/SerDes/ 2.5GBASE-X/KX, and up to 2 Quad-SGMII/Quad-USGMII interfaces. The LAN966X fully supports the IEEE family of Audio Video Bridging (AVB) and Time Sensitive Networking (TSN) standards, including the current IEC/IEEE draft 60802 TSN profile, which in concert provide high Quality of Service (QoS) for latency sensitive traffic streams over Ethernet. The LAN966X supports TSN domain protection though IEEE 802.1Qci Per Stream Filtering and Policing, advanced classification rules, and tunneling by adding VLAN tags. Each egress port supports eight priorities. Prior to scheduling, traffic can be shaped using dual-leaky bucket shaping, IEEE 802.1Qav Credit Based Shaping, and IEEE 802.1Qbv Time Aware Shaping, thus also supporting IEEE 802.1Q Enhanced Transmission Selection. Low latency is possible though latency optimized architecture, cut-through, and IEEE 802.1Qbu/802.3br Preemption. For higher traffic availability, the LAN966X supports Multiple Spanning Tree, IEEE 802.1CB Frame Replication and Elimination for Redundancy, IEC 62439-2 MRP, ODVA DLR, in addition to ITU-T G.8031 and G.8032 linear and ring protection. The LAN966X supports IEEE 802.1AS-2020 (gPTP) and IEEE 1588-2019 (PTP) time synchronization with time stamping in multiple domains in support of Working Clock and Global Time distribution. The LAN966X can operate either as a standalone switch or as a system co-processor with an external host CPU. The external host can manage the switch via PCIe or an Ethernet port. This series provides support for: - support for integrated PHY - host mode providing register based injection and extraction More support will be added in future patches. Horatiu Vultur (12): net: mdio: mscc-miim: Fix the mdio controller net: phy: mchp: Add support for LAN8804 PHY phy: Add lan966x ethernet serdes PHY driver dt-bindings: reset: Add lan966x switch reset bindings reset: lan966x: Add switch reset driver dt-bindings: reset: Add lan966x power reset bindings power: reset: Add lan966x power reset driver dt-bindings: net: lan966x: Add lan966x-switch bindings net: lan966x: add the basic lan966x driver net: lan966x: add port module support net: lan966x: add mactable support net: lan966x: add ethtool configuration and statistics .../net/microchip,lan966x-switch.yaml | 114 ++ .../bindings/power/lan966x,power.yaml | 49 + .../bindings/reset/lan966x,rst.yaml | 58 + drivers/net/ethernet/microchip/Kconfig | 1 + drivers/net/ethernet/microchip/Makefile | 1 + .../net/ethernet/microchip/lan966x/Kconfig | 7 + .../net/ethernet/microchip/lan966x/Makefile | 9 + .../microchip/lan966x/lan966x_ethtool.c | 578 ++++++++++ .../ethernet/microchip/lan966x/lan966x_ifh.h | 173 +++ .../ethernet/microchip/lan966x/lan966x_main.c | 994 ++++++++++++++++++ .../ethernet/microchip/lan966x/lan966x_main.h | 192 ++++ .../microchip/lan966x/lan966x_phylink.c | 92 ++ .../ethernet/microchip/lan966x/lan966x_port.c | 301 ++++++ .../ethernet/microchip/lan966x/lan966x_regs.h | 704 +++++++++++++ drivers/net/mdio/mdio-mscc-miim.c | 14 +- drivers/net/phy/micrel.c | 73 ++ drivers/phy/microchip/Kconfig | 8 + drivers/phy/microchip/Makefile | 1 + drivers/phy/microchip/lan966x_serdes.c | 525 +++++++++ drivers/phy/microchip/lan966x_serdes_regs.h | 482 +++++++++ drivers/power/reset/Kconfig | 6 + drivers/power/reset/Makefile | 1 + drivers/power/reset/lan966x-reset.c | 90 ++ drivers/reset/Kconfig | 8 + drivers/reset/Makefile | 1 + drivers/reset/reset-lan966x.c | 128 +++ include/dt-bindings/phy/lan966x_serdes.h | 14 + include/linux/micrel_phy.h | 1 + 28 files changed, 4620 insertions(+), 5 deletions(-) create mode 100644 Documentation/devicetree/bindings/net/microchip,lan966x-switch.yaml create mode 100644 Documentation/devicetree/bindings/power/lan966x,power.yaml create mode 100644 Documentation/devicetree/bindings/reset/lan966x,rst.yaml create mode 100644 drivers/net/ethernet/microchip/lan966x/Kconfig create mode 100644 drivers/net/ethernet/microchip/lan966x/Makefile create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_ifh.h create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_main.c create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_main.h create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_phylink.c create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_port.c create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_regs.h create mode 100644 drivers/phy/microchip/lan966x_serdes.c create mode 100644 drivers/phy/microchip/lan966x_serdes_regs.h create mode 100644 drivers/power/reset/lan966x-reset.c create mode 100644 drivers/reset/reset-lan966x.c create mode 100644 include/dt-bindings/phy/lan966x_serdes.h -- 2.31.1
WARNING: multiple messages have this Message-ID (diff)
From: Horatiu Vultur <horatiu.vultur@microchip.com> To: <davem@davemloft.net>, <kuba@kernel.org>, <robh+dt@kernel.org>, <andrew@lunn.ch>, <linux@armlinux.org.uk>, <f.fainelli@gmail.com>, <alexandre.belloni@bootlin.com>, <vladimir.oltean@nxp.com>, <UNGLinuxDriver@microchip.com>, <netdev@vger.kernel.org>, <devicetree@vger.kernel.org>, <linux-kernel@vger.kernel.org>, <linux-phy@lists.infradead.org>, <linux-pm@vger.kernel.org> Cc: Horatiu Vultur <horatiu.vultur@microchip.com> Subject: [RFC PATCH net-next 00/12] Add lan966x driver Date: Mon, 20 Sep 2021 11:52:06 +0200 [thread overview] Message-ID: <20210920095218.1108151-1-horatiu.vultur@microchip.com> (raw) This patch series cover multiple drivers but I have put everything in one single series so it would be easier to follow the big picture. Eventually this series will be split in multiple ones once we drop the RFC. The Microchip LAN966X is a compact and cost-effective, multi-port Gigabit AVB/TSN Ethernet Switches with two integrated 10/100/1000BASE-T PHYs and a 600 MHz ARM Cortex A7 CPU subsystem. The LAN966X includes eight ports. In addition to the two integrated PHYs, the lAN966X supports up to 2 RGMII/RMII, up to 3 1000BASE-X/SerDes/ 2.5GBASE-X/KX, and up to 2 Quad-SGMII/Quad-USGMII interfaces. The LAN966X fully supports the IEEE family of Audio Video Bridging (AVB) and Time Sensitive Networking (TSN) standards, including the current IEC/IEEE draft 60802 TSN profile, which in concert provide high Quality of Service (QoS) for latency sensitive traffic streams over Ethernet. The LAN966X supports TSN domain protection though IEEE 802.1Qci Per Stream Filtering and Policing, advanced classification rules, and tunneling by adding VLAN tags. Each egress port supports eight priorities. Prior to scheduling, traffic can be shaped using dual-leaky bucket shaping, IEEE 802.1Qav Credit Based Shaping, and IEEE 802.1Qbv Time Aware Shaping, thus also supporting IEEE 802.1Q Enhanced Transmission Selection. Low latency is possible though latency optimized architecture, cut-through, and IEEE 802.1Qbu/802.3br Preemption. For higher traffic availability, the LAN966X supports Multiple Spanning Tree, IEEE 802.1CB Frame Replication and Elimination for Redundancy, IEC 62439-2 MRP, ODVA DLR, in addition to ITU-T G.8031 and G.8032 linear and ring protection. The LAN966X supports IEEE 802.1AS-2020 (gPTP) and IEEE 1588-2019 (PTP) time synchronization with time stamping in multiple domains in support of Working Clock and Global Time distribution. The LAN966X can operate either as a standalone switch or as a system co-processor with an external host CPU. The external host can manage the switch via PCIe or an Ethernet port. This series provides support for: - support for integrated PHY - host mode providing register based injection and extraction More support will be added in future patches. Horatiu Vultur (12): net: mdio: mscc-miim: Fix the mdio controller net: phy: mchp: Add support for LAN8804 PHY phy: Add lan966x ethernet serdes PHY driver dt-bindings: reset: Add lan966x switch reset bindings reset: lan966x: Add switch reset driver dt-bindings: reset: Add lan966x power reset bindings power: reset: Add lan966x power reset driver dt-bindings: net: lan966x: Add lan966x-switch bindings net: lan966x: add the basic lan966x driver net: lan966x: add port module support net: lan966x: add mactable support net: lan966x: add ethtool configuration and statistics .../net/microchip,lan966x-switch.yaml | 114 ++ .../bindings/power/lan966x,power.yaml | 49 + .../bindings/reset/lan966x,rst.yaml | 58 + drivers/net/ethernet/microchip/Kconfig | 1 + drivers/net/ethernet/microchip/Makefile | 1 + .../net/ethernet/microchip/lan966x/Kconfig | 7 + .../net/ethernet/microchip/lan966x/Makefile | 9 + .../microchip/lan966x/lan966x_ethtool.c | 578 ++++++++++ .../ethernet/microchip/lan966x/lan966x_ifh.h | 173 +++ .../ethernet/microchip/lan966x/lan966x_main.c | 994 ++++++++++++++++++ .../ethernet/microchip/lan966x/lan966x_main.h | 192 ++++ .../microchip/lan966x/lan966x_phylink.c | 92 ++ .../ethernet/microchip/lan966x/lan966x_port.c | 301 ++++++ .../ethernet/microchip/lan966x/lan966x_regs.h | 704 +++++++++++++ drivers/net/mdio/mdio-mscc-miim.c | 14 +- drivers/net/phy/micrel.c | 73 ++ drivers/phy/microchip/Kconfig | 8 + drivers/phy/microchip/Makefile | 1 + drivers/phy/microchip/lan966x_serdes.c | 525 +++++++++ drivers/phy/microchip/lan966x_serdes_regs.h | 482 +++++++++ drivers/power/reset/Kconfig | 6 + drivers/power/reset/Makefile | 1 + drivers/power/reset/lan966x-reset.c | 90 ++ drivers/reset/Kconfig | 8 + drivers/reset/Makefile | 1 + drivers/reset/reset-lan966x.c | 128 +++ include/dt-bindings/phy/lan966x_serdes.h | 14 + include/linux/micrel_phy.h | 1 + 28 files changed, 4620 insertions(+), 5 deletions(-) create mode 100644 Documentation/devicetree/bindings/net/microchip,lan966x-switch.yaml create mode 100644 Documentation/devicetree/bindings/power/lan966x,power.yaml create mode 100644 Documentation/devicetree/bindings/reset/lan966x,rst.yaml create mode 100644 drivers/net/ethernet/microchip/lan966x/Kconfig create mode 100644 drivers/net/ethernet/microchip/lan966x/Makefile create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_ethtool.c create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_ifh.h create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_main.c create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_main.h create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_phylink.c create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_port.c create mode 100644 drivers/net/ethernet/microchip/lan966x/lan966x_regs.h create mode 100644 drivers/phy/microchip/lan966x_serdes.c create mode 100644 drivers/phy/microchip/lan966x_serdes_regs.h create mode 100644 drivers/power/reset/lan966x-reset.c create mode 100644 drivers/reset/reset-lan966x.c create mode 100644 include/dt-bindings/phy/lan966x_serdes.h -- 2.31.1 -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy
next reply other threads:[~2021-09-20 9:51 UTC|newest] Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-09-20 9:52 Horatiu Vultur [this message] 2021-09-20 9:52 ` [RFC PATCH net-next 00/12] Add lan966x driver Horatiu Vultur 2021-09-20 9:52 ` [RFC PATCH net-next 01/12] net: mdio: mscc-miim: Fix the mdio controller Horatiu Vultur 2021-09-20 9:52 ` Horatiu Vultur 2021-09-20 11:52 ` Andrew Lunn 2021-09-20 11:52 ` Andrew Lunn 2021-09-22 8:24 ` Horatiu Vultur 2021-09-22 8:24 ` Horatiu Vultur 2021-09-20 9:52 ` [RFC PATCH net-next 02/12] net: phy: mchp: Add support for LAN8804 PHY Horatiu Vultur 2021-09-20 9:52 ` Horatiu Vultur 2021-09-20 10:00 ` Alexandre Belloni 2021-09-20 10:00 ` Alexandre Belloni 2021-09-20 11:59 ` Andrew Lunn 2021-09-20 11:59 ` Andrew Lunn 2021-09-22 8:35 ` Horatiu Vultur 2021-09-22 8:35 ` Horatiu Vultur 2021-09-20 9:52 ` [RFC PATCH net-next 03/12] phy: Add lan966x ethernet serdes PHY driver Horatiu Vultur 2021-09-20 9:52 ` Horatiu Vultur 2021-09-20 13:42 ` Russell King (Oracle) 2021-09-20 13:42 ` Russell King (Oracle) 2021-09-22 10:04 ` Horatiu Vultur 2021-09-22 10:04 ` Horatiu Vultur 2021-09-23 12:44 ` Rob Herring 2021-09-23 12:44 ` Rob Herring 2021-09-20 9:52 ` [RFC PATCH net-next 04/12] dt-bindings: reset: Add lan966x switch reset bindings Horatiu Vultur 2021-09-20 9:52 ` Horatiu Vultur 2021-09-23 12:49 ` Rob Herring 2021-09-23 12:49 ` Rob Herring 2021-09-20 9:52 ` [RFC PATCH net-next 05/12] reset: lan966x: Add switch reset driver Horatiu Vultur 2021-09-20 9:52 ` Horatiu Vultur 2021-09-20 12:11 ` Andrew Lunn 2021-09-20 12:11 ` Andrew Lunn 2021-09-22 9:59 ` Horatiu Vultur 2021-09-22 9:59 ` Horatiu Vultur 2021-09-20 9:52 ` [RFC PATCH net-next 06/12] dt-bindings: reset: Add lan966x power reset bindings Horatiu Vultur 2021-09-20 9:52 ` Horatiu Vultur 2021-09-20 9:52 ` [RFC PATCH net-next 07/12] power: reset: Add lan966x power reset driver Horatiu Vultur 2021-09-20 9:52 ` Horatiu Vultur 2021-09-20 12:15 ` Andrew Lunn 2021-09-20 12:15 ` Andrew Lunn 2021-09-20 9:52 ` [RFC PATCH net-next 08/12] dt-bindings: net: lan966x: Add lan966x-switch bindings Horatiu Vultur 2021-09-20 9:52 ` Horatiu Vultur 2021-09-23 12:53 ` Rob Herring 2021-09-23 12:53 ` Rob Herring 2021-09-20 9:52 ` [RFC PATCH net-next 09/12] net: lan966x: add the basic lan966x driver Horatiu Vultur 2021-09-20 9:52 ` Horatiu Vultur 2021-09-20 13:46 ` Russell King (Oracle) 2021-09-20 13:46 ` Russell King (Oracle) 2021-09-20 9:52 ` [RFC PATCH net-next 10/12] net: lan966x: add port module support Horatiu Vultur 2021-09-20 9:52 ` Horatiu Vultur 2021-09-20 13:54 ` Russell King (Oracle) 2021-09-20 13:54 ` Russell King (Oracle) 2021-09-23 8:02 ` Horatiu Vultur 2021-09-23 8:02 ` Horatiu Vultur 2021-09-20 9:52 ` [RFC PATCH net-next 11/12] net: lan966x: add mactable support Horatiu Vultur 2021-09-20 9:52 ` Horatiu Vultur 2021-09-20 9:52 ` [RFC PATCH net-next 12/12] net: lan966x: add ethtool configuration and statistics Horatiu Vultur 2021-09-20 9:52 ` Horatiu Vultur 2021-09-20 20:31 ` Jakub Kicinski 2021-09-20 20:31 ` Jakub Kicinski
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20210920095218.1108151-1-horatiu.vultur@microchip.com \ --to=horatiu.vultur@microchip.com \ --cc=UNGLinuxDriver@microchip.com \ --cc=alexandre.belloni@bootlin.com \ --cc=andrew@lunn.ch \ --cc=davem@davemloft.net \ --cc=devicetree@vger.kernel.org \ --cc=f.fainelli@gmail.com \ --cc=kuba@kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-phy@lists.infradead.org \ --cc=linux-pm@vger.kernel.org \ --cc=linux@armlinux.org.uk \ --cc=netdev@vger.kernel.org \ --cc=robh+dt@kernel.org \ --cc=vladimir.oltean@nxp.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.