Lines Matching +full:over +full:- +full:volt
1 // SPDX-License-Identifier: GPL-2.0-only
3 * sky81452-backlight.c SKY81452 backlight driver
40 #define SKY81452_DEFAULT_NAME "lcd-backlight"
44 * struct sky81452_bl_platform_data - backlight platform data
46 * If it is not defined, default name is lcd-backlight.
71 dev_get_platdata(bd->dev.parent); in sky81452_bl_update_status()
72 const unsigned int brightness = (unsigned int)bd->props.brightness; in sky81452_bl_update_status()
77 ret = regmap_write(regmap, SKY81452_REG0, brightness - 1); in sky81452_bl_update_status()
82 pdata->enable << CTZ(SKY81452_EN)); in sky81452_bl_update_status()
119 reg = !strcmp(attr->attr.name, "open") ? SKY81452_REG5 : SKY81452_REG4; in sky81452_bl_show_open_short()
155 strcat(buf, "over-current "); in sky81452_bl_show_fault()
158 strcat(buf, "over-temperature"); in sky81452_bl_show_fault()
185 struct device_node *np = dev->of_node; in sky81452_bl_parse_dt()
193 return ERR_PTR(-ENODATA); in sky81452_bl_parse_dt()
198 return ERR_PTR(-ENOMEM); in sky81452_bl_parse_dt()
200 of_property_read_string(np, "name", &pdata->name); in sky81452_bl_parse_dt()
201 pdata->ignore_pwm = of_property_read_bool(np, "skyworks,ignore-pwm"); in sky81452_bl_parse_dt()
202 pdata->dpwm_mode = of_property_read_bool(np, "skyworks,dpwm-mode"); in sky81452_bl_parse_dt()
203 pdata->phase_shift = of_property_read_bool(np, "skyworks,phase-shift"); in sky81452_bl_parse_dt()
204 pdata->gpiod_enable = devm_gpiod_get_optional(dev, NULL, GPIOD_OUT_HIGH); in sky81452_bl_parse_dt()
206 ret = of_property_count_u32_elems(np, "led-sources"); in sky81452_bl_parse_dt()
208 pdata->enable = SKY81452_EN >> CTZ(SKY81452_EN); in sky81452_bl_parse_dt()
214 ret = of_property_read_u32_array(np, "led-sources", sources, in sky81452_bl_parse_dt()
217 dev_err(dev, "led-sources node is invalid.\n"); in sky81452_bl_parse_dt()
218 return ERR_PTR(-EINVAL); in sky81452_bl_parse_dt()
221 pdata->enable = 0; in sky81452_bl_parse_dt()
222 while (--num_entry) in sky81452_bl_parse_dt()
223 pdata->enable |= (1 << sources[num_entry]); in sky81452_bl_parse_dt()
227 "skyworks,short-detection-threshold-volt", in sky81452_bl_parse_dt()
228 &pdata->short_detection_threshold); in sky81452_bl_parse_dt()
230 pdata->short_detection_threshold = 7; in sky81452_bl_parse_dt()
232 ret = of_property_read_u32(np, "skyworks,current-limit-mA", in sky81452_bl_parse_dt()
233 &pdata->boost_current_limit); in sky81452_bl_parse_dt()
235 pdata->boost_current_limit = 2750; in sky81452_bl_parse_dt()
243 return ERR_PTR(-EINVAL); in sky81452_bl_parse_dt()
252 value = pdata->ignore_pwm ? SKY81452_IGPW : 0; in sky81452_bl_init_device()
253 value |= pdata->dpwm_mode ? SKY81452_PWMMD : 0; in sky81452_bl_init_device()
254 value |= pdata->phase_shift ? 0 : SKY81452_PHASE; in sky81452_bl_init_device()
256 if (pdata->boost_current_limit == 2300) in sky81452_bl_init_device()
258 else if (pdata->boost_current_limit != 2750) in sky81452_bl_init_device()
259 return -EINVAL; in sky81452_bl_init_device()
261 if (pdata->short_detection_threshold < 4 || in sky81452_bl_init_device()
262 pdata->short_detection_threshold > 7) in sky81452_bl_init_device()
263 return -EINVAL; in sky81452_bl_init_device()
264 value |= (7 - pdata->short_detection_threshold) << CTZ(SKY81452_VSHRT); in sky81452_bl_init_device()
271 struct device *dev = &pdev->dev; in sky81452_bl_probe()
272 struct regmap *regmap = dev_get_drvdata(dev->parent); in sky81452_bl_probe()
291 name = pdata->name ? pdata->name : SKY81452_DEFAULT_NAME; in sky81452_bl_probe()
301 ret = sysfs_create_group(&bd->dev.kobj, &sky81452_bl_attr_group); in sky81452_bl_probe()
313 dev_get_platdata(&pdev->dev); in sky81452_bl_remove()
316 sysfs_remove_group(&bd->dev.kobj, &sky81452_bl_attr_group); in sky81452_bl_remove()
318 bd->props.power = BACKLIGHT_POWER_ON; in sky81452_bl_remove()
319 bd->props.brightness = 0; in sky81452_bl_remove()
322 if (pdata->gpiod_enable) in sky81452_bl_remove()
323 gpiod_set_value_cansleep(pdata->gpiod_enable, 0); in sky81452_bl_remove()
328 { .compatible = "skyworks,sky81452-backlight", },
336 .name = "sky81452-backlight",