From 2ea3974b5f1b98c3acd4145303689970e5f3985e Mon Sep 17 00:00:00 2001 From: Colin Cross <ccross@android.com> Date: Thu, 3 Jun 2010 17:52:02 -0700 Subject: [PATCH] [ARM] tegra: stingray: Add hsuarts Change-Id: I70d0ee59b262915379dcfda208f5ec8be3dab702 Signed-off-by: Colin Cross <ccross@android.com> --- arch/arm/mach-tegra/board-stingray-pinmux.c | 10 +-- arch/arm/mach-tegra/board-stingray.c | 68 +++++++++++++++++++-- 2 files changed, 69 insertions(+), 9 deletions(-) diff --git a/arch/arm/mach-tegra/board-stingray-pinmux.c b/arch/arm/mach-tegra/board-stingray-pinmux.c index 16fca4503439..7c8c1c6be5ee 100644 --- a/arch/arm/mach-tegra/board-stingray-pinmux.c +++ b/arch/arm/mach-tegra/board-stingray-pinmux.c @@ -54,8 +54,8 @@ static __initdata struct tegra_pingroup_config stingray_pinmux[] = { {TEGRA_PINGROUP_GPV, TEGRA_MUX_PCIE, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_HDINT, TEGRA_MUX_HDMI, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_I2CP, TEGRA_MUX_I2C, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, - {TEGRA_PINGROUP_IRRX, TEGRA_MUX_UARTA, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_IRTX, TEGRA_MUX_UARTA, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_IRRX, TEGRA_MUX_UARTA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_IRTX, TEGRA_MUX_UARTA, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_KBCA, TEGRA_MUX_KBC, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_KBCB, TEGRA_MUX_SDIO2, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_KBCC, TEGRA_MUX_KBC, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, @@ -109,7 +109,7 @@ static __initdata struct tegra_pingroup_config stingray_pinmux[] = { {TEGRA_PINGROUP_SDB, TEGRA_MUX_SDIO3, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_SDC, TEGRA_MUX_SDIO3, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_SDD, TEGRA_MUX_SDIO3, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_SDIO1, TEGRA_MUX_UARTE, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_SDIO1, TEGRA_MUX_UARTE, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_SLXA, TEGRA_MUX_PCIE, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_SLXC, TEGRA_MUX_SPI4, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_SLXD, TEGRA_MUX_SPI4, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, @@ -128,8 +128,8 @@ static __initdata struct tegra_pingroup_config stingray_pinmux[] = { {TEGRA_PINGROUP_UAB, TEGRA_MUX_ULPI, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_UAC, TEGRA_MUX_OWR, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_UAD, TEGRA_MUX_IRDA, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, - {TEGRA_PINGROUP_UCA, TEGRA_MUX_UARTC, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, - {TEGRA_PINGROUP_UCB, TEGRA_MUX_UARTC, TEGRA_PUPD_PULL_UP, TEGRA_TRI_TRISTATE}, + {TEGRA_PINGROUP_UCA, TEGRA_MUX_UARTC, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, + {TEGRA_PINGROUP_UCB, TEGRA_MUX_UARTC, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_UDA, TEGRA_MUX_ULPI, TEGRA_PUPD_NORMAL, TEGRA_TRI_TRISTATE}, {TEGRA_PINGROUP_CK32, TEGRA_MUX_NONE, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, {TEGRA_PINGROUP_DDRC, TEGRA_MUX_NONE, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL}, diff --git a/arch/arm/mach-tegra/board-stingray.c b/arch/arm/mach-tegra/board-stingray.c index a7300ded517c..a248da7eb5fe 100644 --- a/arch/arm/mach-tegra/board-stingray.c +++ b/arch/arm/mach-tegra/board-stingray.c @@ -93,7 +93,45 @@ static struct platform_device debug_uart = { }, }; -static struct plat_serial8250_port hsuart_platform_data[] = { +static struct plat_serial8250_port hs_uarta_platform_data[] = { + { + .mapbase = TEGRA_UARTA_BASE, + .membase = IO_ADDRESS(TEGRA_UARTA_BASE), + .irq = INT_UARTA, + }, { + .flags = 0 + } +}; + +static struct platform_device hs_uarta = { + .name = "tegra_uart", + .id = 0, + .dev = { + .platform_data = hs_uarta_platform_data, + .coherent_dma_mask = 0xffffffff, + }, +}; + +static struct plat_serial8250_port hs_uartc_platform_data[] = { + { + .mapbase = TEGRA_UARTC_BASE, + .membase = IO_ADDRESS(TEGRA_UARTC_BASE), + .irq = INT_UARTC, + }, { + .flags = 0 + } +}; + +static struct platform_device hs_uartc = { + .name = "tegra_uart", + .id = 2, + .dev = { + .platform_data = hs_uartc_platform_data, + .coherent_dma_mask = 0xffffffff, + }, +}; + +static struct plat_serial8250_port hs_uartd_platform_data[] = { { .mapbase = TEGRA_UARTD_BASE, .membase = IO_ADDRESS(TEGRA_UARTD_BASE), @@ -103,11 +141,30 @@ static struct plat_serial8250_port hsuart_platform_data[] = { } }; -static struct platform_device hsuart = { +static struct platform_device hs_uartd = { .name = "tegra_uart", .id = 3, .dev = { - .platform_data = hsuart_platform_data, + .platform_data = hs_uartd_platform_data, + .coherent_dma_mask = 0xffffffff, + }, +}; + +static struct plat_serial8250_port hs_uarte_platform_data[] = { + { + .mapbase = TEGRA_UARTE_BASE, + .membase = IO_ADDRESS(TEGRA_UARTE_BASE), + .irq = INT_UARTE, + }, { + .flags = 0 + } +}; + +static struct platform_device hs_uarte = { + .name = "tegra_uart", + .id = 4, + .dev = { + .platform_data = hs_uarte_platform_data, .coherent_dma_mask = 0xffffffff, }, }; @@ -233,7 +290,10 @@ static struct platform_device *stingray_devices[] __initdata = { &tegra_otg, &androidusb_device, &bq24617_device, - &hsuart, + &hs_uarta, + &hs_uartc, + &hs_uartd, + &hs_uarte, &tegra_i2c_device1, &tegra_i2c_device2, &tegra_i2c_device3, -- 2.34.1