From 77b508d34b9485c981b084e8169dd64b381935b6 Mon Sep 17 00:00:00 2001 From: James Byrne Date: Wed, 6 Mar 2019 12:48:27 +0000 Subject: 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 a51c0d660aa..a86ff906c83 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 0e6317400bb..44b30e33e88 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 3dac2fd7c93..98423f23910 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 ba17ec00306..af74f357253 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 58620ea68f0..bfb84ecde8b 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 0617b120a05..af3cf93946a 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 d214a79d23e..7334002df89 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 19c96768dba..f6e8048b600 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 428eab39210..f591bd845b7 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 09f33755f9a..5ad49b38ec1 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 45fddbeeeaa..83b926b699c 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 0c554dfc7f0..13cf9c91165 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 00138c0b669..e93fc001fa7 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 3484a17a442..23d11dfe0ee 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 f158473121a..c0560543a7a 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 fe1a94e02f5..e5f8c9e8dc7 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 62563b93f99..2fc7119042a 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 e8df625fb16..8816f6a4fde 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 409bea88eb5..badc4b0236a 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 87597f0c316..4002dbabe88 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 95f6d540766..a051a8da7af 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 5481fffa0c1..bb6a9e43359 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 af8267777a6..3284680cf0a 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 295c822aa9c..d52c09e605f 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 4bfdc556966..c42754b284d 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 70500cf0814..e38f634371b 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 1db3f7669aa..d6d9e690a0a 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 78810529c8a..834a75fde32 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 603d36794df..e8df11db669 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 24f82433004..dc67ddc0bf0 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 4dc8b82e6af..7fcb630ff10 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 a5cc579ce5e..bb74542b67e 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 087c83ad1c7..4976a70194b 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 631b52b1cfe..2a3da068c90 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 3411150ab9d..daa57ce33c1 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 8dec9f23678..f18e40a2fea 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, -- cgit v1.2.3 From 6845b368f17e7bfb7f6d683cfd4e0faa75877145 Mon Sep 17 00:00:00 2001 From: Michal Simek Date: Sat, 16 Mar 2019 12:43:17 +0100 Subject: 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 6ac890a7f5c..25f1332ca98 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")) -- cgit v1.2.3 From b6054b5351d1737307128bdfac65b834fbc6607a Mon Sep 17 00:00:00 2001 From: Thierry Reding Date: Tue, 16 Apr 2019 18:20:29 +0200 Subject: 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 a78f3d233f1..27e27b34176 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[] = { -- cgit v1.2.3 From cdd69acc2cd8dc48f86accbd8fe748fa4fd4c2d2 Mon Sep 17 00:00:00 2001 From: Thierry Reding Date: Tue, 16 Apr 2019 18:20:30 +0200 Subject: 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 27e27b34176..bc052e72564 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 { -- cgit v1.2.3 From ebb97ea86878e56daadcc2d5d063ed59a10b5744 Mon Sep 17 00:00:00 2001 From: Weijie Gao Date: Sun, 28 Apr 2019 15:08:57 +0800 Subject: 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 cc09404830a..0ef814c78b9 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; -- cgit v1.2.3