@@ -1,5 +1,7 @@
/*
- * Driver for Linear Technology LTC2471 and LTC2473 voltage monitors
+ * Driver for Linear Technology LTC2461, LTC2463, LTC2471 and LTC2473 voltage
+ * monitors.
+ * The LTC2463 is identical to the 2461, but reports a differential signal.
* The LTC2473 is identical to the 2471, but reports a differential signal.
*
* Copyright (C) 2017 Topic Embedded Products
@@ -17,8 +19,10 @@
#include <linux/mod_devicetable.h>
enum ltc2471_chips {
+ ltc2461,
+ ltc2463,
ltc2471,
- ltc2473,
+ ltc2473
};
struct ltc2471_data {
@@ -122,7 +126,7 @@ static int ltc2471_i2c_probe(struct i2c_client *client,
indio_dev->name = id->name;
indio_dev->info = <c2471_info;
indio_dev->modes = INDIO_DIRECT_MODE;
- if (id->driver_data == ltc2473)
+ if (id->driver_data == ltc2473 || id->driver_data == ltc2463)
indio_dev->channels = ltc2473_channel;
else
indio_dev->channels = ltc2471_channel;
@@ -139,6 +143,8 @@ static int ltc2471_i2c_probe(struct i2c_client *client,
}
static const struct i2c_device_id ltc2471_i2c_id[] = {
+ { "ltc2461", ltc2461 },
+ { "ltc2463", ltc2463 },
{ "ltc2471", ltc2471 },
{ "ltc2473", ltc2473 },
{}
@@ -146,6 +152,8 @@ static const struct i2c_device_id ltc2471_i2c_id[] = {
MODULE_DEVICE_TABLE(i2c, ltc2471_i2c_id);
static const struct of_device_id ltc2471_of_match[] = {
+ { .compatible = "adi,ltc2461" },
+ { .compatible = "adi,ltc2463" },
{ .compatible = "adi,ltc2471" },
{ .compatible = "adi,ltc2473" },
{}
@@ -163,6 +171,6 @@ static struct i2c_driver ltc2471_i2c_driver = {
module_i2c_driver(ltc2471_i2c_driver);
-MODULE_DESCRIPTION("LTC2471/LTC2473 ADC driver");
+MODULE_DESCRIPTION("LTC2461/LTC2463/LTC2471/LTC2473 ADC driver");
MODULE_AUTHOR("Topic Embedded Products");
MODULE_LICENSE("GPL v2");
Add compatible strings for these devices in the existing ltc2471 driver. Signed-off-by: Darius Berghe <darius.berghe@analog.com> --- drivers/iio/adc/ltc2471.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-)