mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-27 12:57:53 +00:00
leds: pm8058: Get rid of custom led_init_default_state_get()
LED core provides a helper to parse default state from firmware node. Use it instead of custom implementation. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Lee Jones <lee@kernel.org> Link: https://lore.kernel.org/r/20230103131256.33894-10-andriy.shevchenko@linux.intel.com
This commit is contained in:
parent
0dd37b1cf5
commit
bf8a9a7684
1 changed files with 15 additions and 14 deletions
|
@ -93,8 +93,8 @@ static int pm8058_led_probe(struct platform_device *pdev)
|
|||
struct device_node *np;
|
||||
int ret;
|
||||
struct regmap *map;
|
||||
const char *state;
|
||||
enum led_brightness maxbright;
|
||||
enum led_default_state state;
|
||||
|
||||
led = devm_kzalloc(dev, sizeof(*led), GFP_KERNEL);
|
||||
if (!led)
|
||||
|
@ -125,25 +125,26 @@ static int pm8058_led_probe(struct platform_device *pdev)
|
|||
maxbright = 15; /* 4 bits */
|
||||
led->cdev.max_brightness = maxbright;
|
||||
|
||||
state = of_get_property(np, "default-state", NULL);
|
||||
if (state) {
|
||||
if (!strcmp(state, "keep")) {
|
||||
led->cdev.brightness = pm8058_led_get(&led->cdev);
|
||||
} else if (!strcmp(state, "on")) {
|
||||
led->cdev.brightness = maxbright;
|
||||
pm8058_led_set(&led->cdev, maxbright);
|
||||
} else {
|
||||
led->cdev.brightness = LED_OFF;
|
||||
pm8058_led_set(&led->cdev, LED_OFF);
|
||||
}
|
||||
init_data.fwnode = of_fwnode_handle(np);
|
||||
|
||||
state = led_init_default_state_get(init_data.fwnode);
|
||||
switch (state) {
|
||||
case LEDS_DEFSTATE_ON:
|
||||
led->cdev.brightness = maxbright;
|
||||
pm8058_led_set(&led->cdev, maxbright);
|
||||
break;
|
||||
case LEDS_DEFSTATE_KEEP:
|
||||
led->cdev.brightness = pm8058_led_get(&led->cdev);
|
||||
break;
|
||||
default:
|
||||
led->cdev.brightness = LED_OFF;
|
||||
pm8058_led_set(&led->cdev, LED_OFF);
|
||||
}
|
||||
|
||||
if (led->ledtype == PM8058_LED_TYPE_KEYPAD ||
|
||||
led->ledtype == PM8058_LED_TYPE_FLASH)
|
||||
led->cdev.flags = LED_CORE_SUSPENDRESUME;
|
||||
|
||||
init_data.fwnode = of_fwnode_handle(np);
|
||||
|
||||
ret = devm_led_classdev_register_ext(dev, &led->cdev, &init_data);
|
||||
if (ret)
|
||||
dev_err(dev, "Failed to register LED for %pOF\n", np);
|
||||
|
|
Loading…
Reference in a new issue