This patch series is based on next-20221027. Add initial support for Renesas "Ethernet Switch" device of R-Car S4-8. The hardware has features about forwarding for an ethernet switch device. But, for now, it acts as ethernet controllers so that any forwarding offload features are not supported. So, any switchdev header files and DSA framework are not used. Notes that this driver requires some special settings on marvell10g, Especially host mactype and host speed. And, I need further investigation to modify the marvell10g driver for upstream. But, the special settings are applied, this rswitch driver can work correcfly without any changes of this rswitch driver. So, I believe the rswitch driver can go for upstream. Changes from v5: https://lore.kernel.org/all/20221027134034.2343230-1-yoshihiro.shimoda.uh@xxxxxxxxxxx/ - Add maxItems for the ethernet-port/port/reg property. Changes from v4: https://lore.kernel.org/all/20221019083518.933070-1-yoshihiro.shimoda.uh@xxxxxxxxxxx/ - Rebased on next-20221027. - Drop some unneeded properties on the dt-bindings doc. - Change the subject and commit descriptions on the patch [2/3]. - Use phylink instead of phylib. - Modify struct rswitch_*_desc to remove similar functions ([gs]et_dptr). Changes from v3: https://lore.kernel.org/all/20220922052803.3442561-1-yoshihiro.shimoda.uh@xxxxxxxxxxx/ - Rebased on next-20221017. - Rename dt-binding file. - Fix a lot of things about dt-binding. - Remove unneeded clocks/resets property. - Fix a lot of things about the rswitch driver. -- Fix a lot of sparse warnings. -- Naming of definitations/variables for readability. -- Add supports for all ports, especially using direct descriptor mode for sending frames from CPU to the specific user port. --- Refactor the initialization sequence to support all ports. (Especially, this is for SERDES which needs all black magic...) - Add protection for multiple registers access in the ptp driver. Changes from v2: https://lore.kernel.org/all/20220921084745.3355107-1-yoshihiro.shimoda.uh@xxxxxxxxxxx/ - Separate patcheas into each subsystem. - Add spin lock protection for multiple registers access in patch [3/3]. Yoshihiro Shimoda (3): dt-bindings: net: renesas: Document Renesas Ethernet Switch net: ethernet: renesas: Add support for "Ethernet Switch" net: ethernet: renesas: rswitch: Add R-Car Gen4 gPTP support .../net/renesas,r8a779f0-ether-switch.yaml | 262 +++ drivers/net/ethernet/renesas/Kconfig | 11 + drivers/net/ethernet/renesas/Makefile | 4 + drivers/net/ethernet/renesas/rcar_gen4_ptp.c | 181 ++ drivers/net/ethernet/renesas/rcar_gen4_ptp.h | 72 + drivers/net/ethernet/renesas/rswitch.c | 1832 +++++++++++++++++ drivers/net/ethernet/renesas/rswitch.h | 973 +++++++++ 7 files changed, 3335 insertions(+) create mode 100644 Documentation/devicetree/bindings/net/renesas,r8a779f0-ether-switch.yaml create mode 100644 drivers/net/ethernet/renesas/rcar_gen4_ptp.c create mode 100644 drivers/net/ethernet/renesas/rcar_gen4_ptp.h create mode 100644 drivers/net/ethernet/renesas/rswitch.c create mode 100644 drivers/net/ethernet/renesas/rswitch.h -- 2.25.1