Commit 98c485ea authored by Daniel Golle's avatar Daniel Golle Committed by David S. Miller
Browse files

net: phy: add driver for MediaTek SoC built-in GE PHYs



Some of MediaTek's Filogic SoCs come with built-in gigabit Ethernet
PHYs which require calibration data from the SoC's efuse.
Despite the similar design the driver doesn't share any code with the
existing mediatek-ge.c.
Add support for such PHYs by introducing a new driver with basic
support for MediaTek SoCs MT7981 and MT7988 built-in 1GE PHYs.

Signed-off-by: default avatarDaniel Golle <daniel@makrotopia.org>
Reviewed-by: default avatarAndrew Lunn <andrew@lunn.ch>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a89dc587
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -13151,6 +13151,15 @@ S: Maintained
F:	drivers/net/pcs/pcs-mtk-lynxi.c
F:	include/linux/pcs/pcs-mtk-lynxi.h
MEDIATEK ETHERNET PHY DRIVERS
M:	Daniel Golle <daniel@makrotopia.org>
M:	Qingfang Deng <dqfext@gmail.com>
M:	SkyLake Huang <SkyLake.Huang@mediatek.com>
L:	netdev@vger.kernel.org
S:	Maintained
F:	drivers/net/phy/mediatek-ge-soc.c
F:	drivers/net/phy/mediatek-ge.c
MEDIATEK I2C CONTROLLER DRIVER
M:	Qii Wang <qii.wang@mediatek.com>
L:	linux-i2c@vger.kernel.org
+12 −0
Original line number Diff line number Diff line
@@ -236,6 +236,18 @@ config MEDIATEK_GE_PHY
	help
	  Supports the MediaTek Gigabit Ethernet PHYs.

config MEDIATEK_GE_SOC_PHY
	tristate "MediaTek SoC Ethernet PHYs"
	depends on (ARM64 && ARCH_MEDIATEK) || COMPILE_TEST
	select NVMEM_MTK_EFUSE
	help
	  Supports MediaTek SoC built-in Gigabit Ethernet PHYs.

	  Include support for built-in Ethernet PHYs which are present in
	  the MT7981 and MT7988 SoCs. These PHYs need calibration data
	  present in the SoCs efuse and will dynamically calibrate VCM
	  (common-mode voltage) during startup.

config MICREL_PHY
	tristate "Micrel PHYs"
	depends on PTP_1588_CLOCK_OPTIONAL
+1 −0
Original line number Diff line number Diff line
@@ -69,6 +69,7 @@ obj-$(CONFIG_MARVELL_PHY) += marvell.o
obj-$(CONFIG_MARVELL_88X2222_PHY)	+= marvell-88x2222.o
obj-$(CONFIG_MAXLINEAR_GPHY)	+= mxl-gpy.o
obj-$(CONFIG_MEDIATEK_GE_PHY)	+= mediatek-ge.o
obj-$(CONFIG_MEDIATEK_GE_SOC_PHY)	+= mediatek-ge-soc.o
obj-$(CONFIG_MESON_GXL_PHY)	+= meson-gxl.o
obj-$(CONFIG_MICREL_KS8995MA)	+= spi_ks8995.o
obj-$(CONFIG_MICREL_PHY)	+= micrel.o
+1116 −0

File added.

Preview size limit exceeded, changes collapsed.

+2 −1
Original line number Diff line number Diff line
@@ -102,7 +102,8 @@ static struct phy_driver mtk_gephy_driver[] = {
module_phy_driver(mtk_gephy_driver);

static struct mdio_device_id __maybe_unused mtk_gephy_tbl[] = {
	{ PHY_ID_MATCH_VENDOR(0x03a29400) },
	{ PHY_ID_MATCH_EXACT(0x03a29441) },
	{ PHY_ID_MATCH_EXACT(0x03a29412) },
	{ }
};