Message ID | 1607686060-17448-7-git-send-email-yoshihiro.shimoda.uh@renesas.com |
---|---|
State | New |
Headers | show |
Series | treewide: bd9571mwv: Add support for BD9574MWF | expand |
On Fri, 2020-12-11 at 20:27 +0900, Yoshihiro Shimoda wrote: > To simplify this driver, use dev_get_regmap() and > rid of using struct bd9571mwv. > > Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> FWIW: Reviewed-By: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com> > --- > drivers/gpio/gpio-bd9571mwv.c | 19 +++++++++---------- > 1 file changed, 9 insertions(+), 10 deletions(-) > > diff --git a/drivers/gpio/gpio-bd9571mwv.c b/drivers/gpio/gpio- > bd9571mwv.c > index abb622c..0e5395f 100644 > --- a/drivers/gpio/gpio-bd9571mwv.c > +++ b/drivers/gpio/gpio-bd9571mwv.c > @@ -16,8 +16,8 @@ > #include <linux/mfd/bd9571mwv.h> > > struct bd9571mwv_gpio { > + struct regmap *regmap; > struct gpio_chip chip; > - struct bd9571mwv *bd; > }; > > static int bd9571mwv_gpio_get_direction(struct gpio_chip *chip, > @@ -26,7 +26,7 @@ static int bd9571mwv_gpio_get_direction(struct > gpio_chip *chip, > struct bd9571mwv_gpio *gpio = gpiochip_get_data(chip); > int ret, val; > > - ret = regmap_read(gpio->bd->regmap, BD9571MWV_GPIO_DIR, &val); > + ret = regmap_read(gpio->regmap, BD9571MWV_GPIO_DIR, &val); > if (ret < 0) > return ret; > if (val & BIT(offset)) > @@ -40,8 +40,7 @@ static int bd9571mwv_gpio_direction_input(struct > gpio_chip *chip, > { > struct bd9571mwv_gpio *gpio = gpiochip_get_data(chip); > > - regmap_update_bits(gpio->bd->regmap, BD9571MWV_GPIO_DIR, > - BIT(offset), 0); > + regmap_update_bits(gpio->regmap, BD9571MWV_GPIO_DIR, > BIT(offset), 0); > > return 0; > } > @@ -52,9 +51,9 @@ static int bd9571mwv_gpio_direction_output(struct > gpio_chip *chip, > struct bd9571mwv_gpio *gpio = gpiochip_get_data(chip); > > /* Set the initial value */ > - regmap_update_bits(gpio->bd->regmap, BD9571MWV_GPIO_OUT, > + regmap_update_bits(gpio->regmap, BD9571MWV_GPIO_OUT, > BIT(offset), value ? BIT(offset) : 0); > - regmap_update_bits(gpio->bd->regmap, BD9571MWV_GPIO_DIR, > + regmap_update_bits(gpio->regmap, BD9571MWV_GPIO_DIR, > BIT(offset), BIT(offset)); > > return 0; > @@ -65,7 +64,7 @@ static int bd9571mwv_gpio_get(struct gpio_chip > *chip, unsigned int offset) > struct bd9571mwv_gpio *gpio = gpiochip_get_data(chip); > int ret, val; > > - ret = regmap_read(gpio->bd->regmap, BD9571MWV_GPIO_IN, &val); > + ret = regmap_read(gpio->regmap, BD9571MWV_GPIO_IN, &val); > if (ret < 0) > return ret; > > @@ -77,7 +76,7 @@ static void bd9571mwv_gpio_set(struct gpio_chip > *chip, unsigned int offset, > { > struct bd9571mwv_gpio *gpio = gpiochip_get_data(chip); > > - regmap_update_bits(gpio->bd->regmap, BD9571MWV_GPIO_OUT, > + regmap_update_bits(gpio->regmap, BD9571MWV_GPIO_OUT, > BIT(offset), value ? BIT(offset) : 0); > } > > @@ -105,9 +104,9 @@ static int bd9571mwv_gpio_probe(struct > platform_device *pdev) > > platform_set_drvdata(pdev, gpio); > > - gpio->bd = dev_get_drvdata(pdev->dev.parent); > + gpio->regmap = dev_get_regmap(pdev->dev.parent, NULL); > gpio->chip = template_chip; > - gpio->chip.parent = gpio->bd->dev; > + gpio->chip.parent = pdev->dev.parent; > > ret = devm_gpiochip_add_data(&pdev->dev, &gpio->chip, gpio); > if (ret < 0) {
diff --git a/drivers/gpio/gpio-bd9571mwv.c b/drivers/gpio/gpio-bd9571mwv.c index abb622c..0e5395f 100644 --- a/drivers/gpio/gpio-bd9571mwv.c +++ b/drivers/gpio/gpio-bd9571mwv.c @@ -16,8 +16,8 @@ #include <linux/mfd/bd9571mwv.h> struct bd9571mwv_gpio { + struct regmap *regmap; struct gpio_chip chip; - struct bd9571mwv *bd; }; static int bd9571mwv_gpio_get_direction(struct gpio_chip *chip, @@ -26,7 +26,7 @@ static int bd9571mwv_gpio_get_direction(struct gpio_chip *chip, struct bd9571mwv_gpio *gpio = gpiochip_get_data(chip); int ret, val; - ret = regmap_read(gpio->bd->regmap, BD9571MWV_GPIO_DIR, &val); + ret = regmap_read(gpio->regmap, BD9571MWV_GPIO_DIR, &val); if (ret < 0) return ret; if (val & BIT(offset)) @@ -40,8 +40,7 @@ static int bd9571mwv_gpio_direction_input(struct gpio_chip *chip, { struct bd9571mwv_gpio *gpio = gpiochip_get_data(chip); - regmap_update_bits(gpio->bd->regmap, BD9571MWV_GPIO_DIR, - BIT(offset), 0); + regmap_update_bits(gpio->regmap, BD9571MWV_GPIO_DIR, BIT(offset), 0); return 0; } @@ -52,9 +51,9 @@ static int bd9571mwv_gpio_direction_output(struct gpio_chip *chip, struct bd9571mwv_gpio *gpio = gpiochip_get_data(chip); /* Set the initial value */ - regmap_update_bits(gpio->bd->regmap, BD9571MWV_GPIO_OUT, + regmap_update_bits(gpio->regmap, BD9571MWV_GPIO_OUT, BIT(offset), value ? BIT(offset) : 0); - regmap_update_bits(gpio->bd->regmap, BD9571MWV_GPIO_DIR, + regmap_update_bits(gpio->regmap, BD9571MWV_GPIO_DIR, BIT(offset), BIT(offset)); return 0; @@ -65,7 +64,7 @@ static int bd9571mwv_gpio_get(struct gpio_chip *chip, unsigned int offset) struct bd9571mwv_gpio *gpio = gpiochip_get_data(chip); int ret, val; - ret = regmap_read(gpio->bd->regmap, BD9571MWV_GPIO_IN, &val); + ret = regmap_read(gpio->regmap, BD9571MWV_GPIO_IN, &val); if (ret < 0) return ret; @@ -77,7 +76,7 @@ static void bd9571mwv_gpio_set(struct gpio_chip *chip, unsigned int offset, { struct bd9571mwv_gpio *gpio = gpiochip_get_data(chip); - regmap_update_bits(gpio->bd->regmap, BD9571MWV_GPIO_OUT, + regmap_update_bits(gpio->regmap, BD9571MWV_GPIO_OUT, BIT(offset), value ? BIT(offset) : 0); } @@ -105,9 +104,9 @@ static int bd9571mwv_gpio_probe(struct platform_device *pdev) platform_set_drvdata(pdev, gpio); - gpio->bd = dev_get_drvdata(pdev->dev.parent); + gpio->regmap = dev_get_regmap(pdev->dev.parent, NULL); gpio->chip = template_chip; - gpio->chip.parent = gpio->bd->dev; + gpio->chip.parent = pdev->dev.parent; ret = devm_gpiochip_add_data(&pdev->dev, &gpio->chip, gpio); if (ret < 0) {
To simplify this driver, use dev_get_regmap() and rid of using struct bd9571mwv. Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com> --- drivers/gpio/gpio-bd9571mwv.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-)