summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYe Li <ye.li@nxp.com>2018-01-16 23:46:54 -0800
committerYe Li <ye.li@nxp.com>2018-01-17 05:15:16 -0800
commit9ce009caf4c80fbcb31526049420d6c388494247 (patch)
treebc1166f7c7feb9b8a3cc90672aa38b217275aef1
parent1b5cda88133616d06e2b3ecbf41940b33ebddf67 (diff)
downloaduboot-imx-9ce009caf4c80fbcb31526049420d6c388494247.tar.gz
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>
-rw-r--r--board/freescale/imx8qm_arm2/imx8qm_arm2.c41
-rw-r--r--board/freescale/imx8qxp_arm2/imx8qxp_arm2.c42
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);