Lines Matching refs:chip
31 static int ad5398_calc_current(struct ad5398_chip_info *chip, in ad5398_calc_current() argument
34 unsigned range_uA = chip->max_uA - chip->min_uA; in ad5398_calc_current()
36 return chip->min_uA + (selector * range_uA / chip->current_level); in ad5398_calc_current()
69 struct ad5398_chip_info *chip = rdev_get_drvdata(rdev); in ad5398_get_current_limit() local
70 struct i2c_client *client = chip->client; in ad5398_get_current_limit()
78 ret = (data & chip->current_mask) >> chip->current_offset; in ad5398_get_current_limit()
80 return ad5398_calc_current(chip, ret); in ad5398_get_current_limit()
85 struct ad5398_chip_info *chip = rdev_get_drvdata(rdev); in ad5398_set_current_limit() local
86 struct i2c_client *client = chip->client; in ad5398_set_current_limit()
87 unsigned range_uA = chip->max_uA - chip->min_uA; in ad5398_set_current_limit()
92 if (min_uA < chip->min_uA) in ad5398_set_current_limit()
93 min_uA = chip->min_uA; in ad5398_set_current_limit()
94 if (max_uA > chip->max_uA) in ad5398_set_current_limit()
95 max_uA = chip->max_uA; in ad5398_set_current_limit()
97 if (min_uA > chip->max_uA || max_uA < chip->min_uA) in ad5398_set_current_limit()
100 selector = DIV_ROUND_UP((min_uA - chip->min_uA) * chip->current_level, in ad5398_set_current_limit()
102 if (ad5398_calc_current(chip, selector) > max_uA) in ad5398_set_current_limit()
106 ad5398_calc_current(chip, selector)); in ad5398_set_current_limit()
114 selector = (selector << chip->current_offset) & chip->current_mask; in ad5398_set_current_limit()
125 struct ad5398_chip_info *chip = rdev_get_drvdata(rdev); in ad5398_is_enabled() local
126 struct i2c_client *client = chip->client; in ad5398_is_enabled()
142 struct ad5398_chip_info *chip = rdev_get_drvdata(rdev); in ad5398_enable() local
143 struct i2c_client *client = chip->client; in ad5398_enable()
163 struct ad5398_chip_info *chip = rdev_get_drvdata(rdev); in ad5398_disable() local
164 struct i2c_client *client = chip->client; in ad5398_disable()
219 struct ad5398_chip_info *chip; in ad5398_probe() local
226 chip = devm_kzalloc(&client->dev, sizeof(*chip), GFP_KERNEL); in ad5398_probe()
227 if (!chip) in ad5398_probe()
232 config.driver_data = chip; in ad5398_probe()
234 chip->client = client; in ad5398_probe()
236 chip->min_uA = df->min_uA; in ad5398_probe()
237 chip->max_uA = df->max_uA; in ad5398_probe()
238 chip->current_level = 1 << df->current_bits; in ad5398_probe()
239 chip->current_offset = df->current_offset; in ad5398_probe()
240 chip->current_mask = (chip->current_level - 1) << chip->current_offset; in ad5398_probe()
242 chip->rdev = devm_regulator_register(&client->dev, &ad5398_reg, in ad5398_probe()
244 if (IS_ERR(chip->rdev)) { in ad5398_probe()
247 return PTR_ERR(chip->rdev); in ad5398_probe()
250 i2c_set_clientdata(client, chip); in ad5398_probe()