• David Brownell's avatar
    i2c-dev: "how does it work" comments · 907135aa
    David Brownell authored
    This adds some "how does this work" comments to the i2c-dev driver,
    plus separators between the three main components:
    
      - The parallel list of i2c_adapters ("i2c_dev_list"), each of which
        gets a "struct i2c_dev" and a /dev/i2c-X character special file.
    
      - An i2cdev_driver gets adapter add/remove notifications, which are
        used to maintain that list of adapters.
    
      - Special file operations, which let userspace talk either directly to
        the adapter (for i2c_msg operations) or through cached addressing info
        using an anonymous i2c_client (never registered anywhere).
    
    Plus there's the usual module load/unload record keeping.
    
    After making sense of this code, I think that the anonymous i2c_client
    is pretty shady.  But since it's never registered, using this code with
    a system set up for "new style" I2C drivers is no more complicated than
    always using the I2C_SLAVE_FORCE ioctl (instead of I2C_SLAVE).
    Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
    Signed-off-by: default avatarJean Delvare <khali@linux-fr.org>
    907135aa
i2c-dev.c 16 KB