Lines Matching refs:di

98 	struct fan53555_device_info *di = rdev_get_drvdata(rdev);
101 if (di->sleep_vol_cache == uV)
106 ret = regmap_update_bits(di->regmap, di->sleep_reg,
112 di->sleep_vol_cache = uV;
119 struct fan53555_device_info *di = rdev_get_drvdata(rdev);
123 regmap_update_bits(di->regmap, di->vol_reg,
127 regmap_update_bits(di->regmap, di->vol_reg, VSEL_MODE, 0);
137 struct fan53555_device_info *di = rdev_get_drvdata(rdev);
141 ret = regmap_read(di->regmap, di->vol_reg, &val);
163 struct fan53555_device_info *di = rdev_get_drvdata(rdev);
174 dev_err(di->dev, "unsupported ramp value %d\n", ramp);
178 return regmap_update_bits(di->regmap, FAN53555_CONTROL,
196 static int fan53555_voltages_setup_fairchild(struct fan53555_device_info *di)
199 switch (di->chip_id) {
204 di->vsel_min = 600000;
205 di->vsel_step = 10000;
208 di->vsel_min = 603000;
209 di->vsel_step = 12826;
212 dev_err(di->dev,
213 "Chip ID %d not supported!\n", di->chip_id);
220 static int fan53555_voltages_setup_silergy(struct fan53555_device_info *di)
223 switch (di->chip_id) {
225 di->vsel_min = 712500;
226 di->vsel_step = 12500;
229 dev_err(di->dev,
230 "Chip ID %d not supported!\n", di->chip_id);
242 static int fan53555_device_setup(struct fan53555_device_info *di,
250 di->sleep_reg = FAN53555_VSEL0;
251 di->vol_reg = FAN53555_VSEL1;
254 di->sleep_reg = FAN53555_VSEL1;
255 di->vol_reg = FAN53555_VSEL0;
258 dev_err(di->dev, "Invalid VSEL ID!\n");
262 switch (di->vendor) {
264 ret = fan53555_voltages_setup_fairchild(di);
267 ret = fan53555_voltages_setup_silergy(di);
270 dev_err(di->dev, "vendor %d not supported!\n", di->vendor);
277 static int fan53555_regulator_register(struct fan53555_device_info *di,
280 struct regulator_desc *rdesc = &di->desc;
287 rdesc->enable_reg = di->vol_reg;
289 rdesc->min_uV = di->vsel_min;
290 rdesc->uV_step = di->vsel_step;
291 rdesc->vsel_reg = di->vol_reg;
295 di->rdev = devm_regulator_register(di->dev, &di->desc, config);
296 return PTR_ERR_OR_ZERO(di->rdev);
344 struct fan53555_device_info *di;
359 di = devm_kzalloc(&client->dev, sizeof(struct fan53555_device_info),
361 if (!di)
364 di->regulator = pdata->regulator;
373 di->vendor = (unsigned long) match->data;
376 if (!di->regulator->constraints.ramp_delay) {
380 di->regulator->constraints.ramp_delay
384 di->vendor = id->driver_data;
387 di->regmap = devm_regmap_init_i2c(client, &fan53555_regmap_config);
388 if (IS_ERR(di->regmap)) {
390 return PTR_ERR(di->regmap);
392 di->dev = &client->dev;
393 i2c_set_clientdata(client, di);
395 ret = regmap_read(di->regmap, FAN53555_ID1, &val);
400 di->chip_id = val & DIE_ID;
402 ret = regmap_read(di->regmap, FAN53555_ID2, &val);
407 di->chip_rev = val & DIE_REV;
409 di->chip_id, di->chip_rev);
411 ret = fan53555_device_setup(di, pdata);
417 config.dev = di->dev;
418 config.init_data = di->regulator;
419 config.regmap = di->regmap;
420 config.driver_data = di;
423 ret = fan53555_regulator_register(di, &config);