diff mbox series

[v2,2/2] hwmon: (sht4x) Add device tree match table and document it

Message ID 20211120204053.2299501-2-davidm@egauge.net (mailing list archive)
State Changes Requested
Headers show
Series [v2,1/2] hwmon: (sht4x) Fix EREMOTEIO errors | expand

Commit Message

David Mosberger-Tang Nov. 20, 2021, 8:40 p.m. UTC
This patch enables automatic loading of the sht4x module via a device
tree table entry.

Signed-off-by: David Mosberger-Tang <davidm@egauge.net>
---
 .../bindings/hwmon/sensirion,sht4x.yaml       | 50 +++++++++++++++++++
 drivers/hwmon/sht4x.c                         |  7 +++
 2 files changed, 57 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/hwmon/sensirion,sht4x.yaml

Comments

Guenter Roeck Nov. 20, 2021, 9:12 p.m. UTC | #1
On 11/20/21 12:40 PM, David Mosberger-Tang wrote:
> This patch enables automatic loading of the sht4x module via a device
> tree table entry.
> 
> Signed-off-by: David Mosberger-Tang <davidm@egauge.net>
> ---
>   .../bindings/hwmon/sensirion,sht4x.yaml       | 50 +++++++++++++++++++
>   drivers/hwmon/sht4x.c                         |  7 +++

This needs to be two separate patches, one the devicetree change and the other
the source code change. DT maintainers need to be copied on the devicetree
patch.

Also, please consider adding the device to trivial-devices.yaml instead since
there are no special bindings.

Thanks,
Guenter

>   2 files changed, 57 insertions(+)
>   create mode 100644 Documentation/devicetree/bindings/hwmon/sensirion,sht4x.yaml
> 
> diff --git a/Documentation/devicetree/bindings/hwmon/sensirion,sht4x.yaml b/Documentation/devicetree/bindings/hwmon/sensirion,sht4x.yaml
> new file mode 100644
> index 000000000000..588c2e37b035
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/hwmon/sensirion,sht4x.yaml
> @@ -0,0 +1,50 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/hwmon/sensirion,sht4x.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Sensirion SHT4x Humidity and Temperature Sensor IC
> +
> +maintainers:
> +  - Navin Sankar Velliangiri navin@linumiz.com
> +
> +description: |
> +  The SHT4x is a high-accuracy digital humidity and temperature sensor
> +  designed especially for battery-driven high-volume consumer
> +  electronics applications.  For further information refere to
> +  Documentation/hwmon/sht4x.rst
> +
> +  This binding document describes the binding for the hardware monitor
> +  portion of the driver.
> +
> +properties:
> +  compatible:
> +    enum:
> +      - sensirion,sht4x
> +
> +  reg:
> +    const: 0x44
> +    description:
> +      The I2c base address of the SHT4x.  0x44 for all chip versions
> +      except for SHT41-BD1B, where it is 0x45.
> +
> +required:
> +  - compatible
> +  - reg
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    i2c {
> +      #address-cells = <1>;
> +      #size-cells = <0>;
> +      clock-frequency = <400000>;
> +
> +      sht4x@44 {
> +        compatible = "sensirion,sht4x";
> +        reg = <0x44>;
> +      };
> +    };
> +...
> diff --git a/drivers/hwmon/sht4x.c b/drivers/hwmon/sht4x.c
> index 3415d7a0e0fc..6e53d81e32d4 100644
> --- a/drivers/hwmon/sht4x.c
> +++ b/drivers/hwmon/sht4x.c
> @@ -281,9 +281,16 @@ static const struct i2c_device_id sht4x_id[] = {
>   };
>   MODULE_DEVICE_TABLE(i2c, sht4x_id);
>   
> +static const struct of_device_id sht4x_of_match[] = {
> +	{ .compatible = "sensirion,sht4x" },
> +	{ }
> +};
> +MODULE_DEVICE_TABLE(of, sht4x_of_match);
> +
>   static struct i2c_driver sht4x_driver = {
>   	.driver = {
>   		.name = "sht4x",
> +		.of_match_table = sht4x_of_match
>   	},
>   	.probe		= sht4x_probe,
>   	.id_table	= sht4x_id,
>
David Mosberger-Tang Nov. 20, 2021, 9:36 p.m. UTC | #2
On Sat, 2021-11-20 at 13:12 -0800, Guenter Roeck wrote:
> On 11/20/21 12:40 PM, David Mosberger-Tang wrote:
> > This patch enables automatic loading of the sht4x module via a device
> > tree table entry.
> > 
> > Signed-off-by: David Mosberger-Tang <davidm@egauge.net>
> > ---
> >   .../bindings/hwmon/sensirion,sht4x.yaml       | 50 +++++++++++++++++++
> >   drivers/hwmon/sht4x.c                         |  7 +++
> 
> This needs to be two separate patches, one the devicetree change and the other
> the source code change. DT maintainers need to be copied on the devicetree
> patch.

Isn't that going to be confusing if one but not the other patch makes
it into a repository?  Either you end up with an undocumented device
tree property or you end up with documentation for an unsupported
property.

> Also, please consider adding the device to trivial-devices.yaml instead since
> there are no special bindings.

I didn't know it existed.  Sure, that's much easier.

  --david

> Thanks,
> Guenter
> 
> >   2 files changed, 57 insertions(+)
> >   create mode 100644 Documentation/devicetree/bindings/hwmon/sensirion,sht4x.yaml
> > 
> > diff --git a/Documentation/devicetree/bindings/hwmon/sensirion,sht4x.yaml b/Documentation/devicetree/bindings/hwmon/sensirion,sht4x.yaml
> > new file mode 100644
> > index 000000000000..588c2e37b035
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/hwmon/sensirion,sht4x.yaml
> > @@ -0,0 +1,50 @@
> > +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/hwmon/sensirion,sht4x.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Sensirion SHT4x Humidity and Temperature Sensor IC
> > +
> > +maintainers:
> > +  - Navin Sankar Velliangiri navin@linumiz.com
> > +
> > +description: |
> > +  The SHT4x is a high-accuracy digital humidity and temperature sensor
> > +  designed especially for battery-driven high-volume consumer
> > +  electronics applications.  For further information refere to
> > +  Documentation/hwmon/sht4x.rst
> > +
> > +  This binding document describes the binding for the hardware monitor
> > +  portion of the driver.
> > +
> > +properties:
> > +  compatible:
> > +    enum:
> > +      - sensirion,sht4x
> > +
> > +  reg:
> > +    const: 0x44
> > +    description:
> > +      The I2c base address of the SHT4x.  0x44 for all chip versions
> > +      except for SHT41-BD1B, where it is 0x45.
> > +
> > +required:
> > +  - compatible
> > +  - reg
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > +  - |
> > +    i2c {
> > +      #address-cells = <1>;
> > +      #size-cells = <0>;
> > +      clock-frequency = <400000>;
> > +
> > +      sht4x@44 {
> > +        compatible = "sensirion,sht4x";
> > +        reg = <0x44>;
> > +      };
> > +    };
> > +...
> > diff --git a/drivers/hwmon/sht4x.c b/drivers/hwmon/sht4x.c
> > index 3415d7a0e0fc..6e53d81e32d4 100644
> > --- a/drivers/hwmon/sht4x.c
> > +++ b/drivers/hwmon/sht4x.c
> > @@ -281,9 +281,16 @@ static const struct i2c_device_id sht4x_id[] = {
> >   };
> >   MODULE_DEVICE_TABLE(i2c, sht4x_id);
> >   
> > +static const struct of_device_id sht4x_of_match[] = {
> > +	{ .compatible = "sensirion,sht4x" },
> > +	{ }
> > +};
> > +MODULE_DEVICE_TABLE(of, sht4x_of_match);
> > +
> >   static struct i2c_driver sht4x_driver = {
> >   	.driver = {
> >   		.name = "sht4x",
> > +		.of_match_table = sht4x_of_match
> >   	},
> >   	.probe		= sht4x_probe,
> >   	.id_table	= sht4x_id,
> >
Guenter Roeck Nov. 20, 2021, 9:51 p.m. UTC | #3
On Sat, Nov 20, 2021 at 02:36:39PM -0700, David Mosberger-Tang wrote:
> On Sat, 2021-11-20 at 13:12 -0800, Guenter Roeck wrote:
> > On 11/20/21 12:40 PM, David Mosberger-Tang wrote:
> > > This patch enables automatic loading of the sht4x module via a device
> > > tree table entry.
> > > 
> > > Signed-off-by: David Mosberger-Tang <davidm@egauge.net>
> > > ---
> > >   .../bindings/hwmon/sensirion,sht4x.yaml       | 50 +++++++++++++++++++
> > >   drivers/hwmon/sht4x.c                         |  7 +++
> > 
> > This needs to be two separate patches, one the devicetree change and the other
> > the source code change. DT maintainers need to be copied on the devicetree
> > patch.
> 
> Isn't that going to be confusing if one but not the other patch makes
> it into a repository?  Either you end up with an undocumented device
> tree property or you end up with documentation for an unsupported
> property.
> 
This is a trivial device, so that isn't really an issue. Otherwise,
if there are real bindings to approve, I would not accept the patch
making the code change unless the devicetree patch is approved,
and I would typically apply both together.

Anyway, those are the rules. Devicetree patches need to be sent
separately and approved by a devicetree maintainer. We should not
[have to] discuss rules here. If you are unhappy with it, I would
suggest to start a discussion on the devicetree mailing list and
suggest alternatives.

Thanks,
Guenter
David Mosberger-Tang Nov. 21, 2021, 4:15 p.m. UTC | #4
On Sat, 2021-11-20 at 13:51 -0800, Guenter Roeck wrote:
> On Sat, Nov 20, 2021 at 02:36:39PM -0700, David Mosberger-Tang wrote:
> > On Sat, 2021-11-20 at 13:12 -0800, Guenter Roeck wrote:
> > > On 11/20/21 12:40 PM, David Mosberger-Tang wrote:
> > > > This patch enables automatic loading of the sht4x module via a device
> > > > tree table entry.
> > > > 
> > > > Signed-off-by: David Mosberger-Tang <davidm@egauge.net>
> > > > ---
> > > >   .../bindings/hwmon/sensirion,sht4x.yaml       | 50 +++++++++++++++++++
> > > >   drivers/hwmon/sht4x.c                         |  7 +++
> > > 
> > > This needs to be two separate patches, one the devicetree change and the other
> > > the source code change. DT maintainers need to be copied on the devicetree
> > > patch.
> > 
> > Isn't that going to be confusing if one but not the other patch makes
> > it into a repository?  Either you end up with an undocumented device
> > tree property or you end up with documentation for an unsupported
> > property.
> > 
> This is a trivial device, so that isn't really an issue. Otherwise,
> if there are real bindings to approve, I would not accept the patch
> making the code change unless the devicetree patch is approved,
> and I would typically apply both together.

Got it, thanks for the explanation.

  --david
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/hwmon/sensirion,sht4x.yaml b/Documentation/devicetree/bindings/hwmon/sensirion,sht4x.yaml
new file mode 100644
index 000000000000..588c2e37b035
--- /dev/null
+++ b/Documentation/devicetree/bindings/hwmon/sensirion,sht4x.yaml
@@ -0,0 +1,50 @@ 
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/hwmon/sensirion,sht4x.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Sensirion SHT4x Humidity and Temperature Sensor IC
+
+maintainers:
+  - Navin Sankar Velliangiri navin@linumiz.com
+
+description: |
+  The SHT4x is a high-accuracy digital humidity and temperature sensor
+  designed especially for battery-driven high-volume consumer
+  electronics applications.  For further information refere to
+  Documentation/hwmon/sht4x.rst
+
+  This binding document describes the binding for the hardware monitor
+  portion of the driver.
+
+properties:
+  compatible:
+    enum:
+      - sensirion,sht4x
+
+  reg:
+    const: 0x44
+    description:
+      The I2c base address of the SHT4x.  0x44 for all chip versions
+      except for SHT41-BD1B, where it is 0x45.
+
+required:
+  - compatible
+  - reg
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+      #address-cells = <1>;
+      #size-cells = <0>;
+      clock-frequency = <400000>;
+
+      sht4x@44 {
+        compatible = "sensirion,sht4x";
+        reg = <0x44>;
+      };
+    };
+...
diff --git a/drivers/hwmon/sht4x.c b/drivers/hwmon/sht4x.c
index 3415d7a0e0fc..6e53d81e32d4 100644
--- a/drivers/hwmon/sht4x.c
+++ b/drivers/hwmon/sht4x.c
@@ -281,9 +281,16 @@  static const struct i2c_device_id sht4x_id[] = {
 };
 MODULE_DEVICE_TABLE(i2c, sht4x_id);
 
+static const struct of_device_id sht4x_of_match[] = {
+	{ .compatible = "sensirion,sht4x" },
+	{ }
+};
+MODULE_DEVICE_TABLE(of, sht4x_of_match);
+
 static struct i2c_driver sht4x_driver = {
 	.driver = {
 		.name = "sht4x",
+		.of_match_table = sht4x_of_match
 	},
 	.probe		= sht4x_probe,
 	.id_table	= sht4x_id,