[PATCH 0/3] add support for IndustryPack devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel


[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux