Touchscreen Integration Using I2C and GPIO

Hi All.

I’m trying to integrate a touchscreen (with an Atmel ATMXT336U touch controller) with the Jetson AGX Orin development kit. The touch controller uses the native (atmel_mxt_ts) device driver. I have wired the touch controller to the 40 pin header in the following fashion, which uses I2C bus #7.

Orin Pin Touch Pin Purpose
1 1 3.3V
3 4 I2C Data
5 5 I2C Clock
9 6 Ground
15 3 GPIO (Change Interrupt)
18 2 GPIO (Reset)

I have updated the device tree with the following entry to associate the I2C device with the device driver, where “0x2b” is the GPIO address for pin 18 on the header and “0x55” is the GPIO address for pin 15 on the header.

atmel_mxt_ts@4a {
compatible = “atmel,atmel_mxt_ts”;
reg = <0x4a>;
reset-gpios = <0x14 0x2b 0x01>;
interrupt-parent = <0x14>;
interrupts = <0x55 0x02>;
};

I’m able to get to the point where the kernel loads the device driver and X knows about the device as an input, but touch inputs are still not working. I’m a novice at modifying device trees, so I suspect that is where my issue is. I know from reading about the touch controller that the “Change Interrupt” (on GPIO pin 15 of the header) needs to be working in order for any touch inputs to be recognized by the device driver. I suspect the interrupt is not defined correctly as I’m not sure what should be pointed to by the “interrupt-parent”.

Hoping someone could help explain the interrupt logic and confirm the GPIO pins to my definition is mapped correctly.

Additionally, if anyone has successfully integrated this touch controller on any Jetson before, what did your device tree definition look like? Its a fairly popular touch controller, so I’m hoping someone has solved this before.

Thanks!

Sorry for the late response, our team will do the investigation and provide suggestions soon. Thanks

There is no update from you for a period, assuming this is not an issue any more.
Hence we are closing this topic. If need further support, please open a new one.
Thanks

Hi jim.pedavoli,

What’s your Jetpack version in use?
Have you configure pinmux spreasheet to enable I2C usage?

Could you help to provide the full serial console log for further check?