Thread (12 messages) 12 messages, 3 authors, 2010-09-07

Re: [PATCH 0/1] input: keyboard: add qci keyboard driver

From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2010-09-01 06:34:39
Also in: linux-arm-msm, lkml

On Tue, Aug 31, 2010 at 04:54:47PM -0400, Neil Leeder wrote:
On 8/30/2010 5:55 PM, Dmitry Torokhov wrote:
quoted
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.
quoted
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.
OK, I give up on pursuit of serio solution. Again ;)
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.
I believe we still should support changing keymap via EVIOCSKEYCODE so
we need to have the keymap even though the initial seed is 1:1 with
scancodes.

-- 
Dmitry
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help