diff options
author | Harry Hong <hhong@nvidia.com> | 2014-07-07 14:01:51 +0900 |
---|---|---|
committer | Harry Hong <hhong@nvidia.com> | 2014-07-07 19:30:35 -0700 |
commit | 23acda5406e6419d6c40c55197e4974204c08354 (patch) | |
tree | 51d00595c79e696eed6b63b0b728f22d5a61910d /arch | |
parent | 0666ccd47e9c7defc07547cd08d1d1182415c437 (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.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-tegratab-power.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-tegratab-sdhci.c | 5 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-tegratab.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-tegra/board-tegratab.h | 1 |
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 |