IMX6UL keypad

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

IMX6UL keypad

1,063 次查看
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 项奖励
5 回复数

1,047 次查看
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 项奖励

1,053 次查看
andrew_questps
Contributor III

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

0 项奖励

1,033 次查看
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 项奖励

1,022 次查看
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 项奖励

1,018 次查看
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 项奖励