summaryrefslogtreecommitdiff
path: root/arch/arm/mach-mx6
diff options
context:
space:
mode:
authorB38613 <B38613@freescale.com>2012-02-22 13:34:50 +0800
committerB38613 <B38613@freescale.com>2012-02-22 13:45:41 +0800
commit89fb45f9dcfc910ed17229d5120c7b66b8bd0c06 (patch)
treef4e2a5589f52bca9e0b9f93f600335324099223a /arch/arm/mach-mx6
parent7dfeb2e543b45a8e33318e1879ef5ba89484a81b (diff)
ENGR00174615:Enable AH-1613 GPS module
set GPIO config and disable UART3 DMA. Signed-off-by: Zhou Jianzheng <B38613@freescale.com>
Diffstat (limited to 'arch/arm/mach-mx6')
-rw-r--r--arch/arm/mach-mx6/board-mx6q_sabresd.c22
-rw-r--r--arch/arm/mach-mx6/serial.h4
2 files changed, 23 insertions, 3 deletions
diff --git a/arch/arm/mach-mx6/board-mx6q_sabresd.c b/arch/arm/mach-mx6/board-mx6q_sabresd.c
index e8595219fd71..3d351d6045e6 100644
--- a/arch/arm/mach-mx6/board-mx6q_sabresd.c
+++ b/arch/arm/mach-mx6/board-mx6q_sabresd.c
@@ -105,6 +105,8 @@
#define MX6Q_SABRESD_CHARGE_CHG_2_B IMX_GPIO_NR(3, 13)
#define MX6Q_SABRESD_CHARGE_UOK_B IMX_GPIO_NR(1, 27)
#define MX6Q_SABRESD_CHARGE_DOK_B IMX_GPIO_NR(2, 24)
+#define MX6Q_SABRESD_GPS_EN IMX_GPIO_NR(3, 0)
+#define MX6Q_SABRESD_AUX_3V15_EN IMX_GPIO_NR(6, 9)
void __init early_console_setup(unsigned long base, struct clk *clk);
static struct clk *sata_clk;
@@ -333,6 +335,9 @@ static iomux_v3_cfg_t mx6q_sabresd_pads[] = {
MX6Q_PAD_ENET_RXD0__GPIO_1_27, /* UOK_B */
MX6Q_PAD_EIM_CS1__GPIO_2_24, /* DOK_B */
+
+ /*GPS AUX_3V15_EN*/
+ MX6Q_PAD_NANDF_WP_B__GPIO_6_9,
};
static iomux_v3_cfg_t mx6q_sabresd_csi0_sensor_pads[] = {
@@ -1013,6 +1018,20 @@ static int imx6q_init_audio(void)
return 0;
}
+static void gps_power_on(bool on)
+{
+ /* Enable/disable aux_3v15 */
+ gpio_request(MX6Q_SABRESD_AUX_3V15_EN, "aux_3v15_en");
+ gpio_direction_output(MX6Q_SABRESD_AUX_3V15_EN, 1);
+ gpio_set_value(MX6Q_SABRESD_AUX_3V15_EN, on);
+ gpio_free(MX6Q_SABRESD_AUX_3V15_EN);
+ /*Enable/disable gps_en*/
+ gpio_request(MX6Q_SABRESD_GPS_EN, "gps_en");
+ gpio_direction_output(MX6Q_SABRESD_GPS_EN, 1);
+ gpio_set_value(MX6Q_SABRESD_GPS_EN, on);
+ gpio_free(MX6Q_SABRESD_GPS_EN);
+
+}
#if defined(CONFIG_KEYBOARD_GPIO) || defined(CONFIG_KEYBOARD_GPIO_MODULE)
#define GPIO_BUTTON(gpio_num, ev_code, act_low, descr, wake) \
{ \
@@ -1236,6 +1255,7 @@ static void __init mx6_sabresd_board_init(void)
gpio_direction_output(MX6Q_SABRESD_AUX_5V_EN, 1);
gpio_set_value(MX6Q_SABRESD_AUX_5V_EN, 1);
+ gps_power_on(true);
/* Register charger chips */
platform_device_register(&sabresd_max8903_charger_1);
}
@@ -1258,7 +1278,7 @@ static struct sys_timer mx6_sabresd_timer = {
.init = mx6_sabresd_timer_init,
};
-static void __init mx6q_sabresd_reserve(void)
+static void __init mx6q_sabresd_reserve()
{
phys_addr_t phys;
diff --git a/arch/arm/mach-mx6/serial.h b/arch/arm/mach-mx6/serial.h
index 16d969fca20a..c510b59b6b7d 100644
--- a/arch/arm/mach-mx6/serial.h
+++ b/arch/arm/mach-mx6/serial.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright (C) 2012 Freescale Semiconductor, Inc. All Rights Reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -56,7 +56,7 @@
#define UART2_UFCR_TXTL 16
/* UART 3 configuration */
#define UART3_UCR4_CTSTL 16
-#define UART3_DMA_ENABLE 1
+#define UART3_DMA_ENABLE 0
#define UART3_DMA_RXBUFSIZE 1024
#define UART3_UFCR_RXTL 16
#define UART3_UFCR_TXTL 16