diff options
author | Bartosz Golaszewski <brgl@bgdev.pl> | 2017-11-27 13:48:51 +0300 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2017-12-03 00:42:30 +0300 |
commit | c47bee95f62748baed83ca56c6f8c73c830f986e (patch) | |
tree | 4c57f787a56e7a178b95f2514165dc6c2768d3f2 /drivers/gpio/gpio-mockup.c | |
parent | 2a9d742c2699f7d4a7c23f330520d75872810ade (diff) | |
download | linux-c47bee95f62748baed83ca56c6f8c73c830f986e.tar.xz |
gpio: mockup: implement gpio_mockup_set_multiple()
Implement the set_multiple() callback and register it with the gpiolib
framework. This is only meant to also test the internal kernel API.
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/gpio/gpio-mockup.c')
-rw-r--r-- | drivers/gpio/gpio-mockup.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c index dfb9ee03a2f0..cbc823e43151 100644 --- a/drivers/gpio/gpio-mockup.c +++ b/drivers/gpio/gpio-mockup.c @@ -96,6 +96,16 @@ static void gpio_mockup_set(struct gpio_chip *gc, chip->lines[offset].value = !!value; } +static void gpio_mockup_set_multiple(struct gpio_chip *gc, + unsigned long *mask, unsigned long *bits) +{ + unsigned int bit; + + for_each_set_bit(bit, mask, gc->ngpio) + gpio_mockup_set(gc, bit, test_bit(bit, bits)); + +} + static int gpio_mockup_dirout(struct gpio_chip *gc, unsigned int offset, int value) { @@ -269,6 +279,7 @@ static int gpio_mockup_probe(struct platform_device *pdev) gc->parent = dev; gc->get = gpio_mockup_get; gc->set = gpio_mockup_set; + gc->set_multiple = gpio_mockup_set_multiple; gc->direction_output = gpio_mockup_dirout; gc->direction_input = gpio_mockup_dirin; gc->get_direction = gpio_mockup_get_direction; |