IMX6UL keypad

cancel
Showing results for 
Search instead for 
Did you mean: 

IMX6UL keypad

255 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

239 Views
igorpadykov
NXP TechSupport
NXP TechSupport

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

245 Views
andrew_questps
Contributor III

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

0 Kudos

225 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

214 Views
igorpadykov
NXP TechSupport
NXP TechSupport

> 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

210 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