From da365863b1e3b23f7a6eb9669098731142cf1a15 Mon Sep 17 00:00:00 2001 From: Ye Li Date: Tue, 16 Jan 2018 23:46:54 -0800 Subject: MLK-17402 imx8qm/qxp_arm2: Reset ENET1 PHY and MAX7322 at init Since kernel enables both ENET0 and ENET1, so change to reset ENET1 PHY and MAX7322 as well even the configuration is set to use ENET0 in u-boot. Signed-off-by: Ye Li (cherry picked from commit 9ce009caf4c80fbcb31526049420d6c388494247) --- board/freescale/imx8qm_arm2/imx8qm_arm2.c | 41 +++++++++++++++------------- board/freescale/imx8qxp_arm2/imx8qxp_arm2.c | 42 ++++++++++++++++------------- 2 files changed, 45 insertions(+), 38 deletions(-) diff --git a/board/freescale/imx8qm_arm2/imx8qm_arm2.c b/board/freescale/imx8qm_arm2/imx8qm_arm2.c index 61db268e1e..c31e5d159d 100644 --- a/board/freescale/imx8qm_arm2/imx8qm_arm2.c +++ b/board/freescale/imx8qm_arm2/imx8qm_arm2.c @@ -287,31 +287,34 @@ static void setup_iomux_fec(void) static void enet_device_phy_reset(void) { - struct gpio_desc desc; + struct gpio_desc desc_enet0; + struct gpio_desc desc_enet1; int ret; - if (0 == CONFIG_FEC_ENET_DEV) { - ret = dm_gpio_lookup_name("gpio@18_1", &desc); - if (ret) - return; + ret = dm_gpio_lookup_name("gpio@18_1", &desc_enet0); + if (ret) + return; - ret = dm_gpio_request(&desc, "enet0_reset"); - if (ret) - return; - } else { - ret = dm_gpio_lookup_name("gpio@18_4", &desc); - if (ret) - return; + ret = dm_gpio_request(&desc_enet0, "enet0_reset"); + if (ret) + return; + ret = dm_gpio_lookup_name("gpio@18_4", &desc_enet1); + if (ret) + return; - ret = dm_gpio_request(&desc, "enet1_reset"); - if (ret) - return; - } + ret = dm_gpio_request(&desc_enet1, "enet1_reset"); + if (ret) + return; + + dm_gpio_set_dir_flags(&desc_enet0, GPIOD_IS_OUT); + dm_gpio_set_value(&desc_enet0, 0); + udelay(50); + dm_gpio_set_value(&desc_enet0, 1); - dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT); - dm_gpio_set_value(&desc, 0); + dm_gpio_set_dir_flags(&desc_enet1, GPIOD_IS_OUT); + dm_gpio_set_value(&desc_enet1, 0); udelay(50); - dm_gpio_set_value(&desc, 1); + dm_gpio_set_value(&desc_enet1, 1); /* The board has a long delay for this reset to become stable */ mdelay(200); diff --git a/board/freescale/imx8qxp_arm2/imx8qxp_arm2.c b/board/freescale/imx8qxp_arm2/imx8qxp_arm2.c index 362957de27..5eb61b0683 100644 --- a/board/freescale/imx8qxp_arm2/imx8qxp_arm2.c +++ b/board/freescale/imx8qxp_arm2/imx8qxp_arm2.c @@ -255,31 +255,35 @@ static void setup_iomux_fec(void) static void enet_device_phy_reset(void) { - struct gpio_desc desc; + struct gpio_desc desc_enet0; + struct gpio_desc desc_enet1; int ret; - if (0 == CONFIG_FEC_ENET_DEV) { - ret = dm_gpio_lookup_name("gpio@18_1", &desc); - if (ret) - return; + ret = dm_gpio_lookup_name("gpio@18_1", &desc_enet0); + if (ret) + return; - ret = dm_gpio_request(&desc, "enet0_reset"); - if (ret) - return; - } else { - ret = dm_gpio_lookup_name("gpio@18_4", &desc); - if (ret) - return; + ret = dm_gpio_request(&desc_enet0, "enet0_reset"); + if (ret) + return; - ret = dm_gpio_request(&desc, "enet1_reset"); - if (ret) - return; - } + ret = dm_gpio_lookup_name("gpio@18_4", &desc_enet1); + if (ret) + return; + + ret = dm_gpio_request(&desc_enet1, "enet1_reset"); + if (ret) + return; + + dm_gpio_set_dir_flags(&desc_enet0, GPIOD_IS_OUT); + dm_gpio_set_value(&desc_enet0, 0); + udelay(50); + dm_gpio_set_value(&desc_enet0, 1); - dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT); - dm_gpio_set_value(&desc, 0); + dm_gpio_set_dir_flags(&desc_enet1, GPIOD_IS_OUT); + dm_gpio_set_value(&desc_enet1, 0); udelay(50); - dm_gpio_set_value(&desc, 1); + dm_gpio_set_value(&desc_enet1, 1); /* The board has a long delay for this reset to become stable */ mdelay(200); -- cgit v1.2.3