iio: sx9310: Fix semtech,avg-pos-strength setting when > 16
authorStephen Boyd <swboyd@chromium.org>
Wed, 2 Dec 2020 20:02:52 +0000 (12:02 -0800)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Thu, 14 Jan 2021 21:01:22 +0000 (21:01 +0000)
commitb8653aff1c8876142f965fc69e12ba217da13182
treee42d46d2a74fc807bc8ad066758ffb09fb25fd6e
parent40c48fb79b9798954691f24b8ece1d3a7eb1b353
iio: sx9310: Fix semtech,avg-pos-strength setting when > 16

This DT property can be 0, 16, and then 64, but not 32. The math here
doesn't recognize this slight bump in the power of 2 numbers and
translates a DT property of 64 into the register value '3' when it
really should be '2'. Fix it by subtracting one more if the number being
translated is larger than 31. Also use clamp() because we're here.

Cc: Daniel Campello <campello@chromium.org>
Cc: Lars-Peter Clausen <lars@metafoo.de>
Cc: Peter Meerwald-Stadler <pmeerw@pmeerw.net>
Cc: Douglas Anderson <dianders@chromium.org>
Cc: Gwendal Grignou <gwendal@chromium.org>
Cc: Evan Green <evgreen@chromium.org>
Signed-off-by: Stephen Boyd <swboyd@chromium.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Link: https://lore.kernel.org/r/20201202200252.986230-1-swboyd@chromium.org
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/proximity/sx9310.c