Lines Matching refs:vreg

153  * @vreg:		Pointer to the RPMh regulator
160 static int rpmh_regulator_send_request(struct rpmh_vreg *vreg,
165 if (wait_for_ack || vreg->always_wait_for_ack)
166 ret = rpmh_write(vreg->dev, RPMH_ACTIVE_ONLY_STATE, cmd, 1);
168 ret = rpmh_write_async(vreg->dev, RPMH_ACTIVE_ONLY_STATE, cmd,
177 struct rpmh_vreg *vreg = rdev_get_drvdata(rdev);
179 .addr = vreg->addr + RPMH_REGULATOR_REG_VRM_VOLTAGE,
187 ret = rpmh_regulator_send_request(vreg, &cmd, wait_for_ack);
189 vreg->voltage_selector = selector;
197 struct rpmh_vreg *vreg = rdev_get_drvdata(rdev);
199 if (vreg->enabled == -EINVAL) {
204 vreg->voltage_selector = selector;
209 selector > vreg->voltage_selector);
214 struct rpmh_vreg *vreg = rdev_get_drvdata(rdev);
216 return vreg->voltage_selector;
221 struct rpmh_vreg *vreg = rdev_get_drvdata(rdev);
223 return vreg->enabled;
229 struct rpmh_vreg *vreg = rdev_get_drvdata(rdev);
231 .addr = vreg->addr + RPMH_REGULATOR_REG_ENABLE,
236 if (vreg->enabled == -EINVAL &&
237 vreg->voltage_selector != -ENOTRECOVERABLE) {
239 vreg->voltage_selector, true);
244 ret = rpmh_regulator_send_request(vreg, &cmd, enable);
246 vreg->enabled = enable;
261 static int rpmh_regulator_vrm_set_mode_bypass(struct rpmh_vreg *vreg,
265 .addr = vreg->addr + RPMH_REGULATOR_REG_VRM_MODE,
272 pmic_mode = vreg->hw_data->pmic_mode_map[mode];
281 return rpmh_regulator_send_request(vreg, &cmd, true);
287 struct rpmh_vreg *vreg = rdev_get_drvdata(rdev);
290 if (mode == vreg->mode)
293 ret = rpmh_regulator_vrm_set_mode_bypass(vreg, mode, vreg->bypassed);
295 vreg->mode = mode;
302 struct rpmh_vreg *vreg = rdev_get_drvdata(rdev);
304 return vreg->mode;
322 struct rpmh_vreg *vreg = rdev_get_drvdata(rdev);
324 if (load_uA >= vreg->hw_data->hpm_min_load_uA)
333 struct rpmh_vreg *vreg = rdev_get_drvdata(rdev);
336 if (vreg->bypassed == enable)
339 ret = rpmh_regulator_vrm_set_mode_bypass(vreg, vreg->mode, enable);
341 vreg->bypassed = enable;
349 struct rpmh_vreg *vreg = rdev_get_drvdata(rdev);
351 *enable = vreg->bypassed;
400 * @vreg: Pointer to the individual rpmh-regulator resource
411 static int rpmh_regulator_init_vreg(struct rpmh_vreg *vreg, struct device *dev,
422 vreg->dev = dev;
436 vreg->addr = cmd_db_read_addr(rpmh_resource_name);
437 if (!vreg->addr) {
443 vreg->rdesc.name = rpmh_data->name;
444 vreg->rdesc.supply_name = rpmh_data->supply_name;
445 vreg->hw_data = rpmh_data->hw_data;
447 vreg->enabled = -EINVAL;
448 vreg->voltage_selector = -ENOTRECOVERABLE;
449 vreg->mode = REGULATOR_MODE_INVALID;
452 vreg->rdesc.linear_ranges = &rpmh_data->hw_data->voltage_range;
453 vreg->rdesc.n_linear_ranges = 1;
454 vreg->rdesc.n_voltages = rpmh_data->hw_data->n_voltages;
457 vreg->always_wait_for_ack = of_property_read_bool(node,
460 vreg->rdesc.owner = THIS_MODULE;
461 vreg->rdesc.type = REGULATOR_VOLTAGE;
462 vreg->rdesc.ops = vreg->hw_data->ops;
463 vreg->rdesc.of_map_mode = vreg->hw_data->of_map_mode;
465 init_data = of_get_regulator_init_data(dev, node, &vreg->rdesc);
472 vreg->rdesc.fixed_uV = init_data->constraints.min_uV;
473 vreg->rdesc.n_voltages = 1;
479 reg_config.driver_data = vreg;
481 rdev = devm_regulator_register(dev, &vreg->rdesc, &reg_config);
490 node, rpmh_resource_name, vreg->addr);
1405 struct rpmh_vreg *vreg;
1420 vreg = devm_kzalloc(dev, sizeof(*vreg), GFP_KERNEL);
1421 if (!vreg) {
1426 ret = rpmh_regulator_init_vreg(vreg, dev, node, pmic_id,