From 36564623b4e369346f0a913347c7c7b81ddf0ff1 Mon Sep 17 00:00:00 2001 From: Gary King Date: Wed, 28 Jul 2010 16:22:31 -0700 Subject: [PATCH] [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 --- arch/arm/mach-tegra/board-harmony.c | 37 +---------- arch/arm/mach-tegra/board-ventana.c | 37 +---------- arch/arm/mach-tegra/devices.c | 95 +++++++++++++++++++++++++++++ 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 #include #include -#include #include #include #include @@ -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 #include #include -#include #include #include @@ -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 #include +#include +#include #include #include @@ -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 -- 2.34.1