Lines Matching full:constraints

105 	if (rdev->constraints && rdev->constraints->name)  in rdev_get_name()
106 return rdev->constraints->name; in rdev_get_name()
121 if (!rdev->constraints) { in regulator_ops_is_valid()
122 rdev_err(rdev, "no constraints\n"); in regulator_ops_is_valid()
126 if (rdev->constraints->valid_ops_mask & ops) in regulator_ops_is_valid()
435 if (*max_uV > rdev->constraints->max_uV) in regulator_check_voltage()
436 *max_uV = rdev->constraints->max_uV; in regulator_check_voltage()
437 if (*min_uV < rdev->constraints->min_uV) in regulator_check_voltage()
438 *min_uV = rdev->constraints->min_uV; in regulator_check_voltage()
500 if (*max_uA > rdev->constraints->max_uA && in regulator_check_current_limit()
501 rdev->constraints->max_uA) in regulator_check_current_limit()
502 *max_uA = rdev->constraints->max_uA; in regulator_check_current_limit()
503 if (*min_uA < rdev->constraints->min_uA) in regulator_check_current_limit()
504 *min_uA = rdev->constraints->min_uA; in regulator_check_current_limit()
540 if (rdev->constraints->valid_modes_mask & *mode) in regulator_mode_constrain()
551 if (rdev->constraints == NULL) in regulator_get_suspend_state()
556 return &rdev->constraints->state_standby; in regulator_get_suspend_state()
558 return &rdev->constraints->state_mem; in regulator_get_suspend_state()
560 return &rdev->constraints->state_disk; in regulator_get_suspend_state()
729 if (!rdev->constraints) in min_microamps_show()
732 return sprintf(buf, "%d\n", rdev->constraints->min_uA); in min_microamps_show()
741 if (!rdev->constraints) in max_microamps_show()
744 return sprintf(buf, "%d\n", rdev->constraints->max_uA); in max_microamps_show()
753 if (!rdev->constraints) in min_microvolts_show()
756 return sprintf(buf, "%d\n", rdev->constraints->min_uV); in min_microvolts_show()
765 if (!rdev->constraints) in max_microvolts_show()
768 return sprintf(buf, "%d\n", rdev->constraints->max_uV); in max_microvolts_show()
817 return sprintf(buf, "%d\n", rdev->constraints->state_mem.uV); in suspend_mem_microvolts_show()
826 return sprintf(buf, "%d\n", rdev->constraints->state_disk.uV); in suspend_disk_microvolts_show()
835 return sprintf(buf, "%d\n", rdev->constraints->state_standby.uV); in suspend_standby_microvolts_show()
845 rdev->constraints->state_mem.mode); in suspend_mem_mode_show()
855 rdev->constraints->state_disk.mode); in suspend_disk_mode_show()
865 rdev->constraints->state_standby.mode); in suspend_standby_mode_show()
875 rdev->constraints->state_mem.enabled); in suspend_mem_state_show()
885 rdev->constraints->state_disk.enabled); in suspend_disk_state_show()
895 rdev->constraints->state_standby.enabled); in suspend_standby_state_show()
926 return sprintf(buf, "%d\n", rdev->constraints->pw_budget_mW); in power_budget_milliwatt_show()
996 current_uA += rdev->constraints->system_load; in drms_uA_update()
1006 * Unfortunately in some cases the constraints->valid_ops has in drms_uA_update()
1012 if (!rdev->constraints->valid_modes_mask) { in drms_uA_update()
1032 input_uV = rdev->constraints->input_uV; in drms_uA_update()
1105 rdev->constraints->initial_state); in suspend_set_initial_state()
1115 struct regulation_constraints *constraints = rdev->constraints; in print_constraints_debug() local
1121 if (constraints->min_uV && constraints->max_uV) { in print_constraints_debug()
1122 if (constraints->min_uV == constraints->max_uV) in print_constraints_debug()
1124 constraints->min_uV / 1000); in print_constraints_debug()
1128 constraints->min_uV / 1000, in print_constraints_debug()
1129 constraints->max_uV / 1000); in print_constraints_debug()
1132 if (!constraints->min_uV || in print_constraints_debug()
1133 constraints->min_uV != constraints->max_uV) { in print_constraints_debug()
1140 if (constraints->uV_offset) in print_constraints_debug()
1142 constraints->uV_offset / 1000); in print_constraints_debug()
1144 if (constraints->min_uA && constraints->max_uA) { in print_constraints_debug()
1145 if (constraints->min_uA == constraints->max_uA) in print_constraints_debug()
1147 constraints->min_uA / 1000); in print_constraints_debug()
1151 constraints->min_uA / 1000, in print_constraints_debug()
1152 constraints->max_uA / 1000); in print_constraints_debug()
1155 if (!constraints->min_uA || in print_constraints_debug()
1156 constraints->min_uA != constraints->max_uA) { in print_constraints_debug()
1163 if (constraints->valid_modes_mask & REGULATOR_MODE_FAST) in print_constraints_debug()
1165 if (constraints->valid_modes_mask & REGULATOR_MODE_NORMAL) in print_constraints_debug()
1167 if (constraints->valid_modes_mask & REGULATOR_MODE_IDLE) in print_constraints_debug()
1169 if (constraints->valid_modes_mask & REGULATOR_MODE_STANDBY) in print_constraints_debug()
1172 if (constraints->pw_budget_mW) in print_constraints_debug()
1174 constraints->pw_budget_mW); in print_constraints_debug()
1192 struct regulation_constraints *constraints = rdev->constraints; in print_constraints() local
1196 if ((constraints->min_uV != constraints->max_uV) && in print_constraints()
1203 struct regulation_constraints *constraints) in machine_constraints_voltage() argument
1209 if (rdev->constraints->apply_uV && in machine_constraints_voltage()
1210 rdev->constraints->min_uV && rdev->constraints->max_uV) { in machine_constraints_voltage()
1217 rdev->constraints->min_uV, in machine_constraints_voltage()
1218 rdev->constraints->max_uV); in machine_constraints_voltage()
1220 rdev->constraints->min_uV, in machine_constraints_voltage()
1221 rdev->constraints->max_uV); in machine_constraints_voltage()
1241 if (current_uV < rdev->constraints->min_uV) { in machine_constraints_voltage()
1242 target_min = rdev->constraints->min_uV; in machine_constraints_voltage()
1243 target_max = rdev->constraints->min_uV; in machine_constraints_voltage()
1246 if (current_uV > rdev->constraints->max_uV) { in machine_constraints_voltage()
1247 target_min = rdev->constraints->max_uV; in machine_constraints_voltage()
1248 target_max = rdev->constraints->max_uV; in machine_constraints_voltage()
1273 int cmin = constraints->min_uV; in machine_constraints_voltage()
1274 int cmax = constraints->max_uV; in machine_constraints_voltage()
1277 * and the constraints are used by list_voltage. in machine_constraints_voltage()
1282 constraints->min_uV = cmin; in machine_constraints_voltage()
1283 constraints->max_uV = cmax; in machine_constraints_voltage()
1286 /* voltage constraints are optional */ in machine_constraints_voltage()
1290 /* else require explicit machine-level constraints */ in machine_constraints_voltage()
1292 rdev_err(rdev, "invalid voltage constraints\n"); in machine_constraints_voltage()
1315 /* final: [min_uV..max_uV] valid iff constraints valid */ in machine_constraints_voltage()
1318 "unsupportable voltage constraints %u-%uuV\n", in machine_constraints_voltage()
1323 /* use regulator's subset of machine constraints */ in machine_constraints_voltage()
1324 if (constraints->min_uV < min_uV) { in machine_constraints_voltage()
1326 constraints->min_uV, min_uV); in machine_constraints_voltage()
1327 constraints->min_uV = min_uV; in machine_constraints_voltage()
1329 if (constraints->max_uV > max_uV) { in machine_constraints_voltage()
1331 constraints->max_uV, max_uV); in machine_constraints_voltage()
1332 constraints->max_uV = max_uV; in machine_constraints_voltage()
1340 struct regulation_constraints *constraints) in machine_constraints_current() argument
1345 if (!constraints->min_uA && !constraints->max_uA) in machine_constraints_current()
1348 if (constraints->min_uA > constraints->max_uA) { in machine_constraints_current()
1349 rdev_err(rdev, "Invalid current constraints\n"); in machine_constraints_current()
1358 /* Set regulator current in constraints range */ in machine_constraints_current()
1359 ret = ops->set_current_limit(rdev, constraints->min_uA, in machine_constraints_current()
1360 constraints->max_uA); in machine_constraints_current()
1418 * set_machine_constraints - sets regulator constraints
1423 * Constraints *must* be set by platform code in order for some
1434 ret = machine_constraints_voltage(rdev, rdev->constraints); in set_machine_constraints()
1438 ret = machine_constraints_current(rdev, rdev->constraints); in set_machine_constraints()
1442 if (rdev->constraints->ilim_uA && ops->set_input_current_limit) { in set_machine_constraints()
1444 rdev->constraints->ilim_uA); in set_machine_constraints()
1452 if (rdev->constraints->initial_state) { in set_machine_constraints()
1460 if (rdev->constraints->initial_mode) { in set_machine_constraints()
1466 ret = ops->set_mode(rdev, rdev->constraints->initial_mode); in set_machine_constraints()
1471 } else if (rdev->constraints->system_load) { in set_machine_constraints()
1479 if ((rdev->constraints->ramp_delay || rdev->constraints->ramp_disable) in set_machine_constraints()
1481 ret = ops->set_ramp_delay(rdev, rdev->constraints->ramp_delay); in set_machine_constraints()
1488 if (rdev->constraints->pull_down && ops->set_pull_down) { in set_machine_constraints()
1496 if (rdev->constraints->soft_start && ops->set_soft_start) { in set_machine_constraints()
1518 if (rdev->constraints->over_current_protection in set_machine_constraints()
1520 int lim = rdev->constraints->over_curr_limits.prot; in set_machine_constraints()
1532 if (rdev->constraints->over_current_detection) in set_machine_constraints()
1535 &rdev->constraints->over_curr_limits); in set_machine_constraints()
1546 if (rdev->constraints->over_voltage_detection) in set_machine_constraints()
1549 &rdev->constraints->over_voltage_limits); in set_machine_constraints()
1560 if (rdev->constraints->under_voltage_detection) in set_machine_constraints()
1563 &rdev->constraints->under_voltage_limits); in set_machine_constraints()
1574 if (rdev->constraints->over_temp_detection) in set_machine_constraints()
1577 &rdev->constraints->temp_limits); in set_machine_constraints()
1588 if (rdev->constraints->active_discharge && ops->set_active_discharge) { in set_machine_constraints()
1589 bool ad_state = (rdev->constraints->active_discharge == in set_machine_constraints()
1611 rdev->constraints->always_on = in set_machine_constraints()
1612 rdev->supply->rdev->constraints->always_on; in set_machine_constraints()
1614 rdev->constraints->always_on = true; in set_machine_constraints()
1617 /* If the constraints say the regulator should be on at this point in set_machine_constraints()
1620 if (rdev->constraints->always_on || rdev->constraints->boot_on) { in set_machine_constraints()
1632 (rdev->constraints->always_on || in set_machine_constraints()
1648 if (rdev->constraints->always_on) in set_machine_constraints()
1654 if (!rdev->constraints->pw_budget_mW) in set_machine_constraints()
1655 rdev->constraints->pw_budget_mW = INT_MAX; in set_machine_constraints()
1788 const struct regulation_constraints *c = regulator->rdev->constraints; in constraint_flags_read_file()
1917 if (rdev->constraints && rdev->constraints->enable_time) in _regulator_get_enable_time()
1918 return rdev->constraints->enable_time; in _regulator_get_enable_time()
2203 "incomplete constraints, dummy supplies not allowed (id=%s)\n", id); in _regulator_get_common()
3004 (rdev->constraints && !rdev->constraints->always_on)) { in _regulator_disable()
3054 * machine constraints permit this operation.
3189 * machine constraints permit this operation.
3250 if (ret < rdev->constraints->min_uV) in _regulator_list_voltage()
3252 else if (ret > rdev->constraints->max_uV) in _regulator_list_voltage()
3475 return min_uV >= rdev->constraints->min_uV && in regulator_is_supported_voltage()
3476 max_uV <= rdev->constraints->max_uV; in regulator_is_supported_voltage()
3630 if (rdev->constraints->ramp_delay) in _regulator_set_voltage_time()
3631 ramp_delay = rdev->constraints->ramp_delay; in _regulator_set_voltage_time()
3634 else if (rdev->constraints->settling_time) in _regulator_set_voltage_time()
3635 return rdev->constraints->settling_time; in _regulator_set_voltage_time()
3636 else if (rdev->constraints->settling_time_up && in _regulator_set_voltage_time()
3638 return rdev->constraints->settling_time_up; in _regulator_set_voltage_time()
3639 else if (rdev->constraints->settling_time_down && in _regulator_set_voltage_time()
3641 return rdev->constraints->settling_time_down; in _regulator_set_voltage_time()
3662 min_uV += rdev->constraints->uV_offset; in _regulator_do_set_voltage()
3663 max_uV += rdev->constraints->uV_offset; in _regulator_do_set_voltage()
3817 /* constraints check */ in regulator_set_voltage_unlocked()
3913 struct regulation_constraints *constraints = rdev->constraints; in regulator_limit_voltage_step() local
3916 if (!constraints->max_uV_step || !_regulator_is_enabled(rdev)) in regulator_limit_voltage_step()
3926 if (abs(*current_uV - *min_uV) <= constraints->max_uV_step) in regulator_limit_voltage_step()
3931 *min_uV = min(*current_uV + constraints->max_uV_step, in regulator_limit_voltage_step()
3934 *min_uV = max(*current_uV - constraints->max_uV_step, in regulator_limit_voltage_step()
3948 struct regulation_constraints *constraints = rdev->constraints; in regulator_get_optimal_voltage() local
3966 desired_min_uV = constraints->min_uV; in regulator_get_optimal_voltage()
3967 desired_max_uV = constraints->max_uV; in regulator_get_optimal_voltage()
4005 max_spread = constraints->max_spread[0]; in regulator_get_optimal_voltage()
4205 * request voltage that meets the system constraints will be used.
4206 * Regulator system constraints must be set for this regulator before
4525 return ret - rdev->constraints->uV_offset; in regulator_get_voltage_rdev()
4564 * NOTE: Regulator system constraints must be set for this regulator before
4583 /* constraints check */ in regulator_set_current_limit()
4639 return regulator->rdev->constraints->pw_budget_mW - in regulator_get_unclaimed_power_budget()
4665 if (pw_tot_req > rdev->constraints->pw_budget_mW) { in regulator_request_power_budget()
4668 rdev->constraints->pw_budget_mW - rdev->pw_requested_mW); in regulator_request_power_budget()
4720 * NOTE: Regulator system constraints must be set for this regulator before
4748 /* constraints check */ in regulator_set_mode()
4850 * DRMS (if enabled by constraints) to set the most efficient regulator
4866 * to the most efficient operating mode if platform constraints allow.
4906 * constraints allow this. Bypass mode means that the regulator is
5248 if (!rdev->constraints->system_critical) in regulator_handle_critical()
5266 rdev->constraints->uv_less_critical_window_ms); in regulator_handle_critical()
5409 /* constraints need specific supporting methods */ in regulator_attr_is_visible()
5435 return rdev->constraints->pw_budget_mW != INT_MAX ? mode : 0; in regulator_attr_is_visible()
5455 kfree(rdev->constraints); in regulator_dev_release()
5679 if (!rdev->constraints->always_on) { in generic_coupler_attach()
5834 /* set regulator constraints */ in regulator_register()
5836 rdev->constraints = kmemdup(&init_data->constraints, in regulator_register()
5837 sizeof(*rdev->constraints), in regulator_register()
5840 rdev->constraints = kzalloc(sizeof(*rdev->constraints), in regulator_register()
5842 if (!rdev->constraints) { in regulator_register()
5854 (rdev->constraints->always_on || in regulator_register()
5855 rdev->constraints->boot_on)) { in regulator_register()
5879 * to set the constraints in regulator_register()
6067 * regulator_has_full_constraints - the system has fully specified constraints
6214 c = rdev->constraints; in regulator_summary_show_subtree()
6425 struct regulation_constraints *c = rdev->constraints; in regulator_late_cleanup()
6453 * assume that full constraints are provided in regulator_late_cleanup()
6457 rdev_warn(rdev, "incomplete constraints, leaving on\n"); in regulator_late_cleanup()
6498 * for DT and ACPI as they have full constraints. in regulator_init_complete_work_function()
6511 * enabling full constraints and since it's much more natural in regulator_init_complete()
6513 * system has full constraints. in regulator_init_complete()