On Wed, Feb 13, 2019 at 2:34 PM Matti Vaittinen <matti.vaitti...@fi.rohmeurope.com> wrote:
> ROHM BD70528 PMIC has 4 GPIO pins. Allow them to be > controlled by GPIO framework. > > IRQs are handled by regmap-irq and GPIO driver is not > aware of the irq usage. > > Signed-off-by: Matti Vaittinen <matti.vaitti...@fi.rohmeurope.com> > Reviewed-by: Linus Walleij <linus.wall...@linaro.org> (...) Just spotted this: > +#include <linux/gpio/driver.h> > +#include <linux/gpio.h> A driver should only need <linux/gpio/driver.h> the <linux/gpio.h> should not be used at all in new code, it is a legacy header. > +static int bd70528_gpio_set_config(struct gpio_chip *chip, unsigned int > offset, > + unsigned long config) > +{ > + struct bd70528_gpio *bdgpio = gpiochip_get_data(chip); > + > + switch (pinconf_to_config_param(config)) { > + case PIN_CONFIG_DRIVE_OPEN_DRAIN: > + return regmap_update_bits(bdgpio->chip.regmap, > + GPIO_OUT_REG(offset), > + BD70528_GPIO_DRIVE_MASK, > + BD70528_GPIO_OPEN_DRAIN); > + break; > + case PIN_CONFIG_DRIVE_PUSH_PULL: > + return regmap_update_bits(bdgpio->chip.regmap, > + GPIO_OUT_REG(offset), > + BD70528_GPIO_DRIVE_MASK, > + BD70528_GPIO_PUSH_PULL); > + break; > + case PIN_CONFIG_INPUT_DEBOUNCE: > + return bd70528_set_debounce(bdgpio, offset, > + > pinconf_to_config_argument(config)); > + break; > + default: > + break; > + } > + return -ENOTSUPP; > +} BTW I just merged code from Thomas Petazzoni that make it possible to also support pull-up and pull-down from GPIO here if you want to enable it. Yours, Linus Walleij