diff options
author | Gary King <gking@nvidia.com> | 2010-07-28 16:22:31 -0700 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2010-10-06 16:27:19 -0700 |
commit | 36564623b4e369346f0a913347c7c7b81ddf0ff1 (patch) | |
tree | d44fac39a78c2d5a719be89ae6c1a668227b9b36 /arch | |
parent | ce3a041d2eb6d21544b311de6d7b337becf5ef74 (diff) |
[ARM] tegra: add EHCI and UDC controllers to devices.c
update harmony and ventana to use the common UDC definition, rather
than using the current duplicated definitions
Change-Id: I2e3aca674ab35305a0c516bd22e044382280d05e
Signed-off-by: Gary King <gking@nvidia.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-tegra/board-harmony.c | 37 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-ventana.c | 37 | ||||
-rw-r--r-- | arch/arm/mach-tegra/devices.c | 95 | ||||
-rw-r--r-- | arch/arm/mach-tegra/devices.h | 4 |
4 files changed, 101 insertions, 72 deletions
diff --git a/arch/arm/mach-tegra/board-harmony.c b/arch/arm/mach-tegra/board-harmony.c index ebf8362fd3a5..af66a67c8486 100644 --- a/arch/arm/mach-tegra/board-harmony.c +++ b/arch/arm/mach-tegra/board-harmony.c @@ -22,7 +22,6 @@ #include <linux/mtd/mtd.h> #include <linux/mtd/partitions.h> #include <linux/dma-mapping.h> -#include <linux/fsl_devices.h> #include <linux/pda_power.h> #include <linux/io.h> #include <linux/delay.h> @@ -153,40 +152,6 @@ static struct platform_device debug_uart = { }, }; -/* OTG gadget device */ -static u64 tegra_otg_dmamask = DMA_BIT_MASK(32); - - -static struct resource tegra_otg_resources[] = { - [0] = { - .start = TEGRA_USB_BASE, - .end = TEGRA_USB_BASE + TEGRA_USB_SIZE - 1, - .flags = IORESOURCE_MEM, - }, - [1] = { - .start = INT_USB, - .end = INT_USB, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct fsl_usb2_platform_data tegra_otg_pdata = { - .operating_mode = FSL_USB2_DR_DEVICE, - .phy_mode = FSL_USB2_PHY_UTMI, -}; - -static struct platform_device tegra_otg = { - .name = "fsl-tegra-udc", - .id = -1, - .dev = { - .dma_mask = &tegra_otg_dmamask, - .coherent_dma_mask = 0xffffffff, - .platform_data = &tegra_otg_pdata, - }, - .resource = tegra_otg_resources, - .num_resources = ARRAY_SIZE(tegra_otg_resources), -}; - /* PDA power */ static struct pda_power_pdata pda_power_pdata = { }; @@ -224,7 +189,7 @@ static struct platform_device tegra_gart_dev = { static struct platform_device *harmony_devices[] __initdata = { &debug_uart, &tegra_nand_device, - &tegra_otg, + &tegra_udc_device, &pda_power_device, &tegra_i2c_device1, &tegra_i2c_device2, diff --git a/arch/arm/mach-tegra/board-ventana.c b/arch/arm/mach-tegra/board-ventana.c index eef18980947d..d9440c6ac85d 100644 --- a/arch/arm/mach-tegra/board-ventana.c +++ b/arch/arm/mach-tegra/board-ventana.c @@ -28,7 +28,6 @@ #include <linux/i2c.h> #include <linux/pda_power.h> #include <linux/dma-mapping.h> -#include <linux/fsl_devices.h> #include <linux/delay.h> #include <mach/iomap.h> @@ -73,40 +72,6 @@ static __initdata struct tegra_clk_init_table ventana_clk_init_table[] = { { NULL, NULL, 0, 0}, }; -/* OTG gadget device */ -static u64 tegra_otg_dmamask = DMA_BIT_MASK(32); - - -static struct resource tegra_otg_resources[] = { - [0] = { - .start = TEGRA_USB_BASE, - .end = TEGRA_USB_BASE + TEGRA_USB_SIZE - 1, - .flags = IORESOURCE_MEM, - }, - [1] = { - .start = INT_USB, - .end = INT_USB, - .flags = IORESOURCE_IRQ, - }, -}; - -static struct fsl_usb2_platform_data tegra_otg_pdata = { - .operating_mode = FSL_USB2_DR_DEVICE, - .phy_mode = FSL_USB2_PHY_UTMI, -}; - -static struct platform_device tegra_otg = { - .name = "fsl-tegra-udc", - .id = -1, - .dev = { - .dma_mask = &tegra_otg_dmamask, - .coherent_dma_mask = 0xffffffff, - .platform_data = &tegra_otg_pdata, - }, - .resource = tegra_otg_resources, - .num_resources = ARRAY_SIZE(tegra_otg_resources), -}; - /* PDA power */ static struct pda_power_pdata pda_power_pdata = { }; @@ -143,7 +108,7 @@ static struct platform_device tegra_gart_dev = { static struct platform_device *ventana_devices[] __initdata = { &debug_uart, - &tegra_otg, + &tegra_udc_device, &pda_power_device, &tegra_gart_dev, }; diff --git a/arch/arm/mach-tegra/devices.c b/arch/arm/mach-tegra/devices.c index 600b1b484efc..3d17f0fc7de2 100644 --- a/arch/arm/mach-tegra/devices.c +++ b/arch/arm/mach-tegra/devices.c @@ -21,6 +21,8 @@ #include <linux/resource.h> #include <linux/platform_device.h> +#include <linux/dma-mapping.h> +#include <linux/fsl_devices.h> #include <mach/irqs.h> #include <mach/iomap.h> @@ -311,3 +313,96 @@ struct platform_device tegra_w1_device = { .resource = w1_resources, .num_resources = ARRAY_SIZE(w1_resources), }; + +static struct resource tegra_usb1_resources[] = { + [0] = { + .start = TEGRA_USB_BASE, + .end = TEGRA_USB_BASE + TEGRA_USB_SIZE - 1, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = INT_USB, + .end = INT_USB, + .flags = IORESOURCE_IRQ, + }, +}; + +static struct resource tegra_usb2_resources[] = { + [0] = { + .start = TEGRA_USB2_BASE, + .end = TEGRA_USB2_BASE + TEGRA_USB2_SIZE - 1, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = INT_USB2, + .end = INT_USB2, + .flags = IORESOURCE_IRQ, + }, +}; + +static struct resource tegra_usb3_resources[] = { + [0] = { + .start = TEGRA_USB3_BASE, + .end = TEGRA_USB3_BASE + TEGRA_USB3_SIZE - 1, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = INT_USB3, + .end = INT_USB3, + .flags = IORESOURCE_IRQ, + }, +}; + +static u64 tegra_udc_dmamask = DMA_BIT_MASK(32); + +static struct fsl_usb2_platform_data tegra_udc_pdata = { + .operating_mode = FSL_USB2_DR_DEVICE, + .phy_mode = FSL_USB2_PHY_UTMI, +}; + +struct platform_device tegra_udc_device = { + .name = "fsl-tegra-udc", + .id = -1, + .dev = { + .dma_mask = &tegra_udc_dmamask, + .coherent_dma_mask = DMA_BIT_MASK(32), + .platform_data = &tegra_udc_pdata, + }, + .resource = tegra_usb1_resources, + .num_resources = ARRAY_SIZE(tegra_usb1_resources), +}; + +static u64 tegra_ehci_dmamask = DMA_BIT_MASK(32); + +struct platform_device tegra_ehci1_device = { + .name = "tegra-ehci", + .id = 0, + .dev = { + .dma_mask = &tegra_ehci_dmamask, + .coherent_dma_mask = DMA_BIT_MASK(32), + }, + .resource = tegra_usb1_resources, + .num_resources = ARRAY_SIZE(tegra_usb1_resources), +}; + +struct platform_device tegra_ehci2_device = { + .name = "tegra-ehci", + .id = 1, + .dev = { + .dma_mask = &tegra_ehci_dmamask, + .coherent_dma_mask = DMA_BIT_MASK(32), + }, + .resource = tegra_usb2_resources, + .num_resources = ARRAY_SIZE(tegra_usb2_resources), +}; + +struct platform_device tegra_ehci3_device = { + .name = "tegra-ehci", + .id = 2, + .dev = { + .dma_mask = &tegra_ehci_dmamask, + .coherent_dma_mask = DMA_BIT_MASK(32), + }, + .resource = tegra_usb3_resources, + .num_resources = ARRAY_SIZE(tegra_usb3_resources), +}; diff --git a/arch/arm/mach-tegra/devices.h b/arch/arm/mach-tegra/devices.h index bbe95926842d..b16042ce2c65 100644 --- a/arch/arm/mach-tegra/devices.h +++ b/arch/arm/mach-tegra/devices.h @@ -36,5 +36,9 @@ extern struct platform_device tegra_spi_device2; extern struct platform_device tegra_spi_device3; extern struct platform_device tegra_spi_device4; extern struct platform_device tegra_w1_device; +extern struct platform_device tegra_udc_device; +extern struct platform_device tegra_ehci1_device; +extern struct platform_device tegra_ehci2_device; +extern struct platform_device tegra_ehci3_device; #endif |