aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2010-03-03 11:48:58 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2010-03-03 11:48:58 -0500
commit7f5b09c15ab989ed5ce4adda0be42c1302df70b7 (patch)
tree9695b00983d1bd077ff91c463abcb136330cf344 /arch
parent94468080220162f74dc6ce5c3e95e5fec8022902 (diff)
parentcedf8a78421943441b9011ce7bcdab55f07d2ea6 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (220 commits) USB: backlight, appledisplay: fix incomplete registration failure handling USB: pl2303: remove unnecessary reset of usb_device in urbs USB: ftdi_sio: remove obsolete check in unthrottle USB: ftdi_sio: remove unused tx_bytes counter USB: qcaux: driver for auxiliary serial ports on Qualcomm devices USB: pl2303: initial TIOCGSERIAL support USB: option: add Longcheer/Longsung vendor ID USB: fix I2C API usage in ohci-pnx4008. USB: usbmon: mask seconds properly in text API USB: sisusbvga: no unnecessary GFP_ATOMIC USB: storage: onetouch: unnecessary GFP_ATOMIC USB: serial: ftdi: add CONTEC vendor and product id USB: remove references to port->port.count from the serial drivers USB: tty: Prune uses of tty_request_room in the USB layer USB: tty: Add a function to insert a string of characters with the same flag USB: don't read past config->interface[] if usb_control_msg() fails in usb_reset_configuration() USB: tty: kill request_room for USB ACM class USB: tty: sort out the request_room handling for whiteheat USB: storage: fix misplaced parenthesis USB: vstusb.c: removal of driver for Vernier Software & Technology, Inc., devices and spectrometers ...
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/configs/rx51_defconfig11
-rw-r--r--arch/arm/mach-mx2/devices.c80
-rw-r--r--arch/arm/mach-mx2/devices.h1
-rw-r--r--arch/arm/plat-mxc/include/mach/mx21-usbhost.h38
-rw-r--r--arch/avr32/mach-at32ap/at32ap700x.c7
5 files changed, 108 insertions, 29 deletions
diff --git a/arch/arm/configs/rx51_defconfig b/arch/arm/configs/rx51_defconfig
index 426ae948aefe..193bd334fbbf 100644
--- a/arch/arm/configs/rx51_defconfig
+++ b/arch/arm/configs/rx51_defconfig
@@ -445,6 +445,8 @@ CONFIG_IP_NF_FILTER=m
445# CONFIG_LAPB is not set 445# CONFIG_LAPB is not set
446# CONFIG_ECONET is not set 446# CONFIG_ECONET is not set
447# CONFIG_WAN_ROUTER is not set 447# CONFIG_WAN_ROUTER is not set
448CONFIG_PHONET=y
449# CONFIG_IEEE802154 is not set
448# CONFIG_NET_SCHED is not set 450# CONFIG_NET_SCHED is not set
449# CONFIG_DCB is not set 451# CONFIG_DCB is not set
450 452
@@ -1325,27 +1327,34 @@ CONFIG_USB_GADGET_SELECTED=y
1325# CONFIG_USB_GADGET_LH7A40X is not set 1327# CONFIG_USB_GADGET_LH7A40X is not set
1326# CONFIG_USB_GADGET_OMAP is not set 1328# CONFIG_USB_GADGET_OMAP is not set
1327# CONFIG_USB_GADGET_PXA25X is not set 1329# CONFIG_USB_GADGET_PXA25X is not set
1330# CONFIG_USB_GADGET_R8A66597 is not set
1328# CONFIG_USB_GADGET_PXA27X is not set 1331# CONFIG_USB_GADGET_PXA27X is not set
1329# CONFIG_USB_GADGET_S3C2410 is not set 1332# CONFIG_USB_GADGET_S3C_HSOTG is not set
1330# CONFIG_USB_GADGET_IMX is not set 1333# CONFIG_USB_GADGET_IMX is not set
1334# CONFIG_USB_GADGET_S3C2410 is not set
1331# CONFIG_USB_GADGET_M66592 is not set 1335# CONFIG_USB_GADGET_M66592 is not set
1332# CONFIG_USB_GADGET_AMD5536UDC is not set 1336# CONFIG_USB_GADGET_AMD5536UDC is not set
1333# CONFIG_USB_GADGET_FSL_QE is not set 1337# CONFIG_USB_GADGET_FSL_QE is not set
1334# CONFIG_USB_GADGET_CI13XXX is not set 1338# CONFIG_USB_GADGET_CI13XXX is not set
1335# CONFIG_USB_GADGET_NET2280 is not set 1339# CONFIG_USB_GADGET_NET2280 is not set
1336# CONFIG_USB_GADGET_GOKU is not set 1340# CONFIG_USB_GADGET_GOKU is not set
1341# CONFIG_USB_GADGET_LANGWELL is not set
1337# CONFIG_USB_GADGET_DUMMY_HCD is not set 1342# CONFIG_USB_GADGET_DUMMY_HCD is not set
1338CONFIG_USB_GADGET_DUALSPEED=y 1343CONFIG_USB_GADGET_DUALSPEED=y
1339CONFIG_USB_ZERO=m 1344CONFIG_USB_ZERO=m
1340# CONFIG_USB_ZERO_HNPTEST is not set 1345# CONFIG_USB_ZERO_HNPTEST is not set
1346# CONFIG_USB_AUDIO is not set
1341# CONFIG_USB_ETH is not set 1347# CONFIG_USB_ETH is not set
1342# CONFIG_USB_GADGETFS is not set 1348# CONFIG_USB_GADGETFS is not set
1343CONFIG_USB_FILE_STORAGE=m 1349CONFIG_USB_FILE_STORAGE=m
1344# CONFIG_USB_FILE_STORAGE_TEST is not set 1350# CONFIG_USB_FILE_STORAGE_TEST is not set
1351# CONFIG_USB_MASS_STORAGE is not set
1345# CONFIG_USB_G_SERIAL is not set 1352# CONFIG_USB_G_SERIAL is not set
1346# CONFIG_USB_MIDI_GADGET is not set 1353# CONFIG_USB_MIDI_GADGET is not set
1347# CONFIG_USB_G_PRINTER is not set 1354# CONFIG_USB_G_PRINTER is not set
1348# CONFIG_USB_CDC_COMPOSITE is not set 1355# CONFIG_USB_CDC_COMPOSITE is not set
1356CONFIG_USB_G_NOKIA=m
1357# CONFIG_USB_G_MULTI is not set
1349 1358
1350# 1359#
1351# OTG and related infrastructure 1360# OTG and related infrastructure
diff --git a/arch/arm/mach-mx2/devices.c b/arch/arm/mach-mx2/devices.c
index 3d398ce09b31..3956d82b7c4e 100644
--- a/arch/arm/mach-mx2/devices.c
+++ b/arch/arm/mach-mx2/devices.c
@@ -31,6 +31,7 @@
31#include <linux/init.h> 31#include <linux/init.h>
32#include <linux/platform_device.h> 32#include <linux/platform_device.h>
33#include <linux/gpio.h> 33#include <linux/gpio.h>
34#include <linux/dma-mapping.h>
34 35
35#include <mach/irqs.h> 36#include <mach/irqs.h>
36#include <mach/hardware.h> 37#include <mach/hardware.h>
@@ -292,7 +293,7 @@ struct platform_device mxc_fb_device = {
292 .num_resources = ARRAY_SIZE(mxc_fb), 293 .num_resources = ARRAY_SIZE(mxc_fb),
293 .resource = mxc_fb, 294 .resource = mxc_fb,
294 .dev = { 295 .dev = {
295 .coherent_dma_mask = 0xFFFFFFFF, 296 .coherent_dma_mask = DMA_BIT_MASK(32),
296 }, 297 },
297}; 298};
298 299
@@ -395,17 +396,17 @@ static struct resource mxc_sdhc1_resources[] = {
395 }, 396 },
396}; 397};
397 398
398static u64 mxc_sdhc1_dmamask = 0xffffffffUL; 399static u64 mxc_sdhc1_dmamask = DMA_BIT_MASK(32);
399 400
400struct platform_device mxc_sdhc_device0 = { 401struct platform_device mxc_sdhc_device0 = {
401 .name = "mxc-mmc", 402 .name = "mxc-mmc",
402 .id = 0, 403 .id = 0,
403 .dev = { 404 .dev = {
404 .dma_mask = &mxc_sdhc1_dmamask, 405 .dma_mask = &mxc_sdhc1_dmamask,
405 .coherent_dma_mask = 0xffffffff, 406 .coherent_dma_mask = DMA_BIT_MASK(32),
406 }, 407 },
407 .num_resources = ARRAY_SIZE(mxc_sdhc1_resources), 408 .num_resources = ARRAY_SIZE(mxc_sdhc1_resources),
408 .resource = mxc_sdhc1_resources, 409 .resource = mxc_sdhc1_resources,
409}; 410};
410 411
411static struct resource mxc_sdhc2_resources[] = { 412static struct resource mxc_sdhc2_resources[] = {
@@ -424,17 +425,17 @@ static struct resource mxc_sdhc2_resources[] = {
424 }, 425 },
425}; 426};
426 427
427static u64 mxc_sdhc2_dmamask = 0xffffffffUL; 428static u64 mxc_sdhc2_dmamask = DMA_BIT_MASK(32);
428 429
429struct platform_device mxc_sdhc_device1 = { 430struct platform_device mxc_sdhc_device1 = {
430 .name = "mxc-mmc", 431 .name = "mxc-mmc",
431 .id = 1, 432 .id = 1,
432 .dev = { 433 .dev = {
433 .dma_mask = &mxc_sdhc2_dmamask, 434 .dma_mask = &mxc_sdhc2_dmamask,
434 .coherent_dma_mask = 0xffffffff, 435 .coherent_dma_mask = DMA_BIT_MASK(32),
435 }, 436 },
436 .num_resources = ARRAY_SIZE(mxc_sdhc2_resources), 437 .num_resources = ARRAY_SIZE(mxc_sdhc2_resources),
437 .resource = mxc_sdhc2_resources, 438 .resource = mxc_sdhc2_resources,
438}; 439};
439 440
440#ifdef CONFIG_MACH_MX27 441#ifdef CONFIG_MACH_MX27
@@ -450,7 +451,7 @@ static struct resource otg_resources[] = {
450 }, 451 },
451}; 452};
452 453
453static u64 otg_dmamask = 0xffffffffUL; 454static u64 otg_dmamask = DMA_BIT_MASK(32);
454 455
455/* OTG gadget device */ 456/* OTG gadget device */
456struct platform_device mxc_otg_udc_device = { 457struct platform_device mxc_otg_udc_device = {
@@ -458,7 +459,7 @@ struct platform_device mxc_otg_udc_device = {
458 .id = -1, 459 .id = -1,
459 .dev = { 460 .dev = {
460 .dma_mask = &otg_dmamask, 461 .dma_mask = &otg_dmamask,
461 .coherent_dma_mask = 0xffffffffUL, 462 .coherent_dma_mask = DMA_BIT_MASK(32),
462 }, 463 },
463 .resource = otg_resources, 464 .resource = otg_resources,
464 .num_resources = ARRAY_SIZE(otg_resources), 465 .num_resources = ARRAY_SIZE(otg_resources),
@@ -469,7 +470,7 @@ struct platform_device mxc_otg_host = {
469 .name = "mxc-ehci", 470 .name = "mxc-ehci",
470 .id = 0, 471 .id = 0,
471 .dev = { 472 .dev = {
472 .coherent_dma_mask = 0xffffffff, 473 .coherent_dma_mask = DMA_BIT_MASK(32),
473 .dma_mask = &otg_dmamask, 474 .dma_mask = &otg_dmamask,
474 }, 475 },
475 .resource = otg_resources, 476 .resource = otg_resources,
@@ -478,7 +479,7 @@ struct platform_device mxc_otg_host = {
478 479
479/* USB host 1 */ 480/* USB host 1 */
480 481
481static u64 usbh1_dmamask = 0xffffffffUL; 482static u64 usbh1_dmamask = DMA_BIT_MASK(32);
482 483
483static struct resource mxc_usbh1_resources[] = { 484static struct resource mxc_usbh1_resources[] = {
484 { 485 {
@@ -496,7 +497,7 @@ struct platform_device mxc_usbh1 = {
496 .name = "mxc-ehci", 497 .name = "mxc-ehci",
497 .id = 1, 498 .id = 1,
498 .dev = { 499 .dev = {
499 .coherent_dma_mask = 0xffffffff, 500 .coherent_dma_mask = DMA_BIT_MASK(32),
500 .dma_mask = &usbh1_dmamask, 501 .dma_mask = &usbh1_dmamask,
501 }, 502 },
502 .resource = mxc_usbh1_resources, 503 .resource = mxc_usbh1_resources,
@@ -504,7 +505,7 @@ struct platform_device mxc_usbh1 = {
504}; 505};
505 506
506/* USB host 2 */ 507/* USB host 2 */
507static u64 usbh2_dmamask = 0xffffffffUL; 508static u64 usbh2_dmamask = DMA_BIT_MASK(32);
508 509
509static struct resource mxc_usbh2_resources[] = { 510static struct resource mxc_usbh2_resources[] = {
510 { 511 {
@@ -522,7 +523,7 @@ struct platform_device mxc_usbh2 = {
522 .name = "mxc-ehci", 523 .name = "mxc-ehci",
523 .id = 2, 524 .id = 2,
524 .dev = { 525 .dev = {
525 .coherent_dma_mask = 0xffffffff, 526 .coherent_dma_mask = DMA_BIT_MASK(32),
526 .dma_mask = &usbh2_dmamask, 527 .dma_mask = &usbh2_dmamask,
527 }, 528 },
528 .resource = mxc_usbh2_resources, 529 .resource = mxc_usbh2_resources,
@@ -642,3 +643,30 @@ int __init mxc_register_gpios(void)
642{ 643{
643 return mxc_gpio_init(imx_gpio_ports, ARRAY_SIZE(imx_gpio_ports)); 644 return mxc_gpio_init(imx_gpio_ports, ARRAY_SIZE(imx_gpio_ports));
644} 645}
646
647#ifdef CONFIG_MACH_MX21
648static struct resource mx21_usbhc_resources[] = {
649 {
650 .start = USBOTG_BASE_ADDR,
651 .end = USBOTG_BASE_ADDR + 0x1FFF,
652 .flags = IORESOURCE_MEM,
653 },
654 {
655 .start = MXC_INT_USBHOST,
656 .end = MXC_INT_USBHOST,
657 .flags = IORESOURCE_IRQ,
658 },
659};
660
661struct platform_device mx21_usbhc_device = {
662 .name = "imx21-hcd",
663 .id = 0,
664 .dev = {
665 .dma_mask = &mx21_usbhc_device.dev.coherent_dma_mask,
666 .coherent_dma_mask = DMA_BIT_MASK(32),
667 },
668 .num_resources = ARRAY_SIZE(mx21_usbhc_resources),
669 .resource = mx21_usbhc_resources,
670};
671#endif
672
diff --git a/arch/arm/mach-mx2/devices.h b/arch/arm/mach-mx2/devices.h
index 97306aa18f1c..f12694b07369 100644
--- a/arch/arm/mach-mx2/devices.h
+++ b/arch/arm/mach-mx2/devices.h
@@ -26,5 +26,6 @@ extern struct platform_device mxc_usbh2;
26extern struct platform_device mxc_spi_device0; 26extern struct platform_device mxc_spi_device0;
27extern struct platform_device mxc_spi_device1; 27extern struct platform_device mxc_spi_device1;
28extern struct platform_device mxc_spi_device2; 28extern struct platform_device mxc_spi_device2;
29extern struct platform_device mx21_usbhc_device;
29extern struct platform_device imx_ssi_device0; 30extern struct platform_device imx_ssi_device0;
30extern struct platform_device imx_ssi_device1; 31extern struct platform_device imx_ssi_device1;
diff --git a/arch/arm/plat-mxc/include/mach/mx21-usbhost.h b/arch/arm/plat-mxc/include/mach/mx21-usbhost.h
new file mode 100644
index 000000000000..22d0b596262c
--- /dev/null
+++ b/arch/arm/plat-mxc/include/mach/mx21-usbhost.h
@@ -0,0 +1,38 @@
1/*
2 * Copyright (C) 2009 Martin Fuzzey <mfuzzey@gmail.com>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; either version 2 of the License, or
7 * (at your option) any later version.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 */
14
15#ifndef __ASM_ARCH_MX21_USBH
16#define __ASM_ARCH_MX21_USBH
17
18enum mx21_usbh_xcvr {
19 /* Values below as used by hardware (HWMODE register) */
20 MX21_USBXCVR_TXDIF_RXDIF = 0,
21 MX21_USBXCVR_TXDIF_RXSE = 1,
22 MX21_USBXCVR_TXSE_RXDIF = 2,
23 MX21_USBXCVR_TXSE_RXSE = 3,
24};
25
26struct mx21_usbh_platform_data {
27 enum mx21_usbh_xcvr host_xcvr; /* tranceiver mode host 1,2 ports */
28 enum mx21_usbh_xcvr otg_xcvr; /* tranceiver mode otg (as host) port */
29 u16 enable_host1:1,
30 enable_host2:1,
31 enable_otg_host:1, /* enable "OTG" port (as host) */
32 host1_xcverless:1, /* traceiverless host1 port */
33 host1_txenoe:1, /* output enable host1 transmit enable */
34 otg_ext_xcvr:1, /* external tranceiver for OTG port */
35 unused:10;
36};
37
38#endif /* __ASM_ARCH_MX21_USBH */
diff --git a/arch/avr32/mach-at32ap/at32ap700x.c b/arch/avr32/mach-at32ap/at32ap700x.c
index b13d1879e51b..3a4bc1a18433 100644
--- a/arch/avr32/mach-at32ap/at32ap700x.c
+++ b/arch/avr32/mach-at32ap/at32ap700x.c
@@ -1770,10 +1770,13 @@ at32_add_device_usba(unsigned int id, struct usba_platform_data *data)
1770 ARRAY_SIZE(usba0_resource))) 1770 ARRAY_SIZE(usba0_resource)))
1771 goto out_free_pdev; 1771 goto out_free_pdev;
1772 1772
1773 if (data) 1773 if (data) {
1774 usba_data.pdata.vbus_pin = data->vbus_pin; 1774 usba_data.pdata.vbus_pin = data->vbus_pin;
1775 else 1775 usba_data.pdata.vbus_pin_inverted = data->vbus_pin_inverted;
1776 } else {
1776 usba_data.pdata.vbus_pin = -EINVAL; 1777 usba_data.pdata.vbus_pin = -EINVAL;
1778 usba_data.pdata.vbus_pin_inverted = -EINVAL;
1779 }
1777 1780
1778 data = &usba_data.pdata; 1781 data = &usba_data.pdata;
1779 data->num_ep = ARRAY_SIZE(at32_usba_ep); 1782 data->num_ep = ARRAY_SIZE(at32_usba_ep);