Lines Matching defs:led

182 	else	/* led 0 - 23 in led 32 location */
237 struct sso_led *led;
240 led = cdev_to_sso_led_data(led_cdev);
241 priv = led->priv;
242 desc = &led->desc;
263 gpiod_set_value(led->gpiod, val);
268 struct sso_led *led = cdev_to_sso_led_data(led_cdev);
270 return (enum led_brightness)led->desc.brightness;
274 delay_to_freq_idx(struct sso_led *led, unsigned long *delay_on,
277 struct sso_led_priv *priv = led->priv;
308 struct sso_led *led;
311 led = cdev_to_sso_led_data(led_cdev);
312 priv = led->priv;
313 freq_idx = delay_to_freq_idx(led, delay_on, delay_off);
315 sso_led_freq_set(priv, led->desc.pin, freq_idx);
316 regmap_update_bits(priv->mmap, SSO_CON2, BIT(led->desc.pin),
317 1 << led->desc.pin);
318 led->desc.freq_idx = freq_idx;
319 led->desc.blink_rate = priv->freq[freq_idx];
320 led->desc.blinking = 1;
325 static void sso_led_hw_cfg(struct sso_led_priv *priv, struct sso_led *led)
327 struct sso_led_desc *desc = &led->desc;
345 gpiod_set_value(led->gpiod, 1);
348 static int sso_create_led(struct sso_led_priv *priv, struct sso_led *led,
351 struct sso_led_desc *desc = &led->desc;
359 led->cdev.default_trigger = desc->default_trigger;
360 led->cdev.brightness_set = sso_led_brightness_set;
361 led->cdev.brightness_get = sso_led_brightness_get;
362 led->cdev.brightness = desc->brightness;
363 led->cdev.max_brightness = LED_FULL;
366 led->cdev.flags |= LED_RETAIN_AT_SHUTDOWN;
368 led->cdev.flags |= LED_CORE_SUSPENDRESUME;
370 led->cdev.flags |= LED_PANIC_INDICATOR;
373 led->cdev.blink_set = sso_led_blink_set;
375 sso_led_hw_cfg(priv, led);
377 err = devm_led_classdev_register_ext(priv->dev, &led->cdev, &init_data);
381 list_add(&led->list, &priv->led_list);
602 static void sso_led_shutdown(struct sso_led *led)
604 struct sso_led_priv *priv = led->priv;
606 /* unregister led */
607 devm_led_classdev_unregister(priv->dev, &led->cdev);
610 if (led->desc.hw_trig)
611 regmap_update_bits(priv->mmap, SSO_CON3, BIT(led->desc.pin), 0);
613 led->priv = NULL;
622 struct sso_led *led;
628 led = devm_kzalloc(dev, sizeof(*led), GFP_KERNEL);
629 if (!led) {
634 INIT_LIST_HEAD(&led->list);
635 led->priv = priv;
636 desc = &led->desc;
638 led->gpiod = devm_fwnode_gpiod_get(dev, fwnode_child, NULL,
640 if (IS_ERR(led->gpiod)) {
641 ret = dev_err_probe(dev, PTR_ERR(led->gpiod), "led: get gpio fail!\n");
701 ret = sso_create_led(priv, led, fwnode_child);
711 list_for_each_entry(led, &priv->led_list, list)
712 sso_led_shutdown(led);
843 struct sso_led *led, *n;
847 list_for_each_entry_safe(led, n, &priv->led_list, list) {
848 list_del(&led->list);
849 sso_led_shutdown(led);