View Single Post
Posts: 339 | Thanked: 1,623 times | Joined on Oct 2013 @ France
#119
Hello rainisto,

Thanks for the details !
This will be really helpful as everything we were wondering is there now !

Originally Posted by rainisto View Post
- Other half expected to work in slave mode, phone is master
- Dedicated INT GPIO (1,8V) for interrupts
So we can do the thing the "right way", with the phone as master, all peripherals as slaves (we may have several I2C chips in one other half, like an eeprom or a bus expanders for leds or backlight along a keyboard), and an interrupt line to wake the system when something happens, without having to poll, perfect for battery usage and response time !



From the kernel config (a RaspberryPi one I have lying here...) under Driver/Input/Keyboard, I found the following supported chips (they may not be compiled yet for mer, but it would be easy to do) :
- ADP5588/5587
- ADP5585/5589
- Atmel AT42QT1070
- Atmel AT42QT2160
- TCA6416/6408A
- TCA8418
- LM8323
- LM8333
- Maxim MAX7359
- Freescale MRP121

I may miss some of them, but it is already a good start. And here is a quick survey of their capability (I already excluded BGA packages when several are availlable, only the LM8323 as only BGA) :

Code:
		Cost($)	Package			Voltage	Max Num key	led output		other capabilities
ADP5588		3.11	24-VFQFN + Pad		1.8 / 3 V	8x10	through unused GPIO	light sensor
ADP5587		2.98	24-WFQFN + Pad		1.65 / 3.6 V	8x10	through unused GPIO	light sensor
ADP5585		2.15	16-WFQFN + Pad		1.65 / 3.6 V	5x5	through unused GPIO	pwm output if not used by keypad
ADP5589		3.11	24-WFQFN + Pad		1.65 / 3.6 V	8x11	through unused GPIO	pwm output if not used by keypad
AT42QT1070	1.42	14-SOIC / 20-VFQFN+Pad	1.8 / 5.5 V	6	no			Capacitive touch input
AT42QT2160	3.2	28-VFQFN +Pad		1.8 / 5.5 V	16	no			Capacitive touch input
TCA6416		2.44	24-TSSOP / 24-WFQFN	1.65 / 5.5 V	16/7x7	through unused GPIO	not sure there is the keypad logic in the chip...
TCA6408A	2.15	16-TSSOP / 16-VFQFN+Pad	1.65 / 5.5 V	8/?x?	through unused GPIO	not sure there is the keypad logic in the chip...
TCA8418		3.11	24-WFQFN + Pad		1.65 / 3.6 V	8x10	through unused GPIO	
LM8323		?	36-BGA			1.8 V		8x13	3 pwm	
LM8333		2.91	32-WFQFN  + Pad		2.25 / 2.9 V	8x9	4 + 1 pwm		
MAX7359		7.04	24-WFQFN + Pad		1.65 / 3.6 V	8x8	through unused GPIO	rotary encoder interface
MRP121		?	20-QFN			1.71 / 3.6 V	12	through unused GPIO	Capacitive touch input
(Sorry for the look, HTML formatting is not availlable..., copy this into a text editor app if it is not readable there)

The cost is based on DigiKey for a single unit.

So removing all that don't accept 3.3V, the BGA packages, and the one that have not enough keys to make a QWERTY keyboard, there remains: ADP5587, ADP5589, TCA8418, MAX7359.
They all cost aroung 3€, except the MAX7359 which cost more than the double.
I didn't checked yet if they support a 1.8V I2C bus and their power consumption.

So ADP5589 seems a good choice as it has a lot of inputs, so we can easily use less and put the unused columns to drive leds. The pwm output allows to have a backlight with control of its intensity.

There is also the TCA8424 that some mentionned here, which I didn't see in the kernel at a first look (maybe I should look for HID over I2C ?). It supports 8x16 matrix, and led outputs (without pwm), for 2.3$, on a 40QFN package.

Hope this will help, and that you can continue to add some data about which chips are possible or not, and feedback on the kernel drivers if some of you already used one of them.
 

The Following 12 Users Say Thank You to Zeta For This Useful Post: