#include <linux/gps-gpio-brcm4750.h>
#include <linux/kernel.h>
#include <linux/platform_device.h>
+#include "board-stingray.h"
#include "gpio-names.h"
#define STINGRAY_GPS_RESET TEGRA_GPIO_PH0
#define STINGRAY_GPS_STANDBY TEGRA_GPIO_PH1
+#define STINGRAY_GPS_UART_CTS TEGRA_GPIO_PY6
static void stingray_gps_reset_gpio(unsigned int gpio_val)
{
tegra_gpio_enable(STINGRAY_GPS_STANDBY);
gpio_request(STINGRAY_GPS_STANDBY, "gps_stdby");
gpio_direction_output(STINGRAY_GPS_STANDBY, 0);
+
+ if (stingray_revision() < STINGRAY_REVISION_P3) {
+ tegra_gpio_enable(STINGRAY_GPS_UART_CTS);
+ gpio_request(STINGRAY_GPS_UART_CTS, "uarte_cts");
+ gpio_direction_output(STINGRAY_GPS_UART_CTS, 0);
+ gpio_set_value(STINGRAY_GPS_UART_CTS, 0);
+ }
}
struct gps_gpio_brcm4750_platform_data stingray_gps_gpio_data = {
{TEGRA_PINGROUP_SDB, TEGRA_MUX_SDIO3, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_SDC, TEGRA_MUX_SDIO3, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_SDD, TEGRA_MUX_SDIO3, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL},
- {TEGRA_PINGROUP_SDIO1, TEGRA_MUX_UARTE, TEGRA_PUPD_PULL_DOWN, TEGRA_TRI_NORMAL},
+ {TEGRA_PINGROUP_SDIO1, TEGRA_MUX_UARTE, TEGRA_PUPD_PULL_UP, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_SLXA, TEGRA_MUX_SAFE, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_SLXC, TEGRA_MUX_SAFE, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},
{TEGRA_PINGROUP_SLXD, TEGRA_MUX_SPDIF, TEGRA_PUPD_NORMAL, TEGRA_TRI_NORMAL},