diff mbox series

[2/2,v2] backlight: gpio: delete pdata inversion

Message ID 20170530114822.24308-2-linus.walleij@linaro.org
State Accepted
Commit 2606706e4d7b89ebf13f35895a7dfe00e394e782
Headers show
Series [1/2,v2] backlight: gpio: Convert to use GPIO descriptor | expand

Commit Message

Linus Walleij May 30, 2017, 11:48 a.m. UTC
The option to invert the output of the GPIO (active low) is
not used by the only platform still using platform data to
set up a GPIO backlight (one SH board). Delete the option
as we do not expect to expand the use of board files for
this driver, and GPIO descriptors intrinsically keep track
of any signal inversion.

Acked-by: Daniel Thompson <daniel.thompson@linaro.org>

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

---
ChangeLog v1->v2:
- Rebase on the v2 of patch [1/2]
---
 drivers/video/backlight/gpio_backlight.c     | 15 ++-------------
 include/linux/platform_data/gpio_backlight.h |  1 -
 2 files changed, 2 insertions(+), 14 deletions(-)

-- 
2.9.4

Comments

Laurent Pinchart Aug. 1, 2017, 10:28 a.m. UTC | #1
Hi Linus,

Thank you for the patch.

On Tuesday 30 May 2017 13:48:22 Linus Walleij wrote:
> The option to invert the output of the GPIO (active low) is

> not used by the only platform still using platform data to

> set up a GPIO backlight (one SH board). Delete the option

> as we do not expect to expand the use of board files for

> this driver, and GPIO descriptors intrinsically keep track

> of any signal inversion.

> 

> Acked-by: Daniel Thompson <daniel.thompson@linaro.org>

> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>


Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>


> ---

> ChangeLog v1->v2:

> - Rebase on the v2 of patch [1/2]

> ---

>  drivers/video/backlight/gpio_backlight.c     | 15 ++-------------

>  include/linux/platform_data/gpio_backlight.h |  1 -

>  2 files changed, 2 insertions(+), 14 deletions(-)

> 

> diff --git a/drivers/video/backlight/gpio_backlight.c

> b/drivers/video/backlight/gpio_backlight.c index 5ffaff1e4142..e470da95d806

> 100644

> --- a/drivers/video/backlight/gpio_backlight.c

> +++ b/drivers/video/backlight/gpio_backlight.c

> @@ -25,7 +25,6 @@ struct gpio_backlight {

>  	struct device *fbdev;

> 

>  	struct gpio_desc *gpiod;

> -	int active;

>  	int def_value;

>  };

> 

> @@ -39,8 +38,7 @@ static int gpio_backlight_update_status(struct

> backlight_device *bl) bl->props.state & (BL_CORE_SUSPENDED |

> BL_CORE_FBBLANK))

>  		brightness = 0;

> 

> -	gpiod_set_value_cansleep(gbl->gpiod,

> -				 brightness ? gbl->active : !gbl->active);

> +	gpiod_set_value_cansleep(gbl->gpiod, brightness);

> 

>  	return 0;

>  }

> @@ -69,8 +67,6 @@ static int gpio_backlight_probe_dt(struct platform_device

> *pdev,

> 

>  	gbl->def_value = of_property_read_bool(np, "default-on");

>  	flags = gbl->def_value ? GPIOD_OUT_HIGH : GPIOD_OUT_LOW;

> -	/* GPIO descriptors keep track of inversion */

> -	gbl->active = 1;

> 

>  	gbl->gpiod = devm_gpiod_get(dev, NULL, flags);

>  	if (IS_ERR(gbl->gpiod)) {

> @@ -121,15 +117,8 @@ static int gpio_backlight_probe(struct platform_device

> *pdev) unsigned long flags = GPIOF_DIR_OUT;

> 

>  		gbl->fbdev = pdata->fbdev;

> -		gbl->active = pdata->active_low ? 0 : 1;

>  		gbl->def_value = pdata->def_value;

> -

> -		if (gbl->active)

> -			flags |= gbl->def_value ?

> -				GPIOF_INIT_HIGH : GPIOF_INIT_LOW;

> -		else

> -			flags |= gbl->def_value ?

> -				GPIOF_INIT_LOW : GPIOF_INIT_HIGH;

> +		flags |= gbl->def_value ? GPIOF_INIT_HIGH : GPIOF_INIT_LOW;

> 

>  		ret = devm_gpio_request_one(gbl->dev, pdata->gpio, flags,

>  					    pdata ? pdata->name : 

"backlight");
> diff --git a/include/linux/platform_data/gpio_backlight.h

> b/include/linux/platform_data/gpio_backlight.h index

> 5ae0d9c80d4d..683d90453c41 100644

> --- a/include/linux/platform_data/gpio_backlight.h

> +++ b/include/linux/platform_data/gpio_backlight.h

> @@ -14,7 +14,6 @@ struct gpio_backlight_platform_data {

>  	struct device *fbdev;

>  	int gpio;

>  	int def_value;

> -	bool active_low;

>  	const char *name;

>  };


-- 
Regards,

Laurent Pinchart
Lee Jones Aug. 7, 2017, 4:12 p.m. UTC | #2
On Tue, 30 May 2017, Linus Walleij wrote:

> The option to invert the output of the GPIO (active low) is

> not used by the only platform still using platform data to

> set up a GPIO backlight (one SH board). Delete the option

> as we do not expect to expand the use of board files for

> this driver, and GPIO descriptors intrinsically keep track

> of any signal inversion.

> 

> Acked-by: Daniel Thompson <daniel.thompson@linaro.org>

> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

> ---

> ChangeLog v1->v2:

> - Rebase on the v2 of patch [1/2]

> ---

>  drivers/video/backlight/gpio_backlight.c     | 15 ++-------------

>  include/linux/platform_data/gpio_backlight.h |  1 -

>  2 files changed, 2 insertions(+), 14 deletions(-)


Applied, thanks.

> diff --git a/drivers/video/backlight/gpio_backlight.c b/drivers/video/backlight/gpio_backlight.c

> index 5ffaff1e4142..e470da95d806 100644

> --- a/drivers/video/backlight/gpio_backlight.c

> +++ b/drivers/video/backlight/gpio_backlight.c

> @@ -25,7 +25,6 @@ struct gpio_backlight {

>  	struct device *fbdev;

>  

>  	struct gpio_desc *gpiod;

> -	int active;

>  	int def_value;

>  };

>  

> @@ -39,8 +38,7 @@ static int gpio_backlight_update_status(struct backlight_device *bl)

>  	    bl->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK))

>  		brightness = 0;

>  

> -	gpiod_set_value_cansleep(gbl->gpiod,

> -				 brightness ? gbl->active : !gbl->active);

> +	gpiod_set_value_cansleep(gbl->gpiod, brightness);

>  

>  	return 0;

>  }

> @@ -69,8 +67,6 @@ static int gpio_backlight_probe_dt(struct platform_device *pdev,

>  

>  	gbl->def_value = of_property_read_bool(np, "default-on");

>  	flags = gbl->def_value ? GPIOD_OUT_HIGH : GPIOD_OUT_LOW;

> -	/* GPIO descriptors keep track of inversion */

> -	gbl->active = 1;

>  

>  	gbl->gpiod = devm_gpiod_get(dev, NULL, flags);

>  	if (IS_ERR(gbl->gpiod)) {

> @@ -121,15 +117,8 @@ static int gpio_backlight_probe(struct platform_device *pdev)

>  		unsigned long flags = GPIOF_DIR_OUT;

>  

>  		gbl->fbdev = pdata->fbdev;

> -		gbl->active = pdata->active_low ? 0 : 1;

>  		gbl->def_value = pdata->def_value;

> -

> -		if (gbl->active)

> -			flags |= gbl->def_value ?

> -				GPIOF_INIT_HIGH : GPIOF_INIT_LOW;

> -		else

> -			flags |= gbl->def_value ?

> -				GPIOF_INIT_LOW : GPIOF_INIT_HIGH;

> +		flags |= gbl->def_value ? GPIOF_INIT_HIGH : GPIOF_INIT_LOW;

>  

>  		ret = devm_gpio_request_one(gbl->dev, pdata->gpio, flags,

>  					    pdata ? pdata->name : "backlight");

> diff --git a/include/linux/platform_data/gpio_backlight.h b/include/linux/platform_data/gpio_backlight.h

> index 5ae0d9c80d4d..683d90453c41 100644

> --- a/include/linux/platform_data/gpio_backlight.h

> +++ b/include/linux/platform_data/gpio_backlight.h

> @@ -14,7 +14,6 @@ struct gpio_backlight_platform_data {

>  	struct device *fbdev;

>  	int gpio;

>  	int def_value;

> -	bool active_low;

>  	const char *name;

>  };

>  


-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
diff mbox series

Patch

diff --git a/drivers/video/backlight/gpio_backlight.c b/drivers/video/backlight/gpio_backlight.c
index 5ffaff1e4142..e470da95d806 100644
--- a/drivers/video/backlight/gpio_backlight.c
+++ b/drivers/video/backlight/gpio_backlight.c
@@ -25,7 +25,6 @@  struct gpio_backlight {
 	struct device *fbdev;
 
 	struct gpio_desc *gpiod;
-	int active;
 	int def_value;
 };
 
@@ -39,8 +38,7 @@  static int gpio_backlight_update_status(struct backlight_device *bl)
 	    bl->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK))
 		brightness = 0;
 
-	gpiod_set_value_cansleep(gbl->gpiod,
-				 brightness ? gbl->active : !gbl->active);
+	gpiod_set_value_cansleep(gbl->gpiod, brightness);
 
 	return 0;
 }
@@ -69,8 +67,6 @@  static int gpio_backlight_probe_dt(struct platform_device *pdev,
 
 	gbl->def_value = of_property_read_bool(np, "default-on");
 	flags = gbl->def_value ? GPIOD_OUT_HIGH : GPIOD_OUT_LOW;
-	/* GPIO descriptors keep track of inversion */
-	gbl->active = 1;
 
 	gbl->gpiod = devm_gpiod_get(dev, NULL, flags);
 	if (IS_ERR(gbl->gpiod)) {
@@ -121,15 +117,8 @@  static int gpio_backlight_probe(struct platform_device *pdev)
 		unsigned long flags = GPIOF_DIR_OUT;
 
 		gbl->fbdev = pdata->fbdev;
-		gbl->active = pdata->active_low ? 0 : 1;
 		gbl->def_value = pdata->def_value;
-
-		if (gbl->active)
-			flags |= gbl->def_value ?
-				GPIOF_INIT_HIGH : GPIOF_INIT_LOW;
-		else
-			flags |= gbl->def_value ?
-				GPIOF_INIT_LOW : GPIOF_INIT_HIGH;
+		flags |= gbl->def_value ? GPIOF_INIT_HIGH : GPIOF_INIT_LOW;
 
 		ret = devm_gpio_request_one(gbl->dev, pdata->gpio, flags,
 					    pdata ? pdata->name : "backlight");
diff --git a/include/linux/platform_data/gpio_backlight.h b/include/linux/platform_data/gpio_backlight.h
index 5ae0d9c80d4d..683d90453c41 100644
--- a/include/linux/platform_data/gpio_backlight.h
+++ b/include/linux/platform_data/gpio_backlight.h
@@ -14,7 +14,6 @@  struct gpio_backlight_platform_data {
 	struct device *fbdev;
 	int gpio;
 	int def_value;
-	bool active_low;
 	const char *name;
 };