From 77b508d34b9485c981b084e8169dd64b381935b6 Mon Sep 17 00:00:00 2001 From: James Byrne Date: Wed, 6 Mar 2019 12:48:27 +0000 Subject: [PATCH 1/5] net: phy: micrel: Allow KSZ8xxx and KSZ90x1 to be used together Commit d397f7c45b0b ("net: phy: micrel: Separate KSZ9000 drivers from KSZ8000 drivers") separated the KSZ8xxx and KSZ90x1 drivers and warns that you shouldn't select both of them due to a device ID clash between the KSZ9021 and the KS8721, asserting that "it is highly unlikely for a system to contain both a KSZ8000 and a KSZ9000 PHY". Unfortunately boards like the SAMA5D3xEK do contain both types of PHY, but fortunately the Linux Micrel PHY driver provides a solution by using different PHY ID and mask values to distinguish these chips. This commit contains the following changes: - The PHY ID and mask values for the KSZ9021 and the KS8721 now match those used by the Linux driver. - The warnings about not enabling both drivers have been removed. - The description for PHY_MICREL_KSZ8XXX has been corrected (these are 10/100 PHYs, not GbE PHYs). - PHY_MICREL_KSZ9021 and PHY_MICREL_KSZ9031 no longer select PHY_GIGE since this is selected by PHY_MICREL_KSZ90X1. - All of the relevant defconfig files have been updated now that PHY_MICREL_KSZ8XXX does not default to 'Y'. Signed-off-by: James Byrne Acked-by: Joe Hershberger --- configs/alt_defconfig | 1 + configs/aristainetos_defconfig | 1 + configs/bk4r1_defconfig | 1 + configs/colibri_imx6_defconfig | 1 + configs/colibri_imx7_defconfig | 1 + configs/colibri_imx7_emmc_defconfig | 1 + configs/colibri_vf_defconfig | 1 + configs/flea3_defconfig | 1 + configs/gose_defconfig | 1 + configs/imx6dl_mamoj_defconfig | 1 + configs/imx6qdl_icore_rqs_defconfig | 1 + configs/k2g_evm_defconfig | 1 + configs/k2g_hs_evm_defconfig | 1 + configs/koelsch_defconfig | 1 + configs/lager_defconfig | 1 + configs/m53menlo_defconfig | 1 + configs/mx6ul_14x14_evk_defconfig | 1 + configs/mx6ul_9x9_evk_defconfig | 1 + configs/opos6uldev_defconfig | 1 + configs/pcm052_defconfig | 1 + configs/phycore_pcl063_defconfig | 1 + configs/pico-hobbit-imx6ul_defconfig | 1 + configs/pico-imx6ul_defconfig | 1 + configs/pico-pi-imx6ul_defconfig | 1 + configs/porter_defconfig | 1 + configs/silk_defconfig | 1 + configs/stout_defconfig | 1 + configs/stv0991_defconfig | 1 + configs/udoo_neo_defconfig | 1 + configs/vf610twr_defconfig | 1 + configs/vf610twr_nand_defconfig | 1 + configs/woodburn_defconfig | 1 + configs/woodburn_sd_defconfig | 1 + drivers/net/phy/Kconfig | 19 +++++-------------- drivers/net/phy/micrel_ksz8xxx.c | 8 +++++--- drivers/net/phy/micrel_ksz90x1.c | 2 +- 36 files changed, 44 insertions(+), 18 deletions(-) diff --git a/configs/alt_defconfig b/configs/alt_defconfig index a51c0d660a..a86ff906c8 100644 --- a/configs/alt_defconfig +++ b/configs/alt_defconfig @@ -70,6 +70,7 @@ CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_SPANSION=y CONFIG_SPI_FLASH_MTD=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_DM_ETH=y CONFIG_SH_ETHER=y CONFIG_PCI=y diff --git a/configs/aristainetos_defconfig b/configs/aristainetos_defconfig index 0e6317400b..44b30e33e8 100644 --- a/configs/aristainetos_defconfig +++ b/configs/aristainetos_defconfig @@ -47,6 +47,7 @@ CONFIG_MTD_UBI_FASTMAP=y CONFIG_MTD_UBI_FASTMAP_AUTOCONVERT=1 CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_MII=y CONFIG_SPI=y CONFIG_MXC_SPI=y diff --git a/configs/bk4r1_defconfig b/configs/bk4r1_defconfig index 3dac2fd7c9..98423f2391 100644 --- a/configs/bk4r1_defconfig +++ b/configs/bk4r1_defconfig @@ -67,6 +67,7 @@ CONFIG_SPI_FLASH_STMICRO=y CONFIG_SPI_FLASH_MTD=y CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_DM_ETH=y CONFIG_FEC_MXC=y CONFIG_MII=y diff --git a/configs/colibri_imx6_defconfig b/configs/colibri_imx6_defconfig index ba17ec0030..af74f35725 100644 --- a/configs/colibri_imx6_defconfig +++ b/configs/colibri_imx6_defconfig @@ -61,6 +61,7 @@ CONFIG_SUPPORT_EMMC_BOOT=y CONFIG_FSL_ESDHC=y CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_MII=y CONFIG_PINCTRL=y CONFIG_PINCTRL_IMX6=y diff --git a/configs/colibri_imx7_defconfig b/configs/colibri_imx7_defconfig index 58620ea68f..bfb84ecde8 100644 --- a/configs/colibri_imx7_defconfig +++ b/configs/colibri_imx7_defconfig @@ -57,6 +57,7 @@ CONFIG_NAND_MXS_DT=y CONFIG_MTD_UBI_FASTMAP=y CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_MII=y CONFIG_PINCTRL=y CONFIG_PINCTRL_IMX7=y diff --git a/configs/colibri_imx7_emmc_defconfig b/configs/colibri_imx7_emmc_defconfig index 0617b120a0..af3cf93946 100644 --- a/configs/colibri_imx7_emmc_defconfig +++ b/configs/colibri_imx7_emmc_defconfig @@ -49,6 +49,7 @@ CONFIG_SUPPORT_EMMC_BOOT=y CONFIG_FSL_ESDHC=y CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_MII=y CONFIG_PINCTRL=y CONFIG_PINCTRL_IMX7=y diff --git a/configs/colibri_vf_defconfig b/configs/colibri_vf_defconfig index d214a79d23..7334002df8 100644 --- a/configs/colibri_vf_defconfig +++ b/configs/colibri_vf_defconfig @@ -66,6 +66,7 @@ CONFIG_SYS_NAND_VF610_NFC_60_ECC_BYTES=y CONFIG_MTD_UBI_FASTMAP=y CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_DM_ETH=y CONFIG_FEC_MXC=y CONFIG_MII=y diff --git a/configs/flea3_defconfig b/configs/flea3_defconfig index 19c96768db..f6e8048b60 100644 --- a/configs/flea3_defconfig +++ b/configs/flea3_defconfig @@ -33,6 +33,7 @@ CONFIG_NAND=y CONFIG_NAND_MXC=y CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_MII=y CONFIG_SPI=y CONFIG_MXC_SPI=y diff --git a/configs/gose_defconfig b/configs/gose_defconfig index 428eab3921..f591bd845b 100644 --- a/configs/gose_defconfig +++ b/configs/gose_defconfig @@ -67,6 +67,7 @@ CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_SPANSION=y CONFIG_SPI_FLASH_MTD=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_DM_ETH=y CONFIG_SH_ETHER=y CONFIG_PCI=y diff --git a/configs/imx6dl_mamoj_defconfig b/configs/imx6dl_mamoj_defconfig index 09f33755f9..5ad49b38ec 100644 --- a/configs/imx6dl_mamoj_defconfig +++ b/configs/imx6dl_mamoj_defconfig @@ -36,6 +36,7 @@ CONFIG_SUPPORT_EMMC_BOOT=y CONFIG_FSL_ESDHC=y CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_FEC_MXC=y CONFIG_MII=y CONFIG_PINCTRL_IMX6=y diff --git a/configs/imx6qdl_icore_rqs_defconfig b/configs/imx6qdl_icore_rqs_defconfig index 45fddbeeea..83b926b699 100644 --- a/configs/imx6qdl_icore_rqs_defconfig +++ b/configs/imx6qdl_icore_rqs_defconfig @@ -45,6 +45,7 @@ CONFIG_SYS_I2C_MXC=y CONFIG_FSL_ESDHC=y CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_FEC_MXC=y CONFIG_MII=y CONFIG_PINCTRL=y diff --git a/configs/k2g_evm_defconfig b/configs/k2g_evm_defconfig index 0c554dfc7f..13cf9c9116 100644 --- a/configs/k2g_evm_defconfig +++ b/configs/k2g_evm_defconfig @@ -51,6 +51,7 @@ CONFIG_SPI_FLASH_STMICRO=y CONFIG_PHYLIB=y CONFIG_PHY_MARVELL=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_PHY_TI=y CONFIG_DM_ETH=y CONFIG_MII=y diff --git a/configs/k2g_hs_evm_defconfig b/configs/k2g_hs_evm_defconfig index 00138c0b66..e93fc001fa 100644 --- a/configs/k2g_hs_evm_defconfig +++ b/configs/k2g_hs_evm_defconfig @@ -45,6 +45,7 @@ CONFIG_SPI_FLASH_STMICRO=y CONFIG_PHYLIB=y CONFIG_PHY_MARVELL=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_DM_ETH=y CONFIG_MII=y CONFIG_DRIVER_TI_KEYSTONE_NET=y diff --git a/configs/koelsch_defconfig b/configs/koelsch_defconfig index 3484a17a44..23d11dfe0e 100644 --- a/configs/koelsch_defconfig +++ b/configs/koelsch_defconfig @@ -67,6 +67,7 @@ CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_SPANSION=y CONFIG_SPI_FLASH_MTD=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_DM_ETH=y CONFIG_SH_ETHER=y CONFIG_PCI=y diff --git a/configs/lager_defconfig b/configs/lager_defconfig index f158473121..c0560543a7 100644 --- a/configs/lager_defconfig +++ b/configs/lager_defconfig @@ -69,6 +69,7 @@ CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_SPANSION=y CONFIG_SPI_FLASH_MTD=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_DM_ETH=y CONFIG_SH_ETHER=y CONFIG_PCI=y diff --git a/configs/m53menlo_defconfig b/configs/m53menlo_defconfig index fe1a94e02f..e5f8c9e8dc 100644 --- a/configs/m53menlo_defconfig +++ b/configs/m53menlo_defconfig @@ -57,6 +57,7 @@ CONFIG_NAND=y CONFIG_NAND_MXC=y CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_RTC_M41T62=y CONFIG_USB=y CONFIG_USB_EHCI_MX5=y diff --git a/configs/mx6ul_14x14_evk_defconfig b/configs/mx6ul_14x14_evk_defconfig index 62563b93f9..2fc7119042 100644 --- a/configs/mx6ul_14x14_evk_defconfig +++ b/configs/mx6ul_14x14_evk_defconfig @@ -52,6 +52,7 @@ CONFIG_SF_DEFAULT_SPEED=40000000 CONFIG_SPI_FLASH_STMICRO=y CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_DM_ETH=y CONFIG_MII=y CONFIG_PINCTRL=y diff --git a/configs/mx6ul_9x9_evk_defconfig b/configs/mx6ul_9x9_evk_defconfig index e8df625fb1..8816f6a4fd 100644 --- a/configs/mx6ul_9x9_evk_defconfig +++ b/configs/mx6ul_9x9_evk_defconfig @@ -52,6 +52,7 @@ CONFIG_SF_DEFAULT_SPEED=40000000 CONFIG_SPI_FLASH_STMICRO=y CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_DM_ETH=y CONFIG_MII=y CONFIG_PINCTRL=y diff --git a/configs/opos6uldev_defconfig b/configs/opos6uldev_defconfig index 409bea88eb..badc4b0236 100644 --- a/configs/opos6uldev_defconfig +++ b/configs/opos6uldev_defconfig @@ -72,6 +72,7 @@ CONFIG_SUPPORT_EMMC_BOOT=y CONFIG_FSL_ESDHC=y CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_FEC_MXC=y CONFIG_MII=y CONFIG_PINCTRL=y diff --git a/configs/pcm052_defconfig b/configs/pcm052_defconfig index 87597f0c31..4002dbabe8 100644 --- a/configs/pcm052_defconfig +++ b/configs/pcm052_defconfig @@ -54,6 +54,7 @@ CONFIG_SPI_FLASH_STMICRO=y CONFIG_SPI_FLASH_MTD=y CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_DM_ETH=y CONFIG_FEC_MXC=y CONFIG_MII=y diff --git a/configs/phycore_pcl063_defconfig b/configs/phycore_pcl063_defconfig index 95f6d54076..a051a8da7a 100644 --- a/configs/phycore_pcl063_defconfig +++ b/configs/phycore_pcl063_defconfig @@ -42,6 +42,7 @@ CONFIG_NAND_MXS=y CONFIG_NAND_MXS_DT=y CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_FEC_MXC=y CONFIG_MII=y CONFIG_PINCTRL=y diff --git a/configs/pico-hobbit-imx6ul_defconfig b/configs/pico-hobbit-imx6ul_defconfig index 5481fffa0c..bb6a9e4335 100644 --- a/configs/pico-hobbit-imx6ul_defconfig +++ b/configs/pico-hobbit-imx6ul_defconfig @@ -49,6 +49,7 @@ CONFIG_SUPPORT_EMMC_BOOT=y CONFIG_FSL_ESDHC=y CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_MII=y CONFIG_PINCTRL=y CONFIG_PINCTRL_IMX6=y diff --git a/configs/pico-imx6ul_defconfig b/configs/pico-imx6ul_defconfig index af8267777a..3284680cf0 100644 --- a/configs/pico-imx6ul_defconfig +++ b/configs/pico-imx6ul_defconfig @@ -51,6 +51,7 @@ CONFIG_SUPPORT_EMMC_BOOT=y CONFIG_FSL_ESDHC=y CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_MII=y CONFIG_PINCTRL=y CONFIG_PINCTRL_IMX6=y diff --git a/configs/pico-pi-imx6ul_defconfig b/configs/pico-pi-imx6ul_defconfig index 295c822aa9..d52c09e605 100644 --- a/configs/pico-pi-imx6ul_defconfig +++ b/configs/pico-pi-imx6ul_defconfig @@ -49,6 +49,7 @@ CONFIG_SUPPORT_EMMC_BOOT=y CONFIG_FSL_ESDHC=y CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_MII=y CONFIG_PINCTRL=y CONFIG_PINCTRL_IMX6=y diff --git a/configs/porter_defconfig b/configs/porter_defconfig index 4bfdc55696..c42754b284 100644 --- a/configs/porter_defconfig +++ b/configs/porter_defconfig @@ -68,6 +68,7 @@ CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_SPANSION=y CONFIG_SPI_FLASH_MTD=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_DM_ETH=y CONFIG_SH_ETHER=y CONFIG_PCI=y diff --git a/configs/silk_defconfig b/configs/silk_defconfig index 70500cf081..e38f634371 100644 --- a/configs/silk_defconfig +++ b/configs/silk_defconfig @@ -70,6 +70,7 @@ CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_SPANSION=y CONFIG_SPI_FLASH_MTD=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_DM_ETH=y CONFIG_SH_ETHER=y CONFIG_PCI=y diff --git a/configs/stout_defconfig b/configs/stout_defconfig index 1db3f7669a..d6d9e690a0 100644 --- a/configs/stout_defconfig +++ b/configs/stout_defconfig @@ -68,6 +68,7 @@ CONFIG_SPI_FLASH=y CONFIG_SPI_FLASH_SPANSION=y CONFIG_SPI_FLASH_MTD=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_DM_ETH=y CONFIG_SH_ETHER=y CONFIG_PCI=y diff --git a/configs/stv0991_defconfig b/configs/stv0991_defconfig index 78810529c8..834a75fde3 100644 --- a/configs/stv0991_defconfig +++ b/configs/stv0991_defconfig @@ -26,6 +26,7 @@ CONFIG_ENV_IS_IN_SPI_FLASH=y CONFIG_SPI_FLASH_STMICRO=y CONFIG_SPI_FLASH_WINBOND=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_ETH_DESIGNWARE=y CONFIG_MII=y CONFIG_CADENCE_QSPI=y diff --git a/configs/udoo_neo_defconfig b/configs/udoo_neo_defconfig index 603d36794d..e8df11db66 100644 --- a/configs/udoo_neo_defconfig +++ b/configs/udoo_neo_defconfig @@ -31,5 +31,6 @@ CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y CONFIG_FSL_ESDHC=y CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_MII=y CONFIG_OF_LIBFDT=y diff --git a/configs/vf610twr_defconfig b/configs/vf610twr_defconfig index 24f8243300..dc67ddc0bf 100644 --- a/configs/vf610twr_defconfig +++ b/configs/vf610twr_defconfig @@ -37,6 +37,7 @@ CONFIG_NAND_VF610_NFC=y CONFIG_SYS_NAND_BUSWIDTH_16BIT=y CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_MII=y CONFIG_DM_SERIAL=y CONFIG_FSL_LPUART=y diff --git a/configs/vf610twr_nand_defconfig b/configs/vf610twr_nand_defconfig index 4dc8b82e6a..7fcb630ff1 100644 --- a/configs/vf610twr_nand_defconfig +++ b/configs/vf610twr_nand_defconfig @@ -37,6 +37,7 @@ CONFIG_NAND_VF610_NFC=y CONFIG_SYS_NAND_BUSWIDTH_16BIT=y CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_MII=y CONFIG_DM_SERIAL=y CONFIG_FSL_LPUART=y diff --git a/configs/woodburn_defconfig b/configs/woodburn_defconfig index a5cc579ce5..bb74542b67 100644 --- a/configs/woodburn_defconfig +++ b/configs/woodburn_defconfig @@ -38,6 +38,7 @@ CONFIG_NAND=y CONFIG_NAND_MXC=y CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_MII=y CONFIG_SPI=y CONFIG_MXC_SPI=y diff --git a/configs/woodburn_sd_defconfig b/configs/woodburn_sd_defconfig index 087c83ad1c..4976a70194 100644 --- a/configs/woodburn_sd_defconfig +++ b/configs/woodburn_sd_defconfig @@ -50,6 +50,7 @@ CONFIG_NAND=y CONFIG_NAND_MXC=y CONFIG_PHYLIB=y CONFIG_PHY_MICREL=y +CONFIG_PHY_MICREL_KSZ8XXX=y CONFIG_MII=y CONFIG_SPI=y CONFIG_MXC_SPI=y diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig index 631b52b1cf..2a3da068c9 100644 --- a/drivers/net/phy/Kconfig +++ b/drivers/net/phy/Kconfig @@ -119,21 +119,19 @@ config PHY_MICREL bool "Micrel Ethernet PHYs support" help Enable support for the GbE PHYs manufactured by Micrel (now - a part of Microchip). This includes drivers for the KSZ804, - KSZ8031, KSZ8051, KSZ8081, KSZ8895, KSZ886x, KSZ8721 - either/or KSZ9021 (see the "Micrel KSZ9021 family support" - config option for details), and KSZ9031 (if configured). + a part of Microchip). This includes drivers for the KSZ804, KSZ8031, + KSZ8051, KSZ8081, KSZ8895, KSZ886x and KSZ8721 (if "Micrel KSZ8xxx + family support" is selected) and the KSZ9021 and KSZ9031 (if "Micrel + KSZ90x1 family support" is selected). if PHY_MICREL config PHY_MICREL_KSZ9021 bool - select PHY_GIGE select PHY_MICREL_KSZ90X1 config PHY_MICREL_KSZ9031 bool - select PHY_GIGE select PHY_MICREL_KSZ90X1 config PHY_MICREL_KSZ90X1 @@ -146,20 +144,13 @@ config PHY_MICREL_KSZ90X1 delays configured in the device tree will be applied to the PHY during initialization. - This should not be enabled at the same time with PHY_MICREL_KSZ8XXX - as the KSZ9021 and KS8721 share the same ID. - config PHY_MICREL_KSZ8XXX bool "Micrel KSZ8xxx family support" - default y if !PHY_MICREL_KSZ90X1 help - Enable support for the 8000 series GbE PHYs manufactured by Micrel + Enable support for the 8000 series 10/100 PHYs manufactured by Micrel (now a part of Microchip). This includes drivers for the KSZ804, KSZ8031, KSZ8051, KSZ8081, KSZ8895, KSZ886x, and KSZ8721. - This should not be enabled at the same time with PHY_MICREL_KSZ90X1 - as the KSZ9021 and KS8721 share the same ID. - endif # PHY_MICREL config PHY_MSCC diff --git a/drivers/net/phy/micrel_ksz8xxx.c b/drivers/net/phy/micrel_ksz8xxx.c index 3411150ab9..daa57ce33c 100644 --- a/drivers/net/phy/micrel_ksz8xxx.c +++ b/drivers/net/phy/micrel_ksz8xxx.c @@ -147,11 +147,13 @@ static struct phy_driver ksz8895_driver = { .shutdown = &genphy_shutdown, }; -/* Micrel used the exact same part number for the KSZ9021. */ +/* Micrel used the exact same model number for the KSZ9021, + * so the revision number is used to distinguish them. + */ static struct phy_driver KS8721_driver = { .name = "Micrel KS8721BL", - .uid = 0x221610, - .mask = 0xfffff0, + .uid = 0x221618, + .mask = 0xfffffc, .features = PHY_BASIC_FEATURES, .config = &genphy_config, .startup = &genphy_startup, diff --git a/drivers/net/phy/micrel_ksz90x1.c b/drivers/net/phy/micrel_ksz90x1.c index 8dec9f2367..f18e40a2fe 100644 --- a/drivers/net/phy/micrel_ksz90x1.c +++ b/drivers/net/phy/micrel_ksz90x1.c @@ -285,7 +285,7 @@ static int ksz9021_config(struct phy_device *phydev) static struct phy_driver ksz9021_driver = { .name = "Micrel ksz9021", .uid = 0x221610, - .mask = 0xfffff0, + .mask = 0xfffffe, .features = PHY_GBIT_FEATURES, .config = &ksz9021_config, .startup = &ksz90xx_startup, From 6845b368f17e7bfb7f6d683cfd4e0faa75877145 Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Sat, 16 Mar 2019 12:43:17 +0100 Subject: [PATCH 2/5] phy: ti: Init node before reading There is a need to fill node before clk_output_sel is setup. Signed-off-by: Michal Simek Acked-by: Siva Durga Prasad Paladugu Reviewed-by: --- drivers/net/phy/ti.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/phy/ti.c b/drivers/net/phy/ti.c index 6ac890a7f5..25f1332ca9 100644 --- a/drivers/net/phy/ti.c +++ b/drivers/net/phy/ti.c @@ -138,6 +138,10 @@ static int dp83867_of_init(struct phy_device *phydev) /* Optional configuration */ + node = phy_get_ofnode(phydev); + if (!ofnode_valid(node)) + return -EINVAL; + /* * Keep the default value if ti,clk-output-sel is not set * or to high @@ -147,10 +151,6 @@ static int dp83867_of_init(struct phy_device *phydev) ofnode_read_u32_default(node, "ti,clk-output-sel", DP83867_CLK_O_SEL_REF_CLK); - node = phy_get_ofnode(phydev); - if (!ofnode_valid(node)) - return -EINVAL; - if (ofnode_read_bool(node, "ti,max-output-impedance")) dp83867->io_impedance = DP83867_IO_MUX_CFG_IO_IMPEDANCE_MAX; else if (ofnode_read_bool(node, "ti,min-output-impedance")) From b6054b5351d1737307128bdfac65b834fbc6607a Mon Sep 17 00:00:00 2001 From: Thierry Reding Date: Tue, 16 Apr 2019 18:20:29 +0200 Subject: [PATCH 3/5] net: rtl8169: Implement ->hwaddr_write() callback Implement this callback that allows the MAC address to be set for the Ethernet card. This is necessary in order for the device to be able to receive packets for the MAC address that U-Boot advertises. Signed-off-by: Thierry Reding Acked-by: Joe Hershberger --- drivers/net/rtl8169.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/drivers/net/rtl8169.c b/drivers/net/rtl8169.c index a78f3d233f..27e27b3417 100644 --- a/drivers/net/rtl8169.c +++ b/drivers/net/rtl8169.c @@ -941,6 +941,23 @@ static void rtl_halt(struct eth_device *dev) } #endif +#ifdef CONFIG_DM_ETH +static int rtl8169_write_hwaddr(struct udevice *dev) +{ + struct eth_pdata *plat = dev_get_platdata(dev); + unsigned int i; + + RTL_W8(Cfg9346, Cfg9346_Unlock); + + for (i = 0; i < MAC_ADDR_LEN; i++) + RTL_W8(MAC0 + i, plat->enetaddr[i]); + + RTL_W8(Cfg9346, Cfg9346_Lock); + + return 0; +} +#endif + /************************************************************************** INIT - Look for an adapter, this routine's visible to the outside ***************************************************************************/ @@ -1195,6 +1212,7 @@ static const struct eth_ops rtl8169_eth_ops = { .send = rtl8169_eth_send, .recv = rtl8169_eth_recv, .stop = rtl8169_eth_stop, + .write_hwaddr = rtl8169_write_hwaddr, }; static const struct udevice_id rtl8169_eth_ids[] = { From cdd69acc2cd8dc48f86accbd8fe748fa4fd4c2d2 Mon Sep 17 00:00:00 2001 From: Thierry Reding Date: Tue, 16 Apr 2019 18:20:30 +0200 Subject: [PATCH 4/5] net: rtl8169: Support RTL-8168h/8111h This version of the RTL-8168 is present on some development boards and is compatible with this driver. Add support for identifying this version of the chip so that U-Boot won't complain about it being unknown. Signed-off-by: Thierry Reding Acked-by: Joe Hershberger --- drivers/net/rtl8169.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/rtl8169.c b/drivers/net/rtl8169.c index 27e27b3417..bc052e7256 100644 --- a/drivers/net/rtl8169.c +++ b/drivers/net/rtl8169.c @@ -257,6 +257,7 @@ static struct { {"RTL-8168/8111g", 0x4c, 0xff7e1880,}, {"RTL-8101e", 0x34, 0xff7e1880,}, {"RTL-8100e", 0x32, 0xff7e1880,}, + {"RTL-8168h/8111h", 0x54, 0xff7e1880,}, }; enum _DescStatusBit { From ebb97ea86878e56daadcc2d5d063ed59a10b5744 Mon Sep 17 00:00:00 2001 From: Weijie Gao Date: Sun, 28 Apr 2019 15:08:57 +0800 Subject: [PATCH 5/5] eth: mtk-eth: fix incorrect read of phy-handle In mt7629-rfb.dts, the phy-handle is a reference to the node phy0, not the node itself: phy-handle = <&phy0>; phy0: ethernet-phy@0 { reg = <0>; } However the driver used ofnode_find_subnode("phy-handle") to read the node. It will always fail. This patch replaces ofnode_find_subnode with dev_read_phandle_with_args to make sure the node can be read correctly. Cc: Joe Hershberger Signed-off-by: Weijie Gao Acked-by: Joe Hershberger --- drivers/net/mtk_eth.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/net/mtk_eth.c b/drivers/net/mtk_eth.c index cc09404830..0ef814c78b 100644 --- a/drivers/net/mtk_eth.c +++ b/drivers/net/mtk_eth.c @@ -1130,13 +1130,14 @@ static int mtk_eth_ofdata_to_platdata(struct udevice *dev) &priv->rst_gpio, GPIOD_IS_OUT); } } else { - subnode = ofnode_find_subnode(dev_ofnode(dev), "phy-handle"); - if (!ofnode_valid(subnode)) { + ret = dev_read_phandle_with_args(dev, "phy-handle", NULL, 0, + 0, &args); + if (ret) { printf("error: phy-handle is not specified\n"); return ret; } - priv->phy_addr = ofnode_read_s32_default(subnode, "reg", -1); + priv->phy_addr = ofnode_read_s32_default(args.node, "reg", -1); if (priv->phy_addr < 0) { printf("error: phy address is not specified\n"); return ret;