summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChao Jiang <chaoj@nvidia.com>2011-02-08 20:18:30 +0900
committerVarun Colbert <vcolbert@nvidia.com>2011-02-10 15:42:07 -0800
commitd5c7cadc6221533357038fe2073c917735e60694 (patch)
treedf4c1b6442762eb4d1963534895aeafa92bcb6c7
parented1166865825a993c16a7dcf3f59b126c863586a (diff)
ARM: ventana: gpio: Enabled headphone/mic jack
Enabled headphone jack on Ventana board. Set up interrupt pin for mic jack. fixes bug 766757 Change-Id: I3e9cda1b9867bcb117be17719241dac270bf539c Reviewed-on: http://git-master/r/18708 Reviewed-by: Chao Jiang <chaoj@nvidia.com> Tested-by: Chao Jiang <chaoj@nvidia.com> Reviewed-by: Sachin Nikam <snikam@nvidia.com> Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
-rw-r--r--arch/arm/mach-tegra/Makefile1
-rw-r--r--arch/arm/mach-tegra/board-ventana-jack.c51
-rw-r--r--arch/arm/mach-tegra/board-ventana.c2
-rw-r--r--arch/arm/mach-tegra/board-ventana.h1
4 files changed, 55 insertions, 0 deletions
diff --git a/arch/arm/mach-tegra/Makefile b/arch/arm/mach-tegra/Makefile
index df7ad6264abc..3dc53f8ba8e1 100644
--- a/arch/arm/mach-tegra/Makefile
+++ b/arch/arm/mach-tegra/Makefile
@@ -61,6 +61,7 @@ obj-${CONFIG_MACH_VENTANA} += board-ventana-pinmux.o
obj-${CONFIG_MACH_VENTANA} += board-ventana-sdhci.o
obj-${CONFIG_MACH_VENTANA} += board-ventana-power.o
obj-${CONFIG_MACH_VENTANA} += board-ventana-panel.o
+obj-${CONFIG_MACH_VENTANA} += board-ventana-jack.o
obj-${CONFIG_MACH_VENTANA} += board-ventana-sensors.o
obj-${CONFIG_MACH_VENTANA} += board-ventana-kbc.o
obj-${CONFIG_MACH_VENTANA} += board-ventana-memory.o
diff --git a/arch/arm/mach-tegra/board-ventana-jack.c b/arch/arm/mach-tegra/board-ventana-jack.c
new file mode 100644
index 000000000000..54d89a5db58d
--- /dev/null
+++ b/arch/arm/mach-tegra/board-ventana-jack.c
@@ -0,0 +1,51 @@
+/*
+ * arch/arm/mach-tegra/board-ventana-jack.c
+ *
+ * Copyright (c) 2011, NVIDIA Corporation.
+ *
+ * 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
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include <linux/platform_device.h>
+#include <sound/jack.h>
+#include <sound/soc.h>
+#include <mach/gpio.h>
+#include <mach/audio.h>
+
+#include "gpio-names.h"
+
+static struct tegra_wired_jack_conf ventana_wr_jack_conf = {
+ .hp_det_n = TEGRA_GPIO_PW2,
+ .en_mic_ext = TEGRA_GPIO_PX1,
+ .en_mic_int = TEGRA_GPIO_PX0,
+};
+
+static struct platform_device ventana_hs_jack_device = {
+ .name = "tegra_wired_jack",
+ .id = -1,
+ .dev = {
+ .platform_data = &ventana_wr_jack_conf,
+ },
+};
+
+int __init ventana_wired_jack_init(void)
+{
+ int ret;
+
+ tegra_gpio_enable(ventana_wr_jack_conf.hp_det_n);
+
+ ret = platform_device_register(&ventana_hs_jack_device);
+ return ret;
+}
diff --git a/arch/arm/mach-tegra/board-ventana.c b/arch/arm/mach-tegra/board-ventana.c
index 61d3008b3e3b..ecb83b9ba064 100644
--- a/arch/arm/mach-tegra/board-ventana.c
+++ b/arch/arm/mach-tegra/board-ventana.c
@@ -228,6 +228,7 @@ static struct platform_device androidusb_device = {
static struct i2c_board_info __initdata ventana_i2c_bus1_board_info[] = {
{
I2C_BOARD_INFO("wm8903", 0x1a),
+ .irq = TEGRA_GPIO_TO_IRQ(TEGRA_GPIO_PX3),
},
};
@@ -711,6 +712,7 @@ static void __init tegra_ventana_init(void)
ventana_kbc_init();
#endif
+ ventana_wired_jack_init();
ventana_usb_init();
ventana_gps_init();
ventana_panel_init();
diff --git a/arch/arm/mach-tegra/board-ventana.h b/arch/arm/mach-tegra/board-ventana.h
index 353ac46f6ea0..d12b24597251 100644
--- a/arch/arm/mach-tegra/board-ventana.h
+++ b/arch/arm/mach-tegra/board-ventana.h
@@ -22,6 +22,7 @@ int ventana_regulator_init(void);
int ventana_sdhci_init(void);
int ventana_pinmux_init(void);
int ventana_panel_init(void);
+int ventana_wired_jack_init(void);
int ventana_sensors_init(void);
int ventana_kbc_init(void);
int ventana_emc_init(void);