On Mon, May 21, 2012 at 12:01:06PM -0700, Tony Lindgren wrote:
> The FS (Full Speed) USB controller is available on 2420 and 2430,
> but not being used.
> 
> Out of the 2420 based boards only Nokia N8X0 are seeing active
> development and they have external HS (High Speed) TUSB controller.
> On omap 2430sdp there is MUSB HS controller, so there's no need
> to use the legacy USB FS controller.
> 
> That leaves only H4 and Apollon boards that could use the FS USB
> controller. As both H4 and Apollon boards are old proprietary
> development boards, it's unlikely that we have any active
> developers working on those boards using the USB.
> 
> So remove the FS USB support for omap2 machines. Patches are
> welcome if somebody wants to instead fix it all up to the
> current standards.
> 
> Cc: [email protected]
> Cc: Felipe Balbi <[email protected]>

Acked-by: Felipe Balbi <[email protected]>

> Cc: Kyungmin Park <[email protected]>
> Signed-off-by: Tony Lindgren <[email protected]>
> ---
>  arch/arm/mach-omap2/Kconfig         |    2 
>  arch/arm/mach-omap2/Makefile        |    3 
>  arch/arm/mach-omap2/board-2430sdp.c |   11 -
>  arch/arm/mach-omap2/board-apollon.c |   18 --
>  arch/arm/mach-omap2/board-h4.c      |   13 -
>  arch/arm/mach-omap2/usb-fs.c        |  359 
> -----------------------------------
>  6 files changed, 406 deletions(-)
>  delete mode 100644 arch/arm/mach-omap2/usb-fs.c
> 
> diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
> index 0e4dd67..042f157 100644
> --- a/arch/arm/mach-omap2/Kconfig
> +++ b/arch/arm/mach-omap2/Kconfig
> @@ -64,13 +64,11 @@ config SOC_OMAP2420
>       depends on ARCH_OMAP2
>       default y
>       select OMAP_DM_TIMER
> -     select ARCH_OMAP_OTG
>  
>  config SOC_OMAP2430
>       bool "OMAP2430 support"
>       depends on ARCH_OMAP2
>       default y
> -     select ARCH_OMAP_OTG
>  
>  config SOC_OMAP3430
>       bool "OMAP3430 support"
> diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
> index fa742f3..664224f 100644
> --- a/arch/arm/mach-omap2/Makefile
> +++ b/arch/arm/mach-omap2/Makefile
> @@ -244,9 +244,6 @@ obj-y                                     += 
> $(omap-flash-y) $(omap-flash-m)
>  omap-hsmmc-$(CONFIG_MMC_OMAP_HS)     := hsmmc.o
>  obj-y                                        += $(omap-hsmmc-m) 
> $(omap-hsmmc-y)
>  
> -
> -usbfs-$(CONFIG_ARCH_OMAP_OTG)                := usb-fs.o
> -obj-y                                        += $(usbfs-m) $(usbfs-y)
>  obj-y                                        += usb-musb.o
>  obj-y                                        += omap_phy_internal.o
>  
> diff --git a/arch/arm/mach-omap2/board-2430sdp.c 
> b/arch/arm/mach-omap2/board-2430sdp.c
> index 99ca6ba..6523aea 100644
> --- a/arch/arm/mach-omap2/board-2430sdp.c
> +++ b/arch/arm/mach-omap2/board-2430sdp.c
> @@ -254,16 +254,6 @@ static struct omap2_hsmmc_info mmc[] __initdata = {
>       {}      /* Terminator */
>  };
>  
> -static struct omap_usb_config sdp2430_usb_config __initdata = {
> -     .otg            = 1,
> -#ifdef  CONFIG_USB_GADGET_OMAP
> -     .hmc_mode       = 0x0,
> -#elif   defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
> -     .hmc_mode       = 0x1,
> -#endif
> -     .pins[0]        = 3,
> -};
> -
>  #ifdef CONFIG_OMAP_MUX
>  static struct omap_board_mux board_mux[] __initdata = {
>       { .reg_offset = OMAP_MUX_TERMINATOR },
> @@ -280,7 +270,6 @@ static void __init omap_2430sdp_init(void)
>       omap_serial_init();
>       omap_sdrc_init(NULL, NULL);
>       omap_hsmmc_init(mmc);
> -     omap2_usbfs_init(&sdp2430_usb_config);
>  
>       omap_mux_init_signal("usb0hs_stp", OMAP_PULL_ENA | OMAP_PULL_UP);
>       usb_musb_init(NULL);
> diff --git a/arch/arm/mach-omap2/board-apollon.c 
> b/arch/arm/mach-omap2/board-apollon.c
> index 502c31e..519bcd3 100644
> --- a/arch/arm/mach-omap2/board-apollon.c
> +++ b/arch/arm/mach-omap2/board-apollon.c
> @@ -35,7 +35,6 @@
>  #include <asm/mach/flash.h>
>  
>  #include <plat/led.h>
> -#include <plat/usb.h>
>  #include <plat/board.h>
>  #include "common.h"
>  #include <plat/gpmc.h>
> @@ -253,13 +252,6 @@ out:
>       clk_put(gpmc_fck);
>  }
>  
> -static struct omap_usb_config apollon_usb_config __initdata = {
> -     .register_dev   = 1,
> -     .hmc_mode       = 0x14, /* 0:dev 1:host1 2:disable */
> -
> -     .pins[0]        = 6,
> -};
> -
>  static struct panel_generic_dpi_data apollon_panel_data = {
>       .name                   = "apollon",
>  };
> @@ -297,15 +289,6 @@ static void __init apollon_led_init(void)
>       gpio_request_array(apollon_gpio_leds, ARRAY_SIZE(apollon_gpio_leds));
>  }
>  
> -static void __init apollon_usb_init(void)
> -{
> -     /* USB device */
> -     /* DEVICE_SUSPEND */
> -     omap_mux_init_signal("mcbsp2_clkx.gpio_12", 0);
> -     gpio_request_one(12, GPIOF_OUT_INIT_LOW, "USB suspend");
> -     omap2_usbfs_init(&apollon_usb_config);
> -}
> -
>  #ifdef CONFIG_OMAP_MUX
>  static struct omap_board_mux board_mux[] __initdata = {
>       { .reg_offset = OMAP_MUX_TERMINATOR },
> @@ -321,7 +304,6 @@ static void __init omap_apollon_init(void)
>       apollon_init_smc91x();
>       apollon_led_init();
>       apollon_flash_init();
> -     apollon_usb_init();
>  
>       /* REVISIT: where's the correct place */
>       omap_mux_init_signal("sys_nirq", OMAP_PULL_ENA | OMAP_PULL_UP);
> diff --git a/arch/arm/mach-omap2/board-h4.c b/arch/arm/mach-omap2/board-h4.c
> index 876becf..ace2048 100644
> --- a/arch/arm/mach-omap2/board-h4.c
> +++ b/arch/arm/mach-omap2/board-h4.c
> @@ -32,7 +32,6 @@
>  #include <asm/mach/arch.h>
>  #include <asm/mach/map.h>
>  
> -#include <plat/usb.h>
>  #include <plat/board.h>
>  #include "common.h"
>  #include <plat/menelaus.h>
> @@ -329,17 +328,6 @@ static void __init h4_init_flash(void)
>       h4_flash_resource.end   = base + SZ_64M - 1;
>  }
>  
> -static struct omap_usb_config h4_usb_config __initdata = {
> -     /* S1.10 OFF -- usb "download port"
> -      * usb0 switched to Mini-B port and isp1105 transceiver;
> -      * S2.POS3 = ON, S2.POS4 = OFF ... to enable battery charging
> -      */
> -     .register_dev   = 1,
> -     .pins[0]        = 3,
> -/*   .hmc_mode       = 0x14,*/       /* 0:dev 1:host 2:disable */
> -     .hmc_mode       = 0x00,         /* 0:dev|otg 1:disable 2:disable */
> -};
> -
>  static struct at24_platform_data m24c01 = {
>       .byte_len       = SZ_1K / 8,
>       .page_size      = 16,
> @@ -381,7 +369,6 @@ static void __init omap_h4_init(void)
>                       ARRAY_SIZE(h4_i2c_board_info));
>  
>       platform_add_devices(h4_devices, ARRAY_SIZE(h4_devices));
> -     omap2_usbfs_init(&h4_usb_config);
>       omap_serial_init();
>       omap_sdrc_init(NULL, NULL);
>       h4_init_flash();
> diff --git a/arch/arm/mach-omap2/usb-fs.c b/arch/arm/mach-omap2/usb-fs.c
> deleted file mode 100644
> index 1481078..0000000
> --- a/arch/arm/mach-omap2/usb-fs.c
> +++ /dev/null
> @@ -1,359 +0,0 @@
> -/*
> - * Platform level USB initialization for FS USB OTG controller on omap1 and 
> 24xx
> - *
> - * Copyright (C) 2004 Texas Instruments, Inc.
> - *
> - * This program is free software; you can redistribute it and/or modify
> - * it under the terms of the GNU General Public License as published by
> - * the Free Software Foundation; either version 2 of the License, or
> - * (at your option) any later version.
> - *
> - * This program is distributed in the hope that it will be useful,
> - * but WITHOUT ANY WARRANTY; without even the implied warranty of
> - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> - * GNU General Public License for more details.
> - *
> - * You should have received a copy of the GNU General Public License
> - * along with this program; if not, write to the Free Software
> - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
> - */
> -
> -#include <linux/module.h>
> -#include <linux/kernel.h>
> -#include <linux/types.h>
> -#include <linux/errno.h>
> -#include <linux/init.h>
> -#include <linux/platform_device.h>
> -#include <linux/clk.h>
> -#include <linux/err.h>
> -
> -#include <asm/irq.h>
> -
> -#include <plat/usb.h>
> -#include <plat/board.h>
> -
> -#include "control.h"
> -#include "mux.h"
> -
> -#define INT_USB_IRQ_GEN              INT_24XX_USB_IRQ_GEN
> -#define INT_USB_IRQ_NISO     INT_24XX_USB_IRQ_NISO
> -#define INT_USB_IRQ_ISO              INT_24XX_USB_IRQ_ISO
> -#define INT_USB_IRQ_HGEN     INT_24XX_USB_IRQ_HGEN
> -#define INT_USB_IRQ_OTG              INT_24XX_USB_IRQ_OTG
> -
> -#if defined(CONFIG_ARCH_OMAP2)
> -
> -#ifdef       CONFIG_USB_GADGET_OMAP
> -
> -static struct resource udc_resources[] = {
> -     /* order is significant! */
> -     {               /* registers */
> -             .start          = UDC_BASE,
> -             .end            = UDC_BASE + 0xff,
> -             .flags          = IORESOURCE_MEM,
> -     }, {            /* general IRQ */
> -             .start          = INT_USB_IRQ_GEN,
> -             .flags          = IORESOURCE_IRQ,
> -     }, {            /* PIO IRQ */
> -             .start          = INT_USB_IRQ_NISO,
> -             .flags          = IORESOURCE_IRQ,
> -     }, {            /* SOF IRQ */
> -             .start          = INT_USB_IRQ_ISO,
> -             .flags          = IORESOURCE_IRQ,
> -     },
> -};
> -
> -static u64 udc_dmamask = ~(u32)0;
> -
> -static struct platform_device udc_device = {
> -     .name           = "omap_udc",
> -     .id             = -1,
> -     .dev = {
> -             .dma_mask               = &udc_dmamask,
> -             .coherent_dma_mask      = 0xffffffff,
> -     },
> -     .num_resources  = ARRAY_SIZE(udc_resources),
> -     .resource       = udc_resources,
> -};
> -
> -static inline void udc_device_init(struct omap_usb_config *pdata)
> -{
> -     pdata->udc_device = &udc_device;
> -}
> -
> -#else
> -
> -static inline void udc_device_init(struct omap_usb_config *pdata)
> -{
> -}
> -
> -#endif
> -
> -#if  defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE)
> -
> -/* The dmamask must be set for OHCI to work */
> -static u64 ohci_dmamask = ~(u32)0;
> -
> -static struct resource ohci_resources[] = {
> -     {
> -             .start  = OMAP_OHCI_BASE,
> -             .end    = OMAP_OHCI_BASE + 0xff,
> -             .flags  = IORESOURCE_MEM,
> -     },
> -     {
> -             .start  = INT_USB_IRQ_HGEN,
> -             .flags  = IORESOURCE_IRQ,
> -     },
> -};
> -
> -static struct platform_device ohci_device = {
> -     .name                   = "ohci",
> -     .id                     = -1,
> -     .dev = {
> -             .dma_mask               = &ohci_dmamask,
> -             .coherent_dma_mask      = 0xffffffff,
> -     },
> -     .num_resources  = ARRAY_SIZE(ohci_resources),
> -     .resource               = ohci_resources,
> -};
> -
> -static inline void ohci_device_init(struct omap_usb_config *pdata)
> -{
> -     pdata->ohci_device = &ohci_device;
> -}
> -
> -#else
> -
> -static inline void ohci_device_init(struct omap_usb_config *pdata)
> -{
> -}
> -
> -#endif
> -
> -#if  defined(CONFIG_USB_OTG) && defined(CONFIG_ARCH_OMAP_OTG)
> -
> -static struct resource otg_resources[] = {
> -     /* order is significant! */
> -     {
> -             .start          = OTG_BASE,
> -             .end            = OTG_BASE + 0xff,
> -             .flags          = IORESOURCE_MEM,
> -     }, {
> -             .start          = INT_USB_IRQ_OTG,
> -             .flags          = IORESOURCE_IRQ,
> -     },
> -};
> -
> -static struct platform_device otg_device = {
> -     .name           = "omap_otg",
> -     .id             = -1,
> -     .num_resources  = ARRAY_SIZE(otg_resources),
> -     .resource       = otg_resources,
> -};
> -
> -static inline void otg_device_init(struct omap_usb_config *pdata)
> -{
> -     pdata->otg_device = &otg_device;
> -}
> -
> -#else
> -
> -static inline void otg_device_init(struct omap_usb_config *pdata)
> -{
> -}
> -
> -#endif
> -
> -static void omap2_usb_devconf_clear(u8 port, u32 mask)
> -{
> -     u32 r;
> -
> -     r = omap_ctrl_readl(OMAP2_CONTROL_DEVCONF0);
> -     r &= ~USBTXWRMODEI(port, mask);
> -     omap_ctrl_writel(r, OMAP2_CONTROL_DEVCONF0);
> -}
> -
> -static void omap2_usb_devconf_set(u8 port, u32 mask)
> -{
> -     u32 r;
> -
> -     r = omap_ctrl_readl(OMAP2_CONTROL_DEVCONF0);
> -     r |= USBTXWRMODEI(port, mask);
> -     omap_ctrl_writel(r, OMAP2_CONTROL_DEVCONF0);
> -}
> -
> -static void omap2_usb2_disable_5pinbitll(void)
> -{
> -     u32 r;
> -
> -     r = omap_ctrl_readl(OMAP2_CONTROL_DEVCONF0);
> -     r &= ~(USBTXWRMODEI(2, USB_BIDIR_TLL) | USBT2TLL5PI);
> -     omap_ctrl_writel(r, OMAP2_CONTROL_DEVCONF0);
> -}
> -
> -static void omap2_usb2_enable_5pinunitll(void)
> -{
> -     u32 r;
> -
> -     r = omap_ctrl_readl(OMAP2_CONTROL_DEVCONF0);
> -     r |= USBTXWRMODEI(2, USB_UNIDIR_TLL) | USBT2TLL5PI;
> -     omap_ctrl_writel(r, OMAP2_CONTROL_DEVCONF0);
> -}
> -
> -static u32 __init omap2_usb0_init(unsigned nwires, unsigned is_device)
> -{
> -     u32     syscon1 = 0;
> -
> -     omap2_usb_devconf_clear(0, USB_BIDIR_TLL);
> -
> -     if (nwires == 0)
> -             return 0;
> -
> -     if (is_device)
> -             omap_mux_init_signal("usb0_puen", 0);
> -
> -     omap_mux_init_signal("usb0_dat", 0);
> -     omap_mux_init_signal("usb0_txen", 0);
> -     omap_mux_init_signal("usb0_se0", 0);
> -     if (nwires != 3)
> -             omap_mux_init_signal("usb0_rcv", 0);
> -
> -     switch (nwires) {
> -     case 3:
> -             syscon1 = 2;
> -             omap2_usb_devconf_set(0, USB_BIDIR);
> -             break;
> -     case 4:
> -             syscon1 = 1;
> -             omap2_usb_devconf_set(0, USB_BIDIR);
> -             break;
> -     case 6:
> -             syscon1 = 3;
> -             omap_mux_init_signal("usb0_vp", 0);
> -             omap_mux_init_signal("usb0_vm", 0);
> -             omap2_usb_devconf_set(0, USB_UNIDIR);
> -             break;
> -     default:
> -             printk(KERN_ERR "illegal usb%d %d-wire transceiver\n",
> -                     0, nwires);
> -     }
> -
> -     return syscon1 << 16;
> -}
> -
> -static u32 __init omap2_usb1_init(unsigned nwires)
> -{
> -     u32     syscon1 = 0;
> -
> -     omap2_usb_devconf_clear(1, USB_BIDIR_TLL);
> -
> -     if (nwires == 0)
> -             return 0;
> -
> -     /* NOTE:  board-specific code must set up pin muxing for usb1,
> -      * since each signal could come out on either of two balls.
> -      */
> -
> -     switch (nwires) {
> -     case 2:
> -             /* NOTE: board-specific code must override this setting if
> -              * this TLL link is not using DP/DM
> -              */
> -             syscon1 = 1;
> -             omap2_usb_devconf_set(1, USB_BIDIR_TLL);
> -             break;
> -     case 3:
> -             syscon1 = 2;
> -             omap2_usb_devconf_set(1, USB_BIDIR);
> -             break;
> -     case 4:
> -             syscon1 = 1;
> -             omap2_usb_devconf_set(1, USB_BIDIR);
> -             break;
> -     case 6:
> -     default:
> -             printk(KERN_ERR "illegal usb%d %d-wire transceiver\n",
> -                     1, nwires);
> -     }
> -
> -     return syscon1 << 20;
> -}
> -
> -static u32 __init omap2_usb2_init(unsigned nwires, unsigned alt_pingroup)
> -{
> -     u32     syscon1 = 0;
> -
> -     omap2_usb2_disable_5pinbitll();
> -     alt_pingroup = 0;
> -
> -     /* NOTE omap1 erratum: must leave USB2_UNI_R set if usb0 in use */
> -     if (alt_pingroup || nwires == 0)
> -             return 0;
> -
> -     omap_mux_init_signal("usb2_dat", 0);
> -     omap_mux_init_signal("usb2_se0", 0);
> -     if (nwires > 2)
> -             omap_mux_init_signal("usb2_txen", 0);
> -     if (nwires > 3)
> -             omap_mux_init_signal("usb2_rcv", 0);
> -
> -     switch (nwires) {
> -     case 2:
> -             /* NOTE: board-specific code must override this setting if
> -              * this TLL link is not using DP/DM
> -              */
> -             syscon1 = 1;
> -             omap2_usb_devconf_set(2, USB_BIDIR_TLL);
> -             break;
> -     case 3:
> -             syscon1 = 2;
> -             omap2_usb_devconf_set(2, USB_BIDIR);
> -             break;
> -     case 4:
> -             syscon1 = 1;
> -             omap2_usb_devconf_set(2, USB_BIDIR);
> -             break;
> -     case 5:
> -             /* NOTE: board-specific code must mux this setting depending
> -              * on TLL link using DP/DM.  Something must also
> -              * set up OTG_SYSCON2.HMC_TLL{ATTACH,SPEED}
> -              * 2420: hdq_sio.usb2_tllse0 or vlynq_rx0.usb2_tllse0
> -              * 2430: hdq_sio.usb2_tllse0 or sdmmc2_dat0.usb2_tllse0
> -              */
> -
> -             syscon1 = 3;
> -             omap2_usb2_enable_5pinunitll();
> -             break;
> -     case 6:
> -     default:
> -             printk(KERN_ERR "illegal usb%d %d-wire transceiver\n",
> -                     2, nwires);
> -     }
> -
> -     return syscon1 << 24;
> -}
> -
> -void __init omap2_usbfs_init(struct omap_usb_config *pdata)
> -{
> -     struct clk *ick;
> -
> -     if (!cpu_is_omap24xx())
> -             return;
> -
> -     ick = clk_get(NULL, "usb_l4_ick");
> -     if (IS_ERR(ick))
> -             return;
> -
> -     clk_enable(ick);
> -     pdata->usb0_init = omap2_usb0_init;
> -     pdata->usb1_init = omap2_usb1_init;
> -     pdata->usb2_init = omap2_usb2_init;
> -     udc_device_init(pdata);
> -     ohci_device_init(pdata);
> -     otg_device_init(pdata);
> -     omap_otg_init(pdata);
> -     clk_disable(ick);
> -     clk_put(ick);
> -}
> -
> -#endif
> 

-- 
balbi

Attachment: signature.asc
Description: Digital signature

Reply via email to