Lines Matching refs:di
98 struct fan53555_device_info *di = rdev_get_drvdata(rdev); in fan53555_set_suspend_voltage() local
101 if (di->sleep_vol_cache == uV) in fan53555_set_suspend_voltage()
106 ret = regmap_update_bits(di->regmap, di->sleep_reg, in fan53555_set_suspend_voltage()
112 di->sleep_vol_cache = uV; in fan53555_set_suspend_voltage()
119 struct fan53555_device_info *di = rdev_get_drvdata(rdev); in fan53555_set_mode() local
123 regmap_update_bits(di->regmap, di->vol_reg, in fan53555_set_mode()
127 regmap_update_bits(di->regmap, di->vol_reg, VSEL_MODE, 0); in fan53555_set_mode()
137 struct fan53555_device_info *di = rdev_get_drvdata(rdev); in fan53555_get_mode() local
141 ret = regmap_read(di->regmap, di->vol_reg, &val); in fan53555_get_mode()
163 struct fan53555_device_info *di = rdev_get_drvdata(rdev); in fan53555_set_ramp() local
174 dev_err(di->dev, "unsupported ramp value %d\n", ramp); in fan53555_set_ramp()
178 return regmap_update_bits(di->regmap, FAN53555_CONTROL, in fan53555_set_ramp()
197 static int fan53555_voltages_setup_fairchild(struct fan53555_device_info *di) in fan53555_voltages_setup_fairchild() argument
200 switch (di->chip_id) { in fan53555_voltages_setup_fairchild()
205 di->vsel_min = 600000; in fan53555_voltages_setup_fairchild()
206 di->vsel_step = 10000; in fan53555_voltages_setup_fairchild()
209 di->vsel_min = 603000; in fan53555_voltages_setup_fairchild()
210 di->vsel_step = 12826; in fan53555_voltages_setup_fairchild()
213 dev_err(di->dev, in fan53555_voltages_setup_fairchild()
214 "Chip ID %d not supported!\n", di->chip_id); in fan53555_voltages_setup_fairchild()
221 static int fan53555_voltages_setup_silergy(struct fan53555_device_info *di) in fan53555_voltages_setup_silergy() argument
224 switch (di->chip_id) { in fan53555_voltages_setup_silergy()
226 di->vsel_min = 712500; in fan53555_voltages_setup_silergy()
227 di->vsel_step = 12500; in fan53555_voltages_setup_silergy()
230 dev_err(di->dev, in fan53555_voltages_setup_silergy()
231 "Chip ID %d not supported!\n", di->chip_id); in fan53555_voltages_setup_silergy()
243 static int fan53555_device_setup(struct fan53555_device_info *di, in fan53555_device_setup() argument
251 di->sleep_reg = FAN53555_VSEL0; in fan53555_device_setup()
252 di->vol_reg = FAN53555_VSEL1; in fan53555_device_setup()
255 di->sleep_reg = FAN53555_VSEL1; in fan53555_device_setup()
256 di->vol_reg = FAN53555_VSEL0; in fan53555_device_setup()
259 dev_err(di->dev, "Invalid VSEL ID!\n"); in fan53555_device_setup()
263 switch (di->vendor) { in fan53555_device_setup()
265 ret = fan53555_voltages_setup_fairchild(di); in fan53555_device_setup()
268 ret = fan53555_voltages_setup_silergy(di); in fan53555_device_setup()
271 dev_err(di->dev, "vendor %d not supported!\n", di->vendor); in fan53555_device_setup()
278 static int fan53555_regulator_register(struct fan53555_device_info *di, in fan53555_regulator_register() argument
281 struct regulator_desc *rdesc = &di->desc; in fan53555_regulator_register()
288 rdesc->enable_reg = di->vol_reg; in fan53555_regulator_register()
290 rdesc->min_uV = di->vsel_min; in fan53555_regulator_register()
291 rdesc->uV_step = di->vsel_step; in fan53555_regulator_register()
292 rdesc->vsel_reg = di->vol_reg; in fan53555_regulator_register()
296 di->rdev = devm_regulator_register(di->dev, &di->desc, config); in fan53555_regulator_register()
297 return PTR_ERR_OR_ZERO(di->rdev); in fan53555_regulator_register()
346 struct fan53555_device_info *di; in fan53555_regulator_probe() local
352 di = devm_kzalloc(&client->dev, sizeof(struct fan53555_device_info), in fan53555_regulator_probe()
354 if (!di) in fan53555_regulator_probe()
359 pdata = fan53555_parse_dt(&client->dev, np, &di->desc); in fan53555_regulator_probe()
366 di->regulator = pdata->regulator; in fan53555_regulator_probe()
375 di->vendor = (unsigned long) match->data; in fan53555_regulator_probe()
378 if (!di->regulator->constraints.ramp_delay) { in fan53555_regulator_probe()
382 di->regulator->constraints.ramp_delay in fan53555_regulator_probe()
386 di->vendor = id->driver_data; in fan53555_regulator_probe()
389 di->regmap = devm_regmap_init_i2c(client, &fan53555_regmap_config); in fan53555_regulator_probe()
390 if (IS_ERR(di->regmap)) { in fan53555_regulator_probe()
392 return PTR_ERR(di->regmap); in fan53555_regulator_probe()
394 di->dev = &client->dev; in fan53555_regulator_probe()
395 i2c_set_clientdata(client, di); in fan53555_regulator_probe()
397 ret = regmap_read(di->regmap, FAN53555_ID1, &val); in fan53555_regulator_probe()
402 di->chip_id = val & DIE_ID; in fan53555_regulator_probe()
404 ret = regmap_read(di->regmap, FAN53555_ID2, &val); in fan53555_regulator_probe()
409 di->chip_rev = val & DIE_REV; in fan53555_regulator_probe()
411 di->chip_id, di->chip_rev); in fan53555_regulator_probe()
413 ret = fan53555_device_setup(di, pdata); in fan53555_regulator_probe()
419 config.dev = di->dev; in fan53555_regulator_probe()
420 config.init_data = di->regulator; in fan53555_regulator_probe()
421 config.regmap = di->regmap; in fan53555_regulator_probe()
422 config.driver_data = di; in fan53555_regulator_probe()
425 ret = fan53555_regulator_register(di, &config); in fan53555_regulator_probe()