Lines Matching refs:di

140 	struct fan53555_device_info *di = rdev_get_drvdata(rdev);  in fan53555_set_suspend_voltage()  local
143 if (di->sleep_vol_cache == uV) in fan53555_set_suspend_voltage()
148 ret = regmap_update_bits(rdev->regmap, di->sleep_reg, in fan53555_set_suspend_voltage()
149 di->desc.vsel_mask, ret); in fan53555_set_suspend_voltage()
154 di->sleep_vol_cache = uV; in fan53555_set_suspend_voltage()
161 struct fan53555_device_info *di = rdev_get_drvdata(rdev); in fan53555_set_suspend_enable() local
163 return regmap_update_bits(rdev->regmap, di->sleep_reg, in fan53555_set_suspend_enable()
169 struct fan53555_device_info *di = rdev_get_drvdata(rdev); in fan53555_set_suspend_disable() local
171 return regmap_update_bits(rdev->regmap, di->sleep_reg, in fan53555_set_suspend_disable()
177 struct fan53555_device_info *di = rdev_get_drvdata(rdev); in fan53555_set_mode() local
181 regmap_update_bits(rdev->regmap, di->mode_reg, in fan53555_set_mode()
182 di->mode_mask, di->mode_mask); in fan53555_set_mode()
185 regmap_update_bits(rdev->regmap, di->vol_reg, di->mode_mask, 0); in fan53555_set_mode()
195 struct fan53555_device_info *di = rdev_get_drvdata(rdev); in fan53555_get_mode() local
199 ret = regmap_read(rdev->regmap, di->mode_reg, &val); in fan53555_get_mode()
202 if (val & di->mode_mask) in fan53555_get_mode()
243 static int fan53526_voltages_setup_fairchild(struct fan53555_device_info *di) in fan53526_voltages_setup_fairchild() argument
246 switch (di->chip_id) { in fan53526_voltages_setup_fairchild()
248 switch (di->chip_rev) { in fan53526_voltages_setup_fairchild()
250 di->vsel_min = 600000; in fan53526_voltages_setup_fairchild()
251 di->vsel_step = 6250; in fan53526_voltages_setup_fairchild()
254 dev_err(di->dev, in fan53526_voltages_setup_fairchild()
256 di->chip_id, di->chip_rev); in fan53526_voltages_setup_fairchild()
261 dev_err(di->dev, in fan53526_voltages_setup_fairchild()
262 "Chip ID %d not supported!\n", di->chip_id); in fan53526_voltages_setup_fairchild()
266 di->slew_reg = FAN53555_CONTROL; in fan53526_voltages_setup_fairchild()
267 di->slew_mask = CTL_SLEW_MASK; in fan53526_voltages_setup_fairchild()
268 di->ramp_delay_table = slew_rates; in fan53526_voltages_setup_fairchild()
269 di->n_ramp_values = ARRAY_SIZE(slew_rates); in fan53526_voltages_setup_fairchild()
270 di->vsel_count = FAN53526_NVOLTAGES; in fan53526_voltages_setup_fairchild()
275 static int fan53555_voltages_setup_fairchild(struct fan53555_device_info *di) in fan53555_voltages_setup_fairchild() argument
278 switch (di->chip_id) { in fan53555_voltages_setup_fairchild()
280 switch (di->chip_rev) { in fan53555_voltages_setup_fairchild()
282 di->vsel_min = 600000; in fan53555_voltages_setup_fairchild()
283 di->vsel_step = 10000; in fan53555_voltages_setup_fairchild()
286 di->vsel_min = 800000; in fan53555_voltages_setup_fairchild()
287 di->vsel_step = 10000; in fan53555_voltages_setup_fairchild()
290 dev_err(di->dev, in fan53555_voltages_setup_fairchild()
292 di->chip_id, di->chip_rev); in fan53555_voltages_setup_fairchild()
300 di->vsel_min = 600000; in fan53555_voltages_setup_fairchild()
301 di->vsel_step = 10000; in fan53555_voltages_setup_fairchild()
304 di->vsel_min = 603000; in fan53555_voltages_setup_fairchild()
305 di->vsel_step = 12826; in fan53555_voltages_setup_fairchild()
308 dev_err(di->dev, in fan53555_voltages_setup_fairchild()
309 "Chip ID %d not supported!\n", di->chip_id); in fan53555_voltages_setup_fairchild()
312 di->slew_reg = FAN53555_CONTROL; in fan53555_voltages_setup_fairchild()
313 di->slew_mask = CTL_SLEW_MASK; in fan53555_voltages_setup_fairchild()
314 di->ramp_delay_table = slew_rates; in fan53555_voltages_setup_fairchild()
315 di->n_ramp_values = ARRAY_SIZE(slew_rates); in fan53555_voltages_setup_fairchild()
316 di->vsel_count = FAN53555_NVOLTAGES; in fan53555_voltages_setup_fairchild()
321 static int fan53555_voltages_setup_silergy(struct fan53555_device_info *di) in fan53555_voltages_setup_silergy() argument
324 switch (di->chip_id) { in fan53555_voltages_setup_silergy()
327 di->vsel_min = 712500; in fan53555_voltages_setup_silergy()
328 di->vsel_step = 12500; in fan53555_voltages_setup_silergy()
331 dev_err(di->dev, in fan53555_voltages_setup_silergy()
332 "Chip ID %d not supported!\n", di->chip_id); in fan53555_voltages_setup_silergy()
335 di->slew_reg = FAN53555_CONTROL; in fan53555_voltages_setup_silergy()
336 di->slew_mask = CTL_SLEW_MASK; in fan53555_voltages_setup_silergy()
337 di->ramp_delay_table = slew_rates; in fan53555_voltages_setup_silergy()
338 di->n_ramp_values = ARRAY_SIZE(slew_rates); in fan53555_voltages_setup_silergy()
339 di->vsel_count = FAN53555_NVOLTAGES; in fan53555_voltages_setup_silergy()
344 static int fan53526_voltages_setup_tcs(struct fan53555_device_info *di) in fan53526_voltages_setup_tcs() argument
346 switch (di->chip_id) { in fan53526_voltages_setup_tcs()
349 di->slew_reg = TCS4525_TIME; in fan53526_voltages_setup_tcs()
350 di->slew_mask = TCS_SLEW_MASK; in fan53526_voltages_setup_tcs()
351 di->ramp_delay_table = tcs_slew_rates; in fan53526_voltages_setup_tcs()
352 di->n_ramp_values = ARRAY_SIZE(tcs_slew_rates); in fan53526_voltages_setup_tcs()
355 di->vsel_min = 600000; in fan53526_voltages_setup_tcs()
356 di->vsel_step = 6250; in fan53526_voltages_setup_tcs()
357 di->vsel_count = FAN53526_NVOLTAGES; in fan53526_voltages_setup_tcs()
360 dev_err(di->dev, "Chip ID %d not supported!\n", di->chip_id); in fan53526_voltages_setup_tcs()
372 static int fan53555_device_setup(struct fan53555_device_info *di, in fan53555_device_setup() argument
378 switch (di->vendor) { in fan53555_device_setup()
384 di->sleep_reg = FAN53555_VSEL0; in fan53555_device_setup()
385 di->vol_reg = FAN53555_VSEL1; in fan53555_device_setup()
388 di->sleep_reg = FAN53555_VSEL1; in fan53555_device_setup()
389 di->vol_reg = FAN53555_VSEL0; in fan53555_device_setup()
392 dev_err(di->dev, "Invalid VSEL ID!\n"); in fan53555_device_setup()
399 di->sleep_reg = TCS4525_VSEL0; in fan53555_device_setup()
400 di->vol_reg = TCS4525_VSEL1; in fan53555_device_setup()
403 di->sleep_reg = TCS4525_VSEL1; in fan53555_device_setup()
404 di->vol_reg = TCS4525_VSEL0; in fan53555_device_setup()
407 dev_err(di->dev, "Invalid VSEL ID!\n"); in fan53555_device_setup()
412 dev_err(di->dev, "vendor %d not supported!\n", di->vendor); in fan53555_device_setup()
417 switch (di->vendor) { in fan53555_device_setup()
419 di->mode_reg = FAN53555_CONTROL; in fan53555_device_setup()
423 di->mode_mask = CTL_MODE_VSEL1_MODE; in fan53555_device_setup()
426 di->mode_mask = CTL_MODE_VSEL0_MODE; in fan53555_device_setup()
432 di->mode_reg = di->vol_reg; in fan53555_device_setup()
433 di->mode_mask = VSEL_MODE; in fan53555_device_setup()
436 di->mode_reg = TCS4525_COMMAND; in fan53555_device_setup()
440 di->mode_mask = TCS_VSEL1_MODE; in fan53555_device_setup()
443 di->mode_mask = TCS_VSEL0_MODE; in fan53555_device_setup()
448 dev_err(di->dev, "vendor %d not supported!\n", di->vendor); in fan53555_device_setup()
453 switch (di->vendor) { in fan53555_device_setup()
455 ret = fan53526_voltages_setup_fairchild(di); in fan53555_device_setup()
458 ret = fan53555_voltages_setup_fairchild(di); in fan53555_device_setup()
461 ret = fan53555_voltages_setup_silergy(di); in fan53555_device_setup()
464 ret = fan53526_voltages_setup_tcs(di); in fan53555_device_setup()
467 dev_err(di->dev, "vendor %d not supported!\n", di->vendor); in fan53555_device_setup()
474 static int fan53555_regulator_register(struct fan53555_device_info *di, in fan53555_regulator_register() argument
477 struct regulator_desc *rdesc = &di->desc; in fan53555_regulator_register()
484 rdesc->n_voltages = di->vsel_count; in fan53555_regulator_register()
485 rdesc->enable_reg = di->vol_reg; in fan53555_regulator_register()
487 rdesc->min_uV = di->vsel_min; in fan53555_regulator_register()
488 rdesc->uV_step = di->vsel_step; in fan53555_regulator_register()
489 rdesc->vsel_reg = di->vol_reg; in fan53555_regulator_register()
490 rdesc->vsel_mask = di->vsel_count - 1; in fan53555_regulator_register()
491 rdesc->ramp_reg = di->slew_reg; in fan53555_regulator_register()
492 rdesc->ramp_mask = di->slew_mask; in fan53555_regulator_register()
493 rdesc->ramp_delay_table = di->ramp_delay_table; in fan53555_regulator_register()
494 rdesc->n_ramp_values = di->n_ramp_values; in fan53555_regulator_register()
497 rdev = devm_regulator_register(di->dev, &di->desc, config); in fan53555_regulator_register()
556 struct fan53555_device_info *di; in fan53555_regulator_probe() local
563 di = devm_kzalloc(&client->dev, sizeof(struct fan53555_device_info), in fan53555_regulator_probe()
565 if (!di) in fan53555_regulator_probe()
570 pdata = fan53555_parse_dt(&client->dev, np, &di->desc); in fan53555_regulator_probe()
577 di->regulator = pdata->regulator; in fan53555_regulator_probe()
579 di->vendor = in fan53555_regulator_probe()
583 if (!di->regulator->constraints.ramp_delay) { in fan53555_regulator_probe()
589 di->regulator->constraints.ramp_delay in fan53555_regulator_probe()
593 di->vendor = id->driver_data; in fan53555_regulator_probe()
601 di->dev = &client->dev; in fan53555_regulator_probe()
602 i2c_set_clientdata(client, di); in fan53555_regulator_probe()
609 di->chip_id = val & DIE_ID; in fan53555_regulator_probe()
616 di->chip_rev = val & DIE_REV; in fan53555_regulator_probe()
618 di->chip_id, di->chip_rev); in fan53555_regulator_probe()
620 ret = fan53555_device_setup(di, pdata); in fan53555_regulator_probe()
626 config.dev = di->dev; in fan53555_regulator_probe()
627 config.init_data = di->regulator; in fan53555_regulator_probe()
629 config.driver_data = di; in fan53555_regulator_probe()
632 ret = fan53555_regulator_register(di, &config); in fan53555_regulator_probe()