2022-04-06 15:46:46

by Camel Guo

[permalink] [raw]
Subject: [PATCH] hwmon: (tmp401) Support extended temperature range

From: Camel Guo <[email protected]>

This patch only applies to tmp431 and devicetree configuration.

Signed-off-by: Camel Guo <[email protected]>
---
Documentation/hwmon/tmp401.rst | 13 +++++++++++++
drivers/hwmon/tmp401.c | 5 +++++
2 files changed, 18 insertions(+)

diff --git a/Documentation/hwmon/tmp401.rst b/Documentation/hwmon/tmp401.rst
index 3aacf3d3bdf3..d12e9c9ba40f 100644
--- a/Documentation/hwmon/tmp401.rst
+++ b/Documentation/hwmon/tmp401.rst
@@ -78,3 +78,16 @@ some additional features.

TMP432 is compatible with TMP401 and TMP431. It supports two external
temperature sensors.
+
+Device tree
+-----------
+TMP431 has support for the device tree parameter "extended-range" which enables
+the extended range in the chip.
+
+Example:
+
+main-temp@4c {
+ compatible = "ti,tmp431";
+ reg = <0x4c>;
+ extended-range;
+};
diff --git a/drivers/hwmon/tmp401.c b/drivers/hwmon/tmp401.c
index b86d9df7105d..6efd2475ffda 100644
--- a/drivers/hwmon/tmp401.c
+++ b/drivers/hwmon/tmp401.c
@@ -557,6 +557,11 @@ static int tmp401_init_client(struct tmp401_data *data)
config_orig = config;
config &= ~TMP401_CONFIG_SHUTDOWN;

+ if (of_property_read_bool(data->client->dev.of_node, "extended-range")) {
+ /* Enable extended range */
+ config |= TMP401_CONFIG_RANGE;
+ }
+
data->extended_range = !!(config & TMP401_CONFIG_RANGE);

if (config != config_orig)
--
2.30.2


2022-04-06 16:14:59

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH] hwmon: (tmp401) Support extended temperature range

On 4/6/22 02:29, Camel Guo wrote:
> From: Camel Guo <[email protected]>
>
> This patch only applies to tmp431 and devicetree configuration.
>
> Signed-off-by: Camel Guo <[email protected]>
> ---
> Documentation/hwmon/tmp401.rst | 13 +++++++++++++
> drivers/hwmon/tmp401.c | 5 +++++
> 2 files changed, 18 insertions(+)
>
> diff --git a/Documentation/hwmon/tmp401.rst b/Documentation/hwmon/tmp401.rst
> index 3aacf3d3bdf3..d12e9c9ba40f 100644
> --- a/Documentation/hwmon/tmp401.rst
> +++ b/Documentation/hwmon/tmp401.rst
> @@ -78,3 +78,16 @@ some additional features.
>
> TMP432 is compatible with TMP401 and TMP431. It supports two external
> temperature sensors.
> +
> +Device tree
> +-----------
> +TMP431 has support for the device tree parameter "extended-range" which enables
> +the extended range in the chip.
> +

There is no practical reason to limit support for this to TMP431,
nor does the actual code make such a distinction.

> +Example:
> +
> +main-temp@4c {
> + compatible = "ti,tmp431";
> + reg = <0x4c>;
> + extended-range;
> +};

This is not an acceptable way to describe devicetree properties.
You would have to write a bindings document
(Documentation/devicetree/bindings/hwmon/ti,tmp401.yaml)
and describe the property there.

Guenter

> diff --git a/drivers/hwmon/tmp401.c b/drivers/hwmon/tmp401.c
> index b86d9df7105d..6efd2475ffda 100644
> --- a/drivers/hwmon/tmp401.c
> +++ b/drivers/hwmon/tmp401.c
> @@ -557,6 +557,11 @@ static int tmp401_init_client(struct tmp401_data *data)
> config_orig = config;
> config &= ~TMP401_CONFIG_SHUTDOWN;
>
> + if (of_property_read_bool(data->client->dev.of_node, "extended-range")) {
> + /* Enable extended range */
> + config |= TMP401_CONFIG_RANGE;
> + }
> +
> data->extended_range = !!(config & TMP401_CONFIG_RANGE);
>
> if (config != config_orig)

2022-04-06 16:23:37

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH] hwmon: (tmp401) Support extended temperature range

On 4/6/22 05:12, Guenter Roeck wrote:
> On 4/6/22 02:29, Camel Guo wrote:
>> From: Camel Guo <[email protected]>
>>
>> This patch only applies to tmp431 and devicetree configuration.
>>
>> Signed-off-by: Camel Guo <[email protected]>
>> ---
>>   Documentation/hwmon/tmp401.rst | 13 +++++++++++++
>>   drivers/hwmon/tmp401.c         |  5 +++++
>>   2 files changed, 18 insertions(+)
>>
>> diff --git a/Documentation/hwmon/tmp401.rst b/Documentation/hwmon/tmp401.rst
>> index 3aacf3d3bdf3..d12e9c9ba40f 100644
>> --- a/Documentation/hwmon/tmp401.rst
>> +++ b/Documentation/hwmon/tmp401.rst
>> @@ -78,3 +78,16 @@ some additional features.
>>   TMP432 is compatible with TMP401 and TMP431. It supports two external
>>   temperature sensors.
>> +
>> +Device tree
>> +-----------
>> +TMP431 has support for the device tree parameter "extended-range" which enables
>> +the extended range in the chip.
>> +
>
> There is no practical reason to limit support for this to TMP431,
> nor does the actual code make such a distinction.
>
>> +Example:
>> +
>> +main-temp@4c {
>> +  compatible = "ti,tmp431";
>> +  reg = <0x4c>;
>> +  extended-range;
>> +};
>
> This is not an acceptable way to describe devicetree properties.
> You would have to write a bindings document
> (Documentation/devicetree/bindings/hwmon/ti,tmp401.yaml)
> and describe the property there.
>

... and that should be modeled after ti,tmp421.yaml and also support
other configuration parameters, specifically beta compensation and
n-factor correction.

Guenter