Lines Matching refs:sreg
55 struct scmi_regulator *sreg = rdev_get_drvdata(rdev);
57 return voltage_ops->config_set(sreg->ph, sreg->id,
63 struct scmi_regulator *sreg = rdev_get_drvdata(rdev);
65 return voltage_ops->config_set(sreg->ph, sreg->id,
73 struct scmi_regulator *sreg = rdev_get_drvdata(rdev);
75 ret = voltage_ops->config_get(sreg->ph, sreg->id, &config);
77 dev_err(&sreg->sdev->dev,
79 ret, sreg->desc.name);
90 struct scmi_regulator *sreg = rdev_get_drvdata(rdev);
92 ret = voltage_ops->level_get(sreg->ph, sreg->id, &volt_uV);
96 return sreg->desc.ops->map_voltage(rdev, volt_uV, volt_uV);
103 struct scmi_regulator *sreg = rdev_get_drvdata(rdev);
105 volt_uV = sreg->desc.ops->list_voltage(rdev, selector);
109 return voltage_ops->level_set(sreg->ph, sreg->id, 0x0, volt_uV);
139 scmi_config_linear_regulator_mappings(struct scmi_regulator *sreg,
155 dev_err(&sreg->sdev->dev,
159 sreg->id);
165 sreg->desc.fixed_uV =
167 sreg->desc.n_voltages = 1;
168 sreg->desc.ops = &scmi_reg_fixed_ops;
171 sreg->desc.min_uV =
173 sreg->desc.uV_step =
175 sreg->desc.linear_min_sel = 0;
176 sreg->desc.n_voltages = (delta_uV / sreg->desc.uV_step) + 1;
177 sreg->desc.ops = &scmi_reg_linear_ops;
184 scmi_config_discrete_regulator_mappings(struct scmi_regulator *sreg,
188 sreg->desc.n_voltages = vinfo->num_levels;
190 if (sreg->desc.n_voltages > 1) {
191 sreg->desc.volt_table = (const unsigned int *)vinfo->levels_uv;
192 sreg->desc.ops = &scmi_reg_discrete_ops;
194 sreg->desc.fixed_uV = vinfo->levels_uv[0];
195 sreg->desc.ops = &scmi_reg_fixed_ops;
201 static int scmi_regulator_common_init(struct scmi_regulator *sreg)
204 struct device *dev = &sreg->sdev->dev;
207 vinfo = voltage_ops->info_get(sreg->ph, sreg->id);
210 sreg->id);
222 sreg->of_node->full_name);
226 sreg->desc.name = devm_kasprintf(dev, GFP_KERNEL, "%s", vinfo->name);
227 if (!sreg->desc.name)
230 sreg->desc.id = sreg->id;
231 sreg->desc.type = REGULATOR_VOLTAGE;
232 sreg->desc.owner = THIS_MODULE;
233 sreg->desc.of_match_full_name = true;
234 sreg->desc.of_match = sreg->of_node->full_name;
235 sreg->desc.regulators_node = "regulators";
237 ret = scmi_config_linear_regulator_mappings(sreg, vinfo);
239 ret = scmi_config_discrete_regulator_mappings(sreg, vinfo);
247 sreg->conf.dev = dev;
250 sreg->conf.driver_data = sreg;
359 struct scmi_regulator *sreg = rinfo->sregv[d];
362 if (!sreg)
365 ret = scmi_regulator_common_init(sreg);
370 sreg->rdev = devm_regulator_register(&sdev->dev, &sreg->desc,
371 &sreg->conf);
372 if (IS_ERR(sreg->rdev)) {
373 sreg->rdev = NULL;
379 sreg->desc.name, sreg->id);