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 */
>;
};
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
I think you need to double check your pad settings, they don't look correct
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.
> 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
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.