summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorHarry Hong <hhong@nvidia.com>2014-07-07 14:01:51 +0900
committerHarry Hong <hhong@nvidia.com>2014-07-07 19:30:35 -0700
commit23acda5406e6419d6c40c55197e4974204c08354 (patch)
tree51d00595c79e696eed6b63b0b728f22d5a61910d /arch
parent0666ccd47e9c7defc07547cd08d1d1182415c437 (diff)
ARM: tegra:TN7/TN7CW enable E2542 debug board
if debug uart is set to 5, just mux sdcard mmc pins to UART-A. Bug 200018501 Change-Id: I22f05b38f772feb0483b1ce7c6fbbea85f884e3c Signed-off-by: Harry Hong <hhong@nvidia.com> Reviewed-on: http://git-master/r/434972
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-tegra/board-tegratab-pinmux.c9
-rw-r--r--arch/arm/mach-tegra/board-tegratab-power.c5
-rw-r--r--arch/arm/mach-tegra/board-tegratab-sdhci.c5
-rw-r--r--arch/arm/mach-tegra/board-tegratab.c2
-rw-r--r--arch/arm/mach-tegra/board-tegratab.h1
5 files changed, 20 insertions, 2 deletions
diff --git a/arch/arm/mach-tegra/board-tegratab-pinmux.c b/arch/arm/mach-tegra/board-tegratab-pinmux.c
index 939f73e928b7..dfd812f354c1 100644
--- a/arch/arm/mach-tegra/board-tegratab-pinmux.c
+++ b/arch/arm/mach-tegra/board-tegratab-pinmux.c
@@ -86,6 +86,11 @@ static struct gpio_init_pin_info p1988_manual_gpio_mode[] = {
GPIO_INIT_PIN_MODE(TEGRA_GPIO_PR0, false, 0),
};
+static __initdata struct tegra_pingroup_config e2542_uart_config_pinmux[] = {
+ DEFAULT_PINMUX(SDMMC3_CMD, UARTA, NORMAL, NORMAL, INPUT),
+ DEFAULT_PINMUX(SDMMC3_DAT1, UARTA, NORMAL, NORMAL, OUTPUT),
+};
+
static void __init tegratab_gpio_init_configure(void)
{
int len;
@@ -165,5 +170,9 @@ int __init tegratab_pinmux_init(void)
tegra_pinmux_config_table(manual_config_pinmux,
ARRAY_SIZE(manual_config_pinmux));
+ if (get_tegra_uart_debug_port_id() == UART_FROM_SDCARD)
+ tegra_pinmux_config_table(e2542_uart_config_pinmux,
+ ARRAY_SIZE(e2542_uart_config_pinmux));
+
return 0;
}
diff --git a/arch/arm/mach-tegra/board-tegratab-power.c b/arch/arm/mach-tegra/board-tegratab-power.c
index 441c7c23d240..da38abb6d98b 100644
--- a/arch/arm/mach-tegra/board-tegratab-power.c
+++ b/arch/arm/mach-tegra/board-tegratab-power.c
@@ -859,7 +859,10 @@ subsys_initcall_sync(tegratab_fixed_regulator_init);
int __init tegratab_regulator_init(void)
{
-
+ if (get_tegra_uart_debug_port_id() == UART_FROM_SDCARD) {
+ reg_idata_ldo9.constraints.always_on = 1;
+ reg_idata_ldo9.constraints.boot_on = 1;
+ }
#ifdef CONFIG_ARCH_TEGRA_HAS_CL_DVFS
tegratab_cl_dvfs_init();
#endif
diff --git a/arch/arm/mach-tegra/board-tegratab-sdhci.c b/arch/arm/mach-tegra/board-tegratab-sdhci.c
index 1a94982144a6..2173c0a18613 100644
--- a/arch/arm/mach-tegra/board-tegratab-sdhci.c
+++ b/arch/arm/mach-tegra/board-tegratab-sdhci.c
@@ -362,7 +362,10 @@ int __init tegratab_sdhci_init(void)
return 0;
#endif
- platform_device_register(&tegra_sdhci_device2);
+ /* sdcard slot is muxed to UART-A */
+ if (get_tegra_uart_debug_port_id() != UART_FROM_SDCARD)
+ platform_device_register(&tegra_sdhci_device2);
+
platform_device_register(&tegra_sdhci_device0);
tegratab_wifi_init();
return 0;
diff --git a/arch/arm/mach-tegra/board-tegratab.c b/arch/arm/mach-tegra/board-tegratab.c
index 5af74a92aa56..41c501ced92b 100644
--- a/arch/arm/mach-tegra/board-tegratab.c
+++ b/arch/arm/mach-tegra/board-tegratab.c
@@ -300,6 +300,8 @@ static void __init uart_debug_init(void)
if (debug_port_id < 0)
return;
+ if (debug_port_id == UART_FROM_SDCARD)
+ debug_port_id = 0;
tegratab_uart_devices[debug_port_id] = uart_console_debug_device;
}
diff --git a/arch/arm/mach-tegra/board-tegratab.h b/arch/arm/mach-tegra/board-tegratab.h
index efde488b5993..10fcc3a93105 100644
--- a/arch/arm/mach-tegra/board-tegratab.h
+++ b/arch/arm/mach-tegra/board-tegratab.h
@@ -128,4 +128,5 @@ enum tegra_bb_type {
#define HSIC1_PORT_OWNER_XUSB 0x4
#define TEGRATAB_BATTERY_MAX_CURRENT 4500
+#define UART_FROM_SDCARD 0x5
#endif