More complete gpio reset sequences for SABRE Lite/Nitrogen6X.
authorjsg <jsg@openbsd.org>
Sat, 17 Jan 2015 02:57:16 +0000 (02:57 +0000)
committerjsg <jsg@openbsd.org>
Sat, 17 Jan 2015 02:57:16 +0000 (02:57 +0000)
From Patrick Wildt in Bitrig.

sys/arch/armv7/imx/imxehci.c
sys/arch/armv7/imx/imxenet.c

index 3896fca..6bc4c2e 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: imxehci.c,v 1.5 2015/01/02 01:57:33 jsg Exp $ */
+/*     $OpenBSD: imxehci.c,v 1.6 2015/01/17 02:57:16 jsg Exp $ */
 /*
  * Copyright (c) 2012-2013 Patrick Wildt <patrick@blueri.se>
  *
@@ -139,6 +139,13 @@ imxehci_attach(struct device *parent, struct device *self, void *aux)
                imxgpio_set_dir(EHCI_HUMMINGBOARD_USB_H1_PWR, IMXGPIO_DIR_OUT);
                delay(10);
                break;
+       case BOARD_ID_IMX6_SABRELITE:
+               imxgpio_clear_bit(EHCI_NITROGEN6X_USB_HUB_RST);
+               imxgpio_set_dir(EHCI_NITROGEN6X_USB_HUB_RST, IMXGPIO_DIR_OUT);
+               delay(1000 * 2);
+               imxgpio_set_bit(EHCI_NITROGEN6X_USB_HUB_RST);
+               delay(10);
+               break;
        case BOARD_ID_IMX6_UTILITE:
                imxgpio_clear_bit(EHCI_UTILITE_USB_HUB_RST);
                imxgpio_set_dir(EHCI_UTILITE_USB_HUB_RST, IMXGPIO_DIR_OUT);
index 357a9a7..67e9bca 100644 (file)
@@ -1,4 +1,4 @@
-/* $OpenBSD: imxenet.c,v 1.9 2015/01/02 01:57:33 jsg Exp $ */
+/* $OpenBSD: imxenet.c,v 1.10 2015/01/17 02:57:16 jsg Exp $ */
 /*
  * Copyright (c) 2012-2013 Patrick Wildt <patrick@blueri.se>
  *
@@ -246,10 +246,14 @@ imxenet_attach(struct device *parent, struct device *self, void *args)
        case BOARD_ID_IMX6_PHYFLEX:
        case BOARD_ID_IMX6_SABRELITE:
                /* phyFLEX i.MX6 and SABRE Lite PHY reset */
-               imxgpio_set_dir(ENET_PHYFLEX_PHY_RST, IMXGPIO_DIR_OUT);
-               delay(10);
-               imxgpio_set_bit(ENET_PHYFLEX_PHY_RST);
-               delay(10);
+               imxgpio_clear_bit(ENET_SABRELITE_PHY_RST);
+               imxgpio_set_dir(ENET_SABRELITE_PHY_RST, IMXGPIO_DIR_OUT);
+               imxgpio_clear_bit(ENET_NITROGEN6X_PHY_RST);
+               imxgpio_set_dir(ENET_NITROGEN6X_PHY_RST, IMXGPIO_DIR_OUT);
+               delay(1000 * 10);
+               imxgpio_set_bit(ENET_SABRELITE_PHY_RST);
+               imxgpio_set_bit(ENET_NITROGEN6X_PHY_RST);
+               delay(100);
                break;
        case BOARD_ID_IMX6_UDOO:
                imxgpio_set_bit(ENET_UDOO_PWR);