Lines Matching refs:drvdata
190 static int lm3530_led_enable(struct lm3530_data *drvdata) in lm3530_led_enable() argument
194 if (drvdata->enable) in lm3530_led_enable()
197 ret = regulator_enable(drvdata->regulator); in lm3530_led_enable()
199 dev_err(drvdata->led_dev.dev, "Failed to enable vin:%d\n", ret); in lm3530_led_enable()
203 drvdata->enable = true; in lm3530_led_enable()
207 static void lm3530_led_disable(struct lm3530_data *drvdata) in lm3530_led_disable() argument
211 if (!drvdata->enable) in lm3530_led_disable()
214 ret = regulator_disable(drvdata->regulator); in lm3530_led_disable()
216 dev_err(drvdata->led_dev.dev, "Failed to disable vin:%d\n", in lm3530_led_disable()
221 drvdata->enable = false; in lm3530_led_disable()
224 static int lm3530_init_registers(struct lm3530_data *drvdata) in lm3530_init_registers() argument
232 struct lm3530_platform_data *pdata = drvdata->pdata; in lm3530_init_registers()
233 struct i2c_client *client = drvdata->client; in lm3530_init_registers()
242 switch (drvdata->mode) { in lm3530_init_registers()
259 if (drvdata->brightness) in lm3530_init_registers()
260 brightness = drvdata->brightness; in lm3530_init_registers()
262 brightness = drvdata->brightness = pdata->brt_val; in lm3530_init_registers()
264 if (brightness > drvdata->led_dev.max_brightness) in lm3530_init_registers()
265 brightness = drvdata->led_dev.max_brightness; in lm3530_init_registers()
282 ret = lm3530_led_enable(drvdata); in lm3530_init_registers()
289 drvdata->mode == LM3530_BL_MODE_PWM) { in lm3530_init_registers()
292 drvdata->led_dev.max_brightness); in lm3530_init_registers()
309 struct lm3530_data *drvdata = in lm3530_brightness_set() local
311 struct lm3530_platform_data *pdata = drvdata->pdata; in lm3530_brightness_set()
315 switch (drvdata->mode) { in lm3530_brightness_set()
318 if (!drvdata->enable) { in lm3530_brightness_set()
319 err = lm3530_init_registers(drvdata); in lm3530_brightness_set()
321 dev_err(&drvdata->client->dev, in lm3530_brightness_set()
328 err = i2c_smbus_write_byte_data(drvdata->client, in lm3530_brightness_set()
331 dev_err(&drvdata->client->dev, in lm3530_brightness_set()
334 drvdata->brightness = brt_val; in lm3530_brightness_set()
337 lm3530_led_disable(drvdata); in lm3530_brightness_set()
354 struct lm3530_data *drvdata; in lm3530_mode_get() local
357 drvdata = container_of(led_cdev, struct lm3530_data, led_dev); in lm3530_mode_get()
359 if (drvdata->mode == mode_map[i].mode_val) in lm3530_mode_get()
373 struct lm3530_data *drvdata; in lm3530_mode_set() local
378 drvdata = container_of(led_cdev, struct lm3530_data, led_dev); in lm3530_mode_set()
379 pwm = &drvdata->pdata->pwm_data; in lm3530_mode_set()
387 drvdata->mode = mode; in lm3530_mode_set()
393 err = lm3530_init_registers(drvdata); in lm3530_mode_set()
399 return sizeof(drvdata->mode); in lm3530_mode_set()
413 struct lm3530_data *drvdata; in lm3530_probe() local
432 drvdata = devm_kzalloc(&client->dev, sizeof(struct lm3530_data), in lm3530_probe()
434 if (drvdata == NULL) in lm3530_probe()
437 drvdata->mode = pdata->mode; in lm3530_probe()
438 drvdata->client = client; in lm3530_probe()
439 drvdata->pdata = pdata; in lm3530_probe()
440 drvdata->brightness = LED_OFF; in lm3530_probe()
441 drvdata->enable = false; in lm3530_probe()
442 drvdata->led_dev.name = LM3530_LED_DEV; in lm3530_probe()
443 drvdata->led_dev.brightness_set = lm3530_brightness_set; in lm3530_probe()
444 drvdata->led_dev.max_brightness = MAX_BRIGHTNESS; in lm3530_probe()
445 drvdata->led_dev.groups = lm3530_groups; in lm3530_probe()
447 i2c_set_clientdata(client, drvdata); in lm3530_probe()
449 drvdata->regulator = devm_regulator_get(&client->dev, "vin"); in lm3530_probe()
450 if (IS_ERR(drvdata->regulator)) { in lm3530_probe()
452 err = PTR_ERR(drvdata->regulator); in lm3530_probe()
453 drvdata->regulator = NULL; in lm3530_probe()
457 if (drvdata->pdata->brt_val) { in lm3530_probe()
458 err = lm3530_init_registers(drvdata); in lm3530_probe()
465 err = led_classdev_register(&client->dev, &drvdata->led_dev); in lm3530_probe()
476 struct lm3530_data *drvdata = i2c_get_clientdata(client); in lm3530_remove() local
478 lm3530_led_disable(drvdata); in lm3530_remove()
479 led_classdev_unregister(&drvdata->led_dev); in lm3530_remove()