UPLI PHY connected to USBH1 on Babbage board seem to need a special
reset sequence in which STP signal gets asserted for a short period of
time. Without this sequnce running "usb" results in timeout and no USB
devices found.

Similar reset sequences can be found in Babbage board code in U-Boot
as well as efikamx_usb_init() in Barebox.

Signed-off-by: Andrey Smirnov <[email protected]>
---
 .../arm/boards/freescale-mx51-babbage/board.c | 35 +++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/arch/arm/boards/freescale-mx51-babbage/board.c 
b/arch/arm/boards/freescale-mx51-babbage/board.c
index 2e75db547..4839aa568 100644
--- a/arch/arm/boards/freescale-mx51-babbage/board.c
+++ b/arch/arm/boards/freescale-mx51-babbage/board.c
@@ -43,6 +43,41 @@
 
 #define MX51_CCM_CACRR 0x10
 
+#define USBH1_STP      IMX_GPIO_NR(1, 27)
+#define USBH1_PHY_RESET IMX_GPIO_NR(2, 5)
+#define USBH1_HUB_RESET        IMX_GPIO_NR(1, 7)
+
+static int imx51_babbage_reset_usbh1(void)
+{
+       void __iomem *iomuxbase = IOMEM(MX51_IOMUXC_BASE_ADDR);
+
+       if (!of_machine_is_compatible("fsl,imx51-babbage"))
+               return 0;
+
+       imx_setup_pad(iomuxbase, MX51_PAD_EIM_D21__GPIO2_5);
+       imx_setup_pad(iomuxbase, MX51_PAD_GPIO1_7__GPIO1_7);
+
+       gpio_direction_output(USBH1_PHY_RESET, 0);
+       gpio_direction_output(USBH1_HUB_RESET, 0);
+
+       mdelay(10);
+
+       gpio_set_value(USBH1_PHY_RESET, 1);
+       gpio_set_value(USBH1_HUB_RESET, 1);
+
+       imx_setup_pad(iomuxbase, MX51_PAD_USBH1_STP__GPIO1_27);
+       gpio_direction_output(USBH1_STP, 1);
+
+       mdelay(1);
+
+       imx_setup_pad(iomuxbase, MX51_PAD_USBH1_STP__USBH1_STP);
+
+       gpio_free(USBH1_PHY_RESET);
+
+       return 0;
+}
+console_initcall(imx51_babbage_reset_usbh1);
+
 static int imx51_babbage_init(void)
 {
        if (!of_machine_is_compatible("fsl,imx51-babbage"))
-- 
2.17.1


_______________________________________________
barebox mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to