Lines Matching full:desc
33 ret = regmap_read(rdev->regmap, rdev->desc->enable_reg, &val); in regulator_is_enabled_regmap()
37 val &= rdev->desc->enable_mask; in regulator_is_enabled_regmap()
39 if (rdev->desc->enable_is_inverted) { in regulator_is_enabled_regmap()
40 if (rdev->desc->enable_val) in regulator_is_enabled_regmap()
41 return val != rdev->desc->enable_val; in regulator_is_enabled_regmap()
44 if (rdev->desc->enable_val) in regulator_is_enabled_regmap()
45 return val == rdev->desc->enable_val; in regulator_is_enabled_regmap()
64 if (rdev->desc->enable_is_inverted) { in regulator_enable_regmap()
65 val = rdev->desc->disable_val; in regulator_enable_regmap()
67 val = rdev->desc->enable_val; in regulator_enable_regmap()
69 val = rdev->desc->enable_mask; in regulator_enable_regmap()
72 return regmap_update_bits(rdev->regmap, rdev->desc->enable_reg, in regulator_enable_regmap()
73 rdev->desc->enable_mask, val); in regulator_enable_regmap()
90 if (rdev->desc->enable_is_inverted) { in regulator_disable_regmap()
91 val = rdev->desc->enable_val; in regulator_disable_regmap()
93 val = rdev->desc->enable_mask; in regulator_disable_regmap()
95 val = rdev->desc->disable_val; in regulator_disable_regmap()
98 return regmap_update_bits(rdev->regmap, rdev->desc->enable_reg, in regulator_disable_regmap()
99 rdev->desc->enable_mask, val); in regulator_disable_regmap()
108 if (!rdev->desc->linear_range_selectors_bitfield) in regulator_range_selector_to_index()
111 rval &= rdev->desc->vsel_range_mask; in regulator_range_selector_to_index()
112 rval >>= ffs(rdev->desc->vsel_range_mask) - 1; in regulator_range_selector_to_index()
114 for (i = 0; i < rdev->desc->n_linear_ranges; i++) { in regulator_range_selector_to_index()
115 if (rdev->desc->linear_range_selectors_bitfield[i] == rval) in regulator_range_selector_to_index()
138 const struct linear_range *r = rdev->desc->linear_ranges; in regulator_get_voltage_sel_pickable_regmap()
143 ret = regmap_read(rdev->regmap, rdev->desc->vsel_reg, &val); in regulator_get_voltage_sel_pickable_regmap()
147 ret = regmap_read(rdev->regmap, rdev->desc->vsel_range_reg, &r_val); in regulator_get_voltage_sel_pickable_regmap()
151 val &= rdev->desc->vsel_mask; in regulator_get_voltage_sel_pickable_regmap()
152 val >>= ffs(rdev->desc->vsel_mask) - 1; in regulator_get_voltage_sel_pickable_regmap()
182 for (i = 0; i < rdev->desc->n_linear_ranges; i++) { in regulator_set_voltage_sel_pickable_regmap()
185 r = &rdev->desc->linear_ranges[i]; in regulator_set_voltage_sel_pickable_regmap()
193 if (i == rdev->desc->n_linear_ranges) in regulator_set_voltage_sel_pickable_regmap()
196 sel <<= ffs(rdev->desc->vsel_mask) - 1; in regulator_set_voltage_sel_pickable_regmap()
197 sel += rdev->desc->linear_ranges[i].min_sel; in regulator_set_voltage_sel_pickable_regmap()
199 range = rdev->desc->linear_range_selectors_bitfield[i]; in regulator_set_voltage_sel_pickable_regmap()
200 range <<= ffs(rdev->desc->vsel_range_mask) - 1; in regulator_set_voltage_sel_pickable_regmap()
202 if (rdev->desc->vsel_reg == rdev->desc->vsel_range_reg) { in regulator_set_voltage_sel_pickable_regmap()
204 rdev->desc->vsel_reg, in regulator_set_voltage_sel_pickable_regmap()
205 rdev->desc->vsel_range_mask | in regulator_set_voltage_sel_pickable_regmap()
206 rdev->desc->vsel_mask, sel | range); in regulator_set_voltage_sel_pickable_regmap()
209 rdev->desc->vsel_range_reg, in regulator_set_voltage_sel_pickable_regmap()
210 rdev->desc->vsel_range_mask, range); in regulator_set_voltage_sel_pickable_regmap()
214 ret = regmap_update_bits(rdev->regmap, rdev->desc->vsel_reg, in regulator_set_voltage_sel_pickable_regmap()
215 rdev->desc->vsel_mask, sel); in regulator_set_voltage_sel_pickable_regmap()
221 if (rdev->desc->apply_bit) in regulator_set_voltage_sel_pickable_regmap()
222 ret = regmap_update_bits(rdev->regmap, rdev->desc->apply_reg, in regulator_set_voltage_sel_pickable_regmap()
223 rdev->desc->apply_bit, in regulator_set_voltage_sel_pickable_regmap()
224 rdev->desc->apply_bit); in regulator_set_voltage_sel_pickable_regmap()
243 ret = regmap_read(rdev->regmap, rdev->desc->vsel_reg, &val); in regulator_get_voltage_sel_regmap()
247 val &= rdev->desc->vsel_mask; in regulator_get_voltage_sel_regmap()
248 val >>= ffs(rdev->desc->vsel_mask) - 1; in regulator_get_voltage_sel_regmap()
268 sel <<= ffs(rdev->desc->vsel_mask) - 1; in regulator_set_voltage_sel_regmap()
270 ret = regmap_update_bits(rdev->regmap, rdev->desc->vsel_reg, in regulator_set_voltage_sel_regmap()
271 rdev->desc->vsel_mask, sel); in regulator_set_voltage_sel_regmap()
275 if (rdev->desc->apply_bit) in regulator_set_voltage_sel_regmap()
276 ret = regmap_update_bits(rdev->regmap, rdev->desc->apply_reg, in regulator_set_voltage_sel_regmap()
277 rdev->desc->apply_bit, in regulator_set_voltage_sel_regmap()
278 rdev->desc->apply_bit); in regulator_set_voltage_sel_regmap()
305 for (i = 0; i < rdev->desc->n_voltages; i++) { in regulator_map_voltage_iterate()
306 ret = rdev->desc->ops->list_voltage(rdev, i); in regulator_map_voltage_iterate()
338 for (i = 0; i < rdev->desc->n_voltages; i++) { in regulator_map_voltage_ascend()
339 ret = rdev->desc->ops->list_voltage(rdev, i); in regulator_map_voltage_ascend()
370 if (rdev->desc->n_voltages == 1 && rdev->desc->uV_step == 0) { in regulator_map_voltage_linear()
371 if (min_uV <= rdev->desc->min_uV && rdev->desc->min_uV <= max_uV) in regulator_map_voltage_linear()
377 if (!rdev->desc->uV_step) { in regulator_map_voltage_linear()
378 BUG_ON(!rdev->desc->uV_step); in regulator_map_voltage_linear()
382 if (min_uV < rdev->desc->min_uV) in regulator_map_voltage_linear()
383 min_uV = rdev->desc->min_uV; in regulator_map_voltage_linear()
385 ret = DIV_ROUND_UP(min_uV - rdev->desc->min_uV, rdev->desc->uV_step); in regulator_map_voltage_linear()
389 ret += rdev->desc->linear_min_sel; in regulator_map_voltage_linear()
392 voltage = rdev->desc->ops->list_voltage(rdev, ret); in regulator_map_voltage_linear()
419 if (!rdev->desc->n_linear_ranges) { in regulator_map_voltage_linear_range()
420 BUG_ON(!rdev->desc->n_linear_ranges); in regulator_map_voltage_linear_range()
424 for (i = 0; i < rdev->desc->n_linear_ranges; i++) { in regulator_map_voltage_linear_range()
425 range = &rdev->desc->linear_ranges[i]; in regulator_map_voltage_linear_range()
437 voltage = rdev->desc->ops->list_voltage(rdev, sel); in regulator_map_voltage_linear_range()
442 if (i == rdev->desc->n_linear_ranges) in regulator_map_voltage_linear_range()
467 if (!rdev->desc->n_linear_ranges) { in regulator_map_voltage_pickable_linear_range()
468 BUG_ON(!rdev->desc->n_linear_ranges); in regulator_map_voltage_pickable_linear_range()
472 for (i = 0; i < rdev->desc->n_linear_ranges; i++) { in regulator_map_voltage_pickable_linear_range()
477 range = &rdev->desc->linear_ranges[i]; in regulator_map_voltage_pickable_linear_range()
494 voltage = rdev->desc->ops->list_voltage(rdev, ret); in regulator_map_voltage_pickable_linear_range()
507 if (i == rdev->desc->n_linear_ranges) in regulator_map_voltage_pickable_linear_range()
517 * @desc: Regulator desc for regulator which volatges are to be listed
526 int regulator_desc_list_voltage_linear(const struct regulator_desc *desc, in regulator_desc_list_voltage_linear() argument
529 if (selector >= desc->n_voltages) in regulator_desc_list_voltage_linear()
532 if (selector < desc->linear_min_sel) in regulator_desc_list_voltage_linear()
535 selector -= desc->linear_min_sel; in regulator_desc_list_voltage_linear()
537 return desc->min_uV + (desc->uV_step * selector); in regulator_desc_list_voltage_linear()
554 return regulator_desc_list_voltage_linear(rdev->desc, selector); in regulator_list_voltage_linear()
574 if (!rdev->desc->n_linear_ranges) { in regulator_list_voltage_pickable_linear_range()
575 BUG_ON(!rdev->desc->n_linear_ranges); in regulator_list_voltage_pickable_linear_range()
579 for (i = 0; i < rdev->desc->n_linear_ranges; i++) { in regulator_list_voltage_pickable_linear_range()
582 range = &rdev->desc->linear_ranges[i]; in regulator_list_voltage_pickable_linear_range()
611 * @desc: Regulator desc for regulator which volatges are to be listed
620 int regulator_desc_list_voltage_linear_range(const struct regulator_desc *desc, in regulator_desc_list_voltage_linear_range() argument
626 BUG_ON(!desc->n_linear_ranges); in regulator_desc_list_voltage_linear_range()
628 ret = linear_range_get_value_array(desc->linear_ranges, in regulator_desc_list_voltage_linear_range()
629 desc->n_linear_ranges, selector, in regulator_desc_list_voltage_linear_range()
651 return regulator_desc_list_voltage_linear_range(rdev->desc, selector); in regulator_list_voltage_linear_range()
668 if (!rdev->desc->volt_table) { in regulator_list_voltage_table()
669 BUG_ON(!rdev->desc->volt_table); in regulator_list_voltage_table()
673 if (selector >= rdev->desc->n_voltages) in regulator_list_voltage_table()
675 if (selector < rdev->desc->linear_min_sel) in regulator_list_voltage_table()
678 return rdev->desc->volt_table[selector]; in regulator_list_voltage_table()
693 val = rdev->desc->bypass_val_on; in regulator_set_bypass_regmap()
695 val = rdev->desc->bypass_mask; in regulator_set_bypass_regmap()
697 val = rdev->desc->bypass_val_off; in regulator_set_bypass_regmap()
700 return regmap_update_bits(rdev->regmap, rdev->desc->bypass_reg, in regulator_set_bypass_regmap()
701 rdev->desc->bypass_mask, val); in regulator_set_bypass_regmap()
714 val = rdev->desc->soft_start_val_on; in regulator_set_soft_start_regmap()
716 val = rdev->desc->soft_start_mask; in regulator_set_soft_start_regmap()
718 return regmap_update_bits(rdev->regmap, rdev->desc->soft_start_reg, in regulator_set_soft_start_regmap()
719 rdev->desc->soft_start_mask, val); in regulator_set_soft_start_regmap()
732 val = rdev->desc->pull_down_val_on; in regulator_set_pull_down_regmap()
734 val = rdev->desc->pull_down_mask; in regulator_set_pull_down_regmap()
736 return regmap_update_bits(rdev->regmap, rdev->desc->pull_down_reg, in regulator_set_pull_down_regmap()
737 rdev->desc->pull_down_mask, val); in regulator_set_pull_down_regmap()
750 unsigned int val_on = rdev->desc->bypass_val_on; in regulator_get_bypass_regmap()
753 ret = regmap_read(rdev->regmap, rdev->desc->bypass_reg, &val); in regulator_get_bypass_regmap()
758 val_on = rdev->desc->bypass_mask; in regulator_get_bypass_regmap()
760 *enable = (val & rdev->desc->bypass_mask) == val_on; in regulator_get_bypass_regmap()
779 val = rdev->desc->active_discharge_on; in regulator_set_active_discharge_regmap()
781 val = rdev->desc->active_discharge_off; in regulator_set_active_discharge_regmap()
784 rdev->desc->active_discharge_reg, in regulator_set_active_discharge_regmap()
785 rdev->desc->active_discharge_mask, val); in regulator_set_active_discharge_regmap()
803 unsigned int n_currents = rdev->desc->n_current_limits; in regulator_set_current_limit_regmap()
809 if (rdev->desc->curr_table) { in regulator_set_current_limit_regmap()
810 const unsigned int *curr_table = rdev->desc->curr_table; in regulator_set_current_limit_regmap()
836 sel <<= ffs(rdev->desc->csel_mask) - 1; in regulator_set_current_limit_regmap()
838 return regmap_update_bits(rdev->regmap, rdev->desc->csel_reg, in regulator_set_current_limit_regmap()
839 rdev->desc->csel_mask, sel); in regulator_set_current_limit_regmap()
857 ret = regmap_read(rdev->regmap, rdev->desc->csel_reg, &val); in regulator_get_current_limit_regmap()
861 val &= rdev->desc->csel_mask; in regulator_get_current_limit_regmap()
862 val >>= ffs(rdev->desc->csel_mask) - 1; in regulator_get_current_limit_regmap()
864 if (rdev->desc->curr_table) { in regulator_get_current_limit_regmap()
865 if (val >= rdev->desc->n_current_limits) in regulator_get_current_limit_regmap()
868 return rdev->desc->curr_table[val]; in regulator_get_current_limit_regmap()
969 if (WARN_ON(!rdev->desc->n_ramp_values || !rdev->desc->ramp_delay_table)) in regulator_set_ramp_delay_regmap()
972 ret = regulator_find_closest_bigger(ramp_delay, rdev->desc->ramp_delay_table, in regulator_set_ramp_delay_regmap()
973 rdev->desc->n_ramp_values, &sel); in regulator_set_ramp_delay_regmap()
978 rdev->desc->ramp_delay_table[sel]); in regulator_set_ramp_delay_regmap()
981 sel <<= ffs(rdev->desc->ramp_mask) - 1; in regulator_set_ramp_delay_regmap()
983 return regmap_update_bits(rdev->regmap, rdev->desc->ramp_reg, in regulator_set_ramp_delay_regmap()
984 rdev->desc->ramp_mask, sel); in regulator_set_ramp_delay_regmap()