Lines Matching refs:di

114 	struct fan53555_device_info *di = rdev_get_drvdata(rdev);
117 if (di->sleep_vol_cache == uV)
122 ret = regmap_update_bits(rdev->regmap, di->sleep_reg,
123 di->desc.vsel_mask, ret);
128 di->sleep_vol_cache = uV;
135 struct fan53555_device_info *di = rdev_get_drvdata(rdev);
137 return regmap_update_bits(rdev->regmap, di->sleep_reg,
143 struct fan53555_device_info *di = rdev_get_drvdata(rdev);
145 return regmap_update_bits(rdev->regmap, di->sleep_reg,
151 struct fan53555_device_info *di = rdev_get_drvdata(rdev);
155 regmap_update_bits(rdev->regmap, di->mode_reg,
156 di->mode_mask, di->mode_mask);
159 regmap_update_bits(rdev->regmap, di->vol_reg, di->mode_mask, 0);
169 struct fan53555_device_info *di = rdev_get_drvdata(rdev);
173 ret = regmap_read(rdev->regmap, di->mode_reg, &val);
176 if (val & di->mode_mask)
195 struct fan53555_device_info *di = rdev_get_drvdata(rdev);
206 dev_err(di->dev, "unsupported ramp value %d\n", ramp);
231 static int fan53526_voltages_setup_fairchild(struct fan53555_device_info *di)
234 switch (di->chip_id) {
236 switch (di->chip_rev) {
238 di->vsel_min = 600000;
239 di->vsel_step = 6250;
242 dev_err(di->dev,
244 di->chip_id, di->chip_rev);
249 dev_err(di->dev,
250 "Chip ID %d not supported!\n", di->chip_id);
254 di->vsel_count = FAN53526_NVOLTAGES;
259 static int fan53555_voltages_setup_fairchild(struct fan53555_device_info *di)
262 switch (di->chip_id) {
264 switch (di->chip_rev) {
266 di->vsel_min = 600000;
267 di->vsel_step = 10000;
270 di->vsel_min = 800000;
271 di->vsel_step = 10000;
274 dev_err(di->dev,
276 di->chip_id, di->chip_rev);
284 di->vsel_min = 600000;
285 di->vsel_step = 10000;
288 di->vsel_min = 603000;
289 di->vsel_step = 12826;
292 dev_err(di->dev,
293 "Chip ID %d not supported!\n", di->chip_id);
297 di->vsel_count = FAN53555_NVOLTAGES;
302 static int fan53555_voltages_setup_silergy(struct fan53555_device_info *di)
305 switch (di->chip_id) {
308 di->vsel_min = 712500;
309 di->vsel_step = 12500;
312 dev_err(di->dev,
313 "Chip ID %d not supported!\n", di->chip_id);
317 di->vsel_count = FAN53555_NVOLTAGES;
327 static int fan53555_device_setup(struct fan53555_device_info *di,
335 di->sleep_reg = FAN53555_VSEL0;
336 di->vol_reg = FAN53555_VSEL1;
339 di->sleep_reg = FAN53555_VSEL1;
340 di->vol_reg = FAN53555_VSEL0;
343 dev_err(di->dev, "Invalid VSEL ID!\n");
348 switch (di->vendor) {
350 di->mode_reg = FAN53555_CONTROL;
354 di->mode_mask = CTL_MODE_VSEL1_MODE;
357 di->mode_mask = CTL_MODE_VSEL0_MODE;
363 di->mode_reg = di->vol_reg;
364 di->mode_mask = VSEL_MODE;
367 dev_err(di->dev, "vendor %d not supported!\n", di->vendor);
372 switch (di->vendor) {
374 ret = fan53526_voltages_setup_fairchild(di);
377 ret = fan53555_voltages_setup_fairchild(di);
380 ret = fan53555_voltages_setup_silergy(di);
383 dev_err(di->dev, "vendor %d not supported!\n", di->vendor);
390 static int fan53555_regulator_register(struct fan53555_device_info *di,
393 struct regulator_desc *rdesc = &di->desc;
400 rdesc->n_voltages = di->vsel_count;
401 rdesc->enable_reg = di->vol_reg;
403 rdesc->min_uV = di->vsel_min;
404 rdesc->uV_step = di->vsel_step;
405 rdesc->vsel_reg = di->vol_reg;
406 rdesc->vsel_mask = di->vsel_count - 1;
409 rdev = devm_regulator_register(di->dev, &di->desc, config);
462 struct fan53555_device_info *di;
469 di = devm_kzalloc(&client->dev, sizeof(struct fan53555_device_info),
471 if (!di)
476 pdata = fan53555_parse_dt(&client->dev, np, &di->desc);
483 di->regulator = pdata->regulator;
485 di->vendor =
489 if (!di->regulator->constraints.ramp_delay) {
495 di->regulator->constraints.ramp_delay
499 di->vendor = id->driver_data;
507 di->dev = &client->dev;
508 i2c_set_clientdata(client, di);
515 di->chip_id = val & DIE_ID;
522 di->chip_rev = val & DIE_REV;
524 di->chip_id, di->chip_rev);
526 ret = fan53555_device_setup(di, pdata);
532 config.dev = di->dev;
533 config.init_data = di->regulator;
535 config.driver_data = di;
538 ret = fan53555_regulator_register(di, &config);