Lines Matching +full:bled +full:- +full:ovp +full:- +full:sel
1 // SPDX-License-Identifier: GPL-2.0-only
3 #include <dt-bindings/leds/rt4831-backlight.h>
42 v[0] = (brightness - 1) & RT4831_BLDIML_MASK; in rt4831_bl_update_status()
43 v[1] = ((brightness - 1) & RT4831_BLDIMH_MASK) >> RT4831_BLDIMH_SHIFT; in rt4831_bl_update_status()
45 ret = regmap_raw_write(priv->regmap, RT4831_REG_BLDIML, v, sizeof(v)); in rt4831_bl_update_status()
50 return regmap_update_bits(priv->regmap, RT4831_REG_ENABLE, RT4831_BLEN_MASK, enable); in rt4831_bl_update_status()
61 ret = regmap_read(priv->regmap, RT4831_REG_ENABLE, &val); in rt4831_bl_get_brightness()
68 ret = regmap_raw_read(priv->regmap, RT4831_REG_BLDIML, v, sizeof(v)); in rt4831_bl_get_brightness()
86 struct device *dev = priv->dev; in rt4831_parse_backlight_properties()
93 ret = device_property_read_u32(dev, "max-brightness", &brightness); in rt4831_parse_backlight_properties()
97 bl_props->max_brightness = min_t(u32, brightness, RT4831_BLMAX_BRIGHTNESS); in rt4831_parse_backlight_properties()
99 ret = device_property_read_u32(dev, "default-brightness", &brightness); in rt4831_parse_backlight_properties()
101 brightness = bl_props->max_brightness; in rt4831_parse_backlight_properties()
103 bl_props->brightness = min_t(u32, brightness, bl_props->max_brightness); in rt4831_parse_backlight_properties()
106 if (device_property_read_bool(dev, "richtek,pwm-enable")) in rt4831_parse_backlight_properties()
109 ret = regmap_update_bits(priv->regmap, RT4831_REG_BLCFG, RT4831_BLPWMEN_MASK, val); in rt4831_parse_backlight_properties()
113 ret = device_property_read_u8(dev, "richtek,bled-ovp-sel", &propval); in rt4831_parse_backlight_properties()
118 ret = regmap_update_bits(priv->regmap, RT4831_REG_BLCFG, RT4831_BLOVP_MASK, in rt4831_parse_backlight_properties()
123 ret = device_property_read_u8(dev, "richtek,channel-use", &propval); in rt4831_parse_backlight_properties()
125 dev_err(dev, "richtek,channel-use DT property missing\n"); in rt4831_parse_backlight_properties()
131 return -EINVAL; in rt4831_parse_backlight_properties()
134 return regmap_update_bits(priv->regmap, RT4831_REG_ENABLE, RT4831_BLCH_MASK, propval); in rt4831_parse_backlight_properties()
144 priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); in rt4831_bl_probe()
146 return -ENOMEM; in rt4831_bl_probe()
148 priv->dev = &pdev->dev; in rt4831_bl_probe()
150 priv->regmap = dev_get_regmap(pdev->dev.parent, NULL); in rt4831_bl_probe()
151 if (!priv->regmap) { in rt4831_bl_probe()
152 dev_err(&pdev->dev, "Failed to init regmap\n"); in rt4831_bl_probe()
153 return -ENODEV; in rt4831_bl_probe()
158 dev_err(&pdev->dev, "Failed to parse backlight properties\n"); in rt4831_bl_probe()
162 priv->bl = devm_backlight_device_register(&pdev->dev, pdev->name, &pdev->dev, priv, in rt4831_bl_probe()
164 if (IS_ERR(priv->bl)) { in rt4831_bl_probe()
165 dev_err(&pdev->dev, "Failed to register backlight\n"); in rt4831_bl_probe()
166 return PTR_ERR(priv->bl); in rt4831_bl_probe()
169 backlight_update_status(priv->bl); in rt4831_bl_probe()
178 struct backlight_device *bl_dev = priv->bl; in rt4831_bl_remove()
180 bl_dev->props.brightness = 0; in rt4831_bl_remove()
181 backlight_update_status(priv->bl); in rt4831_bl_remove()
187 { .compatible = "richtek,rt4831-backlight", },
194 .name = "rt4831-backlight",