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