Message ID | 20200210101546.287565-1-linus.walleij@linaro.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v3] backlight: pwm_bl: Switch to full GPIO descriptor | expand |
On Mon, Feb 10, 2020 at 11:15:46AM +0100, Linus Walleij wrote: > The PWM backlight still supports passing a enable GPIO line as > platform data using the legacy <linux/gpio.h> API. > > It turns out that ever board using this mechanism except one > is pass .enable_gpio = -1. So we drop all these cargo-culted -1's > from all instances of this platform data in the kernel. > > The remaning board, Palm TC, is converted to pass a machine > descriptior table with the "enable" GPIO instead, and delete the > platform data entry for enable_gpio and the code handling it > and things should work smoothly with the new API. > > Cc: Krzysztof Kozlowski <krzk@kernel.org> > Cc: Guan Xuetao <gxt@pku.edu.cn> > Acked-by: Robert Jarzmik <robert.jarzmik@free.fr> > Reviewed-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> > Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org> > --- > ChangeLog v2->v3: > - Collect Robert's ACK. > ChangeLog v1->v2: > - Located a missing removal of .enable_gpio in the Palm TC > board file, pointed out by Daniel. > - Grepped to ascertain there is not a single instance of > the string "enable_gpio" in the affected board files. > --- > arch/arm/mach-pxa/cm-x300.c | 1 - > arch/arm/mach-pxa/colibri-pxa270-income.c | 1 - > arch/arm/mach-pxa/ezx.c | 1 - > arch/arm/mach-pxa/hx4700.c | 1 - > arch/arm/mach-pxa/lpd270.c | 1 - > arch/arm/mach-pxa/magician.c | 1 - > arch/arm/mach-pxa/mainstone.c | 1 - > arch/arm/mach-pxa/mioa701.c | 1 - > arch/arm/mach-pxa/palm27x.c | 1 - > arch/arm/mach-pxa/palmtc.c | 11 ++++++++++- > arch/arm/mach-pxa/palmte2.c | 1 - > arch/arm/mach-pxa/pcm990-baseboard.c | 1 - > arch/arm/mach-pxa/tavorevb.c | 2 -- > arch/arm/mach-pxa/viper.c | 1 - > arch/arm/mach-pxa/z2.c | 2 -- > arch/arm/mach-pxa/zylonite.c | 1 - > arch/arm/mach-s3c24xx/mach-h1940.c | 1 - > arch/arm/mach-s3c24xx/mach-rx1950.c | 1 - > arch/arm/mach-s3c64xx/dev-backlight.c | 3 --- > arch/arm/mach-s3c64xx/mach-crag6410.c | 1 - > arch/arm/mach-s3c64xx/mach-hmt.c | 1 - > arch/arm/mach-s3c64xx/mach-smartq.c | 1 - > arch/arm/mach-s3c64xx/mach-smdk6410.c | 2 +- > arch/unicore32/kernel/puv3-nb0916.c | 1 - > drivers/video/backlight/pwm_bl.c | 19 ------------------- > include/linux/pwm_backlight.h | 2 -- > 26 files changed, 11 insertions(+), 49 deletions(-) > > diff --git a/arch/arm/mach-pxa/cm-x300.c b/arch/arm/mach-pxa/cm-x300.c > index 425855f456f2..2e35354b61f5 100644 > --- a/arch/arm/mach-pxa/cm-x300.c > +++ b/arch/arm/mach-pxa/cm-x300.c > @@ -312,7 +312,6 @@ static struct pwm_lookup cm_x300_pwm_lookup[] = { > static struct platform_pwm_backlight_data cm_x300_backlight_data = { > .max_brightness = 100, > .dft_brightness = 100, > - .enable_gpio = -1, > }; > > static struct platform_device cm_x300_backlight_device = { > diff --git a/arch/arm/mach-pxa/colibri-pxa270-income.c b/arch/arm/mach-pxa/colibri-pxa270-income.c > index dbad2f13706c..e5879e8b0682 100644 > --- a/arch/arm/mach-pxa/colibri-pxa270-income.c > +++ b/arch/arm/mach-pxa/colibri-pxa270-income.c > @@ -202,7 +202,6 @@ static struct pwm_lookup income_pwm_lookup[] = { > static struct platform_pwm_backlight_data income_backlight_data = { > .max_brightness = 0x3ff, > .dft_brightness = 0x1ff, > - .enable_gpio = -1, > }; > > static struct platform_device income_backlight = { > diff --git a/arch/arm/mach-pxa/ezx.c b/arch/arm/mach-pxa/ezx.c > index ec10851b63cf..eb85950e7c0e 100644 > --- a/arch/arm/mach-pxa/ezx.c > +++ b/arch/arm/mach-pxa/ezx.c > @@ -55,7 +55,6 @@ static struct pwm_lookup ezx_pwm_lookup[] __maybe_unused = { > static struct platform_pwm_backlight_data ezx_backlight_data = { > .max_brightness = 1023, > .dft_brightness = 1023, > - .enable_gpio = -1, > }; > > static struct platform_device ezx_backlight_device = { > diff --git a/arch/arm/mach-pxa/hx4700.c b/arch/arm/mach-pxa/hx4700.c > index 238a751a8797..1d4c5db54be2 100644 > --- a/arch/arm/mach-pxa/hx4700.c > +++ b/arch/arm/mach-pxa/hx4700.c > @@ -556,7 +556,6 @@ static struct platform_device hx4700_lcd = { > static struct platform_pwm_backlight_data backlight_data = { > .max_brightness = 200, > .dft_brightness = 100, > - .enable_gpio = -1, > }; > > static struct platform_device backlight = { > diff --git a/arch/arm/mach-pxa/lpd270.c b/arch/arm/mach-pxa/lpd270.c > index 20e00e970385..6fc40bc06910 100644 > --- a/arch/arm/mach-pxa/lpd270.c > +++ b/arch/arm/mach-pxa/lpd270.c > @@ -277,7 +277,6 @@ static struct pwm_lookup lpd270_pwm_lookup[] = { > static struct platform_pwm_backlight_data lpd270_backlight_data = { > .max_brightness = 1, > .dft_brightness = 1, > - .enable_gpio = -1, > }; > > static struct platform_device lpd270_backlight_device = { > diff --git a/arch/arm/mach-pxa/magician.c b/arch/arm/mach-pxa/magician.c > index 5d0591f93f4d..cd9fa465b9b2 100644 > --- a/arch/arm/mach-pxa/magician.c > +++ b/arch/arm/mach-pxa/magician.c > @@ -401,7 +401,6 @@ static void magician_backlight_exit(struct device *dev) > static struct platform_pwm_backlight_data backlight_data = { > .max_brightness = 272, > .dft_brightness = 100, > - .enable_gpio = -1, > .init = magician_backlight_init, > .notify = magician_backlight_notify, > .exit = magician_backlight_exit, > diff --git a/arch/arm/mach-pxa/mainstone.c b/arch/arm/mach-pxa/mainstone.c > index 1b7882920164..d1010ec26e9f 100644 > --- a/arch/arm/mach-pxa/mainstone.c > +++ b/arch/arm/mach-pxa/mainstone.c > @@ -256,7 +256,6 @@ static struct pwm_lookup mainstone_pwm_lookup[] = { > static struct platform_pwm_backlight_data mainstone_backlight_data = { > .max_brightness = 1023, > .dft_brightness = 1023, > - .enable_gpio = -1, > }; > > static struct platform_device mainstone_backlight_device = { > diff --git a/arch/arm/mach-pxa/mioa701.c b/arch/arm/mach-pxa/mioa701.c > index 0b8bae9610f1..d3af80317f2d 100644 > --- a/arch/arm/mach-pxa/mioa701.c > +++ b/arch/arm/mach-pxa/mioa701.c > @@ -176,7 +176,6 @@ static struct pwm_lookup mioa701_pwm_lookup[] = { > static struct platform_pwm_backlight_data mioa701_backlight_data = { > .max_brightness = 100, > .dft_brightness = 50, > - .enable_gpio = -1, > }; > > /* > diff --git a/arch/arm/mach-pxa/palm27x.c b/arch/arm/mach-pxa/palm27x.c > index b600b63af3a6..0d246a1aebbc 100644 > --- a/arch/arm/mach-pxa/palm27x.c > +++ b/arch/arm/mach-pxa/palm27x.c > @@ -318,7 +318,6 @@ static void palm27x_backlight_exit(struct device *dev) > static struct platform_pwm_backlight_data palm27x_backlight_data = { > .max_brightness = 0xfe, > .dft_brightness = 0x7e, > - .enable_gpio = -1, > .init = palm27x_backlight_init, > .notify = palm27x_backlight_notify, > .exit = palm27x_backlight_exit, > diff --git a/arch/arm/mach-pxa/palmtc.c b/arch/arm/mach-pxa/palmtc.c > index fda9deaaae02..455cb8ccaf26 100644 > --- a/arch/arm/mach-pxa/palmtc.c > +++ b/arch/arm/mach-pxa/palmtc.c > @@ -174,6 +174,15 @@ static inline void palmtc_keys_init(void) {} > * Backlight > ******************************************************************************/ > #if defined(CONFIG_BACKLIGHT_PWM) || defined(CONFIG_BACKLIGHT_PWM_MODULE) > + > +static struct gpiod_lookup_table palmtc_pwm_bl_gpio_table = { > + .dev_id = "pwm-backlight.0", > + .table = { > + GPIO_LOOKUP("gpio-pxa", GPIO_NR_PALMTC_BL_POWER, > + "enable", GPIO_ACTIVE_HIGH), > + }, > +}; > + > static struct pwm_lookup palmtc_pwm_lookup[] = { > PWM_LOOKUP("pxa25x-pwm.1", 0, "pwm-backlight.0", NULL, PALMTC_PERIOD_NS, > PWM_POLARITY_NORMAL), > @@ -182,7 +191,6 @@ static struct pwm_lookup palmtc_pwm_lookup[] = { > static struct platform_pwm_backlight_data palmtc_backlight_data = { > .max_brightness = PALMTC_MAX_INTENSITY, > .dft_brightness = PALMTC_MAX_INTENSITY, > - .enable_gpio = GPIO_NR_PALMTC_BL_POWER, > }; > > static struct platform_device palmtc_backlight = { > @@ -195,6 +203,7 @@ static struct platform_device palmtc_backlight = { > > static void __init palmtc_pwm_init(void) > { > + gpiod_add_lookup_table(&palmtc_pwm_bl_gpio_table); > pwm_add_table(palmtc_pwm_lookup, ARRAY_SIZE(palmtc_pwm_lookup)); > platform_device_register(&palmtc_backlight); > } > diff --git a/arch/arm/mach-pxa/palmte2.c b/arch/arm/mach-pxa/palmte2.c > index 7171014fd311..e3bcf58b4e63 100644 > --- a/arch/arm/mach-pxa/palmte2.c > +++ b/arch/arm/mach-pxa/palmte2.c > @@ -175,7 +175,6 @@ static void palmte2_backlight_exit(struct device *dev) > static struct platform_pwm_backlight_data palmte2_backlight_data = { > .max_brightness = PALMTE2_MAX_INTENSITY, > .dft_brightness = PALMTE2_MAX_INTENSITY, > - .enable_gpio = -1, > .init = palmte2_backlight_init, > .notify = palmte2_backlight_notify, > .exit = palmte2_backlight_exit, > diff --git a/arch/arm/mach-pxa/pcm990-baseboard.c b/arch/arm/mach-pxa/pcm990-baseboard.c > index cb1c56769fbc..bf613f88d70b 100644 > --- a/arch/arm/mach-pxa/pcm990-baseboard.c > +++ b/arch/arm/mach-pxa/pcm990-baseboard.c > @@ -154,7 +154,6 @@ static struct pwm_lookup pcm990_pwm_lookup[] = { > static struct platform_pwm_backlight_data pcm990_backlight_data = { > .max_brightness = 1023, > .dft_brightness = 1023, > - .enable_gpio = -1, > }; > > static struct platform_device pcm990_backlight_device = { > diff --git a/arch/arm/mach-pxa/tavorevb.c b/arch/arm/mach-pxa/tavorevb.c > index 93466fa3b0fe..a15eb3b9484d 100644 > --- a/arch/arm/mach-pxa/tavorevb.c > +++ b/arch/arm/mach-pxa/tavorevb.c > @@ -178,13 +178,11 @@ static struct platform_pwm_backlight_data tavorevb_backlight_data[] = { > /* primary backlight */ > .max_brightness = 100, > .dft_brightness = 100, > - .enable_gpio = -1, > }, > [1] = { > /* secondary backlight */ > .max_brightness = 100, > .dft_brightness = 100, > - .enable_gpio = -1, > }, > }; > > diff --git a/arch/arm/mach-pxa/viper.c b/arch/arm/mach-pxa/viper.c > index c06031da6676..3aa34e9a15d3 100644 > --- a/arch/arm/mach-pxa/viper.c > +++ b/arch/arm/mach-pxa/viper.c > @@ -404,7 +404,6 @@ static void viper_backlight_exit(struct device *dev) > static struct platform_pwm_backlight_data viper_backlight_data = { > .max_brightness = 100, > .dft_brightness = 100, > - .enable_gpio = -1, > .init = viper_backlight_init, > .notify = viper_backlight_notify, > .exit = viper_backlight_exit, > diff --git a/arch/arm/mach-pxa/z2.c b/arch/arm/mach-pxa/z2.c > index 900cefc4c5ea..21fd76bb09cd 100644 > --- a/arch/arm/mach-pxa/z2.c > +++ b/arch/arm/mach-pxa/z2.c > @@ -210,13 +210,11 @@ static struct platform_pwm_backlight_data z2_backlight_data[] = { > /* Keypad Backlight */ > .max_brightness = 1023, > .dft_brightness = 0, > - .enable_gpio = -1, > }, > [1] = { > /* LCD Backlight */ > .max_brightness = 1023, > .dft_brightness = 512, > - .enable_gpio = -1, > }, > }; > > diff --git a/arch/arm/mach-pxa/zylonite.c b/arch/arm/mach-pxa/zylonite.c > index bf2ab5bd49ec..79f0025fa17a 100644 > --- a/arch/arm/mach-pxa/zylonite.c > +++ b/arch/arm/mach-pxa/zylonite.c > @@ -117,7 +117,6 @@ static struct pwm_lookup zylonite_pwm_lookup[] = { > static struct platform_pwm_backlight_data zylonite_backlight_data = { > .max_brightness = 100, > .dft_brightness = 100, > - .enable_gpio = -1, > }; > > static struct platform_device zylonite_backlight_device = { > diff --git a/arch/arm/mach-s3c24xx/mach-h1940.c b/arch/arm/mach-s3c24xx/mach-h1940.c > index 74d6b68e91c7..e1c372e5447b 100644 > --- a/arch/arm/mach-s3c24xx/mach-h1940.c > +++ b/arch/arm/mach-s3c24xx/mach-h1940.c > @@ -516,7 +516,6 @@ static void h1940_backlight_exit(struct device *dev) > static struct platform_pwm_backlight_data backlight_data = { > .max_brightness = 100, > .dft_brightness = 50, > - .enable_gpio = -1, > .init = h1940_backlight_init, > .notify = h1940_backlight_notify, > .exit = h1940_backlight_exit, > diff --git a/arch/arm/mach-s3c24xx/mach-rx1950.c b/arch/arm/mach-s3c24xx/mach-rx1950.c > index 03d8f27cdc32..fde98b175c75 100644 > --- a/arch/arm/mach-s3c24xx/mach-rx1950.c > +++ b/arch/arm/mach-s3c24xx/mach-rx1950.c > @@ -534,7 +534,6 @@ static int rx1950_backlight_notify(struct device *dev, int brightness) > static struct platform_pwm_backlight_data rx1950_backlight_data = { > .max_brightness = 24, > .dft_brightness = 4, > - .enable_gpio = -1, > .init = rx1950_backlight_init, > .notify = rx1950_backlight_notify, > .exit = rx1950_backlight_exit, > diff --git a/arch/arm/mach-s3c64xx/dev-backlight.c b/arch/arm/mach-s3c64xx/dev-backlight.c > index 799cfdf0606b..09e6da305f60 100644 > --- a/arch/arm/mach-s3c64xx/dev-backlight.c > +++ b/arch/arm/mach-s3c64xx/dev-backlight.c > @@ -65,7 +65,6 @@ static struct samsung_bl_drvdata samsung_dfl_bl_data __initdata = { > .plat_data = { > .max_brightness = 255, > .dft_brightness = 255, > - .enable_gpio = -1, > .init = samsung_bl_init, > .exit = samsung_bl_exit, > }, > @@ -111,8 +110,6 @@ void __init samsung_bl_set(struct samsung_bl_gpio_info *gpio_info, > samsung_bl_data->dft_brightness = bl_data->dft_brightness; > if (bl_data->lth_brightness) > samsung_bl_data->lth_brightness = bl_data->lth_brightness; > - if (bl_data->enable_gpio >= 0) > - samsung_bl_data->enable_gpio = bl_data->enable_gpio; > if (bl_data->init) > samsung_bl_data->init = bl_data->init; > if (bl_data->notify) > diff --git a/arch/arm/mach-s3c64xx/mach-crag6410.c b/arch/arm/mach-s3c64xx/mach-crag6410.c > index 8ec6a4f5eb05..da9654255e3f 100644 > --- a/arch/arm/mach-s3c64xx/mach-crag6410.c > +++ b/arch/arm/mach-s3c64xx/mach-crag6410.c > @@ -114,7 +114,6 @@ static struct pwm_lookup crag6410_pwm_lookup[] = { > static struct platform_pwm_backlight_data crag6410_backlight_data = { > .max_brightness = 1000, > .dft_brightness = 600, > - .enable_gpio = -1, > }; > > static struct platform_device crag6410_backlight_device = { > diff --git a/arch/arm/mach-s3c64xx/mach-hmt.c b/arch/arm/mach-s3c64xx/mach-hmt.c > index bfe9881d12cc..e7080215c624 100644 > --- a/arch/arm/mach-s3c64xx/mach-hmt.c > +++ b/arch/arm/mach-s3c64xx/mach-hmt.c > @@ -115,7 +115,6 @@ static void hmt_bl_exit(struct device *dev) > static struct platform_pwm_backlight_data hmt_backlight_data = { > .max_brightness = 100 * 256, > .dft_brightness = 40 * 256, > - .enable_gpio = -1, > .init = hmt_bl_init, > .notify = hmt_bl_notify, > .exit = hmt_bl_exit, > diff --git a/arch/arm/mach-s3c64xx/mach-smartq.c b/arch/arm/mach-s3c64xx/mach-smartq.c > index 829d5dbd69ee..5025db607c0f 100644 > --- a/arch/arm/mach-s3c64xx/mach-smartq.c > +++ b/arch/arm/mach-s3c64xx/mach-smartq.c > @@ -150,7 +150,6 @@ static int smartq_bl_init(struct device *dev) > static struct platform_pwm_backlight_data smartq_backlight_data = { > .max_brightness = 1000, > .dft_brightness = 600, > - .enable_gpio = -1, > .init = smartq_bl_init, > }; > > diff --git a/arch/arm/mach-s3c64xx/mach-smdk6410.c b/arch/arm/mach-s3c64xx/mach-smdk6410.c > index 908e5aa831c8..56f406c0c3dd 100644 > --- a/arch/arm/mach-s3c64xx/mach-smdk6410.c > +++ b/arch/arm/mach-s3c64xx/mach-smdk6410.c > @@ -623,7 +623,7 @@ static struct pwm_lookup smdk6410_pwm_lookup[] = { > }; > > static struct platform_pwm_backlight_data smdk6410_bl_data = { > - .enable_gpio = -1, > + /* Intentionally blank */ > }; > > static struct dwc2_hsotg_plat smdk6410_hsotg_pdata; > diff --git a/arch/unicore32/kernel/puv3-nb0916.c b/arch/unicore32/kernel/puv3-nb0916.c > index a3bf2ffc54dd..e251f5028396 100644 > --- a/arch/unicore32/kernel/puv3-nb0916.c > +++ b/arch/unicore32/kernel/puv3-nb0916.c > @@ -55,7 +55,6 @@ static struct pwm_lookup nb0916_pwm_lookup[] = { > static struct platform_pwm_backlight_data nb0916_backlight_data = { > .max_brightness = 100, > .dft_brightness = 100, > - .enable_gpio = -1, > }; > > static struct gpio_keys_button nb0916_gpio_keys[] = { > diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c > index efb4efc2a13d..82b8d7594701 100644 > --- a/drivers/video/backlight/pwm_bl.c > +++ b/drivers/video/backlight/pwm_bl.c > @@ -7,7 +7,6 @@ > > #include <linux/delay.h> > #include <linux/gpio/consumer.h> > -#include <linux/gpio.h> > #include <linux/module.h> > #include <linux/kernel.h> > #include <linux/init.h> > @@ -258,8 +257,6 @@ static int pwm_backlight_parse_dt(struct device *dev, > &data->post_pwm_on_delay); > of_property_read_u32(node, "pwm-off-delay-ms", &data->pwm_off_delay); > > - data->enable_gpio = -EINVAL; > - > /* > * Determine the number of brightness levels, if this property is not > * set a default table of brightness levels will be used. > @@ -502,22 +499,6 @@ static int pwm_backlight_probe(struct platform_device *pdev) > goto err_alloc; > } > > - /* > - * Compatibility fallback for drivers still using the integer GPIO > - * platform data. Must go away soon. > - */ > - if (!pb->enable_gpio && gpio_is_valid(data->enable_gpio)) { > - ret = devm_gpio_request_one(&pdev->dev, data->enable_gpio, > - GPIOF_OUT_INIT_HIGH, "enable"); > - if (ret < 0) { > - dev_err(&pdev->dev, "failed to request GPIO#%d: %d\n", > - data->enable_gpio, ret); > - goto err_alloc; > - } > - > - pb->enable_gpio = gpio_to_desc(data->enable_gpio); > - } > - > /* > * If the GPIO is not known to be already configured as output, that > * is, if gpiod_get_direction returns either 1 or -EINVAL, change the > diff --git a/include/linux/pwm_backlight.h b/include/linux/pwm_backlight.h > index 8ea265a022fd..06086cb93b6f 100644 > --- a/include/linux/pwm_backlight.h > +++ b/include/linux/pwm_backlight.h > @@ -16,8 +16,6 @@ struct platform_pwm_backlight_data { > unsigned int *levels; > unsigned int post_pwm_on_delay; > unsigned int pwm_off_delay; > - /* TODO remove once all users are switched to gpiod_* API */ > - int enable_gpio; > int (*init)(struct device *dev); > int (*notify)(struct device *dev, int brightness); > void (*notify_after)(struct device *dev, int brightness); > -- > 2.23.0 >
On Mon, 10 Feb 2020 at 11:15, Linus Walleij <linus.walleij@linaro.org> wrote: > > The PWM backlight still supports passing a enable GPIO line as > platform data using the legacy <linux/gpio.h> API. > > It turns out that ever board using this mechanism except one > is pass .enable_gpio = -1. So we drop all these cargo-culted -1's > from all instances of this platform data in the kernel. > > The remaning board, Palm TC, is converted to pass a machine > descriptior table with the "enable" GPIO instead, and delete the > platform data entry for enable_gpio and the code handling it > and things should work smoothly with the new API. > > Cc: Krzysztof Kozlowski <krzk@kernel.org> > Cc: Guan Xuetao <gxt@pku.edu.cn> > Acked-by: Robert Jarzmik <robert.jarzmik@free.fr> > Reviewed-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> > Signed-off-by: Linus Walleij <linus.walleij@linaro.org> > --- > ChangeLog v2->v3: > - Collect Robert's ACK. You missed my ack: For s3c: Acked-by: Krzysztof Kozlowski <krzk@kernel.org> Best regards, Krzysztof
On Mon, 10 Feb 2020, Linus Walleij wrote: > The PWM backlight still supports passing a enable GPIO line as > platform data using the legacy <linux/gpio.h> API. > > It turns out that ever board using this mechanism except one > is pass .enable_gpio = -1. So we drop all these cargo-culted -1's > from all instances of this platform data in the kernel. > > The remaning board, Palm TC, is converted to pass a machine > descriptior table with the "enable" GPIO instead, and delete the > platform data entry for enable_gpio and the code handling it > and things should work smoothly with the new API. > > Cc: Krzysztof Kozlowski <krzk@kernel.org> > Cc: Guan Xuetao <gxt@pku.edu.cn> > Acked-by: Robert Jarzmik <robert.jarzmik@free.fr> > Reviewed-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> > Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Are we waiting on anyone else? > --- > ChangeLog v2->v3: > - Collect Robert's ACK. > ChangeLog v1->v2: > - Located a missing removal of .enable_gpio in the Palm TC > board file, pointed out by Daniel. > - Grepped to ascertain there is not a single instance of > the string "enable_gpio" in the affected board files. > --- > arch/arm/mach-pxa/cm-x300.c | 1 - > arch/arm/mach-pxa/colibri-pxa270-income.c | 1 - > arch/arm/mach-pxa/ezx.c | 1 - > arch/arm/mach-pxa/hx4700.c | 1 - > arch/arm/mach-pxa/lpd270.c | 1 - > arch/arm/mach-pxa/magician.c | 1 - > arch/arm/mach-pxa/mainstone.c | 1 - > arch/arm/mach-pxa/mioa701.c | 1 - > arch/arm/mach-pxa/palm27x.c | 1 - > arch/arm/mach-pxa/palmtc.c | 11 ++++++++++- > arch/arm/mach-pxa/palmte2.c | 1 - > arch/arm/mach-pxa/pcm990-baseboard.c | 1 - > arch/arm/mach-pxa/tavorevb.c | 2 -- > arch/arm/mach-pxa/viper.c | 1 - > arch/arm/mach-pxa/z2.c | 2 -- > arch/arm/mach-pxa/zylonite.c | 1 - > arch/arm/mach-s3c24xx/mach-h1940.c | 1 - > arch/arm/mach-s3c24xx/mach-rx1950.c | 1 - > arch/arm/mach-s3c64xx/dev-backlight.c | 3 --- > arch/arm/mach-s3c64xx/mach-crag6410.c | 1 - > arch/arm/mach-s3c64xx/mach-hmt.c | 1 - > arch/arm/mach-s3c64xx/mach-smartq.c | 1 - > arch/arm/mach-s3c64xx/mach-smdk6410.c | 2 +- > arch/unicore32/kernel/puv3-nb0916.c | 1 - > drivers/video/backlight/pwm_bl.c | 19 ------------------- > include/linux/pwm_backlight.h | 2 -- > 26 files changed, 11 insertions(+), 49 deletions(-)
diff --git a/arch/arm/mach-pxa/cm-x300.c b/arch/arm/mach-pxa/cm-x300.c index 425855f456f2..2e35354b61f5 100644 --- a/arch/arm/mach-pxa/cm-x300.c +++ b/arch/arm/mach-pxa/cm-x300.c @@ -312,7 +312,6 @@ static struct pwm_lookup cm_x300_pwm_lookup[] = { static struct platform_pwm_backlight_data cm_x300_backlight_data = { .max_brightness = 100, .dft_brightness = 100, - .enable_gpio = -1, }; static struct platform_device cm_x300_backlight_device = { diff --git a/arch/arm/mach-pxa/colibri-pxa270-income.c b/arch/arm/mach-pxa/colibri-pxa270-income.c index dbad2f13706c..e5879e8b0682 100644 --- a/arch/arm/mach-pxa/colibri-pxa270-income.c +++ b/arch/arm/mach-pxa/colibri-pxa270-income.c @@ -202,7 +202,6 @@ static struct pwm_lookup income_pwm_lookup[] = { static struct platform_pwm_backlight_data income_backlight_data = { .max_brightness = 0x3ff, .dft_brightness = 0x1ff, - .enable_gpio = -1, }; static struct platform_device income_backlight = { diff --git a/arch/arm/mach-pxa/ezx.c b/arch/arm/mach-pxa/ezx.c index ec10851b63cf..eb85950e7c0e 100644 --- a/arch/arm/mach-pxa/ezx.c +++ b/arch/arm/mach-pxa/ezx.c @@ -55,7 +55,6 @@ static struct pwm_lookup ezx_pwm_lookup[] __maybe_unused = { static struct platform_pwm_backlight_data ezx_backlight_data = { .max_brightness = 1023, .dft_brightness = 1023, - .enable_gpio = -1, }; static struct platform_device ezx_backlight_device = { diff --git a/arch/arm/mach-pxa/hx4700.c b/arch/arm/mach-pxa/hx4700.c index 238a751a8797..1d4c5db54be2 100644 --- a/arch/arm/mach-pxa/hx4700.c +++ b/arch/arm/mach-pxa/hx4700.c @@ -556,7 +556,6 @@ static struct platform_device hx4700_lcd = { static struct platform_pwm_backlight_data backlight_data = { .max_brightness = 200, .dft_brightness = 100, - .enable_gpio = -1, }; static struct platform_device backlight = { diff --git a/arch/arm/mach-pxa/lpd270.c b/arch/arm/mach-pxa/lpd270.c index 20e00e970385..6fc40bc06910 100644 --- a/arch/arm/mach-pxa/lpd270.c +++ b/arch/arm/mach-pxa/lpd270.c @@ -277,7 +277,6 @@ static struct pwm_lookup lpd270_pwm_lookup[] = { static struct platform_pwm_backlight_data lpd270_backlight_data = { .max_brightness = 1, .dft_brightness = 1, - .enable_gpio = -1, }; static struct platform_device lpd270_backlight_device = { diff --git a/arch/arm/mach-pxa/magician.c b/arch/arm/mach-pxa/magician.c index 5d0591f93f4d..cd9fa465b9b2 100644 --- a/arch/arm/mach-pxa/magician.c +++ b/arch/arm/mach-pxa/magician.c @@ -401,7 +401,6 @@ static void magician_backlight_exit(struct device *dev) static struct platform_pwm_backlight_data backlight_data = { .max_brightness = 272, .dft_brightness = 100, - .enable_gpio = -1, .init = magician_backlight_init, .notify = magician_backlight_notify, .exit = magician_backlight_exit, diff --git a/arch/arm/mach-pxa/mainstone.c b/arch/arm/mach-pxa/mainstone.c index 1b7882920164..d1010ec26e9f 100644 --- a/arch/arm/mach-pxa/mainstone.c +++ b/arch/arm/mach-pxa/mainstone.c @@ -256,7 +256,6 @@ static struct pwm_lookup mainstone_pwm_lookup[] = { static struct platform_pwm_backlight_data mainstone_backlight_data = { .max_brightness = 1023, .dft_brightness = 1023, - .enable_gpio = -1, }; static struct platform_device mainstone_backlight_device = { diff --git a/arch/arm/mach-pxa/mioa701.c b/arch/arm/mach-pxa/mioa701.c index 0b8bae9610f1..d3af80317f2d 100644 --- a/arch/arm/mach-pxa/mioa701.c +++ b/arch/arm/mach-pxa/mioa701.c @@ -176,7 +176,6 @@ static struct pwm_lookup mioa701_pwm_lookup[] = { static struct platform_pwm_backlight_data mioa701_backlight_data = { .max_brightness = 100, .dft_brightness = 50, - .enable_gpio = -1, }; /* diff --git a/arch/arm/mach-pxa/palm27x.c b/arch/arm/mach-pxa/palm27x.c index b600b63af3a6..0d246a1aebbc 100644 --- a/arch/arm/mach-pxa/palm27x.c +++ b/arch/arm/mach-pxa/palm27x.c @@ -318,7 +318,6 @@ static void palm27x_backlight_exit(struct device *dev) static struct platform_pwm_backlight_data palm27x_backlight_data = { .max_brightness = 0xfe, .dft_brightness = 0x7e, - .enable_gpio = -1, .init = palm27x_backlight_init, .notify = palm27x_backlight_notify, .exit = palm27x_backlight_exit, diff --git a/arch/arm/mach-pxa/palmtc.c b/arch/arm/mach-pxa/palmtc.c index fda9deaaae02..455cb8ccaf26 100644 --- a/arch/arm/mach-pxa/palmtc.c +++ b/arch/arm/mach-pxa/palmtc.c @@ -174,6 +174,15 @@ static inline void palmtc_keys_init(void) {} * Backlight ******************************************************************************/ #if defined(CONFIG_BACKLIGHT_PWM) || defined(CONFIG_BACKLIGHT_PWM_MODULE) + +static struct gpiod_lookup_table palmtc_pwm_bl_gpio_table = { + .dev_id = "pwm-backlight.0", + .table = { + GPIO_LOOKUP("gpio-pxa", GPIO_NR_PALMTC_BL_POWER, + "enable", GPIO_ACTIVE_HIGH), + }, +}; + static struct pwm_lookup palmtc_pwm_lookup[] = { PWM_LOOKUP("pxa25x-pwm.1", 0, "pwm-backlight.0", NULL, PALMTC_PERIOD_NS, PWM_POLARITY_NORMAL), @@ -182,7 +191,6 @@ static struct pwm_lookup palmtc_pwm_lookup[] = { static struct platform_pwm_backlight_data palmtc_backlight_data = { .max_brightness = PALMTC_MAX_INTENSITY, .dft_brightness = PALMTC_MAX_INTENSITY, - .enable_gpio = GPIO_NR_PALMTC_BL_POWER, }; static struct platform_device palmtc_backlight = { @@ -195,6 +203,7 @@ static struct platform_device palmtc_backlight = { static void __init palmtc_pwm_init(void) { + gpiod_add_lookup_table(&palmtc_pwm_bl_gpio_table); pwm_add_table(palmtc_pwm_lookup, ARRAY_SIZE(palmtc_pwm_lookup)); platform_device_register(&palmtc_backlight); } diff --git a/arch/arm/mach-pxa/palmte2.c b/arch/arm/mach-pxa/palmte2.c index 7171014fd311..e3bcf58b4e63 100644 --- a/arch/arm/mach-pxa/palmte2.c +++ b/arch/arm/mach-pxa/palmte2.c @@ -175,7 +175,6 @@ static void palmte2_backlight_exit(struct device *dev) static struct platform_pwm_backlight_data palmte2_backlight_data = { .max_brightness = PALMTE2_MAX_INTENSITY, .dft_brightness = PALMTE2_MAX_INTENSITY, - .enable_gpio = -1, .init = palmte2_backlight_init, .notify = palmte2_backlight_notify, .exit = palmte2_backlight_exit, diff --git a/arch/arm/mach-pxa/pcm990-baseboard.c b/arch/arm/mach-pxa/pcm990-baseboard.c index cb1c56769fbc..bf613f88d70b 100644 --- a/arch/arm/mach-pxa/pcm990-baseboard.c +++ b/arch/arm/mach-pxa/pcm990-baseboard.c @@ -154,7 +154,6 @@ static struct pwm_lookup pcm990_pwm_lookup[] = { static struct platform_pwm_backlight_data pcm990_backlight_data = { .max_brightness = 1023, .dft_brightness = 1023, - .enable_gpio = -1, }; static struct platform_device pcm990_backlight_device = { diff --git a/arch/arm/mach-pxa/tavorevb.c b/arch/arm/mach-pxa/tavorevb.c index 93466fa3b0fe..a15eb3b9484d 100644 --- a/arch/arm/mach-pxa/tavorevb.c +++ b/arch/arm/mach-pxa/tavorevb.c @@ -178,13 +178,11 @@ static struct platform_pwm_backlight_data tavorevb_backlight_data[] = { /* primary backlight */ .max_brightness = 100, .dft_brightness = 100, - .enable_gpio = -1, }, [1] = { /* secondary backlight */ .max_brightness = 100, .dft_brightness = 100, - .enable_gpio = -1, }, }; diff --git a/arch/arm/mach-pxa/viper.c b/arch/arm/mach-pxa/viper.c index c06031da6676..3aa34e9a15d3 100644 --- a/arch/arm/mach-pxa/viper.c +++ b/arch/arm/mach-pxa/viper.c @@ -404,7 +404,6 @@ static void viper_backlight_exit(struct device *dev) static struct platform_pwm_backlight_data viper_backlight_data = { .max_brightness = 100, .dft_brightness = 100, - .enable_gpio = -1, .init = viper_backlight_init, .notify = viper_backlight_notify, .exit = viper_backlight_exit, diff --git a/arch/arm/mach-pxa/z2.c b/arch/arm/mach-pxa/z2.c index 900cefc4c5ea..21fd76bb09cd 100644 --- a/arch/arm/mach-pxa/z2.c +++ b/arch/arm/mach-pxa/z2.c @@ -210,13 +210,11 @@ static struct platform_pwm_backlight_data z2_backlight_data[] = { /* Keypad Backlight */ .max_brightness = 1023, .dft_brightness = 0, - .enable_gpio = -1, }, [1] = { /* LCD Backlight */ .max_brightness = 1023, .dft_brightness = 512, - .enable_gpio = -1, }, }; diff --git a/arch/arm/mach-pxa/zylonite.c b/arch/arm/mach-pxa/zylonite.c index bf2ab5bd49ec..79f0025fa17a 100644 --- a/arch/arm/mach-pxa/zylonite.c +++ b/arch/arm/mach-pxa/zylonite.c @@ -117,7 +117,6 @@ static struct pwm_lookup zylonite_pwm_lookup[] = { static struct platform_pwm_backlight_data zylonite_backlight_data = { .max_brightness = 100, .dft_brightness = 100, - .enable_gpio = -1, }; static struct platform_device zylonite_backlight_device = { diff --git a/arch/arm/mach-s3c24xx/mach-h1940.c b/arch/arm/mach-s3c24xx/mach-h1940.c index 74d6b68e91c7..e1c372e5447b 100644 --- a/arch/arm/mach-s3c24xx/mach-h1940.c +++ b/arch/arm/mach-s3c24xx/mach-h1940.c @@ -516,7 +516,6 @@ static void h1940_backlight_exit(struct device *dev) static struct platform_pwm_backlight_data backlight_data = { .max_brightness = 100, .dft_brightness = 50, - .enable_gpio = -1, .init = h1940_backlight_init, .notify = h1940_backlight_notify, .exit = h1940_backlight_exit, diff --git a/arch/arm/mach-s3c24xx/mach-rx1950.c b/arch/arm/mach-s3c24xx/mach-rx1950.c index 03d8f27cdc32..fde98b175c75 100644 --- a/arch/arm/mach-s3c24xx/mach-rx1950.c +++ b/arch/arm/mach-s3c24xx/mach-rx1950.c @@ -534,7 +534,6 @@ static int rx1950_backlight_notify(struct device *dev, int brightness) static struct platform_pwm_backlight_data rx1950_backlight_data = { .max_brightness = 24, .dft_brightness = 4, - .enable_gpio = -1, .init = rx1950_backlight_init, .notify = rx1950_backlight_notify, .exit = rx1950_backlight_exit, diff --git a/arch/arm/mach-s3c64xx/dev-backlight.c b/arch/arm/mach-s3c64xx/dev-backlight.c index 799cfdf0606b..09e6da305f60 100644 --- a/arch/arm/mach-s3c64xx/dev-backlight.c +++ b/arch/arm/mach-s3c64xx/dev-backlight.c @@ -65,7 +65,6 @@ static struct samsung_bl_drvdata samsung_dfl_bl_data __initdata = { .plat_data = { .max_brightness = 255, .dft_brightness = 255, - .enable_gpio = -1, .init = samsung_bl_init, .exit = samsung_bl_exit, }, @@ -111,8 +110,6 @@ void __init samsung_bl_set(struct samsung_bl_gpio_info *gpio_info, samsung_bl_data->dft_brightness = bl_data->dft_brightness; if (bl_data->lth_brightness) samsung_bl_data->lth_brightness = bl_data->lth_brightness; - if (bl_data->enable_gpio >= 0) - samsung_bl_data->enable_gpio = bl_data->enable_gpio; if (bl_data->init) samsung_bl_data->init = bl_data->init; if (bl_data->notify) diff --git a/arch/arm/mach-s3c64xx/mach-crag6410.c b/arch/arm/mach-s3c64xx/mach-crag6410.c index 8ec6a4f5eb05..da9654255e3f 100644 --- a/arch/arm/mach-s3c64xx/mach-crag6410.c +++ b/arch/arm/mach-s3c64xx/mach-crag6410.c @@ -114,7 +114,6 @@ static struct pwm_lookup crag6410_pwm_lookup[] = { static struct platform_pwm_backlight_data crag6410_backlight_data = { .max_brightness = 1000, .dft_brightness = 600, - .enable_gpio = -1, }; static struct platform_device crag6410_backlight_device = { diff --git a/arch/arm/mach-s3c64xx/mach-hmt.c b/arch/arm/mach-s3c64xx/mach-hmt.c index bfe9881d12cc..e7080215c624 100644 --- a/arch/arm/mach-s3c64xx/mach-hmt.c +++ b/arch/arm/mach-s3c64xx/mach-hmt.c @@ -115,7 +115,6 @@ static void hmt_bl_exit(struct device *dev) static struct platform_pwm_backlight_data hmt_backlight_data = { .max_brightness = 100 * 256, .dft_brightness = 40 * 256, - .enable_gpio = -1, .init = hmt_bl_init, .notify = hmt_bl_notify, .exit = hmt_bl_exit, diff --git a/arch/arm/mach-s3c64xx/mach-smartq.c b/arch/arm/mach-s3c64xx/mach-smartq.c index 829d5dbd69ee..5025db607c0f 100644 --- a/arch/arm/mach-s3c64xx/mach-smartq.c +++ b/arch/arm/mach-s3c64xx/mach-smartq.c @@ -150,7 +150,6 @@ static int smartq_bl_init(struct device *dev) static struct platform_pwm_backlight_data smartq_backlight_data = { .max_brightness = 1000, .dft_brightness = 600, - .enable_gpio = -1, .init = smartq_bl_init, }; diff --git a/arch/arm/mach-s3c64xx/mach-smdk6410.c b/arch/arm/mach-s3c64xx/mach-smdk6410.c index 908e5aa831c8..56f406c0c3dd 100644 --- a/arch/arm/mach-s3c64xx/mach-smdk6410.c +++ b/arch/arm/mach-s3c64xx/mach-smdk6410.c @@ -623,7 +623,7 @@ static struct pwm_lookup smdk6410_pwm_lookup[] = { }; static struct platform_pwm_backlight_data smdk6410_bl_data = { - .enable_gpio = -1, + /* Intentionally blank */ }; static struct dwc2_hsotg_plat smdk6410_hsotg_pdata; diff --git a/arch/unicore32/kernel/puv3-nb0916.c b/arch/unicore32/kernel/puv3-nb0916.c index a3bf2ffc54dd..e251f5028396 100644 --- a/arch/unicore32/kernel/puv3-nb0916.c +++ b/arch/unicore32/kernel/puv3-nb0916.c @@ -55,7 +55,6 @@ static struct pwm_lookup nb0916_pwm_lookup[] = { static struct platform_pwm_backlight_data nb0916_backlight_data = { .max_brightness = 100, .dft_brightness = 100, - .enable_gpio = -1, }; static struct gpio_keys_button nb0916_gpio_keys[] = { diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c index efb4efc2a13d..82b8d7594701 100644 --- a/drivers/video/backlight/pwm_bl.c +++ b/drivers/video/backlight/pwm_bl.c @@ -7,7 +7,6 @@ #include <linux/delay.h> #include <linux/gpio/consumer.h> -#include <linux/gpio.h> #include <linux/module.h> #include <linux/kernel.h> #include <linux/init.h> @@ -258,8 +257,6 @@ static int pwm_backlight_parse_dt(struct device *dev, &data->post_pwm_on_delay); of_property_read_u32(node, "pwm-off-delay-ms", &data->pwm_off_delay); - data->enable_gpio = -EINVAL; - /* * Determine the number of brightness levels, if this property is not * set a default table of brightness levels will be used. @@ -502,22 +499,6 @@ static int pwm_backlight_probe(struct platform_device *pdev) goto err_alloc; } - /* - * Compatibility fallback for drivers still using the integer GPIO - * platform data. Must go away soon. - */ - if (!pb->enable_gpio && gpio_is_valid(data->enable_gpio)) { - ret = devm_gpio_request_one(&pdev->dev, data->enable_gpio, - GPIOF_OUT_INIT_HIGH, "enable"); - if (ret < 0) { - dev_err(&pdev->dev, "failed to request GPIO#%d: %d\n", - data->enable_gpio, ret); - goto err_alloc; - } - - pb->enable_gpio = gpio_to_desc(data->enable_gpio); - } - /* * If the GPIO is not known to be already configured as output, that * is, if gpiod_get_direction returns either 1 or -EINVAL, change the diff --git a/include/linux/pwm_backlight.h b/include/linux/pwm_backlight.h index 8ea265a022fd..06086cb93b6f 100644 --- a/include/linux/pwm_backlight.h +++ b/include/linux/pwm_backlight.h @@ -16,8 +16,6 @@ struct platform_pwm_backlight_data { unsigned int *levels; unsigned int post_pwm_on_delay; unsigned int pwm_off_delay; - /* TODO remove once all users are switched to gpiod_* API */ - int enable_gpio; int (*init)(struct device *dev); int (*notify)(struct device *dev, int brightness); void (*notify_after)(struct device *dev, int brightness);