====================
Kernel driver ds2490
====================

Supported chips:

  * Maxim DS2490 based

Author: Evgeniy Polyakov <johnpol@2ka.mipt.ru>


Description
-----------

The Maxim/Dallas Semiconductor DS2490 is a chip
which allows to build USB <-> W1 bridges.

DS9490(R) is a USB <-> W1 bus master device
which has 0x81 family ID integrated chip and DS2490
low-level operational chip.

Notes and limitations.

- The weak pullup current is a minimum of 0.9mA and maximum of 6.0mA.
- The 5V strong pullup is supported with a minimum of 5.9mA and a
  maximum of 30.4 mA.  (From DS2490.pdf)
- The hardware will detect when devices are attached to the bus on the
  next bus (reset?) operation, however only a message is printed as
  the core w1 code doesn't make use of the information.  Connecting
  one device tends to give multiple new device notifications.
- The number of USB bus transactions could be reduced if w1_reset_send
  was added to the API.  The name is just a suggestion.  It would take
  a write buffer and a read buffer (along with sizes) as arguments.
  The ds2490 block I/O command supports reset, write buffer, read
  buffer, and strong pullup all in one command, instead of the current
  1 reset bus, 2 write the match rom command and slave rom id, 3 block
  write and read data.  The write buffer needs to have the match rom
  command and slave rom id prepended to the front of the requested
  write buffer, both of which are known to the driver.
- The hardware supports normal, flexible, and overdrive bus
  communication speeds, but only the normal is supported.
- The registered w1_bus_master functions don't define error
  conditions.  If a bus search is in progress and the ds2490 is
  removed it can produce a good amount of error output before the bus
  search finishes.
- The hardware supports detecting some error conditions, such as
  short, alarming presence on reset, and no presence on reset, but the
  driver doesn't query those values.
- The ds2490 specification doesn't cover short bulk in reads in
  detail, but my observation is if fewer bytes are requested than are
  available, the bulk read will return an error and the hardware will
  clear the entire bulk in buffer.  It would be possible to read the
  maximum buffer size to not run into this error condition, only extra
  bytes in the buffer is a logic error in the driver.  The code should
  match reads and writes as well as data sizes.  Reads and
  writes are serialized and the status verifies that the chip is idle
  (and data is available) before the read is executed, so it should
  not happen.
- Running x86_64 2.6.24 UHCI under qemu 0.9.0 under x86_64 2.6.22-rc6
  with a OHCI controller, ds2490 running in the guest would operate
  normally the first time the module was loaded after qemu attached
  the ds2490 hardware, but if the module was unloaded, then reloaded
  most of the time one of the bulk out or in, and usually the bulk in
  would fail.  qemu sets a 50ms timeout and the bulk in would timeout
  even when the status shows data available.  A bulk out write would
  show a successful completion, but the ds2490 status register would
  show 0 bytes written.  Detaching qemu from the ds2490 hardware and
  reattaching would clear the problem.  usbmon output in the guest and
  host did not explain the problem.  My guess is a bug in either qemu
  or the host OS and more likely the host OS.

03-06-2008 David Fries <David@Fries.net>
