diff options
author | Ye Li <ye.li@nxp.com> | 2018-01-16 23:46:54 -0800 |
---|---|---|
committer | Ye Li <ye.li@nxp.com> | 2018-01-17 05:16:47 -0800 |
commit | da365863b1e3b23f7a6eb9669098731142cf1a15 (patch) | |
tree | 4fd726514f01c70710e45a39d570339560c0ad15 | |
parent | b9a884563376c7c32079b3da4f788216180383cf (diff) |
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 <ye.li@nxp.com>
(cherry picked from commit 9ce009caf4c80fbcb31526049420d6c388494247)
-rw-r--r-- | board/freescale/imx8qm_arm2/imx8qm_arm2.c | 41 | ||||
-rw-r--r-- | 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); |