[PATCH 0/3] add support for IndustryPack devices

From: Samuel Iglesias Gonsalvez
Date: Thu May 03 2012 - 03:48:00 EST


Hello Kernel Developers,

The bunch of patches add support for IndustryPack devices as a carrier board
called TEWS TPCI-200 and a mezzanine board called IP-OCTAL, among a virtual bus
driver called ipack.

TPCI-200 is a bridge between PCIe and IndustryPack with 4 slots. IP-OCTAL is a
8 channel serial port device that, depending of the model, can talk RS-232,
RS-422 or RS-485.

The ipack driver is just an abstraction of the bus providing the common
operations between the two aforementioned devices.

These drivers have been tested some time ago in an old kernel version at CERN
(2.6.24) and they are working there. The present ones are just a clean-up of the
original ones to be, hopefully, integrated mainstream.

These drivers have several ugly hacks that I want to fix:

* TPCI-200: it receives the name of the mezzanine plugged in each slot by SYSFS.
No autodetection supported yet, because the mezzanine driver could not be
loaded at the time that the tpci200 driver loads.

* IP-OCTAL: it has a linked list which saves the devices it is currently
managing. It should use the driver_for_each_device() function. It is not there
due to the impossibility of using container_of macro to recover the
corresponding "struct ipoctal" because the attribute "struct ipack_device" is
a pointer. This code should be refactored.

* Ipack: the structures and API exported can be improved a lot. For example, the
way to unregistering mezzanine devices, doing the mezzanine driver a call to
remove_device() to notify the carrier driver, or the opposite with the call to
the ipack_driver_ops' remove() function could be improved.

The idea is to receive some feedback: comments, suggestions, critics...
improving the code's quality. Also, public this development to receive new
contributions.

Thanks,

Sam

Samuel Iglesias Gonsalvez (3):
Staging: IndustryPack bus for the Linux Kernel
Staging: ipack: added support for the TEWS TPCI-200 carrier board
Staging: ipack: add support for IP-OCTAL mezzanine board

drivers/staging/Kconfig | 2 +
drivers/staging/Makefile | 1 +
drivers/staging/ipack/Kconfig | 17 +
drivers/staging/ipack/Makefile | 6 +
drivers/staging/ipack/TODO | 15 +
drivers/staging/ipack/bridges/Kconfig | 7 +
drivers/staging/ipack/bridges/Makefile | 1 +
drivers/staging/ipack/bridges/tpci200.c | 1163 +++++++++++++++++++++++++++++++
drivers/staging/ipack/bridges/tpci200.h | 165 +++++
drivers/staging/ipack/devices/Kconfig | 7 +
drivers/staging/ipack/devices/Makefile | 1 +
drivers/staging/ipack/devices/ipoctal.c | 841 ++++++++++++++++++++++
drivers/staging/ipack/devices/ipoctal.h | 81 +++
drivers/staging/ipack/devices/scc2698.h | 229 ++++++
drivers/staging/ipack/ipack.c | 179 +++++
drivers/staging/ipack/ipack.h | 186 +++++
16 files changed, 2901 insertions(+)
create mode 100644 drivers/staging/ipack/Kconfig
create mode 100644 drivers/staging/ipack/Makefile
create mode 100644 drivers/staging/ipack/TODO
create mode 100644 drivers/staging/ipack/bridges/Kconfig
create mode 100644 drivers/staging/ipack/bridges/Makefile
create mode 100644 drivers/staging/ipack/bridges/tpci200.c
create mode 100644 drivers/staging/ipack/bridges/tpci200.h
create mode 100644 drivers/staging/ipack/devices/Kconfig
create mode 100644 drivers/staging/ipack/devices/Makefile
create mode 100644 drivers/staging/ipack/devices/ipoctal.c
create mode 100644 drivers/staging/ipack/devices/ipoctal.h
create mode 100644 drivers/staging/ipack/devices/scc2698.h
create mode 100644 drivers/staging/ipack/ipack.c
create mode 100644 drivers/staging/ipack/ipack.h

--
1.7.10

--
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/