Re: [PATCH v2 06/10] gpio: bd9571mwv: rid of using struct bd9571mwv

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxx>

FWIW:
Reviewed-By: Matti Vaittinen <matti.vaittinen@xxxxxxxxxxxxxxxxx>

> ---
>  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) {





[Index of Archives]     [Linux Samsung SOC]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]

  Powered by Linux