iio: temperature: tmp117: add TI TMP119 support

Add support for the TMP119 temperature sensor, which has the same
programming model as the TMP117.

[rgantois: Commit log]

Signed-off-by: Wil Stark <wil_stark@keysight.com>
[rgantois: Rebased from v6.6.58 to v7.2-rc1]
Signed-off-by: Romain Gantois <romain.gantois@bootlin.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
Wil Stark 2026-06-30 11:26:35 +02:00 committed by Jonathan Cameron
parent 1777f50b92
commit fef4337eb2

View File

@ -9,6 +9,7 @@
* Note: This driver assumes that the sensor has been calibrated beforehand.
*/
#include <linux/array_size.h>
#include <linux/delay.h>
#include <linux/err.h>
#include <linux/i2c.h>
@ -38,6 +39,7 @@
#define TMP116_DEVICE_ID 0x1116
#define TMP117_DEVICE_ID 0x0117
#define TMP119_DEVICE_ID 0x2117
struct tmp117_data {
struct i2c_client *client;
@ -139,6 +141,12 @@ static const struct tmp11x_info tmp117_channels_info = {
.num_channels = ARRAY_SIZE(tmp117_channels)
};
static const struct tmp11x_info tmp119_channels_info = {
.name = "tmp119",
.channels = tmp117_channels,
.num_channels = ARRAY_SIZE(tmp117_channels)
};
static const struct iio_info tmp117_info = {
.read_raw = tmp117_read_raw,
.write_raw = tmp117_write_raw,
@ -172,6 +180,9 @@ static int tmp117_probe(struct i2c_client *client)
case TMP117_DEVICE_ID:
match_data = &tmp117_channels_info;
break;
case TMP119_DEVICE_ID:
match_data = &tmp119_channels_info;
break;
default:
dev_info(&client->dev,
"Unknown device id (0x%x), use fallback compatible\n",
@ -204,6 +215,7 @@ static int tmp117_probe(struct i2c_client *client)
static const struct of_device_id tmp117_of_match[] = {
{ .compatible = "ti,tmp116", .data = &tmp116_channels_info },
{ .compatible = "ti,tmp117", .data = &tmp117_channels_info },
{ .compatible = "ti,tmp119", .data = &tmp119_channels_info },
{ }
};
MODULE_DEVICE_TABLE(of, tmp117_of_match);
@ -211,6 +223,7 @@ MODULE_DEVICE_TABLE(of, tmp117_of_match);
static const struct i2c_device_id tmp117_id[] = {
{ .name = "tmp116", .driver_data = (kernel_ulong_t)&tmp116_channels_info },
{ .name = "tmp117", .driver_data = (kernel_ulong_t)&tmp117_channels_info },
{ .name = "tmp119", .driver_data = (kernel_ulong_t)&tmp119_channels_info },
{ }
};
MODULE_DEVICE_TABLE(i2c, tmp117_id);