> > ... > > > + return vref / (MICRO/MILLI); > > Wouldn't MILLI in the denominator just suffice? Just a quick comment here. Given this is converting from micro to milli units I'd consider the maths here be acting as documentation of that which would be lost if /MILLI only used. Need spaces around the / though > > ... > > > + case IIO_CHAN_INFO_SAMP_FREQ: > > + reg = st->channels[chan->address].cfg.odr; > > + > > + *val = st->info->sinc5_data_rates[reg] / MILLI; > > + *val2 = (st->info->sinc5_data_rates[reg] % MILLI) * (MICRO/MILLI); > > + > > + return IIO_VAL_INT_PLUS_MICRO; > > + } > > > + ret = fwnode_property_read_string(child, "adi,reference-select", &ref_label); > > + if (!ret) { > > + for (i = 0; i < ARRAY_SIZE(ad7173_ref_sel_str); i++) > > + if (strcmp(ref_label, ad7173_ref_sel_str[i]) == 0) { > > + ref_sel = i; > > + break; > > + } > > > + if (i == ARRAY_SIZE(ad7173_ref_sel_str)) > > + return dev_err_probe(dev, -EINVAL, "Invalid channel reference name %s", ref_label); > > Too long line. > > > + } else if (ret != -EINVAL) { > > + return dev_err_probe(dev, ret, "Invalid channel reference value"); > > + } > > > Use standard pattern and it will be easier to see that 'else' is redundant. > > if (ret == -EINVAL) // However I don't like this handling of > // properties, but up to you and maintainer Personally I'd check for existence of property first and only try reading if it exists. Avoid dance with resetting ret to 0. > ret = 0; > if (ret) > return dev_err_probe(...); > > > BUT. Isn't it a home grown variant of fwnode_property_match_property_string()? true enough... I'd still add an existence check first given this one is optional. Jonathan