lkml.org 
[lkml]   [2018]   [Mar]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 1/8] iio: stx104: Implement get_multiple callback
    Date
    The Apex Embedded Systems STX104 series of devices provides 4 TTL
    compatible lines of inputs accessed via a single 4-bit port. Since four
    input lines are acquired on a single port input read, the STX104 GPIO
    driver may improve multiple input reads by utilizing a get_multiple
    callback. This patch implements the stx104_gpio_get_multiple function
    which serves as the respective get_multiple callback.

    Cc: Jonathan Cameron <jic23@kernel.org>
    Cc: Hartmut Knaack <knaack.h@gmx.de>
    Cc: Lars-Peter Clausen <lars@metafoo.de>
    Cc: Peter Meerwald-Stadler <pmeerw@pmeerw.net>
    Signed-off-by: William Breathitt Gray <vilhelm.gray@gmail.com>
    ---
    drivers/iio/adc/stx104.c | 11 +++++++++++
    1 file changed, 11 insertions(+)

    diff --git a/drivers/iio/adc/stx104.c b/drivers/iio/adc/stx104.c
    index 17b021f33180..0662ca199eb0 100644
    --- a/drivers/iio/adc/stx104.c
    +++ b/drivers/iio/adc/stx104.c
    @@ -233,6 +233,16 @@ static int stx104_gpio_get(struct gpio_chip *chip, unsigned int offset)
    return !!(inb(stx104gpio->base) & BIT(offset));
    }

    +static int stx104_gpio_get_multiple(struct gpio_chip *chip, unsigned long *mask,
    + unsigned long *bits)
    +{
    + struct stx104_gpio *const stx104gpio = gpiochip_get_data(chip);
    +
    + *bits = inb(stx104gpio->base);
    +
    + return 0;
    +}
    +
    static void stx104_gpio_set(struct gpio_chip *chip, unsigned int offset,
    int value)
    {
    @@ -342,6 +352,7 @@ static int stx104_probe(struct device *dev, unsigned int id)
    stx104gpio->chip.direction_input = stx104_gpio_direction_input;
    stx104gpio->chip.direction_output = stx104_gpio_direction_output;
    stx104gpio->chip.get = stx104_gpio_get;
    + stx104gpio->chip.get_multiple = stx104_gpio_get_multiple;
    stx104gpio->chip.set = stx104_gpio_set;
    stx104gpio->chip.set_multiple = stx104_gpio_set_multiple;
    stx104gpio->base = base[id] + 3;
    --
    2.16.2
    \
     
     \ /
      Last update: 2018-03-12 21:49    [W:2.916 / U:0.040 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site