USB: ftdi-elan: client driver for ELAN Uxxx adapters
authorTony Olech <tony.olech@elandigitalsystems.com>
Wed, 13 Sep 2006 10:26:04 +0000 (11:26 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Wed, 27 Sep 2006 18:58:59 +0000 (11:58 -0700)
commita5c66e4b2418278786a025a5bd9625f485b2087a
treef089d9a7350c9c154f46b2537eba7b6a3849a2fe
parent8fd801339350b63cbb90730ff8b2be349fb3dc67
USB: ftdi-elan: client driver for ELAN Uxxx adapters

This "ftdi-elan" module is one half of the "driver" for
ELAN's Uxxx series adapters which are USB to PCMCIA CardBus
adapters. Currently only the U132 adapter is available and
it's module is called "u132-hcd".

When the USB hot plug subsystem detects a Uxxx series adapter
it should load this module.

Upon a successful device probe() the jtag device file interface
is created and the status workqueue started up.

The jtag device file interface exists for the purpose of
updating the firmware in the Uxxx series adapter, but as
yet it had never been used.

The status workqueue initializes the Uxxx and then sits there
polling the Uxxx until a supported PCMCIA CardBus device is
detected it will start the command and respond workqueues
and then load the module that handles the device. This will
initially be only the u132-hcd module. The status workqueue
then just polls the Uxxx looking for card ejects.

The command and respond workqueues implement a command
sequencer for communicating with the firmware on the other
side of the FTDI chip in the Uxxx. This "ftdi-elan" module
exports some functions to interface with the sequencer.

Note that this module is a USB client driver.

Note that the "u132-hcd" module is a (cut-down OHCI)
host controller.

Thus we have a topology with the parent of a host controller
being a USB client! This really stresses the USB subsystem
semaphore/mutex handling in the module removal.

Signed-off-by: Tony Olech <tony.olech@elandigitalsystems.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/Makefile
drivers/usb/misc/Kconfig
drivers/usb/misc/Makefile
drivers/usb/misc/ftdi-elan.c [new file with mode: 0644]
drivers/usb/misc/usb_u132.h [new file with mode: 0644]