Lines Matching refs:rt
66 static void rt8515_gpio_led_off(struct rt8515 *rt)
68 gpiod_set_value(rt->enable_flash, 0);
69 gpiod_set_value(rt->enable_torch, 0);
94 struct rt8515 *rt = to_rt8515(fled);
96 mutex_lock(&rt->lock);
100 rt8515_gpio_led_off(rt);
103 rt8515_gpio_brightness_commit(rt->enable_torch, brightness);
106 gpiod_set_value(rt->enable_torch, 1);
109 mutex_unlock(&rt->lock);
117 struct rt8515 *rt = to_rt8515(fled);
119 int brightness = rt->flash_max_intensity;
121 mutex_lock(&rt->lock);
125 rt8515_gpio_brightness_commit(rt->enable_flash, brightness);
127 mod_timer(&rt->powerdown_timer,
130 del_timer_sync(&rt->powerdown_timer);
132 rt8515_gpio_led_off(rt);
138 mutex_unlock(&rt->lock);
146 struct rt8515 *rt = to_rt8515(fled);
148 *state = timer_pending(&rt->powerdown_timer);
168 struct rt8515 *rt = from_timer(rt, t, powerdown_timer);
171 rt8515_gpio_led_off(rt);
174 static void rt8515_init_flash_timeout(struct rt8515 *rt)
176 struct led_classdev_flash *fled = &rt->fled;
182 s->max = rt->max_timeout;
188 s->val = min(rt->max_timeout, RT8515_TIMEOUT_US);
193 static void rt8515_init_v4l2_flash_config(struct rt8515 *rt,
196 struct led_classdev *led = &rt->fled.led_cdev;
209 s->max = rt->flash_max_intensity;
214 static void rt8515_v4l2_flash_release(struct rt8515 *rt)
216 v4l2_flash_release(rt->v4l2_flash);
220 static void rt8515_init_v4l2_flash_config(struct rt8515 *rt,
225 static void rt8515_v4l2_flash_release(struct rt8515 *rt)
230 static void rt8515_determine_max_intensity(struct rt8515 *rt,
242 fwnode_property_read_u32(rt->dev->fwnode, resistance, &res);
247 dev_err(rt->dev,
266 dev_info(rt->dev,
271 dev_info(rt->dev, "max intensity %d/%d = %d mA\n",
280 struct rt8515 *rt;
287 rt = devm_kzalloc(dev, sizeof(*rt), GFP_KERNEL);
288 if (!rt)
291 rt->dev = dev;
292 fled = &rt->fled;
296 rt->enable_flash = devm_gpiod_get(dev, "enf", GPIOD_OUT_LOW);
297 if (IS_ERR(rt->enable_flash))
298 return dev_err_probe(dev, PTR_ERR(rt->enable_flash),
302 rt->enable_torch = devm_gpiod_get(dev, "ent", GPIOD_OUT_LOW);
303 if (IS_ERR(rt->enable_torch))
304 return dev_err_probe(dev, PTR_ERR(rt->enable_torch),
315 rt8515_determine_max_intensity(rt, child, "richtek,rfs-ohms",
318 &rt->flash_max_intensity);
319 rt8515_determine_max_intensity(rt, child, "richtek,rts-ohms",
322 &rt->torch_max_intensity);
325 &rt->max_timeout);
327 rt->max_timeout = RT8515_MAX_TIMEOUT_US;
331 timer_setup(&rt->powerdown_timer, rt8515_powerdown_timer, 0);
332 rt8515_init_flash_timeout(rt);
336 led->max_brightness = rt->torch_max_intensity;
340 mutex_init(&rt->lock);
342 platform_set_drvdata(pdev, rt);
347 mutex_destroy(&rt->lock);
352 rt8515_init_v4l2_flash_config(rt, &v4l2_sd_cfg);
355 rt->v4l2_flash = v4l2_flash_init(dev, child, fled, NULL, &v4l2_sd_cfg);
356 if (IS_ERR(rt->v4l2_flash)) {
357 ret = PTR_ERR(rt->v4l2_flash);
372 struct rt8515 *rt = platform_get_drvdata(pdev);
374 rt8515_v4l2_flash_release(rt);
375 del_timer_sync(&rt->powerdown_timer);
376 mutex_destroy(&rt->lock);