linux/drivers/w1
Jean-François Dagenais 67dfd54c2d w1: add 1-wire (w1) reset and resume command API support
The first patch adds generic functionnality to w1_io for Resume Command
[A5h] lots of slaves support.  I found it useful for multi-commands/reset
workflows with the same slave on a multi-slave bus.

This DS2408 w1 slave driver is not complete for all the features of the
chip, but its sufficient if you use it as a simple IO expander.  Enjoy!

The ds1wm had Kconfig dependencies towards ARM && HAVE_CLK.  I took them
out since I was using the ds1wm on an x86_64 platform (ds1wm in a FPGA
through pcie) and found them irrelevant.

The clock freq/divisors at the top of ds1wm.c did not have the MSB set to
1.  This bit is CLK_EN which turns the whole prescaler and dividers on.
The driver never mentionned this bit either, so I just included this bit
right in the table entries.  I also took the liberty to add a couple of
entries to the table.  The spec doesn't explicitely mentions these
possibilities but the description and examination of the core shows the
prescalers & dividers can be used for more than the table explicitely
shows.  The table I enlarged still doesn't cover all possibilities, but
it's a good start.

I also made a few tweaks to a couple of the read and write algorithms
which made sense while I had my head very deep in the ds1wm documentation.
 We stressed it a lot with 10+ slaves on the bus, many ds2408, ds2431 and
ds2433 at the same time doing extensive interaction.  It proved quite
stable in our production environment.

This patch:

Add generic functionnality to w1_io for Resume Command [A5h] lots of
slaves support.

Signed-off-by: Jean-François Dagenais <dagenaisj@sonatest.com>
Cc: Evgeniy Polyakov <johnpol@2ka.mipt.ru>
Cc: Szabolcs Gyurko <szabolcs.gyurko@tlt.hu>
Cc: Matt Reimer <mreimer@vpop.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-05-26 17:12:38 -07:00
..
masters w1: Use device platform_data to retrieve ds1wm platform bits 2011-05-26 19:45:00 +02:00
slaves w1: DS2423 counter driver and documentation 2011-01-13 08:03:22 -08:00
Kconfig trivial: Kconfig: .ko is normally not included in module names 2009-06-12 18:01:50 +02:00
Makefile
w1_family.c W1: w1_family, remove unused variable need_exit 2008-10-16 11:21:50 -07:00
w1_family.h w1: DS2423 counter driver and documentation 2011-01-13 08:03:22 -08:00
w1_int.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
w1_int.h
w1_io.c w1: add 1-wire (w1) reset and resume command API support 2011-05-26 17:12:38 -07:00
w1_log.h drivers: replace remaining __FUNCTION__ occurrences 2008-04-30 08:29:53 -07:00
w1_netlink.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
w1_netlink.h w1: send status messages after command processing 2009-01-08 08:31:14 -08:00
w1.c w1: don't allow arbitrary users to remove w1 devices 2010-10-27 18:03:17 -07:00
w1.h w1: add 1-wire (w1) reset and resume command API support 2011-05-26 17:12:38 -07:00