Re: [PATCH V3 3/5] iio: accel: sca3300: modified to support multi chips

From: Andy Shevchenko
Date: Wed May 04 2022 - 10:20:54 EST


On Wed, May 4, 2022 at 3:36 PM LI Qingwu
<Qing-wu.Li@xxxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> The drive support sca3300 only.

driver supports

> There are some other similar chips, for instance, SCL3300.
> Prepare the way for multiple chips and additional channels.
> Modify the driver to read the device id.
> Add the tables for the corresponding id to support multiple chips.
> Add prepares for the addition of extra channels.
> Add prepares for handling the operation modes for multiple chips.

It seems you need to work more on the commit messages in all patches.

...

> +struct sca3300_chip_info {
> + const struct iio_chan_spec *channels;
> + const int (*accel_scale_table)[2];
> + const int *accel_scale_modes_map;
> + const unsigned long *scan_masks;
> + const int *avail_modes_table;
> + const int *freq_modes_map;
> + const int *freq_table;
> + const u8 num_accel_scales;
> + const u8 num_avail_modes;
> + const u8 num_channels;
> + const u8 num_freqs;
> + const u8 chip_id;

Why do you have const qualifier on all members? The last one is
understandable, but the rest, esp. pointers should be justified.

> + const char *name;
> +};

...

> +static int sca3300_set_op_mode(struct sca3300_data *sca_data, int index)
> +{
> + int mode;
> +
> + if ((index < 0) || (index >= sca_data->chip->num_avail_modes))

Too many parentheses.

> + return -EINVAL;
> +
> + mode = sca_data->chip->avail_modes_table[index];
> +
> + return sca3300_write_reg(sca_data, SCA3300_REG_MODE, mode);
> +}

--
With Best Regards,
Andy Shevchenko