From 931f53684911de57e4f22830c234df191f0628ee Mon Sep 17 00:00:00 2001 From: jsg Date: Sat, 17 Jan 2015 02:57:16 +0000 Subject: [PATCH] More complete gpio reset sequences for SABRE Lite/Nitrogen6X. From Patrick Wildt in Bitrig. --- sys/arch/armv7/imx/imxehci.c | 9 ++++++++- sys/arch/armv7/imx/imxenet.c | 14 +++++++++----- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/sys/arch/armv7/imx/imxehci.c b/sys/arch/armv7/imx/imxehci.c index 3896fca22c6..6bc4c2ec5ce 100644 --- a/sys/arch/armv7/imx/imxehci.c +++ b/sys/arch/armv7/imx/imxehci.c @@ -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 * @@ -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); diff --git a/sys/arch/armv7/imx/imxenet.c b/sys/arch/armv7/imx/imxenet.c index 357a9a703c5..67e9bca230d 100644 --- a/sys/arch/armv7/imx/imxenet.c +++ b/sys/arch/armv7/imx/imxenet.c @@ -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 * @@ -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); -- 2.20.1