On 8/30/2010 5:55 PM, Dmitry Torokhov wrote:
And still you are using only one GPIO in your driver? While WPCE775x
does seem to have matrix keypad support I think that you are using one
of the 3 PS/2 ports, like your touchpad does.
Hi Dmitry,
I can assure you that the keyboard is on the 8*18 GPIO matrix on the
Nuvoton EC (only 8*16 being used in the current design). There certainly
are 3 PS/2 ports on the EC, but in the board designs I have only one of
those is used as a PS/2 port, and that is for the touchpad. The other
two ports are muxed with GPIOs and the pins are being used as GPIOs for
other functions, not PS/2 ports.
The firmware on the EC converts keypresses on the GPIO matrix to
scancodes and sends them over I2C. The single GPIO used by the keyboard
driver is an interrupt.
The device is initialized with 0xf4; the device is supposed to respond
with 0xfa; I wonder what scancodes the device reports... It smells
strongly of PS/2.
Also, it is not controller that supports PS/2 commands but rather the
device itself so I am still hopeful that we could make use of the
standard drivers.
We can speculate on the reasons that the firmware on the EC uses 0xF4 &
0xFA for init and ack - my guess would be for a minimal amount of
commonality with the PS/2 protocol - but it doesn't emulate the rest of
the PS/2 protocol for the GPIO matrix device. I tried with atkbd. It
issues reset, getid, setleds - all of which fail with no response from
the EC. It only responds to F4.
The scancodes reported are whatever the firmware provides. A previous
version of firmware had some non-standard values and the driver had to
use a look-up table to convert them to something useful. With the change
to the current keyboard layout Quanta changed the scancodes reported to
match the KEY_* values in input.h, which is why there is no table in the
current driver.
--
Neil
--
Sent by an employee of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.
--
To unsubscribe from this list: send the line "unsubscribe linux-input" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html