Commit Graph

7 Commits

Author SHA1 Message Date
Bernd Porr 75cc3ef8ba usbdux: usbduxsigma: fixed timing issues between ADC and DAC
When sync ADC and the DAC was running at the same time the ADC
showed spikes in the signal. This happened when just before the
DRDY from the ADC was triggered a DAC interrupt was dealt with.
ADC and DAC share the same SPI bus and priority is now given the
ADC. The DAC values are now first stored in a buffer and
are only send to the DAC once the ADC has finished
converting all channels (start = 0) so that the SPI bus is
definitely quiet for about 100us.

Signed-off-by: Bernd Porr <mail@berndporr.me.uk>
Signed-off-by: Kyle McMartin <kyle@kernel.org>
2015-07-22 13:40:55 -04:00
Bernd Porr 09852eab3e usbdux: usbduxsigma: added digital IO read
for future driver versions I've added a digtial I/O read via
endpoint in1. This is not yet used but might be used in the
future for low latency IO reads if all ports are input ports
and thus the write could be omitted.

Signed-off-by: Bernd Porr <mail@berndporr.me.uk>
Signed-off-by: Kyle McMartin <kyle@kernel.org>
2015-07-22 13:40:47 -04:00
Bernd Porr 22e3407bda usbdux: usbduxsigma: added soft interval mode in the firmware
urb->interval is ignored in xhci drivers. Instead, the firmware
has an interval counter and transmits data at this interval.
The uframes in-between are zero length packets. In order to be
backward compatible with older kernels which support only USB 2.0
and 1.1 there are two ADC modes in the firmware. The old one which
assumes that the interval is established by the host (urb->interval)
and the new one where the interval value is transmitted to the
firmware.

Signed-off-by: Bernd Porr <mail@berndporr.me.uk>
Signed-off-by: Kyle McMartin <kyle@kernel.org>
2015-07-22 13:40:38 -04:00
Bernd Porr 00810902b5 usbdux: usbduxsigma: contact info updated
There was still the old f2s address in the header. Updated to
my new address.

Signed-off-by: Bernd Porr <mail@berndporr.me.uk>
Signed-off-by: Kyle McMartin <kyle@kernel.org>
2015-07-22 13:40:28 -04:00
Bernd Porr dba12691ae usbdux: usbduxsigma: changed firmware from ADC polling to IRQ processing
In order to prepare the firmware to work with the EHCI driver the
ADC data acquisition is now done by triggering the acquisition with
a start of frame interrupt (SOF) and then the collection of the data
is done via "data ready" interrupts until all data has been received.
Once this has happend then the whole packet is dispatched and at the
next SOF the next packet is dispatched. If there are SOF interrupts
happening during the data acquisiton it is no longer interupted and
only send out the next ISO packet once it has comleted its job.
Also now the USBDUXSIGMA has now plenty of time to deal with other
interrupts between ADC data readouts so that for example the DIO
can now be handled much quicker.

Signed-off-by: Bernd Porr <mail@berndporr.me.uk>
Signed-off-by: Kyle McMartin <kyle@kernel.org>
2015-07-22 13:40:19 -04:00
Bernd Porr f13547c130 usbdux: usbduxsigma: Changed address and updated date
Signed-off-by: Bernd Porr <mail@berndporr.me.uk>
Signed-off-by: Kyle McMartin <kyle@kernel.org>
2015-07-22 13:39:52 -04:00
Bernd Porr 09c949f6d3 usbdux: Add usbduxsigma firmware
This adds the missing firmware for usbduxsigma. The
driver is already part of the kernel 3.2. The firware
was submitted with the initial driver submission but
probably got lost when the kernel.org was attacked.
Added usbduxsigma to the list of files in WHENCE

Signed-off-by: Bernd Porr <berndporr@f2s.com>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
2012-02-19 03:42:21 +00:00