{
struct iio_dev *indio_dev = dev_to_iio_dev(dev);
struct tsl2X7X_chip *chip = iio_priv(indio_dev);
- unsigned long value;
+ u16 value;
int ret;
- if (kstrtoul(buf, 0, &value))
+ if (kstrtou16(buf, 0, &value))
return -EINVAL;
- if (value)
- chip->settings.als_cal_target = value;
-
+ chip->settings.als_cal_target = value;
ret = tsl2x7x_invoke_change(indio_dev);
if (ret < 0)
return ret;
bool value;
int ret;
- if (strtobool(buf, &value))
+ if (kstrtobool(buf, &value) || !value)
return -EINVAL;
- if (value) {
- ret = tsl2x7x_als_calibrate(indio_dev);
- if (ret < 0)
- return ret;
- }
+ ret = tsl2x7x_als_calibrate(indio_dev);
+ if (ret < 0)
+ return ret;
ret = tsl2x7x_invoke_change(indio_dev);
if (ret < 0)
bool value;
int ret;
- if (strtobool(buf, &value))
+ if (kstrtobool(buf, &value) || !value)
return -EINVAL;
- if (value) {
- ret = tsl2x7x_prox_cal(indio_dev);
- if (ret < 0)
- return ret;
- }
+ ret = tsl2x7x_prox_cal(indio_dev);
+ if (ret < 0)
+ return ret;
ret = tsl2x7x_invoke_change(indio_dev);
if (ret < 0)