backlight: pwm_bl: Switch to full GPIO descriptor
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. Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Robert Jarzmik <robert.jarzmik@free.fr> Acked-by: Krzysztof Kozlowski <krzk@kernel.org Reviewed-by: Bartosz Golaszewski <bgolaszewski@baylibre.com> Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org> Signed-off-by: Lee Jones <lee.jones@linaro.org>
This commit is contained in:
parent
bb6d3fb354
commit
2644f912b4
|
@ -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 = {
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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,
|
||||
};
|
||||
|
||||
/*
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
},
|
||||
};
|
||||
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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 = {
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
};
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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[] = {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue