e086738b88
The existing linear_range API did not allow values or windows outside of the linear range (returned -EINVAL). With this change values are allowed outside of the range, being adjusted to the edge values (min/max) instead. In the case of windows, it is allowed to have partial intersection. In both cases, the API assigns a valid index (nearest) and returns -ERANGE. This change is useful because the main client of the linear range API, regulators, needs such behavior. For example, If an application specifies a voltage range from 1.0V to 1.5V and the regulator supports from 1.2V to 2.7V, the regulator can configure a voltage that satisfies the condition: 1.2V. With the current API, the input would be refused because 1.0V lies outside of the 1.2V-2.7V range. Also, for constant ranges, the minimum index is returned. Tests have been updated/extended accordingly. Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no> |
||
---|---|---|
.. | ||
c_lib | ||
cbprintf_fp | ||
cbprintf_package | ||
cmsis_dsp | ||
cmsis_nn | ||
cpp | ||
devicetree | ||
fdtable | ||
gui/lvgl | ||
heap | ||
heap_align | ||
json | ||
linear_range | ||
mem_alloc | ||
mem_blocks | ||
mem_blocks_stats | ||
mpsc_pbuf | ||
newlib | ||
notify | ||
onoff | ||
p4workq | ||
ringbuffer | ||
smf | ||
sprintf | ||
spsc_pbuf | ||
sys_util | ||
time | ||
uoscore |