This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TCA8418: TCA8418: How to use normal GPIO operation and Keypad simultaneously

Part Number: TCA8418

Hi ,

In My project , I am using TCA8418 controller for keypad matrix . Connected the Keypad controller to processor (IMX6)  as a slave device and I want to use both keypad & GPIO's simultaneously.

* Here i have used 5 rows (R0,R1,R2,R3,R4) & 3 Columns (C0,C1,C2) for keypad purpose .

* Remaining 10 GPIO's : 3 GPIO's used for LED control (O/P) [ R5,R6,R7]

* Other Gpio's used as GPIO Input to read board version ID and Type [C3,C4,C5,C6,C7,C8,C9]

I am facing 2 issues  , Plz find the issues below.

  • I have configured 3 rows as O/P and remaining GPIO's as input (default is input only). I dont want any GPIO interrupts here ... So i have not configured GPIO's interrupts.
  • I have Disabled the Internal PULLUP for 10 GPIO's . Even though i disabled the pullup ,Its always high only .If i do pulldown externally ,it giving intermediate voltage as 1.1 V.
  • How to read the GPIO input status , If i use GPIO_DAT_STATx register means its always shows same value and Its not clearing .

Please solve this issue ASAP.

Below i have post the register dump of the TCA8418 controller . Please check the configuration by using reg dump.

i2cdump -f -y 0 0x34
No size specified (using byte-data access)

       0   1   2   3   4   5   6   7   8  9   a   b   c    d   e   f 
00: c4 19 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ??..............
10: 00 00 00 00 3f 7f 03 20 00 00 00 00 00 1f 07 00 ....??? .....??.
20: 00 00 00 e0 00 00 00 00 00 1f 07 00 e0 f8 03 XX ...?.....??.???X

  • Hello Ganesh,
    I am not sure how to read your register dump? Is the row "00:" the first dump then "10:" the second time it dumps the register information? Also, are you just dumping the first 16 registers? Why not the other registers? GPIO_PULL1/2/3 are at 0x2C, 0x2D, and 0x2E locations, which would be good to see if you are having potential IO configuration problems.

    -Francis Houde