]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
ARM:tegra:st8: Set UARTA over SDMMC3 pinmux
authorwahsu <wahsu@nvidia.com>
Fri, 6 Jun 2014 14:43:46 +0000 (22:43 +0800)
committerEmad Mir <emir@nvidia.com>
Fri, 13 Jun 2014 17:10:56 +0000 (10:10 -0700)
Bug 200012420

Change-Id: Ifebbc4c28ba3b2ae88a42fda2920d58eaab1e253
Signed-off-by: wahsu <wahsu@nvidia.com>
Reviewed-on: http://git-master/r/420094
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Laxman Dewangan <ldewangan@nvidia.com>
arch/arm/mach-tegra/board-ardbeg-sdhci.c
arch/arm/mach-tegra/board-ardbeg.c

index 6b07fec6d030726fafcbba07a0fb07f910180cb2..e29577b22fb4dbcde3624df902f5c89708687f8a 100644 (file)
@@ -517,7 +517,8 @@ int __init ardbeg_sdhci_init(void)
        }
 
        platform_device_register(&tegra_sdhci_device3);
-       platform_device_register(&tegra_sdhci_device2);
+       if (!is_uart_over_sd_enabled())
+               platform_device_register(&tegra_sdhci_device2);
        platform_device_register(&tegra_sdhci_device0);
        ardbeg_wifi_init();
 
index e2f860e699d1354ea12901e8b2c73659cd792fe2..4b1c52ae60f1680ad183a96c9bb0b45cbccdebc5 100644 (file)
@@ -242,6 +242,24 @@ static void ardbeg_i2c_init(void)
                i2c_register_board_info(1, &i2c_touchpad_board_info , 1);
        }
 }
+/* Pinmux changes to support UART over uSD adapter E2542 */
+static __initdata struct tegra_pingroup_config ardbeg_sdmmc3_uart_pinmux[] = {
+       DEFAULT_PINMUX(SDMMC3_CMD,    UARTA,      NORMAL,   NORMAL,   INPUT),
+       DEFAULT_PINMUX(SDMMC3_DAT1,   UARTA,      NORMAL,   NORMAL,   OUTPUT),
+};
+
+int __init ardbeg_pinmux_init(void)
+{
+       if (is_uart_over_sd_enabled()) {
+               tegra_pinmux_config_table(ardbeg_sdmmc3_uart_pinmux,
+                               ARRAY_SIZE(ardbeg_sdmmc3_uart_pinmux));
+               /* On ST8, UART-A is the physical device for
+               * UART over uSD card
+               */
+                set_sd_uart_port_id(0);
+       }
+       return 0;
+}
 
 #ifndef CONFIG_USE_OF
 static struct platform_device *ardbeg_uart_devices[] __initdata = {
@@ -1267,8 +1285,11 @@ static void __init tegra_ardbeg_late_init(void)
                board_info.minor_revision);
 
        if (board_info.board_id == BOARD_E2548 ||
-                       board_info.board_id == BOARD_P2530)
+               board_info.board_id == BOARD_P2530)
                loki_pinmux_init();
+       if (board_info.board_id == BOARD_P1761)
+               ardbeg_pinmux_init();
+
 #ifndef CONFIG_MACH_EXUMA
        ardbeg_display_init();
 #endif