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.

Linux/TCA8418: TCA8418 : Keymaping and Key press event issue,

Part Number: TCA8418

Tool/software: Linux


I need technical support for working with TCA8418 in Linux environment ( Customized Linux Build using Yocto ) ,
If i press a key , it will print extra character , for example : If press 5 , its printing 5+, if i press 3 , it printing 3=
i tried to debug using xinput tools ;
key press   14 
key press   21 
key release 14 
key release 21 
key press   12 
key press   48 
key release 12 
key release 48 
key press   11 
key press   20 
key release 11 
key release 20 
I need support for solve this issue.
  • Hello K,

    Could you please provide us with a schematic/block diagram with passive components surrounding your TCA8418?

    Thanks,
    -Bobby
  • Hello Nguyen sir,

    you can see my keypad design here.

    My dtb source here.

    tca8418@34 {


    compatible = "ti,tca8418";
    reg = <0x34>;
    interrupt-parent = <&gpio1>;
    interrupts = <0xf 0x1>;
    irq-gpio = <&gpio1 0xf 0x1>;
    keypad,num-rows = <0x8>;
    keypad,num-columns = <0xa>;
    linux,keymap = <0x2 0x10003 0x20004 0x30005 0x40006 0x50007 0x60008 0x2000009 0x201000a 0x202000b 0x2030010 0x2040011 0x2050012 0x2060013 0x3000014 0x3010015 0x3020016 0x3030017 0x3040018 0x3050019 0x306001e 0x400001f 0x4010020 0x4020021 0x4030022 0x4040023 0x4050024 0x4060025 0x5000026 0x5010034 0x502002c 0x503002d 0x504002e 0x505002f 0x5060030 0x6000031 0x6010032 0x6020067 0x603006c 0x604006a 0x6050069 0x606001c 0x7000035 0x701000e 0x702000f 0x7030038 0x704002a 0x7050029 0x70600e0 0x7070042 0x100004e 0x101000c 0x1020028 0x1030027 0x104000d 0x105001a 0x106001b 0x1070033 0x1080039 0x1090001>;

    };

  • Hey K,

    It looks like you've shorted the Row1 and Row0 pins of the TCA8418 on your schematic. This is likely causing the device to think two buttons were pressed when only one button was actually pressed. If this is on a PCB (and you have multiple to test), you can try cutting one of the traces and see if this resolves the problem.

    -Bobby
  • Problem was present in Device tree file , I have solved by correcting in dts.

    Thank you for your great help.