Module Name: src
Committed By: kiyohara
Date: Mon Dec 24 06:41:02 UTC 2012
Modified Files:
src/sys/arch/arm/omap: omap3_ehci.c
Log Message:
Don't wait DPLL5 lock, if set to automatic mode. It is locked by 120 MHz
being supplied.
Also enable EN_USBHOST2(120MHz) in usbhost_init().
To generate a diff of this commit:
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/arm/omap/omap3_ehci.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/arm/omap/omap3_ehci.c
diff -u src/sys/arch/arm/omap/omap3_ehci.c:1.5 src/sys/arch/arm/omap/omap3_ehci.c:1.6
--- src/sys/arch/arm/omap/omap3_ehci.c:1.5 Wed Dec 12 00:33:45 2012
+++ src/sys/arch/arm/omap/omap3_ehci.c Mon Dec 24 06:41:02 2012
@@ -1,4 +1,4 @@
-/* $NetBSD: omap3_ehci.c,v 1.5 2012/12/12 00:33:45 matt Exp $ */
+/* $NetBSD: omap3_ehci.c,v 1.6 2012/12/24 06:41:02 kiyohara Exp $ */
/*-
* Copyright (c) 2010-2012 Jared D. McNeill <[email protected]>
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: omap3_ehci.c,v 1.5 2012/12/12 00:33:45 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: omap3_ehci.c,v 1.6 2012/12/24 06:41:02 kiyohara Exp $");
#include "locators.h"
@@ -97,7 +97,7 @@ __KERNEL_RCSID(0, "$NetBSD: omap3_ehci.c
/* USBHOST_CM registers */
#define CM_FCLKEN_USBHOST 0x00
#define EN_USBHOST1 1 /* USB HOST 48 MHz clock enable */
-#define EN_USBHOST2 2 /* USB HOST 1280 MHz clock enable */
+#define EN_USBHOST2 2 /* USB HOST 120 MHz clock enable */
#define CM_ICLKEN_USBHOST 0x10
#define EN_USBHOST 1 /* USB HOST clock enable */
#define CM_IDLEST_USBHOST 0x20
@@ -429,8 +429,8 @@ dpll5_init(struct omap3_ehci_softc *sc)
{
bus_space_tag_t iot = sc->sc.iot;
bus_space_handle_t ioh;
- uint32_t m, n, m2, v;
- int retry = 1000, err;
+ uint32_t m, n, m2;
+ int err;
if (sc->sc_dpll5.m == 0 || sc->sc_dpll5.n == 0 || sc->sc_dpll5.m2 == 0)
return;
@@ -462,13 +462,6 @@ dpll5_init(struct omap3_ehci_softc *sc)
/* Put DPLL5 into low power stop mode when the 120MHz clock is not required (restarted automatically) */
bus_space_write_4(iot, ioh, CM_AUTOIDLE2_PLL, AUTO_PERIPH2_DPLL);
- /* Wait for DPLL5 lock */
- while (((v = bus_space_read_4(iot, ioh, CM_IDLEST2_CKGEN)) & ST_PERIPH2_CLK) == 0 && --retry > 0) {
- delay(100);
- }
- if (retry == 0)
- printf("%s: timeout\n", __func__);
-
bus_space_unmap(iot, ioh, CCR_CM_SIZE);
}
@@ -490,9 +483,9 @@ usbhost_init(struct omap3_ehci_softc *sc
r = bus_space_read_4(iot, ioh, CM_FCLKEN_USBHOST);
if (enable)
- r |= EN_USBHOST1;
+ r |= (EN_USBHOST1 | EN_USBHOST2);
else
- r &= ~EN_USBHOST1;
+ r &= ~(EN_USBHOST1 | EN_USBHOST2);
bus_space_write_4(iot, ioh, CM_FCLKEN_USBHOST, r);
r = bus_space_read_4(iot, ioh, CM_ICLKEN_USBHOST);