From 13a9fa8e8f215ed6aee1fde0e9f8eaaf9455a194 Mon Sep 17 00:00:00 2001 From: Peng Fan Date: Fri, 29 Dec 2017 15:06:14 +0800 Subject: MLK-17303-1 imx: 8qxp: Fix ENET1 enablement Fix build error. Correct ENET1 enablement, Define CONFIG_FEC_ENET_DEV 1, to enable ENET1 on Base board. Signed-off-by: Peng Fan (cherry picked from commit 2440ee9ac2c66819e1cc664bd92fb8f092544059) --- arch/arm/dts/fsl-imx8qxp-mek.dts | 2 +- board/freescale/imx8qxp_mek/imx8qxp_mek.c | 47 +++++++++++++++---------------- include/configs/imx8qxp_mek.h | 7 ----- 3 files changed, 23 insertions(+), 33 deletions(-) diff --git a/arch/arm/dts/fsl-imx8qxp-mek.dts b/arch/arm/dts/fsl-imx8qxp-mek.dts index 7d25a217ce..aed7fc153d 100644 --- a/arch/arm/dts/fsl-imx8qxp-mek.dts +++ b/arch/arm/dts/fsl-imx8qxp-mek.dts @@ -302,7 +302,7 @@ phy-handle = <ðphy1>; fsl,ar8031-phy-fixup; fsl,magic-packet; - status = "disabled"; + status = "okay"; }; &flexspi0 { diff --git a/board/freescale/imx8qxp_mek/imx8qxp_mek.c b/board/freescale/imx8qxp_mek/imx8qxp_mek.c index b17ade2d9d..708580920b 100644 --- a/board/freescale/imx8qxp_mek/imx8qxp_mek.c +++ b/board/freescale/imx8qxp_mek/imx8qxp_mek.c @@ -249,6 +249,7 @@ static void enet_device_phy_reset(void) struct gpio_desc desc; int ret; + /* The BB_PER_RST_B will reset the ENET1 PHY */ if (0 == CONFIG_FEC_ENET_DEV) { ret = dm_gpio_lookup_name("gpio@1a_4", &desc); if (ret) @@ -257,14 +258,12 @@ static void enet_device_phy_reset(void) ret = dm_gpio_request(&desc, "enet0_reset"); if (ret) return; - } - - /* The BB_PER_RST_B will reset the ENET1 PHY */ - dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT); - dm_gpio_set_value(&desc, 0); - udelay(50); - dm_gpio_set_value(&desc, 1); + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT); + dm_gpio_set_value(&desc, 0); + udelay(50); + dm_gpio_set_value(&desc, 1); + } /* The board has a long delay for this reset to become stable */ mdelay(200); @@ -297,24 +296,6 @@ int board_eth_init(bd_t *bis) int board_phy_config(struct phy_device *phydev) { -#ifdef CONFIG_FEC_ENABLE_MAX7322 - uint8_t value; - - /* This is needed to drive the pads to 1.8V instead of 1.5V */ - i2c_set_bus_num(CONFIG_MAX7322_I2C_BUS); - - if (!i2c_probe(CONFIG_MAX7322_I2C_ADDR)) { - /* Write 0x1 to enable O0 output, this device has no addr */ - /* hence addr length is 0 */ - value = 0x1; - if (i2c_write(CONFIG_MAX7322_I2C_ADDR, 0, 0, &value, 1)) - printf("MAX7322 write failed\n"); - } else { - printf("MAX7322 Not found\n"); - } - mdelay(1); -#endif - phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x1f); phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, 0x8); @@ -348,6 +329,22 @@ static iomux_cfg_t board_gpios[] = { static void board_gpio_init(void) { + int ret; + struct gpio_desc desc; + + ret = dm_gpio_lookup_name("gpio@1a_3", &desc); + if (ret) + return; + + ret = dm_gpio_request(&desc, "bb_per_rst_b"); + if (ret) + return; + + dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT); + dm_gpio_set_value(&desc, 0); + udelay(50); + dm_gpio_set_value(&desc, 1); + imx8_iomux_setup_multiple_pads(board_gpios, ARRAY_SIZE(board_gpios)); /* enable i2c port expander assert reset line */ diff --git a/include/configs/imx8qxp_mek.h b/include/configs/imx8qxp_mek.h index 64254f974b..0dea347f41 100644 --- a/include/configs/imx8qxp_mek.h +++ b/include/configs/imx8qxp_mek.h @@ -74,19 +74,12 @@ #elif (CONFIG_FEC_ENET_DEV == 1) #define IMX_FEC_BASE 0x5B050000 #define CONFIG_FEC_MXC_PHYADDR 0x1 -#define CONFIG_FEC_ENABLE_MAX7322 #define CONFIG_ETHPRIME "eth1" #endif /* ENET0 MDIO are shared */ #define CONFIG_FEC_MXC_MDIO_BASE 0x5B040000 -/* MAX7322 */ -#ifdef CONFIG_FEC_ENABLE_MAX7322 -#define CONFIG_MAX7322_I2C_ADDR 0x68 -#define CONFIG_MAX7322_I2C_BUS 0 /* I2C1 */ -#endif - /* Boot M4 */ #define M4_BOOT_ENV \ "m4_0_image=m4_0.bin\0" \ -- cgit v1.2.3