]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - sitara-epos/sitara-epos-kernel.git/blobdiff - arch/arm/mach-omap2/usb-musb.c
musb: select fifo_mode at runtime
[sitara-epos/sitara-epos-kernel.git] / arch / arm / mach-omap2 / usb-musb.c
index 47fb5d607630678e6ce076ef9e311f3cdbb309b6..8387501c1406a3842dab341b6d91ed4ac5a604b1 100644 (file)
@@ -34,6 +34,7 @@
 #include "mux.h"
 
 static struct musb_hdrc_config musb_config = {
+       .fifo_mode      = 4,
        .multipoint     = 1,
        .dyn_fifo       = 1,
        .num_eps        = 16,
@@ -60,44 +61,6 @@ static struct musb_hdrc_platform_data musb_plat = {
 
 static u64 musb_dmamask = DMA_BIT_MASK(32);
 
-static void usb_musb_mux_init(struct omap_musb_board_data *board_data)
-{
-       switch (board_data->interface_type) {
-       case MUSB_INTERFACE_UTMI:
-               omap_mux_init_signal("usba0_otg_dp", OMAP_PIN_INPUT);
-               omap_mux_init_signal("usba0_otg_dm", OMAP_PIN_INPUT);
-               break;
-       case MUSB_INTERFACE_ULPI:
-               omap_mux_init_signal("usba0_ulpiphy_clk",
-                                               OMAP_PIN_INPUT_PULLDOWN);
-               omap_mux_init_signal("usba0_ulpiphy_stp",
-                                               OMAP_PIN_INPUT_PULLDOWN);
-               omap_mux_init_signal("usba0_ulpiphy_dir",
-                                               OMAP_PIN_INPUT_PULLDOWN);
-               omap_mux_init_signal("usba0_ulpiphy_nxt",
-                                               OMAP_PIN_INPUT_PULLDOWN);
-               omap_mux_init_signal("usba0_ulpiphy_dat0",
-                                               OMAP_PIN_INPUT_PULLDOWN);
-               omap_mux_init_signal("usba0_ulpiphy_dat1",
-                                               OMAP_PIN_INPUT_PULLDOWN);
-               omap_mux_init_signal("usba0_ulpiphy_dat2",
-                                               OMAP_PIN_INPUT_PULLDOWN);
-               omap_mux_init_signal("usba0_ulpiphy_dat3",
-                                               OMAP_PIN_INPUT_PULLDOWN);
-               omap_mux_init_signal("usba0_ulpiphy_dat4",
-                                               OMAP_PIN_INPUT_PULLDOWN);
-               omap_mux_init_signal("usba0_ulpiphy_dat5",
-                                               OMAP_PIN_INPUT_PULLDOWN);
-               omap_mux_init_signal("usba0_ulpiphy_dat6",
-                                               OMAP_PIN_INPUT_PULLDOWN);
-               omap_mux_init_signal("usba0_ulpiphy_dat7",
-                                               OMAP_PIN_INPUT_PULLDOWN);
-               break;
-       default:
-               break;
-       }
-}
-
 static struct omap_musb_board_data musb_default_board_data = {
        .interface_type         = MUSB_INTERFACE_ULPI,
        .mode                   = MUSB_OTG,
@@ -128,9 +91,20 @@ void __init usb_musb_init(struct omap_musb_board_data *musb_board_data)
        musb_plat.mode = board_data->mode;
        musb_plat.extvbus = board_data->extvbus;
 
+       /*
+        * OMAP3630/AM35x platform has MUSB RTL-1.8 which has the fix for the
+        * issue restricting active endpoints to use first 8K of FIFO space.
+        * This issue restricts OMAP35x platform to use fifo_mode '5'.
+        */
+       if (cpu_is_omap3430())
+               musb_config.fifo_mode = 5;
+
        if (cpu_is_omap3517() || cpu_is_omap3505()) {
                oh_name = "am35x_otg_hs";
                name = "musb-am35x";
+       } else if (cpu_is_ti81xx()) {
+               oh_name = "usb_otg_hs";
+               name = "musb-ti81xx";
        } else {
                oh_name = "usb_otg_hs";
                name = "musb-omap2430";