• David Brownell's avatar
    gpiolib: pcf857x i2c gpio expander support · 15fae37d
    David Brownell authored
    This is a new-style I2C driver for most common 8 and 16 bit I2C based
    "quasi-bidirectional" GPIO expanders: pcf8574 or pcf8575, and several
    compatible models (mostly faster, supporting I2C at up to 1 MHz).
    
    The driver exposes the GPIO signals using the platform-neutral GPIO
    programming interface, so they are easily accessed by other kernel code.  The
    lack of such a flexible kernel API has been a big factor in the proliferation
    of board-specific drivers for these chips...  stuff that rarely makes it
    upstream since it's so ugly.  This driver will let such boards use standard
    calls.
    
    Since it's a new-style driver, these devices must be configured as part of
    board-specific init.  That eliminates the need for error-prone manual
    configuration of module parameters, and makes compatibility with legacy
    drivers (pcf8574.c, pc8575.c) for these chips easier (there's a clear
    either/or disjunction).
    Signed-off-by: default avatarDavid Brownell <dbrownell@users.sourceforge.net>
    Acked-by: default avatarJean Delvare <khali@linux-fr.org>
    Cc: Eric Miao <eric.miao@marvell.com>
    Cc: Sam Ravnborg <sam@ravnborg.org>
    Cc: Haavard Skinnemoen <hskinnemoen@atmel.com>
    Cc: Philipp Zabel <philipp.zabel@gmail.com>
    Cc: Russell King <rmk@arm.linux.org.uk>
    Cc: Ben Gardner <bgardner@wabtec.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    15fae37d
pcf857x.c 9.08 KB