Lines Matching refs:desc

30 	ret = regmap_read(rdev->regmap, rdev->desc->enable_reg, &val);  in regulator_is_enabled_regmap()
34 val &= rdev->desc->enable_mask; in regulator_is_enabled_regmap()
36 if (rdev->desc->enable_is_inverted) { in regulator_is_enabled_regmap()
37 if (rdev->desc->enable_val) in regulator_is_enabled_regmap()
38 return val != rdev->desc->enable_val; in regulator_is_enabled_regmap()
41 if (rdev->desc->enable_val) in regulator_is_enabled_regmap()
42 return val == rdev->desc->enable_val; in regulator_is_enabled_regmap()
61 if (rdev->desc->enable_is_inverted) { in regulator_enable_regmap()
62 val = rdev->desc->disable_val; in regulator_enable_regmap()
64 val = rdev->desc->enable_val; in regulator_enable_regmap()
66 val = rdev->desc->enable_mask; in regulator_enable_regmap()
69 return regmap_update_bits(rdev->regmap, rdev->desc->enable_reg, in regulator_enable_regmap()
70 rdev->desc->enable_mask, val); in regulator_enable_regmap()
87 if (rdev->desc->enable_is_inverted) { in regulator_disable_regmap()
88 val = rdev->desc->enable_val; in regulator_disable_regmap()
90 val = rdev->desc->enable_mask; in regulator_disable_regmap()
92 val = rdev->desc->disable_val; in regulator_disable_regmap()
95 return regmap_update_bits(rdev->regmap, rdev->desc->enable_reg, in regulator_disable_regmap()
96 rdev->desc->enable_mask, val); in regulator_disable_regmap()
105 if (!rdev->desc->linear_range_selectors) in regulator_range_selector_to_index()
108 rval &= rdev->desc->vsel_range_mask; in regulator_range_selector_to_index()
110 for (i = 0; i < rdev->desc->n_linear_ranges; i++) { in regulator_range_selector_to_index()
111 if (rdev->desc->linear_range_selectors[i] == rval) in regulator_range_selector_to_index()
135 if (!rdev->desc->linear_ranges) in regulator_get_voltage_sel_pickable_regmap()
138 ret = regmap_read(rdev->regmap, rdev->desc->vsel_reg, &val); in regulator_get_voltage_sel_pickable_regmap()
142 ret = regmap_read(rdev->regmap, rdev->desc->vsel_range_reg, &r_val); in regulator_get_voltage_sel_pickable_regmap()
146 val &= rdev->desc->vsel_mask; in regulator_get_voltage_sel_pickable_regmap()
147 val >>= ffs(rdev->desc->vsel_mask) - 1; in regulator_get_voltage_sel_pickable_regmap()
154 voltages_in_range += (rdev->desc->linear_ranges[i].max_sel - in regulator_get_voltage_sel_pickable_regmap()
155 rdev->desc->linear_ranges[i].min_sel) + 1; in regulator_get_voltage_sel_pickable_regmap()
179 for (i = 0; i < rdev->desc->n_linear_ranges; i++) { in regulator_set_voltage_sel_pickable_regmap()
180 voltages_in_range = (rdev->desc->linear_ranges[i].max_sel - in regulator_set_voltage_sel_pickable_regmap()
181 rdev->desc->linear_ranges[i].min_sel) + 1; in regulator_set_voltage_sel_pickable_regmap()
187 if (i == rdev->desc->n_linear_ranges) in regulator_set_voltage_sel_pickable_regmap()
190 sel <<= ffs(rdev->desc->vsel_mask) - 1; in regulator_set_voltage_sel_pickable_regmap()
191 sel += rdev->desc->linear_ranges[i].min_sel; in regulator_set_voltage_sel_pickable_regmap()
193 range = rdev->desc->linear_range_selectors[i]; in regulator_set_voltage_sel_pickable_regmap()
195 if (rdev->desc->vsel_reg == rdev->desc->vsel_range_reg) { in regulator_set_voltage_sel_pickable_regmap()
197 rdev->desc->vsel_reg, in regulator_set_voltage_sel_pickable_regmap()
198 rdev->desc->vsel_range_mask | in regulator_set_voltage_sel_pickable_regmap()
199 rdev->desc->vsel_mask, sel | range); in regulator_set_voltage_sel_pickable_regmap()
202 rdev->desc->vsel_range_reg, in regulator_set_voltage_sel_pickable_regmap()
203 rdev->desc->vsel_range_mask, range); in regulator_set_voltage_sel_pickable_regmap()
207 ret = regmap_update_bits(rdev->regmap, rdev->desc->vsel_reg, in regulator_set_voltage_sel_pickable_regmap()
208 rdev->desc->vsel_mask, sel); in regulator_set_voltage_sel_pickable_regmap()
214 if (rdev->desc->apply_bit) in regulator_set_voltage_sel_pickable_regmap()
215 ret = regmap_update_bits(rdev->regmap, rdev->desc->apply_reg, in regulator_set_voltage_sel_pickable_regmap()
216 rdev->desc->apply_bit, in regulator_set_voltage_sel_pickable_regmap()
217 rdev->desc->apply_bit); in regulator_set_voltage_sel_pickable_regmap()
236 ret = regmap_read(rdev->regmap, rdev->desc->vsel_reg, &val); in regulator_get_voltage_sel_regmap()
240 val &= rdev->desc->vsel_mask; in regulator_get_voltage_sel_regmap()
241 val >>= ffs(rdev->desc->vsel_mask) - 1; in regulator_get_voltage_sel_regmap()
261 sel <<= ffs(rdev->desc->vsel_mask) - 1; in regulator_set_voltage_sel_regmap()
263 ret = regmap_update_bits(rdev->regmap, rdev->desc->vsel_reg, in regulator_set_voltage_sel_regmap()
264 rdev->desc->vsel_mask, sel); in regulator_set_voltage_sel_regmap()
268 if (rdev->desc->apply_bit) in regulator_set_voltage_sel_regmap()
269 ret = regmap_update_bits(rdev->regmap, rdev->desc->apply_reg, in regulator_set_voltage_sel_regmap()
270 rdev->desc->apply_bit, in regulator_set_voltage_sel_regmap()
271 rdev->desc->apply_bit); in regulator_set_voltage_sel_regmap()
298 for (i = 0; i < rdev->desc->n_voltages; i++) { in regulator_map_voltage_iterate()
299 ret = rdev->desc->ops->list_voltage(rdev, i); in regulator_map_voltage_iterate()
331 for (i = 0; i < rdev->desc->n_voltages; i++) { in regulator_map_voltage_ascend()
332 ret = rdev->desc->ops->list_voltage(rdev, i); in regulator_map_voltage_ascend()
363 if (rdev->desc->n_voltages == 1 && rdev->desc->uV_step == 0) { in regulator_map_voltage_linear()
364 if (min_uV <= rdev->desc->min_uV && rdev->desc->min_uV <= max_uV) in regulator_map_voltage_linear()
370 if (!rdev->desc->uV_step) { in regulator_map_voltage_linear()
371 BUG_ON(!rdev->desc->uV_step); in regulator_map_voltage_linear()
375 if (min_uV < rdev->desc->min_uV) in regulator_map_voltage_linear()
376 min_uV = rdev->desc->min_uV; in regulator_map_voltage_linear()
378 ret = DIV_ROUND_UP(min_uV - rdev->desc->min_uV, rdev->desc->uV_step); in regulator_map_voltage_linear()
382 ret += rdev->desc->linear_min_sel; in regulator_map_voltage_linear()
385 voltage = rdev->desc->ops->list_voltage(rdev, ret); in regulator_map_voltage_linear()
410 if (!rdev->desc->n_linear_ranges) { in regulator_map_voltage_linear_range()
411 BUG_ON(!rdev->desc->n_linear_ranges); in regulator_map_voltage_linear_range()
415 for (i = 0; i < rdev->desc->n_linear_ranges; i++) { in regulator_map_voltage_linear_range()
418 range = &rdev->desc->linear_ranges[i]; in regulator_map_voltage_linear_range()
444 voltage = rdev->desc->ops->list_voltage(rdev, ret); in regulator_map_voltage_linear_range()
449 if (i == rdev->desc->n_linear_ranges) in regulator_map_voltage_linear_range()
474 if (!rdev->desc->n_linear_ranges) { in regulator_map_voltage_pickable_linear_range()
475 BUG_ON(!rdev->desc->n_linear_ranges); in regulator_map_voltage_pickable_linear_range()
479 for (i = 0; i < rdev->desc->n_linear_ranges; i++) { in regulator_map_voltage_pickable_linear_range()
482 range = &rdev->desc->linear_ranges[i]; in regulator_map_voltage_pickable_linear_range()
506 voltage = rdev->desc->ops->list_voltage(rdev, ret); in regulator_map_voltage_pickable_linear_range()
519 if (i == rdev->desc->n_linear_ranges) in regulator_map_voltage_pickable_linear_range()
539 if (selector >= rdev->desc->n_voltages) in regulator_list_voltage_linear()
541 if (selector < rdev->desc->linear_min_sel) in regulator_list_voltage_linear()
544 selector -= rdev->desc->linear_min_sel; in regulator_list_voltage_linear()
546 return rdev->desc->min_uV + (rdev->desc->uV_step * selector); in regulator_list_voltage_linear()
566 if (!rdev->desc->n_linear_ranges) { in regulator_list_voltage_pickable_linear_range()
567 BUG_ON(!rdev->desc->n_linear_ranges); in regulator_list_voltage_pickable_linear_range()
571 for (i = 0; i < rdev->desc->n_linear_ranges; i++) { in regulator_list_voltage_pickable_linear_range()
574 range = &rdev->desc->linear_ranges[i]; in regulator_list_voltage_pickable_linear_range()
602 int regulator_desc_list_voltage_linear_range(const struct regulator_desc *desc, in regulator_desc_list_voltage_linear_range() argument
608 if (!desc->n_linear_ranges) { in regulator_desc_list_voltage_linear_range()
609 BUG_ON(!desc->n_linear_ranges); in regulator_desc_list_voltage_linear_range()
613 for (i = 0; i < desc->n_linear_ranges; i++) { in regulator_desc_list_voltage_linear_range()
614 range = &desc->linear_ranges[i]; in regulator_desc_list_voltage_linear_range()
642 return regulator_desc_list_voltage_linear_range(rdev->desc, selector); in regulator_list_voltage_linear_range()
659 if (!rdev->desc->volt_table) { in regulator_list_voltage_table()
660 BUG_ON(!rdev->desc->volt_table); in regulator_list_voltage_table()
664 if (selector >= rdev->desc->n_voltages) in regulator_list_voltage_table()
667 return rdev->desc->volt_table[selector]; in regulator_list_voltage_table()
682 val = rdev->desc->bypass_val_on; in regulator_set_bypass_regmap()
684 val = rdev->desc->bypass_mask; in regulator_set_bypass_regmap()
686 val = rdev->desc->bypass_val_off; in regulator_set_bypass_regmap()
689 return regmap_update_bits(rdev->regmap, rdev->desc->bypass_reg, in regulator_set_bypass_regmap()
690 rdev->desc->bypass_mask, val); in regulator_set_bypass_regmap()
703 val = rdev->desc->soft_start_val_on; in regulator_set_soft_start_regmap()
705 val = rdev->desc->soft_start_mask; in regulator_set_soft_start_regmap()
707 return regmap_update_bits(rdev->regmap, rdev->desc->soft_start_reg, in regulator_set_soft_start_regmap()
708 rdev->desc->soft_start_mask, val); in regulator_set_soft_start_regmap()
721 val = rdev->desc->pull_down_val_on; in regulator_set_pull_down_regmap()
723 val = rdev->desc->pull_down_mask; in regulator_set_pull_down_regmap()
725 return regmap_update_bits(rdev->regmap, rdev->desc->pull_down_reg, in regulator_set_pull_down_regmap()
726 rdev->desc->pull_down_mask, val); in regulator_set_pull_down_regmap()
739 unsigned int val_on = rdev->desc->bypass_val_on; in regulator_get_bypass_regmap()
742 ret = regmap_read(rdev->regmap, rdev->desc->bypass_reg, &val); in regulator_get_bypass_regmap()
747 val_on = rdev->desc->bypass_mask; in regulator_get_bypass_regmap()
749 *enable = (val & rdev->desc->bypass_mask) == val_on; in regulator_get_bypass_regmap()
768 val = rdev->desc->active_discharge_on; in regulator_set_active_discharge_regmap()
770 val = rdev->desc->active_discharge_off; in regulator_set_active_discharge_regmap()
773 rdev->desc->active_discharge_reg, in regulator_set_active_discharge_regmap()
774 rdev->desc->active_discharge_mask, val); in regulator_set_active_discharge_regmap()
792 unsigned int n_currents = rdev->desc->n_current_limits; in regulator_set_current_limit_regmap()
798 if (rdev->desc->curr_table) { in regulator_set_current_limit_regmap()
799 const unsigned int *curr_table = rdev->desc->curr_table; in regulator_set_current_limit_regmap()
825 sel <<= ffs(rdev->desc->csel_mask) - 1; in regulator_set_current_limit_regmap()
827 return regmap_update_bits(rdev->regmap, rdev->desc->csel_reg, in regulator_set_current_limit_regmap()
828 rdev->desc->csel_mask, sel); in regulator_set_current_limit_regmap()
846 ret = regmap_read(rdev->regmap, rdev->desc->csel_reg, &val); in regulator_get_current_limit_regmap()
850 val &= rdev->desc->csel_mask; in regulator_get_current_limit_regmap()
851 val >>= ffs(rdev->desc->csel_mask) - 1; in regulator_get_current_limit_regmap()
853 if (rdev->desc->curr_table) { in regulator_get_current_limit_regmap()
854 if (val >= rdev->desc->n_current_limits) in regulator_get_current_limit_regmap()
857 return rdev->desc->curr_table[val]; in regulator_get_current_limit_regmap()