From 7b5c39286c624a29ac6e29561a30abee376c17b4 Mon Sep 17 00:00:00 2001 From: Pedro Perez de Heredia Date: Fri, 30 Dec 2011 02:43:21 +0100 Subject: ccxmx5x: add fusion multi-touch driver Signed-off-by: Pedro Perez de Heredia --- arch/arm/mach-mx5/Kconfig | 12 ++++++++++-- arch/arm/mach-mx5/devices_ccwmx53.c | 23 ++++++++++++++++++++++- arch/arm/mach-mx5/devices_ccwmx53.h | 1 + arch/arm/mach-mx5/mx53_ccwmx53js.c | 2 ++ 4 files changed, 35 insertions(+), 3 deletions(-) (limited to 'arch') 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; } -- cgit v1.2.3