]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
ENGR00178584 uart3 pins configuration
authorAlejandro Sierra <b18039@freescale.com>
Mon, 2 Apr 2012 20:28:38 +0000 (15:28 -0500)
committerOliver Wendt <ow@karo-electronics.de>
Mon, 30 Sep 2013 12:11:24 +0000 (14:11 +0200)
Uart 3 and NFC pins are shared.
Uart 3 enablement is done by passing an early parameter
called "uart3" from uboot. Both interfaces (Uart3 and NFC)
can NOT coexist on the same configuration at the same time.

Signed-off-by: Alejandro Sierra <b18039@freescale.com>
arch/arm/mach-mx6/board-mx6q_sabreauto.c
arch/arm/mach-mx6/board-mx6q_sabreauto.h
arch/arm/mach-mx6/board-mx6solo_sabreauto.h

index 7ca00f3b475b5c3317b95379f69f907a83ef859c..8819b45612a1802773f8000c505f5cff8d713922 100644 (file)
@@ -136,6 +136,14 @@ static int mma8451_position = 3;
 static struct clk *sata_clk;
 static int mipi_sensor;
 static int can0_enable;
+static int uart3_en;
+
+static int __init uart3_enable(char *p)
+{
+       uart3_en = 1;
+       return 0;
+}
+early_param("uart3", uart3_enable);
 
 enum sd_pad_mode {
        SD_PAD_MODE_LOW_SPEED,
@@ -285,8 +293,8 @@ mx6q_sabreauto_anatop_thermal_data __initconst = {
 
 static inline void mx6q_sabreauto_init_uart(void)
 {
-       imx6q_add_imx_uart(0, NULL);
        imx6q_add_imx_uart(1, NULL);
+       imx6q_add_imx_uart(2, NULL);
        imx6q_add_imx_uart(3, NULL);
 }
 
@@ -524,9 +532,11 @@ static int max7310_u43_setup(struct i2c_client *client,
        int max7310_gpio_value[] = {
                0, 0, 0, 0, 0, 0, 0, 0,
        };
-
        int n;
 
+       if (uart3_en)
+               max7310_gpio_value[3] = 1;
+
        for (n = 0; n < ARRAY_SIZE(max7310_gpio_value); ++n) {
                gpio_request(gpio_base + n, "MAX7310 U43 GPIO Expander");
                if (max7310_gpio_value[n] < 0)
@@ -1416,7 +1426,8 @@ static void __init mx6_board_init(void)
        imx6q_add_viim();
        imx6q_add_imx2_wdt(0, NULL);
        imx6q_add_dma();
-       imx6q_add_gpmi(&mx6q_gpmi_nand_platform_data);
+       if (!uart3_en)
+               imx6q_add_gpmi(&mx6q_gpmi_nand_platform_data);
 
        imx6q_add_dvfs_core(&sabreauto_dvfscore_data);
 
index 21e7be5122388c1d6aa36a287e76a5c5dcd9669a..d2a097ec5e175d83b45ce43884b07efd0739273a 100644 (file)
@@ -187,6 +187,9 @@ static iomux_v3_cfg_t mx6q_sabreauto_pads[] = {
        MX6Q_PAD_GPIO_8__UART2_RXD,
        MX6Q_PAD_SD4_DAT6__UART2_CTS,
        MX6Q_PAD_SD4_DAT5__UART2_RTS,
+       /* UART 3 */
+       MX6Q_PAD_SD4_CLK__UART3_TXD,
+       MX6Q_PAD_SD4_CMD__UART3_RXD,
        /*USBs OC pin */
        MX6Q_PAD_EIM_WAIT__GPIO_5_0,  /*HOST1_OC*/
        MX6Q_PAD_SD4_DAT0__GPIO_2_8,  /*OTG_OC*/
index 25a1bdc649119655db0590484a3f1c9a7e18341a..3829c7ac38e6f3439869c421b6a7f8e62725c888 100644 (file)
@@ -188,6 +188,9 @@ static iomux_v3_cfg_t mx6dl_sabreauto_pads[] = {
        MX6DL_PAD_GPIO_8__UART2_RXD,
        MX6DL_PAD_SD4_DAT6__UART2_CTS,
        MX6DL_PAD_SD4_DAT5__UART2_RTS,
+       /* UART 3 */
+       MX6DL_PAD_SD4_CLK__UART3_TXD,
+       MX6DL_PAD_SD4_CMD__UART3_RXD,
        /*USBs OC pin */
        MX6DL_PAD_EIM_WAIT__GPIO_5_0,  /*HOST1_OC*/
        MX6DL_PAD_SD4_DAT0__GPIO_2_8,  /*OTG_OC*/