summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorPedro Perez de Heredia <pedro.perez@digi.com>2011-12-30 02:43:21 +0100
committerPedro Perez de Heredia <pedro.perez@digi.com>2011-12-30 02:43:21 +0100
commit7b5c39286c624a29ac6e29561a30abee376c17b4 (patch)
tree36de9d9407eaf33f7d58488255b849c2d7633644 /arch
parent53b8bcd1a73cde55f8cf6bdf1f2ae6d5761ce368 (diff)
ccxmx5x: add fusion multi-touch driver
Signed-off-by: Pedro Perez de Heredia <pedro.perez@digi.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-mx5/Kconfig12
-rw-r--r--arch/arm/mach-mx5/devices_ccwmx53.c23
-rw-r--r--arch/arm/mach-mx5/devices_ccwmx53.h1
-rw-r--r--arch/arm/mach-mx5/mx53_ccwmx53js.c2
4 files changed, 35 insertions, 3 deletions
diff --git a/arch/arm/mach-mx5/Kconfig b/arch/arm/mach-mx5/Kconfig
index ac24cddd14c6..835243ba7580 100644
--- a/arch/arm/mach-mx5/Kconfig
+++ b/arch/arm/mach-mx5/Kconfig
@@ -629,8 +629,8 @@ config CCXMX5X_DISP0_RGB888
The JumpStart Kit Development Board (30011032-02) is designed
to work in 18bit mode. To work in 24bit mode you need an Early
- Availability Kit Development Board (30011032-01) or a custom
- designed board that populates all 24 data lines of the video
+ Availability Kit Development Board (30011032-01) or a custom
+ designed board that populates all 24 data lines of the video
interface.
IMPORTANT: On the ConnectCore Wi-i.MX51/i.MX51 if the Display 1
is configured for 24bit color depth, the Display 2 will not be
@@ -692,5 +692,13 @@ config CCWMX5X_SECOND_TOUCH
High Resolution Display board, connected to the processor through SPI and that can be
used with the secondary display (but also with the primary)
+config CCWMX5X_FUSION_MULTITOUCH
+ bool "Enable support for the Fusion multi-touchscreen controller on the JSK board"
+ depends on (I2C_MXC || I2C_IMX) && (JSCCWMX53_V2 || JSCCWMX51_V2)
+ select TOUCHSCREEN_FUSION
+ help
+ This enables the support for the Fusion multi-touch controller available in the
+ fusion Touch Displays, connected to the JumpStart Kit board.
+
endmenu
endif
diff --git a/arch/arm/mach-mx5/devices_ccwmx53.c b/arch/arm/mach-mx5/devices_ccwmx53.c
index 4a3f8b862b46..adf74218a3a8 100644
--- a/arch/arm/mach-mx5/devices_ccwmx53.c
+++ b/arch/arm/mach-mx5/devices_ccwmx53.c
@@ -1009,6 +1009,7 @@ static struct i2c_board_info ccwmx53_i2c_devices[] __initdata = {
{
I2C_BOARD_INFO("sgtl5000-i2c", 0x0A),
},
+#endif
#if defined (CONFIG_MXC_CAMERA_MICRON111_1) || defined(CONFIG_MXC_CAMERA_MICRON111_1_MODULE)
{
I2C_BOARD_INFO("mt9v111_1", 0xB8>>1 /*0x5C*/),
@@ -1019,7 +1020,6 @@ static struct i2c_board_info ccwmx53_i2c_devices[] __initdata = {
I2C_BOARD_INFO("mt9v111_2", 0x90>>1 /*0x48*/),
},
#endif
-#endif
};
int __init ccwmx53_init_i2c_devices(void)
@@ -1194,3 +1194,24 @@ void ccwmx53_register_can(int interface)
#else
void ccwmx53_register_can(int interface) {}
#endif /* CONFIG_CAN_FLEXCAN */
+
+#ifdef CONFIG_CCWMX5X_FUSION_MULTITOUCH
+struct i2c_board_info ccwmx53_fusion_ts[] __initdata = {
+ {
+ I2C_BOARD_INFO("fusion", 0x10),
+ .irq = gpio_to_irq(SECOND_TS_IRQ_PIN),
+ },
+};
+
+void ccwmx53_register_fusion_touch(void)
+{
+ /* Configure external touch interrupt line and register the i2c device */
+ mxc_iomux_v3_setup_pad(MX53_PAD_CSI0_DAT10__GPIO5_28);
+ gpio_request(SECOND_TS_IRQ_PIN, "fusion_ts_irq");
+ gpio_direction_input(SECOND_TS_IRQ_PIN);
+
+ i2c_register_board_info(2, ccwmx53_fusion_ts, 1);
+}
+#else
+void ccwmx53_register_fusion_touch(void) {}
+#endif
diff --git a/arch/arm/mach-mx5/devices_ccwmx53.h b/arch/arm/mach-mx5/devices_ccwmx53.h
index d7a5d8a0df77..6063df27ea61 100644
--- a/arch/arm/mach-mx5/devices_ccwmx53.h
+++ b/arch/arm/mach-mx5/devices_ccwmx53.h
@@ -37,6 +37,7 @@ void ccwmx53_register_can(int interface);
int __init ccwmx5x_init_fb(void);
int __init ccwmx53_init_i2c_devices(void);
extern void ccwmx53_init_spidevices(void);
+void ccwmx53_register_fusion_touch(void);
void gpio_smsc911x_active(void);
void gpio_sdhc_active(int interface);
diff --git a/arch/arm/mach-mx5/mx53_ccwmx53js.c b/arch/arm/mach-mx5/mx53_ccwmx53js.c
index 9cc37ec40822..f6bb7fb27fcc 100644
--- a/arch/arm/mach-mx5/mx53_ccwmx53js.c
+++ b/arch/arm/mach-mx5/mx53_ccwmx53js.c
@@ -319,6 +319,8 @@ static void __init mxc_board_init(void)
#ifdef CONFIG_CCWMX5X_SECOND_TOUCH
ccwmx53_init_2nd_touch();
#endif
+ ccwmx53_register_fusion_touch();
+
pm_power_off = da9053_power_off;
}