Re: [PATCH v6 2/2] iio: proximity: Add driver support for vcnl3020 proximity sensor

From: Ivan Mikhaylov
Date: Thu Apr 02 2020 - 04:24:34 EST


On Wed, 2020-04-01 at 19:35 +0300, Andy Shevchenko wrote:
> On Wed, Apr 1, 2020 at 7:24 PM Ivan Mikhaylov <i.mikhaylov@xxxxxxxxx> wrote:
> > Proximity sensor driver based on light/vcnl4000.c code.
> > For now supports only the single on-demand measurement.
> >
> > The VCNL3020 is a fully integrated proximity sensor. Fully
> > integrated means that the infrared emitter is included in the
> > package. It has 16-bit resolution. It includes a signal
> > processing IC and features standard I2C communication
> > interface. It features an interrupt function.
>
> Thank you for an update, my comments below.
>
> ...
>
> > +static int get_and_apply_property(struct vcnl3020_data *data, const char
> > *prop,
> > + u32 reg)
> > +{
> > + int rc;
> > + u32 val;
> > +
> > + rc = device_property_read_u32(data->dev, prop, &val);
> > + if (rc)
> > + return 0;
> > +
> > + rc = regmap_write(data->regmap, reg, val);
> > + if (rc)
> > + dev_err(data->dev, "Error (%d) setting property (%s)",
> > + rc, prop);
>
> This requires {} according to the coding style

checkpatch.pl doesn't say anything bad on this spot. Do you mean to make
something like this?

rc = regmap_write(data->regmap, reg, val);
if (rc) {
dev_err(data->dev, "Error (%d) setting property (%s)",
rc, prop);
}

In previous notes you said to remove them.

> .
>
> > + return rc;
> > +}
>
> ...
>
> > +static int vcnl3020_probe(struct i2c_client *client)
> > +{
> > + indio_dev->name = VCNL_DRV_NAME;
>
> It's definitely not a driver name. You have to put part number here.

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/iio/light/tsl4531.c?h=v5.6#n199
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/iio/light/max44009.c?h=v5.6#n507
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/iio/light/vl6180.c?h=v5.6#n515