Commit eb83092c authored by Ajay Kumar Gupta's avatar Ajay Kumar Gupta Committed by Greg Kroah-Hartman

USB: musb: add musb support for AM35x

AM35x has musb interface and uses CPPI4.1 DMA engine.
Current patch supports only PIO mode. DMA support can be
added later once basic CPPI4.1 DMA patch is accepted.

Also added USB_MUSB_AM35X which is required to differentiate musb ips
between OMAP3x and AM35x. This config would be used to for below
purposes,
        - Select am35x.c instead of omap2430.c for compilation
          at drivers/usb/musb directory. Please note there are
          significant differneces in these two files as musb ip
          in quite different on AM35x.

	  Please note that in multi omap configuration only omap2430.c
	  file will get compiled and we would require to select only
	  AM35x based board config to compile am35x.c

        - Select workaround codes applicable for AM35x musb issues.
          one such workaround is for bytewise read issue on AM35x.
Signed-off-by: default avatarAjay Kumar Gupta <ajay.gupta@ti.com>
Signed-off-by: default avatarFelipe Balbi <balbi@ti.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 3a0d30bc
...@@ -60,6 +60,17 @@ comment "OMAP 44xx high speed USB support" ...@@ -60,6 +60,17 @@ comment "OMAP 44xx high speed USB support"
comment "Blackfin high speed USB Support" comment "Blackfin high speed USB Support"
depends on USB_MUSB_HDRC && ((BF54x && !BF544) || (BF52x && !BF522 && !BF523)) depends on USB_MUSB_HDRC && ((BF54x && !BF544) || (BF52x && !BF522 && !BF523))
config USB_MUSB_AM35X
bool
depends on USB_MUSB_HDRC && !ARCH_OMAP2430 && !ARCH_OMAP4
select NOP_USB_XCEIV
default MACH_OMAP3517EVM
help
Select this option if your platform is based on AM35x. As
AM35x has an updated MUSB with CPPI4.1 DMA so this config
is introduced to differentiate musb ip between OMAP3x and
AM35x platforms.
config USB_TUSB6010 config USB_TUSB6010
boolean "TUSB 6010 support" boolean "TUSB 6010 support"
depends on USB_MUSB_HDRC && !USB_MUSB_SOC depends on USB_MUSB_HDRC && !USB_MUSB_SOC
...@@ -147,7 +158,7 @@ config USB_MUSB_HDRC_HCD ...@@ -147,7 +158,7 @@ config USB_MUSB_HDRC_HCD
config MUSB_PIO_ONLY config MUSB_PIO_ONLY
bool 'Disable DMA (always use PIO)' bool 'Disable DMA (always use PIO)'
depends on USB_MUSB_HDRC depends on USB_MUSB_HDRC
default USB_TUSB6010 || ARCH_DAVINCI_DA8XX default USB_TUSB6010 || ARCH_DAVINCI_DA8XX || USB_MUSB_AM35X
help help
All data is copied between memory and FIFO by the CPU. All data is copied between memory and FIFO by the CPU.
DMA controllers are ignored. DMA controllers are ignored.
......
...@@ -12,7 +12,11 @@ musb_hdrc-$(CONFIG_ARCH_DAVINCI_DMx) += davinci.o ...@@ -12,7 +12,11 @@ musb_hdrc-$(CONFIG_ARCH_DAVINCI_DMx) += davinci.o
musb_hdrc-$(CONFIG_ARCH_DAVINCI_DA8XX) += da8xx.o musb_hdrc-$(CONFIG_ARCH_DAVINCI_DA8XX) += da8xx.o
musb_hdrc-$(CONFIG_USB_TUSB6010) += tusb6010.o musb_hdrc-$(CONFIG_USB_TUSB6010) += tusb6010.o
musb_hdrc-$(CONFIG_ARCH_OMAP2430) += omap2430.o musb_hdrc-$(CONFIG_ARCH_OMAP2430) += omap2430.o
musb_hdrc-$(CONFIG_ARCH_OMAP3430) += omap2430.o ifeq ($(CONFIG_USB_MUSB_AM35X),y)
musb_hdrc-$(CONFIG_ARCH_OMAP3430) += am35x.o
else
musb_hdrc-$(CONFIG_ARCH_OMAP3430) += omap2430.o
endif
musb_hdrc-$(CONFIG_ARCH_OMAP4) += omap2430.o musb_hdrc-$(CONFIG_ARCH_OMAP4) += omap2430.o
musb_hdrc-$(CONFIG_BF54x) += blackfin.o musb_hdrc-$(CONFIG_BF54x) += blackfin.o
musb_hdrc-$(CONFIG_BF52x) += blackfin.o musb_hdrc-$(CONFIG_BF52x) += blackfin.o
......
This diff is collapsed.
...@@ -330,6 +330,7 @@ struct musb { ...@@ -330,6 +330,7 @@ struct musb {
/* device lock */ /* device lock */
spinlock_t lock; spinlock_t lock;
struct clk *clock; struct clk *clock;
struct clk *phy_clock;
irqreturn_t (*isr)(int, void *); irqreturn_t (*isr)(int, void *);
struct work_struct irq_work; struct work_struct irq_work;
u16 hwvers; u16 hwvers;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment