Code changes for final rev of EHCI/OHCI USB expansion board 750-2099-001(C)
with h/w bug fixes to support ISP1504 PHY in input clocking mode
The board has 12-pin ULPI Port1 and Port2 EHCI pins connected to ISP1504's.
Port3 is connected to ISP1301 for connection to OHCI.
- This is the final USB expansion board that will be released and
so the bug fixes are critical
- Changes tested on SDP3430
Signed-off-by: Vikram Pandita <[EMAIL PROTECTED]>
---
drivers/usb/host/ehci-omap.c | 37 ++++++-------------------------------
1 file changed, 6 insertions(+), 31 deletions(-)
Index: linux-omap-2.6/drivers/usb/host/ehci-omap.c
===================================================================
--- linux-omap-2.6.orig/drivers/usb/host/ehci-omap.c 2008-05-02
14:11:56.000000000 +0530
+++ linux-omap-2.6/drivers/usb/host/ehci-omap.c 2008-05-02 15:05:40.000000000
+0530
@@ -35,7 +35,7 @@
#ifdef CONFIG_OMAP_EHCI_PHY_MODE
/* EHCI connected to External PHY */
-/* External USB connectivity board: 750-2083-001
+/* External USB connectivity board: 750-2099-001(C)
* Connected to OMAP3430 SDP
* The board has Port1 and Port2 connected to ISP1504 in 12-pin ULPI mode
*/
@@ -50,14 +50,7 @@
#define EXTERNAL_PHY_RESET
#define EXT_PHY_RESET_GPIO_PORT1 (57)
#define EXT_PHY_RESET_GPIO_PORT2 (61)
-#define EXT_PHY_RESET_DELAY (10)
-
-/* ISSUE2:
- * USBHOST supports External charge pump PHYs only
- * Use the VBUS from Port1 to power VBUS of Port2 externally
- * So use Port2 as the working ULPI port
- */
-#define VBUS_INTERNAL_CHARGEPUMP_HACK
+#define EXT_PHY_RESET_DELAY (500)
#endif /* CONFIG_OMAP_EHCI_PHY_MODE */
@@ -228,8 +221,8 @@ static int omap_start_ehc(struct platfor
omap_set_gpio_direction(EXT_PHY_RESET_GPIO_PORT1, 0);
omap_request_gpio(EXT_PHY_RESET_GPIO_PORT2);
omap_set_gpio_direction(EXT_PHY_RESET_GPIO_PORT2, 0);
- omap_set_gpio_dataout(EXT_PHY_RESET_GPIO_PORT1, 0);
- omap_set_gpio_dataout(EXT_PHY_RESET_GPIO_PORT2, 0);
+ omap_set_gpio_dataout(EXT_PHY_RESET_GPIO_PORT1, 1);
+ omap_set_gpio_dataout(EXT_PHY_RESET_GPIO_PORT2, 1);
/* Hold the PHY in RESET for enough time till DIR is high */
udelay(EXT_PHY_RESET_DELAY);
#endif
@@ -305,26 +298,8 @@ static int omap_start_ehc(struct platfor
* Hold the PHY in RESET for enough time till PHY is settled and ready
*/
udelay(EXT_PHY_RESET_DELAY);
- omap_set_gpio_dataout(EXT_PHY_RESET_GPIO_PORT1, 1);
- omap_set_gpio_dataout(EXT_PHY_RESET_GPIO_PORT2, 1);
-#endif
-
-#ifdef VBUS_INTERNAL_CHARGEPUMP_HACK
- /* Refer ISSUE2: LINK assumes external charge pump */
-
- /* use Port1 VBUS to charge externally Port2:
- * So for PHY mode operation use Port2 only
- */
- omap_writel((0xA << EHCI_INSNREG05_ULPI_REGADD_SHIFT) |/* OTG ctrl reg*/
- (2 << EHCI_INSNREG05_ULPI_OPSEL_SHIFT) |/* Write */
- (1 << EHCI_INSNREG05_ULPI_PORTSEL_SHIFT) |/* Port1 */
- (1 << EHCI_INSNREG05_ULPI_CONTROL_SHIFT) |/* Start */
- (0x26),
- EHCI_INSNREG05_ULPI);
-
- while (!(omap_readl(EHCI_INSNREG05_ULPI) &
- (1<<EHCI_INSNREG05_ULPI_CONTROL_SHIFT)));
-
+ omap_set_gpio_dataout(EXT_PHY_RESET_GPIO_PORT1, 0);
+ omap_set_gpio_dataout(EXT_PHY_RESET_GPIO_PORT2, 0);
#endif
return 0;
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html