• Ben Gardner's avatar
    gpio: cs5535-gpio: fix input direction · a8a5164c
    Ben Gardner authored
    The cs5535-gpio driver's get() function was returning the output value.
    This means that the GPIO pins would never work as an input, even if
    configured as an input.
    
    The driver should return the READ_BACK value, which is the sensed line
    value.  To make that work when the direction is 'output', INPUT_ENABLE
    needs to be set.
    
    In addition, the driver was not disabling OUTPUT_ENABLE when the direction
    is set to 'input'.  That would cause the GPIO to continue to drive the pin
    if the direction was ever set to output.
    
    This issue was noticed when attempting to use the gpiolib driver to read
    an external input.  I had previously been using the char/cs5535-gpio
    driver.
    Signed-off-by: default avatarBen Gardner <gardner.ben@gmail.com>
    Acked-by: default avatarAndres Salomon <dilinger@collabora.co.uk>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: David Brownell <dbrownell@users.sourceforge.net>
    Cc: Mark Brown <broonie@opensource.wolfsonmicro.com>
    Cc: <stable@kernel.org>		[2.6.33.x]
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    a8a5164c
cs5535-gpio.c 8.91 KB