Lines Matching refs:di

147 	struct fan53555_device_info *di = rdev_get_drvdata(rdev);  in fan53555_set_suspend_voltage()  local
150 if (di->sleep_vol_cache == uV) in fan53555_set_suspend_voltage()
155 ret = regmap_update_bits(rdev->regmap, di->sleep_reg, in fan53555_set_suspend_voltage()
156 di->desc.vsel_mask, ret); in fan53555_set_suspend_voltage()
161 di->sleep_vol_cache = uV; in fan53555_set_suspend_voltage()
168 struct fan53555_device_info *di = rdev_get_drvdata(rdev); in fan53555_set_suspend_enable() local
170 return regmap_update_bits(rdev->regmap, di->sleep_reg, in fan53555_set_suspend_enable()
176 struct fan53555_device_info *di = rdev_get_drvdata(rdev); in fan53555_set_suspend_disable() local
178 return regmap_update_bits(rdev->regmap, di->sleep_reg, in fan53555_set_suspend_disable()
184 struct fan53555_device_info *di = rdev_get_drvdata(rdev); in fan53555_set_mode() local
188 regmap_update_bits(rdev->regmap, di->mode_reg, in fan53555_set_mode()
189 di->mode_mask, di->mode_mask); in fan53555_set_mode()
192 regmap_update_bits(rdev->regmap, di->vol_reg, di->mode_mask, 0); in fan53555_set_mode()
202 struct fan53555_device_info *di = rdev_get_drvdata(rdev); in fan53555_get_mode() local
206 ret = regmap_read(rdev->regmap, di->mode_reg, &val); in fan53555_get_mode()
209 if (val & di->mode_mask) in fan53555_get_mode()
235 struct fan53555_device_info *di = rdev_get_drvdata(rdev); in fan53555_set_ramp() local
240 switch (di->vendor) { in fan53555_set_ramp()
263 dev_err(di->dev, "unsupported ramp value %d\n", ramp); in fan53555_set_ramp()
267 return regmap_update_bits(rdev->regmap, di->slew_reg, in fan53555_set_ramp()
268 di->slew_mask, regval << di->slew_shift); in fan53555_set_ramp()
288 static int fan53526_voltages_setup_fairchild(struct fan53555_device_info *di) in fan53526_voltages_setup_fairchild() argument
291 switch (di->chip_id) { in fan53526_voltages_setup_fairchild()
293 switch (di->chip_rev) { in fan53526_voltages_setup_fairchild()
295 di->vsel_min = 600000; in fan53526_voltages_setup_fairchild()
296 di->vsel_step = 6250; in fan53526_voltages_setup_fairchild()
299 dev_err(di->dev, in fan53526_voltages_setup_fairchild()
301 di->chip_id, di->chip_rev); in fan53526_voltages_setup_fairchild()
306 dev_err(di->dev, in fan53526_voltages_setup_fairchild()
307 "Chip ID %d not supported!\n", di->chip_id); in fan53526_voltages_setup_fairchild()
311 di->slew_reg = FAN53555_CONTROL; in fan53526_voltages_setup_fairchild()
312 di->slew_mask = CTL_SLEW_MASK; in fan53526_voltages_setup_fairchild()
313 di->slew_shift = CTL_SLEW_SHIFT; in fan53526_voltages_setup_fairchild()
314 di->vsel_count = FAN53526_NVOLTAGES; in fan53526_voltages_setup_fairchild()
319 static int fan53555_voltages_setup_fairchild(struct fan53555_device_info *di) in fan53555_voltages_setup_fairchild() argument
322 switch (di->chip_id) { in fan53555_voltages_setup_fairchild()
324 switch (di->chip_rev) { in fan53555_voltages_setup_fairchild()
326 di->vsel_min = 600000; in fan53555_voltages_setup_fairchild()
327 di->vsel_step = 10000; in fan53555_voltages_setup_fairchild()
330 di->vsel_min = 800000; in fan53555_voltages_setup_fairchild()
331 di->vsel_step = 10000; in fan53555_voltages_setup_fairchild()
334 dev_err(di->dev, in fan53555_voltages_setup_fairchild()
336 di->chip_id, di->chip_rev); in fan53555_voltages_setup_fairchild()
344 di->vsel_min = 600000; in fan53555_voltages_setup_fairchild()
345 di->vsel_step = 10000; in fan53555_voltages_setup_fairchild()
348 di->vsel_min = 603000; in fan53555_voltages_setup_fairchild()
349 di->vsel_step = 12826; in fan53555_voltages_setup_fairchild()
352 dev_err(di->dev, in fan53555_voltages_setup_fairchild()
353 "Chip ID %d not supported!\n", di->chip_id); in fan53555_voltages_setup_fairchild()
356 di->slew_reg = FAN53555_CONTROL; in fan53555_voltages_setup_fairchild()
357 di->slew_mask = CTL_SLEW_MASK; in fan53555_voltages_setup_fairchild()
358 di->slew_shift = CTL_SLEW_SHIFT; in fan53555_voltages_setup_fairchild()
359 di->vsel_count = FAN53555_NVOLTAGES; in fan53555_voltages_setup_fairchild()
364 static int fan53555_voltages_setup_silergy(struct fan53555_device_info *di) in fan53555_voltages_setup_silergy() argument
367 switch (di->chip_id) { in fan53555_voltages_setup_silergy()
370 di->vsel_min = 712500; in fan53555_voltages_setup_silergy()
371 di->vsel_step = 12500; in fan53555_voltages_setup_silergy()
374 dev_err(di->dev, in fan53555_voltages_setup_silergy()
375 "Chip ID %d not supported!\n", di->chip_id); in fan53555_voltages_setup_silergy()
378 di->slew_reg = FAN53555_CONTROL; in fan53555_voltages_setup_silergy()
379 di->slew_mask = CTL_SLEW_MASK; in fan53555_voltages_setup_silergy()
380 di->slew_shift = CTL_SLEW_SHIFT; in fan53555_voltages_setup_silergy()
381 di->vsel_count = FAN53555_NVOLTAGES; in fan53555_voltages_setup_silergy()
386 static int fan53526_voltages_setup_tcs(struct fan53555_device_info *di) in fan53526_voltages_setup_tcs() argument
388 switch (di->chip_id) { in fan53526_voltages_setup_tcs()
391 di->slew_reg = TCS4525_TIME; in fan53526_voltages_setup_tcs()
392 di->slew_mask = TCS_SLEW_MASK; in fan53526_voltages_setup_tcs()
393 di->slew_shift = TCS_SLEW_SHIFT; in fan53526_voltages_setup_tcs()
396 di->vsel_min = 600000; in fan53526_voltages_setup_tcs()
397 di->vsel_step = 6250; in fan53526_voltages_setup_tcs()
398 di->vsel_count = FAN53526_NVOLTAGES; in fan53526_voltages_setup_tcs()
401 dev_err(di->dev, "Chip ID %d not supported!\n", di->chip_id); in fan53526_voltages_setup_tcs()
413 static int fan53555_device_setup(struct fan53555_device_info *di, in fan53555_device_setup() argument
419 switch (di->vendor) { in fan53555_device_setup()
425 di->sleep_reg = FAN53555_VSEL0; in fan53555_device_setup()
426 di->vol_reg = FAN53555_VSEL1; in fan53555_device_setup()
429 di->sleep_reg = FAN53555_VSEL1; in fan53555_device_setup()
430 di->vol_reg = FAN53555_VSEL0; in fan53555_device_setup()
433 dev_err(di->dev, "Invalid VSEL ID!\n"); in fan53555_device_setup()
440 di->sleep_reg = TCS4525_VSEL0; in fan53555_device_setup()
441 di->vol_reg = TCS4525_VSEL1; in fan53555_device_setup()
444 di->sleep_reg = TCS4525_VSEL1; in fan53555_device_setup()
445 di->vol_reg = TCS4525_VSEL0; in fan53555_device_setup()
448 dev_err(di->dev, "Invalid VSEL ID!\n"); in fan53555_device_setup()
453 dev_err(di->dev, "vendor %d not supported!\n", di->vendor); in fan53555_device_setup()
458 switch (di->vendor) { in fan53555_device_setup()
460 di->mode_reg = FAN53555_CONTROL; in fan53555_device_setup()
464 di->mode_mask = CTL_MODE_VSEL1_MODE; in fan53555_device_setup()
467 di->mode_mask = CTL_MODE_VSEL0_MODE; in fan53555_device_setup()
473 di->mode_reg = di->vol_reg; in fan53555_device_setup()
474 di->mode_mask = VSEL_MODE; in fan53555_device_setup()
477 di->mode_reg = TCS4525_COMMAND; in fan53555_device_setup()
481 di->mode_mask = TCS_VSEL1_MODE; in fan53555_device_setup()
484 di->mode_mask = TCS_VSEL0_MODE; in fan53555_device_setup()
489 dev_err(di->dev, "vendor %d not supported!\n", di->vendor); in fan53555_device_setup()
494 switch (di->vendor) { in fan53555_device_setup()
496 ret = fan53526_voltages_setup_fairchild(di); in fan53555_device_setup()
499 ret = fan53555_voltages_setup_fairchild(di); in fan53555_device_setup()
502 ret = fan53555_voltages_setup_silergy(di); in fan53555_device_setup()
505 ret = fan53526_voltages_setup_tcs(di); in fan53555_device_setup()
508 dev_err(di->dev, "vendor %d not supported!\n", di->vendor); in fan53555_device_setup()
515 static int fan53555_regulator_register(struct fan53555_device_info *di, in fan53555_regulator_register() argument
518 struct regulator_desc *rdesc = &di->desc; in fan53555_regulator_register()
525 rdesc->n_voltages = di->vsel_count; in fan53555_regulator_register()
526 rdesc->enable_reg = di->vol_reg; in fan53555_regulator_register()
528 rdesc->min_uV = di->vsel_min; in fan53555_regulator_register()
529 rdesc->uV_step = di->vsel_step; in fan53555_regulator_register()
530 rdesc->vsel_reg = di->vol_reg; in fan53555_regulator_register()
531 rdesc->vsel_mask = di->vsel_count - 1; in fan53555_regulator_register()
534 rdev = devm_regulator_register(di->dev, &di->desc, config); in fan53555_regulator_register()
596 struct fan53555_device_info *di; in fan53555_regulator_probe() local
603 di = devm_kzalloc(&client->dev, sizeof(struct fan53555_device_info), in fan53555_regulator_probe()
605 if (!di) in fan53555_regulator_probe()
608 di->desc.of_map_mode = fan53555_map_mode; in fan53555_regulator_probe()
612 pdata = fan53555_parse_dt(&client->dev, np, &di->desc); in fan53555_regulator_probe()
619 di->regulator = pdata->regulator; in fan53555_regulator_probe()
621 di->vendor = in fan53555_regulator_probe()
625 if (!di->regulator->constraints.ramp_delay) { in fan53555_regulator_probe()
631 di->regulator->constraints.ramp_delay in fan53555_regulator_probe()
635 di->vendor = id->driver_data; in fan53555_regulator_probe()
643 di->regmap = regmap; in fan53555_regulator_probe()
644 di->dev = &client->dev; in fan53555_regulator_probe()
645 i2c_set_clientdata(client, di); in fan53555_regulator_probe()
652 di->chip_id = val & DIE_ID; in fan53555_regulator_probe()
659 di->chip_rev = val & DIE_REV; in fan53555_regulator_probe()
661 di->chip_id, di->chip_rev); in fan53555_regulator_probe()
663 ret = fan53555_device_setup(di, pdata); in fan53555_regulator_probe()
669 config.dev = di->dev; in fan53555_regulator_probe()
670 config.init_data = di->regulator; in fan53555_regulator_probe()
672 config.driver_data = di; in fan53555_regulator_probe()
675 ret = fan53555_regulator_register(di, &config); in fan53555_regulator_probe()
684 struct fan53555_device_info *di; in fan53555_regulator_shutdown() local
687 di = i2c_get_clientdata(client); in fan53555_regulator_shutdown()
689 dev_info(di->dev, "fan53555..... reset\n"); in fan53555_regulator_shutdown()
691 switch (di->vendor) { in fan53555_regulator_shutdown()
694 ret = regmap_update_bits(di->regmap, di->slew_reg, in fan53555_regulator_shutdown()
698 ret = regmap_update_bits(di->regmap, TCS4525_LIMCONF, in fan53555_regulator_shutdown()
713 dev_err(di->dev, "reset: force fan53555_reset error! ret=%d\n", ret); in fan53555_regulator_shutdown()
715 dev_info(di->dev, "reset: force fan53555_reset ok!\n"); in fan53555_regulator_shutdown()