[PATCH v7 0/2] input: Add support for ECI (multimedia) accessories

From: tapio . vihuri
Date: Tue Feb 15 2011 - 08:12:46 EST


From: Tapio Vihuri <tapio.vihuri@xxxxxxxxx>

Thank you for comments.

Major reformat inspired by adxl34x implementation.

There is no more separate input and controller driver. They are combined
into one, and controller part is selectable via Kconfig.

Driver is now called simply "ECI input driver"

I'm planning to introduce second controller later. Both controllers are
i2c-devices, but internal way of working is totally different.

Created against linux-2.6.38-rc4 at:
795abaf klist: Fix object alignment on 64-bit.

Please review.

--- v6 message ---

Thank you for comments.

ECI input driver changes:
- Add debuging config option with adequate "help" in Kconfig
- Clean out debug messages
- Clean out error messages
- Force all buttons up event when unplugging accessory

ECI controller driver changes:
- Remove unused debuging config option

Created against linux-2.6.38-rc2 at:
70d1f36 Merge branch 'for-linus' of git://git.infradead.org/ubi-2.6

Please review.

--- v5 message ---

Thank you for comments.

ECI input driver changes:

- Use sparse_keymap_setup() properly, remove unneeded input set_bits

ECI controller driver changes:

- Added "button" debugfs entry for input driver buttons handling testing

--- v4 message ---

Thank you for comments.

ECI input driver changes:

- Use driver name in debugfs
- reject accessory stating more than maximum 31 buttons
- clean out couple comments

ECI controller driver changes:

- name change, from ecibus to eci_xxx_ctrl
- location change, from drivers/ecibus to drivers/input/misc
- major rework from platform driver to i2c-driver
- removed mrst platform dependency

Checkpatch warn about Kconfig, but I think it is false positive, and I will
report it to the maintainer.

Platform code changes:

- medfield_ prefix changed to mrst_
- added ECI controller needed power control
- remover ECI controller platform driver stuff
- added i2c stuff for ECI controller driver

Created against linux-2.6.37-rc8 at:
a25cecc Merge branch 'next' of git://git.monstr.eu/linux-2.6-microblaze

--- v3 message ---

Thank you for comments.

ECI input driver changes:

- Makefile and Kconfig sorted alphabetically
- using sparse keymap library, much cleaner solution
- correct string aligment with 80 column
- debugfs initialization fix
- sysfs cable entry using just 0/1
- using cheaper __set_bit
- insane comments fixed
- remove unneeded misc device

Created against linux-2.6.37-rc8 at:
989d873 Merge master.kernel.org:/home/rmk/linux-2.6-arm

--- v2 message ---

Thank you for comments.

In series two there Kconfig dependency problem fixed, preventing compilation
if X86_MRST (Intel Moorestown) or INPUT_MISC is not selected.

Also created against linux-2.6.37-rc8

--- v1 message ---

Hi all

This patch set introduce Multimedia Headset Accessory support for
Nokia phones. Technically those are known as ECI (Enhancement Control Interface)

If headset has many buttons, like play, vol+, vol- etc. then it is propably ECI
accessory.

Among several buttons ECI accessories contains memory for storing several
parameters.

This ECI input driver provides the following features:
- reading ECI configuration memory
- ECI buttons as input events

Drive is constructed as follows:
- ECI accessory input driver deals with headset accessory
- ECI bus control driver deals the HW transfering data to/from headset
- platform data match used HW

In the future accessory detection logic will be added using ALSA jack reporting.

Created against linux-2.6.37-rc6

Please review.

Tapio Vihuri (2):
ECI: input: introduce ECI accessory input driver
ECI: adding platform data for ECI driver

arch/x86/platform/mrst/mrst.c | 32 ++
drivers/input/misc/Kconfig | 47 ++
drivers/input/misc/Makefile | 3 +-
drivers/input/misc/eci.c | 851 +++++++++++++++++++++++++++++++++++++
drivers/input/misc/eci_at20-i2c.c | 713 +++++++++++++++++++++++++++++++
include/linux/input/eci.h | 189 ++++++++
6 files changed, 1834 insertions(+), 1 deletions(-)
create mode 100644 drivers/input/misc/eci.c
create mode 100644 drivers/input/misc/eci_at20-i2c.c
create mode 100644 include/linux/input/eci.h

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/