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:16:47 -0800
commitda365863b1e3b23f7a6eb9669098731142cf1a15 (patch)
tree4fd726514f01c70710e45a39d570339560c0ad15
parentb9a884563376c7c32079b3da4f788216180383cf (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.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);