Lines Matching defs:vreg
154 * @vreg: Pointer to the RPMh regulator
161 static int rpmh_regulator_send_request(struct rpmh_vreg *vreg,
166 if (wait_for_ack || vreg->always_wait_for_ack)
167 ret = rpmh_write(vreg->dev, RPMH_ACTIVE_ONLY_STATE, cmd, 1);
169 ret = rpmh_write_async(vreg->dev, RPMH_ACTIVE_ONLY_STATE, cmd,
178 struct rpmh_vreg *vreg = rdev_get_drvdata(rdev);
180 .addr = vreg->addr + RPMH_REGULATOR_REG_VRM_VOLTAGE,
188 ret = rpmh_regulator_send_request(vreg, &cmd, wait_for_ack);
190 vreg->voltage_selector = selector;
198 struct rpmh_vreg *vreg = rdev_get_drvdata(rdev);
200 if (vreg->enabled == -EINVAL) {
205 vreg->voltage_selector = selector;
210 selector > vreg->voltage_selector);
215 struct rpmh_vreg *vreg = rdev_get_drvdata(rdev);
217 return vreg->voltage_selector;
222 struct rpmh_vreg *vreg = rdev_get_drvdata(rdev);
224 return vreg->enabled;
230 struct rpmh_vreg *vreg = rdev_get_drvdata(rdev);
232 .addr = vreg->addr + RPMH_REGULATOR_REG_ENABLE,
237 if (vreg->enabled == -EINVAL &&
238 vreg->voltage_selector != -ENOTRECOVERABLE) {
240 vreg->voltage_selector, true);
245 ret = rpmh_regulator_send_request(vreg, &cmd, enable);
247 vreg->enabled = enable;
262 static int rpmh_regulator_vrm_set_mode_bypass(struct rpmh_vreg *vreg,
266 .addr = vreg->addr + RPMH_REGULATOR_REG_VRM_MODE,
273 pmic_mode = vreg->hw_data->pmic_mode_map[mode];
282 return rpmh_regulator_send_request(vreg, &cmd, true);
288 struct rpmh_vreg *vreg = rdev_get_drvdata(rdev);
291 if (mode == vreg->mode)
294 ret = rpmh_regulator_vrm_set_mode_bypass(vreg, mode, vreg->bypassed);
296 vreg->mode = mode;
303 struct rpmh_vreg *vreg = rdev_get_drvdata(rdev);
305 return vreg->mode;
321 struct rpmh_vreg *vreg = rdev_get_drvdata(rdev);
324 if (load_uA >= vreg->hw_data->hpm_min_load_uA)
335 struct rpmh_vreg *vreg = rdev_get_drvdata(rdev);
338 if (vreg->bypassed == enable)
341 ret = rpmh_regulator_vrm_set_mode_bypass(vreg, vreg->mode, enable);
343 vreg->bypassed = enable;
351 struct rpmh_vreg *vreg = rdev_get_drvdata(rdev);
353 *enable = vreg->bypassed;
402 * @vreg: Pointer to the individual rpmh-regulator resource
413 static int rpmh_regulator_init_vreg(struct rpmh_vreg *vreg, struct device *dev,
424 vreg->dev = dev;
438 vreg->addr = cmd_db_read_addr(rpmh_resource_name);
439 if (!vreg->addr) {
445 vreg->rdesc.name = rpmh_data->name;
446 vreg->rdesc.supply_name = rpmh_data->supply_name;
447 vreg->hw_data = rpmh_data->hw_data;
449 vreg->enabled = -EINVAL;
450 vreg->voltage_selector = -ENOTRECOVERABLE;
451 vreg->mode = REGULATOR_MODE_INVALID;
454 vreg->rdesc.linear_ranges = &rpmh_data->hw_data->voltage_range;
455 vreg->rdesc.n_linear_ranges = 1;
456 vreg->rdesc.n_voltages = rpmh_data->hw_data->n_voltages;
459 vreg->always_wait_for_ack = of_property_read_bool(node,
462 vreg->rdesc.owner = THIS_MODULE;
463 vreg->rdesc.type = REGULATOR_VOLTAGE;
464 vreg->rdesc.ops = vreg->hw_data->ops;
465 vreg->rdesc.of_map_mode = vreg->hw_data->of_map_mode;
467 init_data = of_get_regulator_init_data(dev, node, &vreg->rdesc);
474 vreg->rdesc.fixed_uV = init_data->constraints.min_uV;
475 vreg->rdesc.n_voltages = 1;
481 reg_config.driver_data = vreg;
483 rdev = devm_regulator_register(dev, &vreg->rdesc, ®_config);
492 node, rpmh_resource_name, vreg->addr);
960 struct rpmh_vreg *vreg;
975 vreg = devm_kzalloc(dev, sizeof(*vreg), GFP_KERNEL);
976 if (!vreg) {
981 ret = rpmh_regulator_init_vreg(vreg, dev, node, pmic_id,