IMX6UL keypad

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

IMX6UL keypad

1,033 Views
migisun
Contributor I

Hi,

I am using IMX6UL Y2 version, I use imx-keypad driver to form a matrix keyboard. The driver works fine, for some keys, some keys always pressed which ROW0 and ROW1 always read as low. Other keys tie to ROW2 and ROW3 work fine. the following it is the dts. Any idea to solve this issue?

pinctrl_kpp_1: imx_kpp {
fsl,pins = <

MX6UL_PAD_ENET1_RX_DATA0__KPP_ROW00 0x1b010
MX6UL_PAD_ENET1_RX_EN__KPP_ROW01 0x1b010
MX6UL_PAD_ENET1_TX_DATA1__KPP_ROW02 0x1b010
MX6UL_PAD_ENET1_TX_CLK__KPP_ROW03 0x1b010

MX6UL_PAD_ENET1_RX_DATA1__KPP_COL00 0x110b0
MX6UL_PAD_ENET1_TX_DATA0__KPP_COL01 0x110b0
MX6UL_PAD_ENET1_TX_EN__KPP_COL02 0x110b0
MX6UL_PAD_ENET1_RX_ER__KPP_COL03 0x110b0

>;
};

&kpp {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_kpp_1>;
clocks = <&clks IMX6UL_CLK_KPP>,
<&clks IMX6UL_CLK_IPG> ;
clock-names = "kpp","ipg";
linux,keymap = <
0x0000003B /* F1(59) */
0x0100003F /* F5(63) */
0x02000069 /* left(105) */
0x03000067 /* up(103) */
0x0001003C /* F2(60) */
0x01010040 /* F6(64) */
0x0201001c /* enter(28) */
0x0301006C /* down(108) */
0x0002003D /* F3(61) */
0x01020041 /* F7(65) */
0x02020001 /* escape(1) */
0x0302006A /* right(106) */
0x0003003E /* F4(62) */
0x01030042 /* F8(66) */
0x02030000 /* spare */
0x03030000 /* spare */
>;
};

0 Kudos
5 Replies

1,017 Views
igorpadykov
NXP Employee
NXP Employee

Hi migisun

 

if MX6UL_PAD_ENET1 pads are used in uboot, one can try to disable them

in uboot. Also this may be hardware issue, one can check signals with oscilloscope.

 

Best regards
igor

 

0 Kudos

1,023 Views
andrew_questps
Contributor III

I think you need to double check your pad settings, they don't look correct

0 Kudos

1,003 Views
migisun
Contributor I

I use memtool to set ROW00 and ROW01 to GOIO2_IO00 and GPIO2_IO02 to output, I can toggle the gpios and see the waveform on socpe. But when read the gpio, it gets low even I tie the gpio to 10k resistor.

0 Kudos

992 Views
igorpadykov
NXP Employee
NXP Employee

> But when read the gpio, it gets low even I tie the gpio to 10k resistor.

 

then this should be hardware issue, probably these lines are shorted with other signals,

please check board layout.

 

~igor

0 Kudos

988 Views
migisun
Contributor I

HI,

I found when I cold boot the board, the KPP_ROW0 and KPP_ROW01 will be pull high, but after linux boot up, when I use the command 'poweroff' and startup the system again without power off, KPP_ROW0 and KPP_ROW01 will pull low forever.

0 Kudos