[PATCH] OMAP: USB EHCI: Support final revision of USB board

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




   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 <vikram.pandita@xxxxxx>
---
 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Arm (vger)]     [ARM Kernel]     [ARM MSM]     [Linux Tegra]     [Linux WPAN Networking]     [Linux Wireless Networking]     [Maemo Users]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux