• Bryan O'Sullivan's avatar
    IB/ipath: misc driver support code · 108ecf0d
    Bryan O'Sullivan authored
    EEPROM support, interrupt handling, statistics gathering, and write
    combining management for x86_64.
    
    A note regarding i2c: The Atmel EEPROM hardware we use looks like an
    i2c device electrically, but is not i2c compliant at all from a
    functional perspective.  We tried using the kernel's i2c support to
    talk to it, but failed.
    
    Normal i2c devices have a single 7-bit or 10-bit i2c address that they
    respond to.  Valid 7-bit addresses range from 0x03 to 0x77.  Addresses
    0x00 to 0x02 and 0x78 to 0x7F are special reserved addresses
    (e.g. 0x00 is the "general call" address.)  The Atmel device, on the
    other hand, responds to ALL addresses.  It's designed to be the only
    device on a given i2c bus.  A given i2c device address corresponds to
    the memory address within the i2c device itself.
    
    At least one reason why the linux core i2c stuff won't work for this
    is that it prohibits access to reserved addresses like 0x00, which are
    really valid addresses on the Atmel devices.
    Signed-off-by: default avatarBryan O'Sullivan <bos@pathscale.com>
    Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
    108ecf0d
ipath_eeprom.c 15 KB