Hello NXP Team,
We are integrating a Goodix GT9271 touchscreen with the i.MX93 EVK board using the MIPI-DSI interface. The touch interrupt (INT) and reset (RST) signals are routed via the I/O expander PCAL6524HEAZ (I2C address 0x22, connected on I2C1).
Board: i.MX93 EVK
Processor: i.MX9352
Linux Version: 6.6.36-lts-next (Yocto Scarthgap 6.6)
Display Interface: MIPI-DSI
Touch Controller: Goodix GT9271 (I2C addr: 0x5D)
I/O Expander: NXP PCAL6524HEAZ (I2C addr: 0x22)
GT9xx Driver Version: V2.8.0.2 (custom driver integration)
MIPI-DSI connector (P7):
Pin 17 → CTP_RST → U725.P2_1 (GPIO17 on PCAL6524)
Pin 18 → DSI_CTP_nINT → U725.P0_7 (GPIO7 on PCAL6524)
Debug messages from nxp board:
gpiochip4: GPIOs 640-663, parent: i2c/1-0022, 1-0022, can sleep:
[ 9475.945028] Gt9xx driver exited
[ 9477.986387] Gt9xx driver installing..
[ 9477.986597] goodix-custom 2-005d: GTP Driver Version: V2.8.0.2<2017/12/14>
[ 9477.986609] goodix-custom 2-005d: GTP I2C Address: 0x5d
[ 9477.986636] goodix-custom 2-005d: vdd_ana regulator not found, using dummy
[ 9477.986642] goodix-custom 2-005d: vcc_i2c regulator not found, using dummy
[ 9477.986646] goodix-custom 2-005d: Guitar reset
[ 9478.016950] goodix-custom 2-005d: I2C Addr is 5d
[ 9478.017220] goodix-custom 2-005d: IC Version: 9271_1020
[ 9478.017498] goodix-custom 2-005d: Driver set not send config
[ 9478.023312] goodix-custom 2-005d: Use slot report protocol
[ 9478.023488] input: goodix-ts as /devices/virtual/input/input7
[ 9478.024381] goodix-custom 2-005d: INT num -22, trigger type:0
[ 9478.024400] goodix-custom 2-005d: Failed to request irq -22
[ 9478.024404] goodix-custom 2-005d: Failed create work thread
[ 9478.042299] goodix-custom: probe of 2-005d failed with error -22
I am creating ".ko" file and inserting into the imx 93frdm board by using command insmod and manually assigning 0x5d i2c to goodix-custom module there is some run time error, and I can't insert the module can you help me with this
Hello NXP Community,
I am currently working on integrating a Goodix touchscreen (GT9271) with the i.MX93FRDM BOARD. The touchscreen uses I2C address 0x5D, and both the interrupt (INT) and reset (RST) lines are routed through an I/O expander PCAL6524HEAZ (U725), which is located at I2C address 0x22.
According to the hardware schematic:
CTP_INT (Interrupt) is connected to P0_7 on U725.
CTP_RST (Reset) is connected to P2_1 on U725.
These pins are exposed via the 22-pin MIPI DSI FPC connector as:
Pin 18: DSI_CTP_nINT (P0_7)
Pin 17: CTP_RST (P2_1)
When I inspect the GPIO base via /sys/kernel/debug/gpio, I get:
This confirms that the base GPIO number for PCAL6524 is 640.
Based on this, I mapped the pins as:
P0_7 = 640 + 7 = GPIO 647
P2_1 = 640 + 16 (P2 base offset) + 1 = GPIO 657
I hardcoded these values in my Goodix driver as:
The driver loads and probes the I2C address correctly. However, when it attempts to request an IRQ, I get the following error:
This indicates that gpio_to_irq() is returning an invalid IRQ number (-22 = EINVAL).
My questions are:
Are GPIOs 647 and 657 the correct numbers for P0_7 and P2_1 of the PCAL6524 expander on i.MX93?
Do I need to configure anything specific in the device tree, pinctrl, or elsewhere to properly export these expander GPIOs for interrupt usage?
Is there a recommended method by NXP to use GPIO interrupts from PCAL6524 in custom drivers such as this touchscreen driver?
Any clarification or examples on using PCAL6524 GPIOs as interrupt lines on the i.MX93 platform would be very helpful.
Thank you in advance for your support.
Hello,
Looks like device not responding when you entered the module please check it, and check if the module is build again the kernel version you are using, and also check the device tree is possible that you don't have it.
Regards
Hello NXP Community,
I am currently working on integrating a Goodix touchscreen (GT9xx series) with the i.MX93 platform. The touchscreen uses I2C address 0x5D, and both the interrupt (INT) and reset (RST) lines are routed through an I/O expander PCAL6524HEAZ (U725), which is located at I2C address 0x22.
According to the hardware schematic:
CTP_INT (Interrupt) is connected to P0_7 on U725.
CTP_RST (Reset) is connected to P2_1 on U725.
These pins are exposed via the 22-pin MIPI DSI FPC connector as:
Pin 18: DSI_CTP_nINT (P0_7)
Pin 17: CTP_RST (P2_1)
When I inspect the GPIO base via /sys/kernel/debug/gpio, I get:
This confirms that the base GPIO number for PCAL6524 is 640.
Based on this, I mapped the pins as:
P0_7 = 640 + 7 = GPIO 647
P2_1 = 640 + 16 (P2 base offset) + 1 = GPIO 657
I hardcoded these values in my Goodix driver as:
The driver loads and probes the I2C address correctly. However, when it attempts to request an IRQ, I get the following error:
This indicates that gpio_to_irq() is returning an invalid IRQ number (-22 = EINVAL).
My questions are:
Are GPIOs 647 and 657 the correct numbers for P0_7 and P2_1 of the PCAL6524 expander on i.MX93?
Do I need to configure anything specific in the device tree, pinctrl, or elsewhere to properly export these expander GPIOs for interrupt usage?
Is there a recommended method by NXP to use GPIO interrupts from PCAL6524 in custom drivers such as this touchscreen driver?
Any clarification or examples on using PCAL6524 GPIOs as interrupt lines on the i.MX93 platform would be very helpful.
Thank you in advance for your support.