Why not using a chip like the ADP5588, "designed for QWERTY type phones that require a large keypad matrix" : http://www.analog.com/en/power-manag...s/product.html ? It is one of the keyboard chips that already have a driver in the linux kernel, so using it should mean near plug and play capability,