TDA4VM: Interrupt to SOC is not getting triggered when IOexpander pin state change

Part Number: TDA4VM
Other Parts Discussed in Thread: TCA9539


We have an activity to read a GPIO pin.

The GPIO pin which we are trying to read is on gpio_expander.

GPIO expander interrupt line is connected to GPIO0_98.

The issue is that we are not seeing any interrupt when we change GPIO pin state on


We can cat the sysfs, but IRQ is not called in the tca9539 driver.

We have added relevant pinmux entry in k3-j721e-common-proc-board.dts file as below.

J721E_IOPAD(0x18c, PIN_INPUT,  7) /* (V23) RGMII6_RX_CTL.GPIO0_98*   IOEXP_INT#*/

Also added node from which button is connected on GPIO Expander in dtsi file.

            exp3: gpio@74 {
            compatible = "ti,tca9539";
            reg = <0x74>;
            #gpio-cells = <2>;
            interrupt-parent = <&main_gpio0>;
            interrupts = <98 IRQ_TYPE_EDGE_FALLING>;
            #interrupt-cells = <2>;

From terminal, we tried devmem2 to read the GPIO0_98 pad settings.

We tried to read   0x0011C18C (GPIO0_98 address).

>root@j7-evm:~# devmem2 0x0011C18C
>/dev/mem opened.
>Memory mapped at address 0xffffa1a10000.
>Read at address  0x0011C18C (0xffffa1a1c18c): 0x08214007

which reflects pad settings.

Can you please suggest what all places we need to take care of for the interrupt to be routed to the Main Island A72?