On 30.11.18 03:54, Aditya Prayoga wrote:
Similar to Clearfog rev 2.1, GPIO 19 also used to reset onboard ethernet
PHY.

Signed-off-by: Aditya Prayoga <adi...@kobol.io>
---
v2:
* Use generic gpio_* API (Baruch Siach)
---
  board/kobol/helios4/helios4.c | 31 +++++++++++++++++++++++++++++++
  1 file changed, 31 insertions(+)

diff --git a/board/kobol/helios4/helios4.c b/board/kobol/helios4/helios4.c
index 37c46a5..e535d7b 100644
--- a/board/kobol/helios4/helios4.c
+++ b/board/kobol/helios4/helios4.c
@@ -8,6 +8,7 @@
  #include <i2c.h>
  #include <miiphy.h>
  #include <netdev.h>
+#include <asm/gpio.h>
  #include <asm/io.h>
  #include <asm/arch/cpu.h>
  #include <asm/arch/soc.h>
@@ -111,9 +112,39 @@ int board_early_init_f(void)
int board_init(void)
  {
+       struct udevice *gpio0;
+       struct gpio_desc phy_reset;
+       int ret;
+
        /* Address of boot parameters */
        gd->bd->bi_boot_params = mvebu_sdram_bar(0) + 0x100;
+ ret = uclass_get_device_by_name(UCLASS_GPIO,
+                                       "gpio@18100",
+                                       &gpio0);
+       if (ret < 0) {
+               printf("Failed to find gpio@18100 node.\n");
+               return ret;
+       }
+
+       phy_reset.dev = gpio0;
+
+       /* MPP19 controls the uSOM onboard phy reset */
+       phy_reset.offset = 19;
+
+       ret = dm_gpio_request(&phy_reset, "phy-reset");
+       if (ret)
+               return ret;
+
+       dm_gpio_set_dir_flags(&phy_reset,
+                             GPIOD_IS_OUT |
+                             GPIOD_ACTIVE_LOW |
+                             GPIOD_IS_OUT_ACTIVE);
+
+       mdelay(10);
+       dm_gpio_set_value(&phy_reset, 0);
+       mdelay(10);
+

Hmm, this is a pretty complex and unusual way to use the GPIO.
Please use the DT to describe the PHY reset GPIO instead. And since
it seems to be a common issue to have such a PHY reset GPIO, it
would be better to integrate this into the ethernet driver instead.
Here an example from the mvpp2 driver:

https://patchwork.ozlabs.org/patch/799654/

Could you try to integrate something similar into the mvneta
driver?

Thanks,
Stefan
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to