summaryrefslogtreecommitdiff
path: root/arch/arm/mach-mx6/board-mx6q_sabreauto.c
diff options
context:
space:
mode:
authorAlejandro Sierra <b18039@freescale.com>2012-04-02 15:28:38 -0500
committerJason Liu <r64343@freescale.com>2012-07-20 13:24:48 +0800
commit8c881c5b6669e381133146838ca66b0ce7faf7a1 (patch)
tree282e215d78b6bd80af4cc76bf4cbaa1c0843a295 /arch/arm/mach-mx6/board-mx6q_sabreauto.c
parent7986b07e5eb283c79a04021f21e313204ae5aaab (diff)
ENGR00178584 uart3 pins configuration
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>
Diffstat (limited to 'arch/arm/mach-mx6/board-mx6q_sabreauto.c')
-rw-r--r--arch/arm/mach-mx6/board-mx6q_sabreauto.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/arch/arm/mach-mx6/board-mx6q_sabreauto.c b/arch/arm/mach-mx6/board-mx6q_sabreauto.c
index 7ca00f3b475b..8819b45612a1 100644
--- a/arch/arm/mach-mx6/board-mx6q_sabreauto.c
+++ b/arch/arm/mach-mx6/board-mx6q_sabreauto.c
@@ -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);