diff options
author | Gary King <gking@nvidia.com> | 2010-07-28 16:22:31 -0700 |
---|---|---|
committer | Dan Willemsen <dwillemsen@nvidia.com> | 2011-11-30 21:34:54 -0800 |
commit | 589ff07058dbf429d0d11c4846fe876659782ccb (patch) | |
tree | b6165717e3051f786856c289ae15a53c796acf44 /arch | |
parent | 4e17fed66ac7ea6fe8bdb2d69f57bff7b15a4eb8 (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 | 3 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-ventana.c | 37 | ||||
-rw-r--r-- | arch/arm/mach-tegra/devices.c | 93 | ||||
-rw-r--r-- | arch/arm/mach-tegra/devices.h | 4 |
4 files changed, 99 insertions, 38 deletions
diff --git a/arch/arm/mach-tegra/board-harmony.c b/arch/arm/mach-tegra/board-harmony.c index b0b69e26a7e7..cc09464900ce 100644 --- a/arch/arm/mach-tegra/board-harmony.c +++ b/arch/arm/mach-tegra/board-harmony.c @@ -23,7 +23,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/gpio.h> @@ -284,7 +283,7 @@ static struct platform_device *harmony_devices[] __initdata = { &tegra_pcm_device, &harmony_audio_device, &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 ae885218a227..8247bfa99a4e 100644 --- a/arch/arm/mach-tegra/devices.c +++ b/arch/arm/mach-tegra/devices.c @@ -638,3 +638,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 47d4cb351ebd..6138bec36901 100644 --- a/arch/arm/mach-tegra/devices.h +++ b/arch/arm/mach-tegra/devices.h @@ -53,5 +53,9 @@ extern struct platform_device tegra_i2s_device2; extern struct platform_device tegra_das_device; extern struct platform_device tegra_pcm_device; 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 |