• Jean-François Dagenais's avatar
    w1: add 1-wire (w1) reset and resume command API support · 67dfd54c
    Jean-François Dagenais authored
    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: default avatarJean-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: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    67dfd54c
w1_io.c 11.3 KB