Hello,

this is a patch set for a new bus type called SIOX created by the German
company Eckelmann. This is a bus with four data lines. The signales DIN (from
devices to master) and DOUT (from master to devices) are daisy chained through
all devices. DLD and DCLK are shared. A pulse on DCLK pushs bits on the DIN and
DOUT chains in the respective direction. A pulse on DLD makes the devices
sample their input and output stated from/to DIN and DOUT.

There are still some open issues, at least:

 - the bus logic is still broken somehow. When a bus with two devices is
   instantiated and the siox-bus-gpio module is unloaded, the bus master
   (siox-0) disappears, but the two devices (siox-0-0 and siox-0-1)
   don't.
 - no device tree binding doc for bus driver
 - the devices should be polled each 25 ms, otherwise a per-device
   watchdog resets the device. I'm currently using a workqueue for that,
   and on a loaded machine sometimes the watchdog triggers. So maybe I
   need a different approach here? But I didn't debug that yet, so this
   is just FYI.
 - some mechanism (I thought about an uevent) to report that a watchdog
   triggered would be nice.

I asked a few questions in #kernelnewbies to solve the first issue, Greg
asked for a code drop, so here it is.

Thanks for your time and interest,
Uwe

Uwe Kleine-König (3):
  siox: new driver/bus framework for Eckelmann SIOX
  siox: add gpio bus driver
  gpio: new driver to work with a 8x12 siox

 drivers/Kconfig              |   2 +
 drivers/Makefile             |   1 +
 drivers/gpio/Kconfig         |   5 +
 drivers/gpio/Makefile        |   1 +
 drivers/gpio/gpio-siox.c     | 280 +++++++++++++++++++++
 drivers/siox/Kconfig         |   9 +
 drivers/siox/Makefile        |   2 +
 drivers/siox/siox-bus-gpio.c | 168 +++++++++++++
 drivers/siox/siox-core.c     | 572 +++++++++++++++++++++++++++++++++++++++++++
 drivers/siox/siox.h          |  48 ++++
 include/linux/siox.h         |  53 ++++
 11 files changed, 1141 insertions(+)
 create mode 100644 drivers/gpio/gpio-siox.c
 create mode 100644 drivers/siox/Kconfig
 create mode 100644 drivers/siox/Makefile
 create mode 100644 drivers/siox/siox-bus-gpio.c
 create mode 100644 drivers/siox/siox-core.c
 create mode 100644 drivers/siox/siox.h
 create mode 100644 include/linux/siox.h

-- 
2.7.0

Reply via email to