diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-10-25 06:23:15 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-10-25 06:23:15 -0400 |
commit | 1be025d3cb40cd295123af2c394f7229ef9b30ca (patch) | |
tree | 5dc14e1ea412cc7fdc3e563ad23187059fe8bfb5 /arch | |
parent | 2d03423b2319cc854adeb28a03f65de5b5e0ab63 (diff) | |
parent | a2c76b83fdd763c826f38a55127ccf25708099ce (diff) |
Merge branch 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb
* 'usb-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (260 commits)
usb: renesas_usbhs: fixup inconsistent return from usbhs_pkt_push()
usb/isp1760: Allow to optionally trigger low-level chip reset via GPIOLIB.
USB: gadget: midi: memory leak in f_midi_bind_config()
USB: gadget: midi: fix range check in f_midi_out_open()
QE/FHCI: fixed the CONTROL bug
usb: renesas_usbhs: tidyup for smatch warnings
USB: Fix USB Kconfig dependency problem on 85xx/QoirQ platforms
EHCI: workaround for MosChip controller bug
usb: gadget: file_storage: fix race on unloading
USB: ftdi_sio.c: Use ftdi async_icount structure for TIOCMIWAIT, as in other drivers
USB: ftdi_sio.c:Fill MSR fields of the ftdi async_icount structure
USB: ftdi_sio.c: Fill LSR fields of the ftdi async_icount structure
USB: ftdi_sio.c:Fill TX field of the ftdi async_icount structure
USB: ftdi_sio.c: Fill the RX field of the ftdi async_icount structure
USB: ftdi_sio.c: Basic icount infrastructure for ftdi_sio
usb/isp1760: Let OF bindings depend on general CONFIG_OF instead of PPC_OF .
USB: ftdi_sio: Support TI/Luminary Micro Stellaris BD-ICDI Board
USB: Fix runtime wakeup on OHCI
xHCI/USB: Make xHCI driver have a BOS descriptor.
usb: gadget: add new usb gadget for ACM and mass storage
...
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-mmp/include/mach/pxa168.h | 7 | ||||
-rw-r--r-- | arch/arm/mach-mmp/pxa168.c | 46 | ||||
-rw-r--r-- | arch/arm/mach-omap2/Makefile | 11 | ||||
-rw-r--r-- | arch/arm/mach-shmobile/board-mackerel.c | 1 |
4 files changed, 59 insertions, 6 deletions
diff --git a/arch/arm/mach-mmp/include/mach/pxa168.h b/arch/arm/mach-mmp/include/mach/pxa168.h index 7f005843a707..7fb568d2845b 100644 --- a/arch/arm/mach-mmp/include/mach/pxa168.h +++ b/arch/arm/mach-mmp/include/mach/pxa168.h | |||
@@ -35,6 +35,13 @@ extern struct pxa_device_desc pxa168_device_fb; | |||
35 | extern struct pxa_device_desc pxa168_device_keypad; | 35 | extern struct pxa_device_desc pxa168_device_keypad; |
36 | extern struct pxa_device_desc pxa168_device_eth; | 36 | extern struct pxa_device_desc pxa168_device_eth; |
37 | 37 | ||
38 | struct pxa168_usb_pdata { | ||
39 | /* If NULL, default phy init routine for PXA168 would be called */ | ||
40 | int (*phy_init)(void __iomem *usb_phy_reg_base); | ||
41 | }; | ||
42 | /* pdata can be NULL */ | ||
43 | int __init pxa168_add_usb_host(struct pxa168_usb_pdata *pdata); | ||
44 | |||
38 | static inline int pxa168_add_uart(int id) | 45 | static inline int pxa168_add_uart(int id) |
39 | { | 46 | { |
40 | struct pxa_device_desc *d = NULL; | 47 | struct pxa_device_desc *d = NULL; |
diff --git a/arch/arm/mach-mmp/pxa168.c b/arch/arm/mach-mmp/pxa168.c index 0156f535dae7..b2b280c517dd 100644 --- a/arch/arm/mach-mmp/pxa168.c +++ b/arch/arm/mach-mmp/pxa168.c | |||
@@ -25,6 +25,9 @@ | |||
25 | #include <mach/dma.h> | 25 | #include <mach/dma.h> |
26 | #include <mach/devices.h> | 26 | #include <mach/devices.h> |
27 | #include <mach/mfp.h> | 27 | #include <mach/mfp.h> |
28 | #include <linux/platform_device.h> | ||
29 | #include <linux/dma-mapping.h> | ||
30 | #include <mach/pxa168.h> | ||
28 | 31 | ||
29 | #include "common.h" | 32 | #include "common.h" |
30 | #include "clock.h" | 33 | #include "clock.h" |
@@ -83,6 +86,7 @@ static APBC_CLK(keypad, PXA168_KPC, 0, 32000); | |||
83 | static APMU_CLK(nand, NAND, 0x19b, 156000000); | 86 | static APMU_CLK(nand, NAND, 0x19b, 156000000); |
84 | static APMU_CLK(lcd, LCD, 0x7f, 312000000); | 87 | static APMU_CLK(lcd, LCD, 0x7f, 312000000); |
85 | static APMU_CLK(eth, ETH, 0x09, 0); | 88 | static APMU_CLK(eth, ETH, 0x09, 0); |
89 | static APMU_CLK(usb, USB, 0x12, 0); | ||
86 | 90 | ||
87 | /* device and clock bindings */ | 91 | /* device and clock bindings */ |
88 | static struct clk_lookup pxa168_clkregs[] = { | 92 | static struct clk_lookup pxa168_clkregs[] = { |
@@ -104,6 +108,7 @@ static struct clk_lookup pxa168_clkregs[] = { | |||
104 | INIT_CLKREG(&clk_lcd, "pxa168-fb", NULL), | 108 | INIT_CLKREG(&clk_lcd, "pxa168-fb", NULL), |
105 | INIT_CLKREG(&clk_keypad, "pxa27x-keypad", NULL), | 109 | INIT_CLKREG(&clk_keypad, "pxa27x-keypad", NULL), |
106 | INIT_CLKREG(&clk_eth, "pxa168-eth", "MFUCLK"), | 110 | INIT_CLKREG(&clk_eth, "pxa168-eth", "MFUCLK"), |
111 | INIT_CLKREG(&clk_usb, "pxa168-ehci", "PXA168-USBCLK"), | ||
107 | }; | 112 | }; |
108 | 113 | ||
109 | static int __init pxa168_init(void) | 114 | static int __init pxa168_init(void) |
@@ -169,3 +174,44 @@ PXA168_DEVICE(ssp5, "pxa168-ssp", 4, SSP5, 0xd4021000, 0x40, 60, 61); | |||
169 | PXA168_DEVICE(fb, "pxa168-fb", -1, LCD, 0xd420b000, 0x1c8); | 174 | PXA168_DEVICE(fb, "pxa168-fb", -1, LCD, 0xd420b000, 0x1c8); |
170 | PXA168_DEVICE(keypad, "pxa27x-keypad", -1, KEYPAD, 0xd4012000, 0x4c); | 175 | PXA168_DEVICE(keypad, "pxa27x-keypad", -1, KEYPAD, 0xd4012000, 0x4c); |
171 | PXA168_DEVICE(eth, "pxa168-eth", -1, MFU, 0xc0800000, 0x0fff); | 176 | PXA168_DEVICE(eth, "pxa168-eth", -1, MFU, 0xc0800000, 0x0fff); |
177 | |||
178 | struct resource pxa168_usb_host_resources[] = { | ||
179 | /* USB Host conroller register base */ | ||
180 | [0] = { | ||
181 | .start = 0xd4209000, | ||
182 | .end = 0xd4209000 + 0x200, | ||
183 | .flags = IORESOURCE_MEM, | ||
184 | .name = "pxa168-usb-host", | ||
185 | }, | ||
186 | /* USB PHY register base */ | ||
187 | [1] = { | ||
188 | .start = 0xd4206000, | ||
189 | .end = 0xd4206000 + 0xff, | ||
190 | .flags = IORESOURCE_MEM, | ||
191 | .name = "pxa168-usb-phy", | ||
192 | }, | ||
193 | [2] = { | ||
194 | .start = IRQ_PXA168_USB2, | ||
195 | .end = IRQ_PXA168_USB2, | ||
196 | .flags = IORESOURCE_IRQ, | ||
197 | }, | ||
198 | }; | ||
199 | |||
200 | static u64 pxa168_usb_host_dmamask = DMA_BIT_MASK(32); | ||
201 | struct platform_device pxa168_device_usb_host = { | ||
202 | .name = "pxa168-ehci", | ||
203 | .id = -1, | ||
204 | .dev = { | ||
205 | .dma_mask = &pxa168_usb_host_dmamask, | ||
206 | .coherent_dma_mask = DMA_BIT_MASK(32), | ||
207 | }, | ||
208 | |||
209 | .num_resources = ARRAY_SIZE(pxa168_usb_host_resources), | ||
210 | .resource = pxa168_usb_host_resources, | ||
211 | }; | ||
212 | |||
213 | int __init pxa168_add_usb_host(struct pxa168_usb_pdata *pdata) | ||
214 | { | ||
215 | pxa168_device_usb_host.dev.platform_data = pdata; | ||
216 | return platform_device_register(&pxa168_device_usb_host); | ||
217 | } | ||
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index f34336560437..7317a2b39dd1 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile | |||
@@ -242,14 +242,11 @@ obj-$(CONFIG_MACH_IGEP0020) += board-igep0020.o \ | |||
242 | obj-$(CONFIG_MACH_OMAP3_TOUCHBOOK) += board-omap3touchbook.o \ | 242 | obj-$(CONFIG_MACH_OMAP3_TOUCHBOOK) += board-omap3touchbook.o \ |
243 | hsmmc.o | 243 | hsmmc.o |
244 | obj-$(CONFIG_MACH_OMAP_4430SDP) += board-4430sdp.o \ | 244 | obj-$(CONFIG_MACH_OMAP_4430SDP) += board-4430sdp.o \ |
245 | hsmmc.o \ | 245 | hsmmc.o |
246 | omap_phy_internal.o | ||
247 | obj-$(CONFIG_MACH_OMAP4_PANDA) += board-omap4panda.o \ | 246 | obj-$(CONFIG_MACH_OMAP4_PANDA) += board-omap4panda.o \ |
248 | hsmmc.o \ | 247 | hsmmc.o |
249 | omap_phy_internal.o | ||
250 | 248 | ||
251 | obj-$(CONFIG_MACH_OMAP3517EVM) += board-am3517evm.o \ | 249 | obj-$(CONFIG_MACH_OMAP3517EVM) += board-am3517evm.o |
252 | omap_phy_internal.o \ | ||
253 | 250 | ||
254 | obj-$(CONFIG_MACH_CRANEBOARD) += board-am3517crane.o | 251 | obj-$(CONFIG_MACH_CRANEBOARD) += board-am3517crane.o |
255 | 252 | ||
@@ -260,6 +257,8 @@ obj-$(CONFIG_MACH_TI8168EVM) += board-ti8168evm.o | |||
260 | usbfs-$(CONFIG_ARCH_OMAP_OTG) := usb-fs.o | 257 | usbfs-$(CONFIG_ARCH_OMAP_OTG) := usb-fs.o |
261 | obj-y += $(usbfs-m) $(usbfs-y) | 258 | obj-y += $(usbfs-m) $(usbfs-y) |
262 | obj-y += usb-musb.o | 259 | obj-y += usb-musb.o |
260 | obj-y += omap_phy_internal.o | ||
261 | |||
263 | obj-$(CONFIG_MACH_OMAP2_TUSB6010) += usb-tusb6010.o | 262 | obj-$(CONFIG_MACH_OMAP2_TUSB6010) += usb-tusb6010.o |
264 | obj-y += usb-host.o | 263 | obj-y += usb-host.o |
265 | 264 | ||
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c index 17c19dc25604..802aa58ef9d8 100644 --- a/arch/arm/mach-shmobile/board-mackerel.c +++ b/arch/arm/mach-shmobile/board-mackerel.c | |||
@@ -810,6 +810,7 @@ static struct usbhs_private usbhs1_private = { | |||
810 | }, | 810 | }, |
811 | .driver_param = { | 811 | .driver_param = { |
812 | .buswait_bwait = 4, | 812 | .buswait_bwait = 4, |
813 | .has_otg = 1, | ||
813 | .pipe_type = usbhs1_pipe_cfg, | 814 | .pipe_type = usbhs1_pipe_cfg, |
814 | .pipe_size = ARRAY_SIZE(usbhs1_pipe_cfg), | 815 | .pipe_size = ARRAY_SIZE(usbhs1_pipe_cfg), |
815 | .d0_tx_id = SHDMA_SLAVE_USB1_TX, | 816 | .d0_tx_id = SHDMA_SLAVE_USB1_TX, |