[PATCH 2/5] [OMAP] htcherald: SPI register config, TSC2046 touchscreen
Cory Maccarrone
darkstar6262 at gmail.com
Mon Aug 2 11:29:33 EDT 2010
This change adds SPI bus support for the HTC Herald, and adds in
support for the TSC2046-based touchscreen attached to this
device (using the ADS7846 driver).
Signed-off-by: Cory Maccarrone <darkstar6262 at gmail.com>
---
arch/arm/mach-omap1/board-htcherald.c | 35 +++++++++++++++++++++++++++++++++
1 files changed, 35 insertions(+), 0 deletions(-)
diff --git a/arch/arm/mach-omap1/board-htcherald.c b/arch/arm/mach-omap1/board-htcherald.c
index 2f0bb39..1b12b75 100644
--- a/arch/arm/mach-omap1/board-htcherald.c
+++ b/arch/arm/mach-omap1/board-htcherald.c
@@ -35,6 +35,8 @@
#include <linux/i2c-gpio.h>
#include <linux/htcpld.h>
#include <linux/leds.h>
+#include <linux/spi/spi.h>
+#include <linux/spi/ads7846.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
@@ -63,6 +65,9 @@
#define HTCHERALD_GPIO_SLIDE 174
#define HTCHERALD_GIRQ_BTNS 141
+/* GPIO definitions for the touchscreen */
+#define HTCHERALD_GPIO_TS 76
+
/* HTCPLD definitions */
/*
@@ -429,6 +434,33 @@ static struct platform_device *devices[] __initdata = {
};
/*
+ * Touchscreen
+ */
+static const struct ads7846_platform_data htcherald_ts_platform_data = {
+ .model = 7846,
+ .keep_vref_on = 1,
+ .x_plate_ohms = 496,
+ .gpio_pendown = HTCHERALD_GPIO_TS,
+ .pressure_max = 100000,
+ .pressure_min = 5000,
+ .x_min = 528,
+ .x_max = 3760,
+ .y_min = 624,
+ .y_max = 3760,
+};
+
+static struct spi_board_info __initdata htcherald_spi_board_info[] = {
+ {
+ .modalias = "ads7846",
+ .platform_data = &htcherald_ts_platform_data,
+ .irq = OMAP_GPIO_IRQ(HTCHERALD_GPIO_TS),
+ .max_speed_hz = 2500000,
+ .bus_num = 2,
+ .chip_select = 1,
+ }
+};
+
+/*
* Init functions from here on
*/
@@ -558,6 +590,9 @@ static void __init htcherald_init(void)
htcherald_usb_enable();
omap1_usb_init(&htcherald_usb_config);
+ spi_register_board_info(htcherald_spi_board_info,
+ ARRAY_SIZE(htcherald_spi_board_info));
+
omap_register_i2c_bus(1, 100, NULL, 0);
#if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE)
--
1.6.0.4
More information about the linux-arm-kernel
mailing list