Lines Matching refs:vreg
197 static int rpm_reg_write(struct qcom_rpm_reg *vreg, in rpm_reg_write() argument
204 vreg->val[req->word] &= ~req->mask; in rpm_reg_write()
205 vreg->val[req->word] |= value << req->shift; in rpm_reg_write()
207 return qcom_rpm_write(vreg->rpm, in rpm_reg_write()
209 vreg->resource, in rpm_reg_write()
210 vreg->val, in rpm_reg_write()
211 vreg->parts->request_len); in rpm_reg_write()
217 struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev); in rpm_reg_set_mV_sel() local
218 const struct rpm_reg_parts *parts = vreg->parts; in rpm_reg_set_mV_sel()
230 mutex_lock(&vreg->lock); in rpm_reg_set_mV_sel()
231 if (vreg->is_enabled) in rpm_reg_set_mV_sel()
232 ret = rpm_reg_write(vreg, req, uV / 1000); in rpm_reg_set_mV_sel()
235 vreg->uV = uV; in rpm_reg_set_mV_sel()
236 mutex_unlock(&vreg->lock); in rpm_reg_set_mV_sel()
244 struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev); in rpm_reg_set_uV_sel() local
245 const struct rpm_reg_parts *parts = vreg->parts; in rpm_reg_set_uV_sel()
257 mutex_lock(&vreg->lock); in rpm_reg_set_uV_sel()
258 if (vreg->is_enabled) in rpm_reg_set_uV_sel()
259 ret = rpm_reg_write(vreg, req, uV); in rpm_reg_set_uV_sel()
262 vreg->uV = uV; in rpm_reg_set_uV_sel()
263 mutex_unlock(&vreg->lock); in rpm_reg_set_uV_sel()
270 struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev); in rpm_reg_get_voltage() local
272 return vreg->uV; in rpm_reg_get_voltage()
277 struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev); in rpm_reg_mV_enable() local
278 const struct rpm_reg_parts *parts = vreg->parts; in rpm_reg_mV_enable()
285 mutex_lock(&vreg->lock); in rpm_reg_mV_enable()
286 ret = rpm_reg_write(vreg, req, vreg->uV / 1000); in rpm_reg_mV_enable()
288 vreg->is_enabled = 1; in rpm_reg_mV_enable()
289 mutex_unlock(&vreg->lock); in rpm_reg_mV_enable()
296 struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev); in rpm_reg_uV_enable() local
297 const struct rpm_reg_parts *parts = vreg->parts; in rpm_reg_uV_enable()
304 mutex_lock(&vreg->lock); in rpm_reg_uV_enable()
305 ret = rpm_reg_write(vreg, req, vreg->uV); in rpm_reg_uV_enable()
307 vreg->is_enabled = 1; in rpm_reg_uV_enable()
308 mutex_unlock(&vreg->lock); in rpm_reg_uV_enable()
315 struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev); in rpm_reg_switch_enable() local
316 const struct rpm_reg_parts *parts = vreg->parts; in rpm_reg_switch_enable()
323 mutex_lock(&vreg->lock); in rpm_reg_switch_enable()
324 ret = rpm_reg_write(vreg, req, 1); in rpm_reg_switch_enable()
326 vreg->is_enabled = 1; in rpm_reg_switch_enable()
327 mutex_unlock(&vreg->lock); in rpm_reg_switch_enable()
334 struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev); in rpm_reg_mV_disable() local
335 const struct rpm_reg_parts *parts = vreg->parts; in rpm_reg_mV_disable()
342 mutex_lock(&vreg->lock); in rpm_reg_mV_disable()
343 ret = rpm_reg_write(vreg, req, 0); in rpm_reg_mV_disable()
345 vreg->is_enabled = 0; in rpm_reg_mV_disable()
346 mutex_unlock(&vreg->lock); in rpm_reg_mV_disable()
353 struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev); in rpm_reg_uV_disable() local
354 const struct rpm_reg_parts *parts = vreg->parts; in rpm_reg_uV_disable()
361 mutex_lock(&vreg->lock); in rpm_reg_uV_disable()
362 ret = rpm_reg_write(vreg, req, 0); in rpm_reg_uV_disable()
364 vreg->is_enabled = 0; in rpm_reg_uV_disable()
365 mutex_unlock(&vreg->lock); in rpm_reg_uV_disable()
372 struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev); in rpm_reg_switch_disable() local
373 const struct rpm_reg_parts *parts = vreg->parts; in rpm_reg_switch_disable()
380 mutex_lock(&vreg->lock); in rpm_reg_switch_disable()
381 ret = rpm_reg_write(vreg, req, 0); in rpm_reg_switch_disable()
383 vreg->is_enabled = 0; in rpm_reg_switch_disable()
384 mutex_unlock(&vreg->lock); in rpm_reg_switch_disable()
391 struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev); in rpm_reg_is_enabled() local
393 return vreg->is_enabled; in rpm_reg_is_enabled()
398 struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev); in rpm_reg_set_load() local
399 const struct rpm_reg_parts *parts = vreg->parts; in rpm_reg_set_load()
411 mutex_lock(&vreg->lock); in rpm_reg_set_load()
412 ret = rpm_reg_write(vreg, req, load_mA); in rpm_reg_set_load()
413 mutex_unlock(&vreg->lock); in rpm_reg_set_load()
610 static int rpm_reg_set(struct qcom_rpm_reg *vreg, in rpm_reg_set() argument
617 vreg->val[req->word] &= ~req->mask; in rpm_reg_set()
618 vreg->val[req->word] |= value << req->shift; in rpm_reg_set()
625 struct qcom_rpm_reg *vreg) in rpm_reg_of_parse_freq() argument
647 rpm_reg_set(vreg, &vreg->parts->freq, i + 1); in rpm_reg_of_parse_freq()
660 struct qcom_rpm_reg *vreg = config->driver_data; in rpm_reg_of_parse() local
670 ret = rpm_reg_set(vreg, &vreg->parts->pd, 1); in rpm_reg_of_parse()
677 if (vreg->parts->freq.mask) { in rpm_reg_of_parse()
678 ret = rpm_reg_of_parse_freq(dev, node, vreg); in rpm_reg_of_parse()
683 if (vreg->parts->pm.mask) { in rpm_reg_of_parse()
687 ret = rpm_reg_set(vreg, &vreg->parts->pm, pwm); in rpm_reg_of_parse()
694 if (vreg->parts->fm.mask) { in rpm_reg_of_parse()
721 if (FORCE_MODE_IS_2_BITS(vreg)) in rpm_reg_of_parse()
727 if (vreg->supports_force_mode_auto) in rpm_reg_of_parse()
731 if (vreg->supports_force_mode_bypass) in rpm_reg_of_parse()
741 ret = rpm_reg_set(vreg, &vreg->parts->fm, force_mode); in rpm_reg_of_parse()
886 struct qcom_rpm_reg *vreg; in rpm_reg_probe() local
897 vreg = devm_kmalloc(&pdev->dev, sizeof(*vreg), GFP_KERNEL); in rpm_reg_probe()
898 if (!vreg) in rpm_reg_probe()
901 memcpy(vreg, reg->template, sizeof(*vreg)); in rpm_reg_probe()
902 mutex_init(&vreg->lock); in rpm_reg_probe()
904 vreg->dev = &pdev->dev; in rpm_reg_probe()
905 vreg->resource = reg->resource; in rpm_reg_probe()
906 vreg->rpm = rpm; in rpm_reg_probe()
908 vreg->desc.id = -1; in rpm_reg_probe()
909 vreg->desc.owner = THIS_MODULE; in rpm_reg_probe()
910 vreg->desc.type = REGULATOR_VOLTAGE; in rpm_reg_probe()
911 vreg->desc.name = reg->name; in rpm_reg_probe()
912 vreg->desc.supply_name = reg->supply; in rpm_reg_probe()
913 vreg->desc.of_match = reg->name; in rpm_reg_probe()
914 vreg->desc.of_parse_cb = rpm_reg_of_parse; in rpm_reg_probe()
917 config.driver_data = vreg; in rpm_reg_probe()
918 rdev = devm_regulator_register(&pdev->dev, &vreg->desc, &config); in rpm_reg_probe()