Lines Matching refs:vreg

189 static int rpm_reg_write(struct qcom_rpm_reg *vreg,  in rpm_reg_write()  argument
196 vreg->val[req->word] &= ~req->mask; in rpm_reg_write()
197 vreg->val[req->word] |= value << req->shift; in rpm_reg_write()
199 return qcom_rpm_write(vreg->rpm, in rpm_reg_write()
201 vreg->resource, in rpm_reg_write()
202 vreg->val, in rpm_reg_write()
203 vreg->parts->request_len); in rpm_reg_write()
209 struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev); in rpm_reg_set_mV_sel() local
210 const struct rpm_reg_parts *parts = vreg->parts; in rpm_reg_set_mV_sel()
222 mutex_lock(&vreg->lock); in rpm_reg_set_mV_sel()
223 if (vreg->is_enabled) in rpm_reg_set_mV_sel()
224 ret = rpm_reg_write(vreg, req, uV / 1000); in rpm_reg_set_mV_sel()
227 vreg->uV = uV; in rpm_reg_set_mV_sel()
228 mutex_unlock(&vreg->lock); in rpm_reg_set_mV_sel()
236 struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev); in rpm_reg_set_uV_sel() local
237 const struct rpm_reg_parts *parts = vreg->parts; in rpm_reg_set_uV_sel()
249 mutex_lock(&vreg->lock); in rpm_reg_set_uV_sel()
250 if (vreg->is_enabled) in rpm_reg_set_uV_sel()
251 ret = rpm_reg_write(vreg, req, uV); in rpm_reg_set_uV_sel()
254 vreg->uV = uV; in rpm_reg_set_uV_sel()
255 mutex_unlock(&vreg->lock); in rpm_reg_set_uV_sel()
262 struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev); in rpm_reg_get_voltage() local
264 return vreg->uV; in rpm_reg_get_voltage()
269 struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev); in rpm_reg_mV_enable() local
270 const struct rpm_reg_parts *parts = vreg->parts; in rpm_reg_mV_enable()
277 mutex_lock(&vreg->lock); in rpm_reg_mV_enable()
278 ret = rpm_reg_write(vreg, req, vreg->uV / 1000); in rpm_reg_mV_enable()
280 vreg->is_enabled = 1; in rpm_reg_mV_enable()
281 mutex_unlock(&vreg->lock); in rpm_reg_mV_enable()
288 struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev); in rpm_reg_uV_enable() local
289 const struct rpm_reg_parts *parts = vreg->parts; in rpm_reg_uV_enable()
296 mutex_lock(&vreg->lock); in rpm_reg_uV_enable()
297 ret = rpm_reg_write(vreg, req, vreg->uV); in rpm_reg_uV_enable()
299 vreg->is_enabled = 1; in rpm_reg_uV_enable()
300 mutex_unlock(&vreg->lock); in rpm_reg_uV_enable()
307 struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev); in rpm_reg_switch_enable() local
308 const struct rpm_reg_parts *parts = vreg->parts; in rpm_reg_switch_enable()
315 mutex_lock(&vreg->lock); in rpm_reg_switch_enable()
316 ret = rpm_reg_write(vreg, req, 1); in rpm_reg_switch_enable()
318 vreg->is_enabled = 1; in rpm_reg_switch_enable()
319 mutex_unlock(&vreg->lock); in rpm_reg_switch_enable()
326 struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev); in rpm_reg_mV_disable() local
327 const struct rpm_reg_parts *parts = vreg->parts; in rpm_reg_mV_disable()
334 mutex_lock(&vreg->lock); in rpm_reg_mV_disable()
335 ret = rpm_reg_write(vreg, req, 0); in rpm_reg_mV_disable()
337 vreg->is_enabled = 0; in rpm_reg_mV_disable()
338 mutex_unlock(&vreg->lock); in rpm_reg_mV_disable()
345 struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev); in rpm_reg_uV_disable() local
346 const struct rpm_reg_parts *parts = vreg->parts; in rpm_reg_uV_disable()
353 mutex_lock(&vreg->lock); in rpm_reg_uV_disable()
354 ret = rpm_reg_write(vreg, req, 0); in rpm_reg_uV_disable()
356 vreg->is_enabled = 0; in rpm_reg_uV_disable()
357 mutex_unlock(&vreg->lock); in rpm_reg_uV_disable()
364 struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev); in rpm_reg_switch_disable() local
365 const struct rpm_reg_parts *parts = vreg->parts; in rpm_reg_switch_disable()
372 mutex_lock(&vreg->lock); in rpm_reg_switch_disable()
373 ret = rpm_reg_write(vreg, req, 0); in rpm_reg_switch_disable()
375 vreg->is_enabled = 0; in rpm_reg_switch_disable()
376 mutex_unlock(&vreg->lock); in rpm_reg_switch_disable()
383 struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev); in rpm_reg_is_enabled() local
385 return vreg->is_enabled; in rpm_reg_is_enabled()
390 struct qcom_rpm_reg *vreg = rdev_get_drvdata(rdev); in rpm_reg_set_load() local
391 const struct rpm_reg_parts *parts = vreg->parts; in rpm_reg_set_load()
403 mutex_lock(&vreg->lock); in rpm_reg_set_load()
404 ret = rpm_reg_write(vreg, req, load_mA); in rpm_reg_set_load()
405 mutex_unlock(&vreg->lock); in rpm_reg_set_load()
630 static int rpm_reg_set(struct qcom_rpm_reg *vreg, in rpm_reg_set() argument
637 vreg->val[req->word] &= ~req->mask; in rpm_reg_set()
638 vreg->val[req->word] |= value << req->shift; in rpm_reg_set()
645 struct qcom_rpm_reg *vreg) in rpm_reg_of_parse_freq() argument
667 rpm_reg_set(vreg, &vreg->parts->freq, i + 1); in rpm_reg_of_parse_freq()
680 struct qcom_rpm_reg *vreg = config->driver_data; in rpm_reg_of_parse() local
690 ret = rpm_reg_set(vreg, &vreg->parts->pd, 1); in rpm_reg_of_parse()
697 if (vreg->parts->freq.mask) { in rpm_reg_of_parse()
698 ret = rpm_reg_of_parse_freq(dev, node, vreg); in rpm_reg_of_parse()
703 if (vreg->parts->pm.mask) { in rpm_reg_of_parse()
707 ret = rpm_reg_set(vreg, &vreg->parts->pm, pwm); in rpm_reg_of_parse()
714 if (vreg->parts->fm.mask) { in rpm_reg_of_parse()
741 if (FORCE_MODE_IS_2_BITS(vreg)) in rpm_reg_of_parse()
747 if (vreg->supports_force_mode_auto) in rpm_reg_of_parse()
751 if (vreg->supports_force_mode_bypass) in rpm_reg_of_parse()
761 ret = rpm_reg_set(vreg, &vreg->parts->fm, force_mode); in rpm_reg_of_parse()
943 struct qcom_rpm_reg *vreg; in rpm_reg_probe() local
959 vreg = devm_kmalloc(&pdev->dev, sizeof(*vreg), GFP_KERNEL); in rpm_reg_probe()
960 if (!vreg) in rpm_reg_probe()
963 memcpy(vreg, reg->template, sizeof(*vreg)); in rpm_reg_probe()
964 mutex_init(&vreg->lock); in rpm_reg_probe()
966 vreg->dev = &pdev->dev; in rpm_reg_probe()
967 vreg->resource = reg->resource; in rpm_reg_probe()
968 vreg->rpm = rpm; in rpm_reg_probe()
970 vreg->desc.id = -1; in rpm_reg_probe()
971 vreg->desc.owner = THIS_MODULE; in rpm_reg_probe()
972 vreg->desc.type = REGULATOR_VOLTAGE; in rpm_reg_probe()
973 vreg->desc.name = reg->name; in rpm_reg_probe()
974 vreg->desc.supply_name = reg->supply; in rpm_reg_probe()
975 vreg->desc.of_match = reg->name; in rpm_reg_probe()
976 vreg->desc.of_parse_cb = rpm_reg_of_parse; in rpm_reg_probe()
979 config.driver_data = vreg; in rpm_reg_probe()
980 rdev = devm_regulator_register(&pdev->dev, &vreg->desc, &config); in rpm_reg_probe()