| From 36e516290611e613aa92996cb4339561452695b4 Mon Sep 17 00:00:00 2001 |
| From: Felix Fietkau <nbd@nbd.name> |
| Date: Fri, 7 Jul 2017 17:24:23 +0200 |
| Subject: net: swconfig: adds openwrt switch layer |
| |
| Signed-off-by: Felix Fietkau <nbd@nbd.name> |
| --- |
| drivers/net/phy/Kconfig | 83 +++++++++++++++++++++++++++++++++++++++++++++++ |
| drivers/net/phy/Makefile | 15 +++++++++ |
| include/uapi/linux/Kbuild | 1 + |
| 3 files changed, 99 insertions(+) |
| |
| --- a/drivers/net/phy/Kconfig |
| +++ b/drivers/net/phy/Kconfig |
| @@ -250,6 +250,85 @@ config LED_TRIGGER_PHY |
| for any speed known to the PHY. |
| |
| |
| +comment "Switch configuration API + drivers" |
| + |
| +config SWCONFIG |
| + tristate "Switch configuration API" |
| + ---help--- |
| + Switch configuration API using netlink. This allows |
| + you to configure the VLAN features of certain switches. |
| + |
| +config SWCONFIG_LEDS |
| + bool "Switch LED trigger support" |
| + depends on (SWCONFIG && LEDS_TRIGGERS) |
| + |
| +config ADM6996_PHY |
| + tristate "Driver for ADM6996 switches" |
| + select SWCONFIG |
| + ---help--- |
| + Currently supports the ADM6996FC and ADM6996M switches. |
| + Support for FC is very limited. |
| + |
| +config AR8216_PHY |
| + tristate "Driver for Atheros AR8216 switches" |
| + select ETHERNET_PACKET_MANGLE |
| + select SWCONFIG |
| + |
| +config AR8216_PHY_LEDS |
| + bool "Atheros AR8216 switch LED support" |
| + depends on (AR8216_PHY && LEDS_CLASS) |
| + |
| +source "drivers/net/phy/b53/Kconfig" |
| + |
| +config IP17XX_PHY |
| + tristate "Driver for IC+ IP17xx switches" |
| + select SWCONFIG |
| + |
| +config MVSWITCH_PHY |
| + tristate "Driver for Marvell 88E6060 switches" |
| + select ETHERNET_PACKET_MANGLE |
| + |
| +config PSB6970_PHY |
| + tristate "Lantiq XWAY Tantos (PSB6970) Ethernet switch" |
| + select SWCONFIG |
| + select ETHERNET_PACKET_MANGLE |
| + |
| +config RTL8306_PHY |
| + tristate "Driver for Realtek RTL8306S switches" |
| + select SWCONFIG |
| + |
| +config RTL8366_SMI |
| + tristate "Driver for the RTL8366 SMI interface" |
| + depends on GPIOLIB |
| + ---help--- |
| + This module implements the SMI interface protocol which is used |
| + by some RTL8366 ethernet switch devices via the generic GPIO API. |
| + |
| +if RTL8366_SMI |
| + |
| +config RTL8366_SMI_DEBUG_FS |
| + bool "RTL8366 SMI interface debugfs support" |
| + depends on DEBUG_FS |
| + default n |
| + |
| +config RTL8366S_PHY |
| + tristate "Driver for the Realtek RTL8366S switch" |
| + select SWCONFIG |
| + |
| +config RTL8366RB_PHY |
| + tristate "Driver for the Realtek RTL8366RB switch" |
| + select SWCONFIG |
| + |
| +config RTL8367_PHY |
| + tristate "Driver for the Realtek RTL8367R/M switches" |
| + select SWCONFIG |
| + |
| +config RTL8367B_PHY |
| + tristate "Driver fot the Realtek RTL8367R-VB switch" |
| + select SWCONFIG |
| + |
| +endif # RTL8366_SMI |
| + |
| comment "MII PHY device drivers" |
| |
| config SFP |
| --- a/drivers/net/phy/Makefile |
| +++ b/drivers/net/phy/Makefile |
| @@ -22,6 +22,20 @@ libphy-$(CONFIG_LED_TRIGGER_PHY) += phy_ |
| obj-$(CONFIG_PHYLINK) += phylink.o |
| obj-$(CONFIG_PHYLIB) += libphy.o |
| |
| +obj-$(CONFIG_SWCONFIG) += swconfig.o |
| +obj-$(CONFIG_ADM6996_PHY) += adm6996.o |
| +obj-$(CONFIG_AR8216_PHY) += ar8216.o ar8327.o |
| +obj-$(CONFIG_SWCONFIG_B53) += b53/ |
| +obj-$(CONFIG_IP17XX_PHY) += ip17xx.o |
| +obj-$(CONFIG_MVSWITCH_PHY) += mvswitch.o |
| +obj-$(CONFIG_PSB6970_PHY) += psb6970.o |
| +obj-$(CONFIG_RTL8306_PHY) += rtl8306.o |
| +obj-$(CONFIG_RTL8366_SMI) += rtl8366_smi.o |
| +obj-$(CONFIG_RTL8366S_PHY) += rtl8366s.o |
| +obj-$(CONFIG_RTL8366RB_PHY) += rtl8366rb.o |
| +obj-$(CONFIG_RTL8367_PHY) += rtl8367.o |
| +obj-$(CONFIG_RTL8367B_PHY) += rtl8367b.o |
| + |
| obj-$(CONFIG_MDIO_ASPEED) += mdio-aspeed.o |
| obj-$(CONFIG_MDIO_BCM_IPROC) += mdio-bcm-iproc.o |
| obj-$(CONFIG_MDIO_BCM_UNIMAC) += mdio-bcm-unimac.o |
| --- a/include/linux/platform_data/b53.h |
| +++ b/include/linux/platform_data/b53.h |
| @@ -29,6 +29,9 @@ struct b53_platform_data { |
| u32 chip_id; |
| u16 enabled_ports; |
| |
| + /* allow to specify an ethX alias */ |
| + const char *alias; |
| + |
| /* only used by MMAP'd driver */ |
| unsigned big_endian:1; |
| void __iomem *regs; |