aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-10-25 06:23:15 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2011-10-25 06:23:15 -0400
commit1be025d3cb40cd295123af2c394f7229ef9b30ca (patch)
tree5dc14e1ea412cc7fdc3e563ad23187059fe8bfb5 /arch
parent2d03423b2319cc854adeb28a03f65de5b5e0ab63 (diff)
parenta2c76b83fdd763c826f38a55127ccf25708099ce (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.h7
-rw-r--r--arch/arm/mach-mmp/pxa168.c46
-rw-r--r--arch/arm/mach-omap2/Makefile11
-rw-r--r--arch/arm/mach-shmobile/board-mackerel.c1
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;
35extern struct pxa_device_desc pxa168_device_keypad; 35extern struct pxa_device_desc pxa168_device_keypad;
36extern struct pxa_device_desc pxa168_device_eth; 36extern struct pxa_device_desc pxa168_device_eth;
37 37
38struct 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 */
43int __init pxa168_add_usb_host(struct pxa168_usb_pdata *pdata);
44
38static inline int pxa168_add_uart(int id) 45static 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);
83static APMU_CLK(nand, NAND, 0x19b, 156000000); 86static APMU_CLK(nand, NAND, 0x19b, 156000000);
84static APMU_CLK(lcd, LCD, 0x7f, 312000000); 87static APMU_CLK(lcd, LCD, 0x7f, 312000000);
85static APMU_CLK(eth, ETH, 0x09, 0); 88static APMU_CLK(eth, ETH, 0x09, 0);
89static APMU_CLK(usb, USB, 0x12, 0);
86 90
87/* device and clock bindings */ 91/* device and clock bindings */
88static struct clk_lookup pxa168_clkregs[] = { 92static 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
109static int __init pxa168_init(void) 114static int __init pxa168_init(void)
@@ -169,3 +174,44 @@ PXA168_DEVICE(ssp5, "pxa168-ssp", 4, SSP5, 0xd4021000, 0x40, 60, 61);
169PXA168_DEVICE(fb, "pxa168-fb", -1, LCD, 0xd420b000, 0x1c8); 174PXA168_DEVICE(fb, "pxa168-fb", -1, LCD, 0xd420b000, 0x1c8);
170PXA168_DEVICE(keypad, "pxa27x-keypad", -1, KEYPAD, 0xd4012000, 0x4c); 175PXA168_DEVICE(keypad, "pxa27x-keypad", -1, KEYPAD, 0xd4012000, 0x4c);
171PXA168_DEVICE(eth, "pxa168-eth", -1, MFU, 0xc0800000, 0x0fff); 176PXA168_DEVICE(eth, "pxa168-eth", -1, MFU, 0xc0800000, 0x0fff);
177
178struct 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
200static u64 pxa168_usb_host_dmamask = DMA_BIT_MASK(32);
201struct 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
213int __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 \
242obj-$(CONFIG_MACH_OMAP3_TOUCHBOOK) += board-omap3touchbook.o \ 242obj-$(CONFIG_MACH_OMAP3_TOUCHBOOK) += board-omap3touchbook.o \
243 hsmmc.o 243 hsmmc.o
244obj-$(CONFIG_MACH_OMAP_4430SDP) += board-4430sdp.o \ 244obj-$(CONFIG_MACH_OMAP_4430SDP) += board-4430sdp.o \
245 hsmmc.o \ 245 hsmmc.o
246 omap_phy_internal.o
247obj-$(CONFIG_MACH_OMAP4_PANDA) += board-omap4panda.o \ 246obj-$(CONFIG_MACH_OMAP4_PANDA) += board-omap4panda.o \
248 hsmmc.o \ 247 hsmmc.o
249 omap_phy_internal.o
250 248
251obj-$(CONFIG_MACH_OMAP3517EVM) += board-am3517evm.o \ 249obj-$(CONFIG_MACH_OMAP3517EVM) += board-am3517evm.o
252 omap_phy_internal.o \
253 250
254obj-$(CONFIG_MACH_CRANEBOARD) += board-am3517crane.o 251obj-$(CONFIG_MACH_CRANEBOARD) += board-am3517crane.o
255 252
@@ -260,6 +257,8 @@ obj-$(CONFIG_MACH_TI8168EVM) += board-ti8168evm.o
260usbfs-$(CONFIG_ARCH_OMAP_OTG) := usb-fs.o 257usbfs-$(CONFIG_ARCH_OMAP_OTG) := usb-fs.o
261obj-y += $(usbfs-m) $(usbfs-y) 258obj-y += $(usbfs-m) $(usbfs-y)
262obj-y += usb-musb.o 259obj-y += usb-musb.o
260obj-y += omap_phy_internal.o
261
263obj-$(CONFIG_MACH_OMAP2_TUSB6010) += usb-tusb6010.o 262obj-$(CONFIG_MACH_OMAP2_TUSB6010) += usb-tusb6010.o
264obj-y += usb-host.o 263obj-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,