Lines Matching defs:led
85 static int el15203000_cmd(struct el15203000_led *led, u8 brightness)
91 mutex_lock(&led->priv->lock);
93 dev_dbg(led->priv->dev, "Set brightness of 0x%02x(%c) to 0x%02x(%c)",
94 led->reg, led->reg, brightness, brightness);
97 if (time_after(led->priv->delay, jiffies)) {
98 dev_dbg(led->priv->dev, "Wait %luus to sync",
105 cmd[0] = led->reg;
113 ret = spi_write(led->priv->spi, &cmd[i], sizeof(cmd[i]));
115 dev_err(led->priv->dev,
121 led->priv->delay = jiffies + usecs_to_jiffies(EL_FW_DELAY_USEC);
123 mutex_unlock(&led->priv->lock);
131 struct el15203000_led *led = container_of(ldev,
135 return el15203000_cmd(led, brightness == LED_OFF ? EL_OFF : EL_ON);
142 struct el15203000_led *led = container_of(ldev,
151 dev_dbg(led->priv->dev, "Breathing mode for 0x%02x(%c)",
152 led->reg, led->reg);
154 return el15203000_cmd(led, EL_SCREEN_BREATHING);
196 struct el15203000_led *led = container_of(ldev,
204 dev_dbg(led->priv->dev, "Cascade mode for 0x%02x(%c)",
205 led->reg, led->reg);
209 dev_dbg(led->priv->dev, "Inverse cascade mode for 0x%02x(%c)",
210 led->reg, led->reg);
214 dev_dbg(led->priv->dev, "Bounce mode for 0x%02x(%c)",
215 led->reg, led->reg);
219 dev_dbg(led->priv->dev, "Inverse bounce mode for 0x%02x(%c)",
220 led->reg, led->reg);
224 dev_err(led->priv->dev, "Invalid hw_pattern for 0x%02x(%c)!",
225 led->reg, led->reg);
230 return el15203000_cmd(led, cmd);
235 struct el15203000_led *led = container_of(ldev,
239 return el15203000_cmd(led, EL_OFF);
244 struct el15203000_led *led = priv->leds;
251 ret = fwnode_property_read_u32(child, "reg", &led->reg);
259 if (led->reg > U8_MAX) {
260 dev_err(priv->dev, "LED value %d is invalid", led->reg);
266 led->priv = priv;
267 led->ldev.max_brightness = LED_ON;
268 led->ldev.brightness_set_blocking = el15203000_set_blocking;
270 if (led->reg == 'S') {
271 led->ldev.pattern_set = el15203000_pattern_set_S;
272 led->ldev.pattern_clear = el15203000_pattern_clear;
273 } else if (led->reg == 'P') {
274 led->ldev.pattern_set = el15203000_pattern_set_P;
275 led->ldev.pattern_clear = el15203000_pattern_clear;
279 ret = devm_led_classdev_register_ext(priv->dev, &led->ldev,
284 led->ldev.name, ret);
290 led++;