Hi all,
The sht21 driver actually supports all i2c sht2x chips so add support for those names and additionally add DT support.
Tested for sht20 and verified against the datasheet for sht25.
Thanks!
Signed-off-by: Kurt Borja kuurtb@gmail.com --- Kurt Borja (3): hwmon: (sht21) Add support for all sht2x chips hwmon: (sht21) Add devicetree support dt-bindings: trivial-devices: Add sht2x sensors
Documentation/devicetree/bindings/trivial-devices.yaml | 1 + Documentation/hwmon/sht21.rst | 11 +++++++++++ drivers/hwmon/sht21.c | 13 ++++++++++++- 3 files changed, 24 insertions(+), 1 deletion(-) --- base-commit: b236920731dd90c3fba8c227aa0c4dee5351a639 change-id: 20250907-sht2x-9b96125a0cf5
All sht2x chips share the same communication protocol so add support for them.
Cc: stable@vger.kernel.org Signed-off-by: Kurt Borja kuurtb@gmail.com --- Documentation/hwmon/sht21.rst | 11 +++++++++++ drivers/hwmon/sht21.c | 3 +++ 2 files changed, 14 insertions(+)
diff --git a/Documentation/hwmon/sht21.rst b/Documentation/hwmon/sht21.rst index 1bccc8e8aac8d3532ec17dcdbc6a172102877085..65f85ca68ecac1cba6ad23f783fd648305c40927 100644 --- a/Documentation/hwmon/sht21.rst +++ b/Documentation/hwmon/sht21.rst @@ -2,6 +2,17 @@ Kernel driver sht21 ===================
Supported chips: + * Sensirion SHT20 + + Prefix: 'sht20' + + Addresses scanned: none + + Datasheet: Publicly available at the Sensirion website + + https://www.sensirion.com/file/datasheet_sht20 + +
* Sensirion SHT21
diff --git a/drivers/hwmon/sht21.c b/drivers/hwmon/sht21.c index 97327313529b467ed89d8f6b06c2d78efd54efbf..a2748659edc262dac9d87771f849a4fc0a29d981 100644 --- a/drivers/hwmon/sht21.c +++ b/drivers/hwmon/sht21.c @@ -275,7 +275,10 @@ static int sht21_probe(struct i2c_client *client)
/* Device ID table */ static const struct i2c_device_id sht21_id[] = { + { "sht20" }, { "sht21" }, + { "sht25" }, + { "sht2x" }, { } }; MODULE_DEVICE_TABLE(i2c, sht21_id);
On 9/7/25 15:06, Kurt Borja wrote:
All sht2x chips share the same communication protocol so add support for them.
Cc: stable@vger.kernel.org Signed-off-by: Kurt Borja kuurtb@gmail.com
Documentation/hwmon/sht21.rst | 11 +++++++++++ drivers/hwmon/sht21.c | 3 +++ 2 files changed, 14 insertions(+)
diff --git a/Documentation/hwmon/sht21.rst b/Documentation/hwmon/sht21.rst index 1bccc8e8aac8d3532ec17dcdbc6a172102877085..65f85ca68ecac1cba6ad23f783fd648305c40927 100644 --- a/Documentation/hwmon/sht21.rst +++ b/Documentation/hwmon/sht21.rst @@ -2,6 +2,17 @@ Kernel driver sht21 =================== Supported chips:
- Sensirion SHT20
- Prefix: 'sht20'
- Addresses scanned: none
- Datasheet: Publicly available at the Sensirion website
- https://www.sensirion.com/file/datasheet_sht20
Too many empty lines.
Please add SHT20 to Kconfig as well.
* Sensirion SHT21 diff --git a/drivers/hwmon/sht21.c b/drivers/hwmon/sht21.c index 97327313529b467ed89d8f6b06c2d78efd54efbf..a2748659edc262dac9d87771f849a4fc0a29d981 100644 --- a/drivers/hwmon/sht21.c +++ b/drivers/hwmon/sht21.c @@ -275,7 +275,10 @@ static int sht21_probe(struct i2c_client *client) /* Device ID table */ static const struct i2c_device_id sht21_id[] = {
- { "sht20" }, { "sht21" },
- { "sht25" },
- { "sht2x" },
AFAICS there is no sht2x chip.
{ } }; MODULE_DEVICE_TABLE(i2c, sht21_id);
On Sun Sep 7, 2025 at 5:19 PM -05, Guenter Roeck wrote:
On 9/7/25 15:06, Kurt Borja wrote:
All sht2x chips share the same communication protocol so add support for them.
Cc: stable@vger.kernel.org Signed-off-by: Kurt Borja kuurtb@gmail.com
Documentation/hwmon/sht21.rst | 11 +++++++++++ drivers/hwmon/sht21.c | 3 +++ 2 files changed, 14 insertions(+)
diff --git a/Documentation/hwmon/sht21.rst b/Documentation/hwmon/sht21.rst index 1bccc8e8aac8d3532ec17dcdbc6a172102877085..65f85ca68ecac1cba6ad23f783fd648305c40927 100644 --- a/Documentation/hwmon/sht21.rst +++ b/Documentation/hwmon/sht21.rst @@ -2,6 +2,17 @@ Kernel driver sht21 =================== Supported chips:
- Sensirion SHT20
- Prefix: 'sht20'
- Addresses scanned: none
- Datasheet: Publicly available at the Sensirion website
- https://www.sensirion.com/file/datasheet_sht20
Too many empty lines.
The next entries are also separated by 3 lines. I did it like that for symmetry.
Please add SHT20 to Kconfig as well.
Sure!
* Sensirion SHT21 diff --git a/drivers/hwmon/sht21.c b/drivers/hwmon/sht21.c index 97327313529b467ed89d8f6b06c2d78efd54efbf..a2748659edc262dac9d87771f849a4fc0a29d981 100644 --- a/drivers/hwmon/sht21.c +++ b/drivers/hwmon/sht21.c @@ -275,7 +275,10 @@ static int sht21_probe(struct i2c_client *client) /* Device ID table */ static const struct i2c_device_id sht21_id[] = {
- { "sht20" }, { "sht21" },
- { "sht25" },
- { "sht2x" },
AFAICS there is no sht2x chip.
{ } }; MODULE_DEVICE_TABLE(i2c, sht21_id);
On 9/7/25 15:45, Kurt Borja wrote:
On Sun Sep 7, 2025 at 5:19 PM -05, Guenter Roeck wrote:
On 9/7/25 15:06, Kurt Borja wrote:
All sht2x chips share the same communication protocol so add support for them.
Cc: stable@vger.kernel.org Signed-off-by: Kurt Borja kuurtb@gmail.com
Documentation/hwmon/sht21.rst | 11 +++++++++++ drivers/hwmon/sht21.c | 3 +++ 2 files changed, 14 insertions(+)
diff --git a/Documentation/hwmon/sht21.rst b/Documentation/hwmon/sht21.rst index 1bccc8e8aac8d3532ec17dcdbc6a172102877085..65f85ca68ecac1cba6ad23f783fd648305c40927 100644 --- a/Documentation/hwmon/sht21.rst +++ b/Documentation/hwmon/sht21.rst @@ -2,6 +2,17 @@ Kernel driver sht21 =================== Supported chips:
- Sensirion SHT20
- Prefix: 'sht20'
- Addresses scanned: none
- Datasheet: Publicly available at the Sensirion website
- https://www.sensirion.com/file/datasheet_sht20
Too many empty lines.
The next entries are also separated by 3 lines. I did it like that for symmetry.
Two wrongs don't make it right.
Guenter
Please add SHT20 to Kconfig as well.
Sure!
* Sensirion SHT21 diff --git a/drivers/hwmon/sht21.c b/drivers/hwmon/sht21.c index 97327313529b467ed89d8f6b06c2d78efd54efbf..a2748659edc262dac9d87771f849a4fc0a29d981 100644 --- a/drivers/hwmon/sht21.c +++ b/drivers/hwmon/sht21.c @@ -275,7 +275,10 @@ static int sht21_probe(struct i2c_client *client) /* Device ID table */ static const struct i2c_device_id sht21_id[] = {
- { "sht20" }, { "sht21" },
- { "sht25" },
- { "sht2x" },
AFAICS there is no sht2x chip.
{ }
}; MODULE_DEVICE_TABLE(i2c, sht21_id);
Add DT support for sht2x chips.
Cc: stable@vger.kernel.org Signed-off-by: Kurt Borja kuurtb@gmail.com --- drivers/hwmon/sht21.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/hwmon/sht21.c b/drivers/hwmon/sht21.c index a2748659edc262dac9d87771f849a4fc0a29d981..9813e04f60430f8e60f614d9c68785428978c4a4 100644 --- a/drivers/hwmon/sht21.c +++ b/drivers/hwmon/sht21.c @@ -283,8 +283,16 @@ static const struct i2c_device_id sht21_id[] = { }; MODULE_DEVICE_TABLE(i2c, sht21_id);
+static const struct of_device_id sht21_of_match[] = { + { .compatible = "sensirion,sht2x" }, + { } +}; + static struct i2c_driver sht21_driver = { - .driver.name = "sht21", + .driver = { + .name = "sht21", + .of_match_table = sht21_of_match, + }, .probe = sht21_probe, .id_table = sht21_id, };
On 9/7/25 15:06, Kurt Borja wrote:
Add DT support for sht2x chips.
Cc: stable@vger.kernel.org Signed-off-by: Kurt Borja kuurtb@gmail.com
drivers/hwmon/sht21.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/hwmon/sht21.c b/drivers/hwmon/sht21.c index a2748659edc262dac9d87771f849a4fc0a29d981..9813e04f60430f8e60f614d9c68785428978c4a4 100644 --- a/drivers/hwmon/sht21.c +++ b/drivers/hwmon/sht21.c @@ -283,8 +283,16 @@ static const struct i2c_device_id sht21_id[] = { }; MODULE_DEVICE_TABLE(i2c, sht21_id); +static const struct of_device_id sht21_of_match[] = {
- { .compatible = "sensirion,sht2x" },
This should be individual entries, not a placeholder for multiple chips.
- { }
+};
- static struct i2c_driver sht21_driver = {
- .driver.name = "sht21",
- .driver = {
.name = "sht21",
.of_match_table = sht21_of_match,
- }, .probe = sht21_probe, .id_table = sht21_id, };
On Sun Sep 7, 2025 at 5:19 PM -05, Guenter Roeck wrote:
On 9/7/25 15:06, Kurt Borja wrote:
Add DT support for sht2x chips.
Cc: stable@vger.kernel.org Signed-off-by: Kurt Borja kuurtb@gmail.com
drivers/hwmon/sht21.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/hwmon/sht21.c b/drivers/hwmon/sht21.c index a2748659edc262dac9d87771f849a4fc0a29d981..9813e04f60430f8e60f614d9c68785428978c4a4 100644 --- a/drivers/hwmon/sht21.c +++ b/drivers/hwmon/sht21.c @@ -283,8 +283,16 @@ static const struct i2c_device_id sht21_id[] = { }; MODULE_DEVICE_TABLE(i2c, sht21_id); +static const struct of_device_id sht21_of_match[] = {
- { .compatible = "sensirion,sht2x" },
This should be individual entries, not a placeholder for multiple chips.
Sure! I'll add an entry for each chip.
FWIW sensirion also uses sht2x as a placeholder in datasheets.
Thanks for your review!
- { }
+};
- static struct i2c_driver sht21_driver = {
- .driver.name = "sht21",
- .driver = {
.name = "sht21",
.of_match_table = sht21_of_match,
- }, .probe = sht21_probe, .id_table = sht21_id, };
Add sensirion,sht2x trivial sensors.
Cc: stable@vger.kernel.org Signed-off-by: Kurt Borja kuurtb@gmail.com --- Documentation/devicetree/bindings/trivial-devices.yaml | 1 + 1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml index f3dd18681aa6f81255141bdda6daf8e45369a2c2..736b8b6819036a183f26f84dc489ce27ec7d8bc4 100644 --- a/Documentation/devicetree/bindings/trivial-devices.yaml +++ b/Documentation/devicetree/bindings/trivial-devices.yaml @@ -362,6 +362,7 @@ properties: # Sensirion low power multi-pixel gas sensor with I2C interface - sensirion,sgpc3 # Sensirion temperature & humidity sensor with I2C interface + - sensirion,sht2x - sensirion,sht4x # Sensortek 3 axis accelerometer - sensortek,stk8312
On 9/7/25 15:06, Kurt Borja wrote:
Add sensirion,sht2x trivial sensors.
Cc: stable@vger.kernel.org Signed-off-by: Kurt Borja kuurtb@gmail.com
Documentation/devicetree/bindings/trivial-devices.yaml | 1 + 1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml index f3dd18681aa6f81255141bdda6daf8e45369a2c2..736b8b6819036a183f26f84dc489ce27ec7d8bc4 100644 --- a/Documentation/devicetree/bindings/trivial-devices.yaml +++ b/Documentation/devicetree/bindings/trivial-devices.yaml @@ -362,6 +362,7 @@ properties: # Sensirion low power multi-pixel gas sensor with I2C interface - sensirion,sgpc3 # Sensirion temperature & humidity sensor with I2C interface
- sensirion,sht2x
I think this should list the individual chips, not a "x" placeholder.
- sensirion,sht4x # Sensortek 3 axis accelerometer - sensortek,stk8312
linux-stable-mirror@lists.linaro.org