Lines Matching refs:wled
90 struct pm8941_wled *wled; in pm8941_wled_set() local
96 wled = container_of(cdev, struct pm8941_wled, cdev); in pm8941_wled_set()
103 rc = regmap_update_bits(wled->regmap, in pm8941_wled_set()
104 wled->addr + PM8941_WLED_REG_MOD_EN, in pm8941_wled_set()
109 for (i = 0; i < wled->cfg.num_strings; ++i) { in pm8941_wled_set()
112 rc = regmap_bulk_write(wled->regmap, in pm8941_wled_set()
113 wled->addr + PM8941_WLED_REG_VAL_BASE + 2 * i, in pm8941_wled_set()
119 rc = regmap_update_bits(wled->regmap, in pm8941_wled_set()
120 wled->addr + PM8941_WLED_REG_SYNC, in pm8941_wled_set()
125 rc = regmap_update_bits(wled->regmap, in pm8941_wled_set()
126 wled->addr + PM8941_WLED_REG_SYNC, in pm8941_wled_set()
141 static int pm8941_wled_setup(struct pm8941_wled *wled) in pm8941_wled_setup() argument
146 rc = regmap_update_bits(wled->regmap, in pm8941_wled_setup()
147 wled->addr + PM8941_WLED_REG_OVP, in pm8941_wled_setup()
148 PM8941_WLED_REG_OVP_MASK, wled->cfg.ovp); in pm8941_wled_setup()
152 rc = regmap_update_bits(wled->regmap, in pm8941_wled_setup()
153 wled->addr + PM8941_WLED_REG_BOOST, in pm8941_wled_setup()
154 PM8941_WLED_REG_BOOST_MASK, wled->cfg.i_boost_limit); in pm8941_wled_setup()
158 rc = regmap_update_bits(wled->regmap, in pm8941_wled_setup()
159 wled->addr + PM8941_WLED_REG_FREQ, in pm8941_wled_setup()
160 PM8941_WLED_REG_FREQ_MASK, wled->cfg.switch_freq); in pm8941_wled_setup()
164 if (wled->cfg.cs_out_en) { in pm8941_wled_setup()
165 u8 all = (BIT(wled->cfg.num_strings) - 1) in pm8941_wled_setup()
168 rc = regmap_update_bits(wled->regmap, in pm8941_wled_setup()
169 wled->addr + PM8941_WLED_REG_SINK, in pm8941_wled_setup()
175 for (i = 0; i < wled->cfg.num_strings; ++i) { in pm8941_wled_setup()
176 u16 addr = wled->addr + PM8941_WLED_REG_STR_OFFSET * i; in pm8941_wled_setup()
178 rc = regmap_update_bits(wled->regmap, in pm8941_wled_setup()
185 if (wled->cfg.ext_gen) { in pm8941_wled_setup()
186 rc = regmap_update_bits(wled->regmap, in pm8941_wled_setup()
194 rc = regmap_update_bits(wled->regmap, in pm8941_wled_setup()
197 wled->cfg.i_limit); in pm8941_wled_setup()
201 rc = regmap_update_bits(wled->regmap, in pm8941_wled_setup()
204 wled->cfg.cabc_en ? in pm8941_wled_setup()
283 static int pm8941_wled_configure(struct pm8941_wled *wled, struct device *dev) in pm8941_wled_configure() argument
285 struct pm8941_wled_config *cfg = &wled->cfg; in pm8941_wled_configure()
337 wled->addr = val; in pm8941_wled_configure()
339 rc = of_property_read_string(dev->of_node, "label", &wled->cdev.name); in pm8941_wled_configure()
341 wled->cdev.name = dev->of_node->name; in pm8941_wled_configure()
343 wled->cdev.default_trigger = of_get_property(dev->of_node, in pm8941_wled_configure()
382 struct pm8941_wled *wled; in pm8941_wled_probe() local
392 wled = devm_kzalloc(&pdev->dev, sizeof(*wled), GFP_KERNEL); in pm8941_wled_probe()
393 if (!wled) in pm8941_wled_probe()
396 wled->regmap = regmap; in pm8941_wled_probe()
398 rc = pm8941_wled_configure(wled, &pdev->dev); in pm8941_wled_probe()
402 rc = pm8941_wled_setup(wled); in pm8941_wled_probe()
406 wled->cdev.brightness_set = pm8941_wled_set_brightness; in pm8941_wled_probe()
408 rc = devm_led_classdev_register(&pdev->dev, &wled->cdev); in pm8941_wled_probe()
412 platform_set_drvdata(pdev, wled); in pm8941_wled_probe()