Re: [PATCH v2 3/3] dt-bindings: iio: chemical: pms7003: add device tree support

From: Tomasz Duszynski
Date: Thu Jan 31 2019 - 15:40:32 EST


On Wed, Jan 30, 2019 at 10:12:54AM +0100, Johan Hovold wrote:
> On Mon, Jan 28, 2019 at 07:43:33PM +0100, Tomasz Duszynski wrote:
> > On Mon, Jan 28, 2019 at 08:58:19AM +0100, Johan Hovold wrote:
> > > On Sun, Jan 27, 2019 at 07:19:16PM +0100, Tomasz Duszynski wrote:
> > > > Add device tree support for Plantower PMS7003 particulate matter sensor.
> > > >
> > > > Signed-off-by: Tomasz Duszynski <tduszyns@xxxxxxxxx>
> > > > ---
> > > > .../iio/chemical/plantower,pms7003.txt | 19 +++++++++++++++++++
> > > > 1 file changed, 19 insertions(+)
> > > > create mode 100644 Documentation/devicetree/bindings/iio/chemical/plantower,pms7003.txt
> > > >
> > > > diff --git a/Documentation/devicetree/bindings/iio/chemical/plantower,pms7003.txt b/Documentation/devicetree/bindings/iio/chemical/plantower,pms7003.txt
> > > > new file mode 100644
> > > > index 000000000000..e4c7f2fb1e30
> > > > --- /dev/null
> > > > +++ b/Documentation/devicetree/bindings/iio/chemical/plantower,pms7003.txt
> > > > @@ -0,0 +1,19 @@
> > > > +* Plantower PMS7003 particulate matter sensor
> > > > +
> > > > +Required properties:
> > > > +- compatible: must be "plantower,pms7003"
> > > > +
> > > > +Optional properties:
> > > > +- vcc-supply: phandle to the regulator that provides power to the sensor
> > >
> > > Shouldn't this one be a required property?
> > >
> >
> > Driver does not use regulator framework hence to me this property fits
> > here better.
>
> The device tree describes hardware, not any particular driver.
>
> That said, there is a bit of an on-going debate on whether mandatory
> supplies (from a hardware perspective) should always be represented in
> device tree or not.
>
> https://lore.kernel.org/lkml/20181123133126.GF2089@xxxxxxxxxxxxx/T/#u
> https://lore.kernel.org/lkml/20180409102244.GB11532@xxxxxxxxxxxxx/T/#u
> https://lore.kernel.org/lkml/20180425171123.xhyoay3nu463btoq@rob-hp-laptop/T/#u
>

Even after going through this threads I am still unconvinced that
vcc-supply should be a requirement. Making this a mandatory property
would automatically imply using *_regulator_get() in a driver code
(on condition one is adding regulator support). In case there
isn't any physically connected we end up with a dummy one and a warning.

Is it how this should work?

> > > > +- set-gpios: phandle to the GPIO connected to the SET line
> > > > +- reset-gpios: phandle to the GPIO connected to the RESET line
> > > > +
> > > > +Refer to serial/slave-device.txt for generic serial attached device bindings.
> > > > +
> > > > +Example:
> > > > +
> > > > +&uart0 {
> > > > + pms7003 {
> > >
> > > The node name should be generic and reflect the functionality rather
> > > than model. Perhaps "pms" will do here.
> >
> > Agree, ideally we should have a generic dt name for this kind of sensors
> > (something like air-pollution-sensor perhaps?). But unfortunately there isn't
> > anything available now so I guess compatible part name should be okay
> > (besides this is the type of naming commonly used in other iio bindings).
>
> What's wrong with particulate matter sensor ("pms")?
>
> Seems like a better fix than any particular model name to me at least.
>

Personally I would vote for a more descriptive node name, for example:
particulate-matter-sensor or air-pollution-sensor or other name
which clearly shows what device we are dealing with.

> > > > + compatible = "plantower,pms7003";
> > > > + };
> > > > +};
>
> Johan