Re: [RFC PATCH v2 07/10] gpio: Initial support for ROHM bd70528 GPIO block

From: Linus Walleij
Date: Mon Jan 28 2019 - 07:56:05 EST


Hi Matti!

Thanks for your patch!

On Fri, Jan 25, 2019 at 12:05 PM Matti Vaittinen
<matti.vaittinen@xxxxxxxxxxxxxxxxx> 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.vaittinen@xxxxxxxxxxxxxxxxx>

This is overall a very nicely written driver.

Just small comments:

> +#include <linux/gpio/driver.h>
> +#include <linux/interrupt.h>

Why interrupt? You do not use it.

> +static int bd70528_get_direction(struct gpio_chip *chip, unsigned int offset)
> +{
> + struct bd70528_gpio *bdgpio = gpiochip_get_data(chip);
> + int val, ret;
> +
> + /* Do we need to do something to IRQs here? */

Well you don't support IRQs yet so no problem as long as they're masked?

> + ret = regmap_read(bdgpio->chip.regmap, GPIO_OUT_REG(offset), &val);
> + if (ret) {
> + dev_err(bdgpio->chip.dev, "Could not read gpio direction\n");
> + return ret;
> + }
> +
> + return !(val & BD70528_GPIO_OUT_EN_MASK);
> +}
> +
> +static int bd70528_gpio_set_config(struct gpio_chip *chip, unsigned int offset,
> + unsigned long config)

This is very nice. With Thomas Petazzoni's ongoing work you will be
able to also support pull up/down if you need it.

> +static int bd70528_direction_input(struct gpio_chip *chip, unsigned int offset)
> +{
> + struct bd70528_gpio *bdgpio = gpiochip_get_data(chip);
> +
> + /* Do we need to do something to IRQs here? */

Hmmm?

Apart from that it looks good. Feel free to add:
Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx>
on the next iteration.

Yours,
Linus Walleij