struct sca3000_state *st = iio_priv(indio_dev);
        int ret, base_freq = 0;
        int ctrlval;
-       long val;
+       int val;
 
-       ret = strict_strtol(buf, 10, &val);
+       ret = kstrtoint(buf, 10, &val);
        if (ret)
                return ret;
 
 {
        struct iio_dev *indio_dev = dev_to_iio_dev(dev);
        struct sca3000_state *st = iio_priv(indio_dev);
-       long val;
+       u8 val;
        int ret;
        u8 protect_mask = SCA3000_FREE_FALL_DETECT;
 
        mutex_lock(&st->lock);
-       ret = strict_strtol(buf, 10, &val);
+       ret = kstrtou8(buf, 10, &val);
        if (ret)
                goto error_ret;
 
 
        struct iio_dev *indio_dev = dev_to_iio_dev(dev);
        struct sca3000_state *st = iio_priv(indio_dev);
        struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
-       long val;
+       u8 val;
        int ret;
 
        mutex_lock(&st->lock);
-       ret = strict_strtol(buf, 10, &val);
+       ret = kstrtou8(buf, 10, &val);
        if (ret)
                goto error_ret;
        ret = sca3000_read_data_short(st, SCA3000_REG_ADDR_INT_MASK, 1);
 
        struct iio_dev *dev_info = dev_to_iio_dev(dev);
        struct adt7316_chip_info *chip = iio_priv(dev_info);
        u8 config2;
-       unsigned long data = 0;
+       u8 data;
        int ret;
 
        if (!(chip->config2 & ADT7316_AD_SINGLE_CH_MODE))
                return -EPERM;
 
-       ret = strict_strtoul(buf, 10, &data);
+       ret = kstrtou8(buf, 10, &data);
        if (ret)
                return -EINVAL;
 
        struct iio_dev *dev_info = dev_to_iio_dev(dev);
        struct adt7316_chip_info *chip = iio_priv(dev_info);
        u8 dac_config;
-       unsigned long data = 0;
+       u8 data;
        int ret;
 
-       ret = strict_strtoul(buf, 16, &data);
+       ret = kstrtou8(buf, 16, &data);
        if (ret || data > ADT7316_DA_2VREF_CH_MASK)
                return -EINVAL;
 
        struct iio_dev *dev_info = dev_to_iio_dev(dev);
        struct adt7316_chip_info *chip = iio_priv(dev_info);
        u8 dac_config;
-       unsigned long data;
+       u8 data;
        int ret;
 
        if (!(chip->config3 & ADT7316_DA_EN_VIA_DAC_LDCA))
                return -EPERM;
 
-       ret = strict_strtoul(buf, 10, &data);
+       ret = kstrtou8(buf, 10, &data);
        if (ret || data > ADT7316_DA_EN_MODE_MASK)
                return -EINVAL;
 
        struct iio_dev *dev_info = dev_to_iio_dev(dev);
        struct adt7316_chip_info *chip = iio_priv(dev_info);
        u8 ldac_config;
-       unsigned long data;
+       u8 data;
        int ret;
 
        if (chip->config3 & ADT7316_DA_EN_VIA_DAC_LDCA) {
                        ADT7316_DA_EN_MODE_LDAC)
                        return -EPERM;
 
-               ret = strict_strtoul(buf, 16, &data);
+               ret = kstrtou8(buf, 16, &data);
                if (ret || data > ADT7316_LDAC_EN_DA_MASK)
                        return -EINVAL;
 
        struct iio_dev *dev_info = dev_to_iio_dev(dev);
        struct adt7316_chip_info *chip = iio_priv(dev_info);
        u8 ldac_config;
-       unsigned long data;
+       u8 data;
        int ret;
 
        if ((chip->id & ID_FAMILY_MASK) == ID_ADT75XX) {
-               ret = strict_strtoul(buf, 16, &data);
+               ret = kstrtou8(buf, 16, &data);
                if (ret || data > 3)
                        return -EINVAL;
 
                else if (data & 0x2)
                        ldac_config |= ADT7516_DAC_CD_IN_VREF;
        } else {
-               ret = strict_strtoul(buf, 16, &data);
+               ret = kstrtou8(buf, 16, &data);
                if (ret)
                        return -EINVAL;
 
 static ssize_t adt7316_store_temp_offset(struct adt7316_chip_info *chip,
                int offset_addr, const char *buf, size_t len)
 {
-       long data;
+       int data;
        u8 val;
        int ret;
 
-       ret = strict_strtol(buf, 10, &data);
+       ret = kstrtoint(buf, 10, &data);
        if (ret || data > 127 || data < -128)
                return -EINVAL;
 
                int channel, const char *buf, size_t len)
 {
        u8 msb, lsb, offset;
-       unsigned long data;
+       u16 data;
        int ret;
 
        if (channel >= ADT7316_DA_MSB_DATA_REGS ||
 
        offset = chip->dac_bits - 8;
 
-       ret = strict_strtoul(buf, 10, &data);
+       ret = kstrtou16(buf, 10, &data);
        if (ret || data >= (1 << chip->dac_bits))
                return -EINVAL;
 
 {
        struct iio_dev *dev_info = dev_to_iio_dev(dev);
        struct adt7316_chip_info *chip = iio_priv(dev_info);
-       unsigned long data;
+       u16 data;
        int ret;
        u8 mask;
 
-       ret = strict_strtoul(buf, 16, &data);
+       ret = kstrtou16(buf, 16, &data);
        if (ret || data >= ADT7316_VDD_INT_MASK + 1)
                return -EINVAL;
 
        struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
        struct iio_dev *dev_info = dev_to_iio_dev(dev);
        struct adt7316_chip_info *chip = iio_priv(dev_info);
-       long data;
+       int data;
        u8 val;
        int ret;
 
                this_attr->address > ADT7316_EX_TEMP_LOW)
                return -EPERM;
 
-       ret = strict_strtol(buf, 10, &data);
+       ret = kstrtoint(buf, 10, &data);
        if (ret)
                return -EINVAL;
 
 
        struct ad9832_state *st = iio_priv(indio_dev);
        struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
        int ret;
-       long val;
+       unsigned long val;
 
-       ret = strict_strtoul(buf, 10, &val);
+       ret = kstrtoul(buf, 10, &val);
        if (ret)
                goto error_ret;
 
 
        struct ad9834_state *st = iio_priv(indio_dev);
        struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
        int ret;
-       long val;
+       unsigned long val;
 
-       ret = strict_strtoul(buf, 10, &val);
+       ret = kstrtoul(buf, 10, &val);
        if (ret)
                goto error_ret;
 
 
        struct iio_dev *indio_dev = dev_to_iio_dev(dev);
        struct ad5933_state *st = iio_priv(indio_dev);
        struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
-       long val;
+       unsigned long val;
        int ret;
 
-       ret = strict_strtoul(buf, 10, &val);
+       ret = kstrtoul(buf, 10, &val);
        if (ret)
                return ret;
 
        struct iio_dev *indio_dev = dev_to_iio_dev(dev);
        struct ad5933_state *st = iio_priv(indio_dev);
        struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
-       long val;
+       u16 val;
        int i, ret = 0;
        unsigned short dat;
 
        if (this_attr->address != AD5933_IN_PGA_GAIN) {
-               ret = strict_strtol(buf, 10, &val);
+               ret = kstrtou16(buf, 10, &val);
                if (ret)
                        return ret;
        }
                ret = ad5933_cmd(st, 0);
                break;
        case AD5933_OUT_SETTLING_CYCLES:
-               val = clamp(val, 0L, 0x7FFL);
+               val = clamp(val, (u16)0, (u16)0x7FF);
                st->settling_cycles = val;
 
                /* 2x, 4x handling, see datasheet */
                                AD5933_REG_SETTLING_CYCLES, 2, (u8 *)&dat);
                break;
        case AD5933_FREQ_POINTS:
-               val = clamp(val, 0L, 511L);
+               val = clamp(val, (u16)0, (u16)511);
                st->freq_points = val;
 
                dat = cpu_to_be16(val);
 
        unsigned long lval;
        unsigned int new_range;
 
-       if (strict_strtoul(buf, 10, &lval))
+       if (kstrtoul(buf, 10, &lval))
                return -EINVAL;
 
        if (!(lval == 1000UL || lval == 4000UL ||
        struct iio_dev *indio_dev = dev_to_iio_dev(dev);
        struct isl29018_chip *chip = iio_priv(indio_dev);
        int status;
-       unsigned long lval;
+       unsigned int val;
        unsigned int new_adc_bit;
 
-       if (strict_strtoul(buf, 10, &lval))
+       if (kstrtouint(buf, 10, &val))
                return -EINVAL;
-       if (!(lval == 4 || lval == 8 || lval == 12 || lval == 16)) {
+       if (!(val == 4 || val == 8 || val == 12 || val == 16)) {
                dev_err(dev, "The resolution is not supported\n");
                return -EINVAL;
        }
 
        mutex_lock(&chip->lock);
-       status = isl29018_set_resolution(chip, lval, &new_adc_bit);
+       status = isl29018_set_resolution(chip, val, &new_adc_bit);
        if (status < 0) {
                mutex_unlock(&chip->lock);
                dev_err(dev, "Error in setting resolution\n");
 {
        struct iio_dev *indio_dev = dev_to_iio_dev(dev);
        struct isl29018_chip *chip = iio_priv(indio_dev);
-       unsigned long lval;
+       int val;
 
-       if (strict_strtoul(buf, 10, &lval))
+       if (kstrtoint(buf, 10, &val))
                return -EINVAL;
-       if (!(lval == 0UL || lval == 1UL)) {
+       if (!(val == 0 || val == 1)) {
                dev_err(dev, "The mode is not supported\n");
                return -EINVAL;
        }
        /* get the  "proximity scheme" i.e. if the chip does on chip
        infrared suppression (1 means perform on chip suppression) */
        mutex_lock(&chip->lock);
-       chip->prox_scheme = (int)lval;
+       chip->prox_scheme = val;
        mutex_unlock(&chip->lock);
 
        return count;
 
        struct device_attribute *attr, const char *buf, size_t len)
 {
        struct iio_dev *indio_dev = dev_to_iio_dev(dev);
-       unsigned long value;
+       int value;
 
-       if (strict_strtoul(buf, 0, &value))
+       if (kstrtoint(buf, 0, &value))
                return -EINVAL;
 
        if (value == 0)
 {
        struct iio_dev *indio_dev = dev_to_iio_dev(dev);
        struct tsl2583_chip *chip = iio_priv(indio_dev);
-       unsigned long value;
+       int value;
 
-       if (strict_strtoul(buf, 0, &value))
+       if (kstrtoint(buf, 0, &value))
                return -EINVAL;
 
        switch (value) {
 {
        struct iio_dev *indio_dev = dev_to_iio_dev(dev);
        struct tsl2583_chip *chip = iio_priv(indio_dev);
-       unsigned long value;
+       int value;
 
-       if (strict_strtoul(buf, 0, &value))
+       if (kstrtoint(buf, 0, &value))
                return -EINVAL;
 
        if ((value < 50) || (value > 650))
 {
        struct iio_dev *indio_dev = dev_to_iio_dev(dev);
        struct tsl2583_chip *chip = iio_priv(indio_dev);
-       unsigned long value;
+       int value;
 
-       if (strict_strtoul(buf, 0, &value))
+       if (kstrtoint(buf, 0, &value))
                return -EINVAL;
 
        if (value)
 {
        struct iio_dev *indio_dev = dev_to_iio_dev(dev);
        struct tsl2583_chip *chip = iio_priv(indio_dev);
-       unsigned long value;
+       int value;
 
-       if (strict_strtoul(buf, 0, &value))
+       if (kstrtoint(buf, 0, &value))
                return -EINVAL;
 
        if (value)
        struct device_attribute *attr, const char *buf, size_t len)
 {
        struct iio_dev *indio_dev = dev_to_iio_dev(dev);
-       unsigned long value;
+       int value;
 
-       if (strict_strtoul(buf, 0, &value))
+       if (kstrtoint(buf, 0, &value))
                return -EINVAL;
 
        if (value == 1)
 
 {
        struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
        int ret;
-       long val;
+       u8 val;
 
-       ret = strict_strtol(buf, 10, &val);
+       ret = kstrtou8(buf, 10, &val);
        if (ret)
                goto error_ret;
        ret = ade7753_spi_write_reg_8(dev, this_attr->address, val);
 {
        struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
        int ret;
-       long val;
+       u16 val;
 
-       ret = strict_strtol(buf, 10, &val);
+       ret = kstrtou16(buf, 10, &val);
        if (ret)
                goto error_ret;
        ret = ade7753_spi_write_reg_16(dev, this_attr->address, val);
 {
        struct iio_dev *indio_dev = dev_to_iio_dev(dev);
        struct ade7753_state *st = iio_priv(indio_dev);
-       unsigned long val;
+       u16 val;
        int ret;
        u16 reg, t;
 
-       ret = strict_strtol(buf, 10, &val);
+       ret = kstrtou16(buf, 10, &val);
        if (ret)
                return ret;
        if (val == 0)
 
 {
        struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
        int ret;
-       long val;
+       u8 val;
 
-       ret = strict_strtol(buf, 10, &val);
+       ret = kstrtou8(buf, 10, &val);
        if (ret)
                goto error_ret;
        ret = ade7754_spi_write_reg_8(dev, this_attr->address, val);
 {
        struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
        int ret;
-       long val;
+       u16 val;
 
-       ret = strict_strtol(buf, 10, &val);
+       ret = kstrtou16(buf, 10, &val);
        if (ret)
                goto error_ret;
        ret = ade7754_spi_write_reg_16(dev, this_attr->address, val);
 {
        struct iio_dev *indio_dev = dev_to_iio_dev(dev);
        struct ade7754_state *st = iio_priv(indio_dev);
-       unsigned long val;
+       u16 val;
        int ret;
        u8 reg, t;
 
-       ret = strict_strtol(buf, 10, &val);
+       ret = kstrtou16(buf, 10, &val);
        if (ret)
                return ret;
        if (val == 0)
 
 {
        struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
        int ret;
-       long val;
+       u8 val;
 
-       ret = strict_strtol(buf, 10, &val);
+       ret = kstrtou8(buf, 10, &val);
        if (ret)
                goto error_ret;
        ret = ade7758_spi_write_reg_8(dev, this_attr->address, val);
 {
        struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
        int ret;
-       long val;
+       u16 val;
 
-       ret = strict_strtol(buf, 10, &val);
+       ret = kstrtou16(buf, 10, &val);
        if (ret)
                goto error_ret;
        ret = ade7758_spi_write_reg_16(dev, this_attr->address, val);
                size_t len)
 {
        struct iio_dev *indio_dev = dev_to_iio_dev(dev);
-       unsigned long val;
+       u16 val;
        int ret;
        u8 reg, t;
 
-       ret = strict_strtol(buf, 10, &val);
+       ret = kstrtou16(buf, 10, &val);
        if (ret)
                return ret;
 
 
 {
        struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
        int ret;
-       long val;
+       u8 val;
 
-       ret = strict_strtol(buf, 10, &val);
+       ret = kstrtou8(buf, 10, &val);
        if (ret)
                goto error_ret;
        ret = ade7759_spi_write_reg_8(dev, this_attr->address, val);
 {
        struct iio_dev_attr *this_attr = to_iio_dev_attr(attr);
        int ret;
-       long val;
+       u16 val;
 
-       ret = strict_strtol(buf, 10, &val);
+       ret = kstrtou16(buf, 10, &val);
        if (ret)
                goto error_ret;
        ret = ade7759_spi_write_reg_16(dev, this_attr->address, val);
 {
        struct iio_dev *indio_dev = dev_to_iio_dev(dev);
        struct ade7759_state *st = iio_priv(indio_dev);
-       unsigned long val;
+       u16 val;
        int ret;
        u16 reg, t;
 
-       ret = strict_strtol(buf, 10, &val);
+       ret = kstrtou16(buf, 10, &val);
        if (ret)
                return ret;
        if (val == 0)
 
        struct ade7854_state *st = iio_priv(indio_dev);
 
        int ret;
-       long val;
+       u8 val;
 
-       ret = strict_strtol(buf, 10, &val);
+       ret = kstrtou8(buf, 10, &val);
        if (ret)
                goto error_ret;
        ret = st->write_reg_8(dev, this_attr->address, val);
        struct ade7854_state *st = iio_priv(indio_dev);
 
        int ret;
-       long val;
+       u16 val;
 
-       ret = strict_strtol(buf, 10, &val);
+       ret = kstrtou16(buf, 10, &val);
        if (ret)
                goto error_ret;
        ret = st->write_reg_16(dev, this_attr->address, val);
        struct ade7854_state *st = iio_priv(indio_dev);
 
        int ret;
-       long val;
+       u32 val;
 
-       ret = strict_strtol(buf, 10, &val);
+       ret = kstrtou32(buf, 10, &val);
        if (ret)
                goto error_ret;
        ret = st->write_reg_24(dev, this_attr->address, val);
        struct ade7854_state *st = iio_priv(indio_dev);
 
        int ret;
-       long val;
+       u32 val;
 
-       ret = strict_strtol(buf, 10, &val);
+       ret = kstrtou32(buf, 10, &val);
        if (ret)
                goto error_ret;
        ret = st->write_reg_32(dev, this_attr->address, val);
 
                                     size_t len)
 {
        struct ad2s1210_state *st = iio_priv(dev_to_iio_dev(dev));
-       unsigned long fclkin;
+       unsigned int fclkin;
        int ret;
 
-       ret = strict_strtoul(buf, 10, &fclkin);
+       ret = kstrtouint(buf, 10, &fclkin);
        if (ret)
                return ret;
        if (fclkin < AD2S1210_MIN_CLKIN || fclkin > AD2S1210_MAX_CLKIN) {
                                     const char *buf, size_t len)
 {
        struct ad2s1210_state *st = iio_priv(dev_to_iio_dev(dev));
-       unsigned long fexcit;
+       unsigned int fexcit;
        int ret;
 
-       ret = strict_strtoul(buf, 10, &fexcit);
+       ret = kstrtouint(buf, 10, &fexcit);
        if (ret < 0)
                return ret;
        if (fexcit < AD2S1210_MIN_EXCIT || fexcit > AD2S1210_MAX_EXCIT) {
                        const char *buf, size_t len)
 {
        struct ad2s1210_state *st = iio_priv(dev_to_iio_dev(dev));
-       unsigned long udata;
+       unsigned char udata;
        unsigned char data;
        int ret;
 
-       ret = strict_strtoul(buf, 16, &udata);
+       ret = kstrtou8(buf, 16, &udata);
        if (ret)
                return -EINVAL;
 
 {
        struct ad2s1210_state *st = iio_priv(dev_to_iio_dev(dev));
        unsigned char data;
-       unsigned long udata;
+       unsigned char udata;
        int ret;
 
-       ret = strict_strtoul(buf, 10, &udata);
+       ret = kstrtou8(buf, 10, &udata);
        if (ret || udata < 10 || udata > 16) {
                pr_err("ad2s1210: resolution out of range\n");
                return -EINVAL;
                struct device_attribute *attr, const char *buf, size_t len)
 {
        struct ad2s1210_state *st = iio_priv(dev_to_iio_dev(dev));
-       unsigned long data;
+       unsigned char data;
        int ret;
        struct iio_dev_attr *iattr = to_iio_dev_attr(attr);
 
-       ret = strict_strtoul(buf, 10, &data);
+       ret = kstrtou8(buf, 10, &data);
        if (ret)
                return -EINVAL;
        mutex_lock(&st->lock);
 
 {
        struct iio_trigger *trig = to_iio_trigger(dev);
        struct bfin_tmr_state *st = iio_trigger_get_drvdata(trig);
-       unsigned long val;
+       unsigned int val;
        bool enabled;
        int ret;
 
-       ret = strict_strtoul(buf, 10, &val);
+       ret = kstrtouint(buf, 10, &val);
        if (ret)
-               goto error_ret;
+               return ret;
 
        if (val > 100000) {
-               ret = -EINVAL;
-               goto error_ret;
-       }
+               return -EINVAL;
 
        enabled = get_enabled_gptimers() & st->t->bit;
 
        if (enabled)
                disable_gptimers(st->t->bit);
 
-       if (!val)
-               goto error_ret;
+       if (val == 0)
+               return count;
 
        val = get_sclk() / val;
-       if (val <= 4 || val <= st->duty) {
-               ret = -EINVAL;
-               goto error_ret;
-       }
+       if (val <= 4 || val <= st->duty)
+               return -EINVAL;
 
        set_gptimer_period(st->t->id, val);
        set_gptimer_pwidth(st->t->id, val - st->duty);
        if (enabled)
                enable_gptimers(st->t->bit);
 
-error_ret:
-       return ret ? ret : count;
+       return count;
 }
 
 static ssize_t iio_bfin_tmr_frequency_show(struct device *dev,
 
 {
        struct iio_trigger *trig = to_iio_trigger(dev);
        struct iio_prtc_trigger_info *trig_info = iio_trigger_get_drvdata(trig);
-       unsigned long val;
+       int val;
        int ret;
 
-       ret = strict_strtoul(buf, 10, &val);
+       ret = kstrtoint(buf, 10, &val);
        if (ret)
                goto error_ret;