T30 with the capacitive touchscreen and touch adapter

Hi,

after having the capacitive touchscreen correctly implemented in VF61 and iMX6, I’m trying to do the same with the T30 with SODIMM 28 and 30.

I come from here First Steps with Capacitive Touch Display 7" Parallel | Toradex Developer Center which leads me to think after checking the board file board-colibri_t30.c that the TS is set for SODIMMs 107 and 106 (like the iMX6) .

These are the changes I’ve done so far.

board-colibri_t30.c:

 /*
 // Commented to avoid possible collisions
static struct fusion_f0710a_init_data colibri_fusion_pdata = {
	.pinmux_fusion_pins = NULL,
	.gpio_int = TEGRA_GPIO_PB5, 	// SO-DIMM 28: Pen down interrupt
	.gpio_reset = TEGRA_GPIO_PA6,	// SO-DIMM 30: Reset interrupt 
};
*/
static struct i2c_board_info colibri_t30_i2c_bus1_board_info[] __initdata = {

 ...
	{
            //Commented, do not init F0710A
		/* TouchRevolution Fusion 7 and 10 multi-touch controller */
		//I2C_BOARD_INFO("fusion_F0710A", 0x10),	
		//.platform_data = &colibri_fusion_pdata,
	},
	{
		/* Atmel MAX TS 7 multi-touch controller */
		I2C_BOARD_INFO("atmel_mxt_ts", 0x4a),
			.platform_data = &colibri_atmel_pdata,
            //.irq = TEGRA_GPIO_TO_IRQ( TEGRA_GPIO_PK3 ), 	//Changed to PB5 (SODIMM 28)
            .irq = TEGRA_GPIO_TO_IRQ( TEGRA_GPIO_PB5 ), 
	},
};

board-colibiri_t30-pinmux.c

	//DEFAULT_PINMUX(SDMMC3_CLK, PWM2, NORMAL, NORMAL, INPUT), //Commented to use as GPIO
...
	//DEFAULT_PINMUX(SDMMC3_DAT2, PWM1, NORMAL, NORMAL, INPUT), //Commented to use as GPIO

And this is what shows when the module tries to init at boot:
alt text

Thanks,
Álvaro.

Which carrier board are you using?

Viola Rev 1.2. Sorry, let me add it to the question.

I’m seeing the same behavior as described here:

The touchscreen does not appear when checking with i2cdetect buses 0, 3 and 4.

Also, testing with an original image, i2c-1 is the default for SODIMM 194 and 196, but it doesn’t appear in /dev/. Do we have to activate it in board files?

Please note that our current assumption was that a carrier board with out-of-the-box capacitive touch connector would be used. Unfortunately for various reasons outside the scope of this discussion if using the capacitive touch adaptor a different pinout is used which so far is not supported out-of-the-box. We are in the process of updating resp. documentation/implementation. That said if adjusting the pin muxing/usage properly the touch will of course work with any kind of pin choice. One thing to note is that our current implementation is completely missing the reset pin and only works due to the legacy fusion driver having un-reset it previously. So just commenting that one will actually break things. Ugly, I know. But we are working on cleaning that up.

Interesting. Regarding the documentation, I thought that would be the case, and therefore pointless to put more pressure on you whatsoever. We know how this is: It would be done whenever it’s done :slight_smile:

On the other hand, in order to have it working in the current state (for now and really just to test this out), I should be using both fusion_F0710A and atmel_mxt_ts in order to have the former un-reset the touchscreen? Could this be done shorting the RST pin to VCC/GND? I’m guessing that it might be harder than it sounds (i.e timings, order). Anyway, I will be trying this leaving the RST pin for the legacy fusion driver, change the pinout for the I2C bus used and the INT. I really appreciate that you’ve shared this piece of information even thought it’s not pretty, I’d already given up waiting for the documentation.

Finally, I’m still concerned that the I2C bus is not showing any devices (please check my comment in T30 with the capacitive touchscreen and touch adapter - #4 by alvaro.garcia - Technical Support - Toradex Community), and I’m confident that, even leaving the legacy fusion driver up, it wouldn’t show in the I2C detect.

Interesting. Regarding the documentation, I thought that would be the case, and therefore pointless to put more pressure on you whatsoever. We know how this is: It would be done whenever it’s done :slight_smile:

Thank you for your understanding.

On the other hand, in order to have it working in the current state (for now and really just to test this out), I should be using both fusion_F0710A and atmel_mxt_ts in order to have the former un-reset the touchscreen?

Exactly.

Could this be done shorting the RST pin to VCC/GND?

Good question but I do not currently know the answer.

I’m guessing that it might be harder than it sounds (i.e timings, order). Anyway, I will be trying this leaving the RST pin for the legacy fusion driver, change the pinout for the I2C bus used and the INT. I really appreciate that you’ve shared this piece of information even thought it’s not pretty, I’d already given up waiting for the documentation.

Yeah, sorry about that.

Finally, I’m still concerned that the I2C bus is not showing any devices (please check my comment in T30 with the capacitive touchscreen and touch adapter - #4 by alvaro.garcia - Technical Support - Toradex Community), and I’m confident that, even leaving the legacy fusion driver up, it wouldn’t show in the I2C detect.

Well, one will need to adjust the pin muxing as the adaptor uses different ones as the build-in connector (so far on Aster only). It was really an oversight on our side that resp. engineer implementing this was not aware of this pin muxing confusion.

Please find relevant patches now here and here.