diff mbox series

[4/5] hwmon: (max1668) Replace chip type with number of channels

Message ID 20240726004329.934763-5-linux@roeck-us.net (mailing list archive)
State Superseded
Headers show
Series hwmon: (max1668) Modernize driver | expand

Commit Message

Guenter Roeck July 26, 2024, 12:43 a.m. UTC
The only difference between supported chips is the number of channels.
Drop enum chips and list the number of channels in struct i2c_device_id
directly.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
 drivers/hwmon/max1668.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

Comments

Tzung-Bi Shih July 26, 2024, 3:20 p.m. UTC | #1
On Thu, Jul 25, 2024 at 05:43:28PM -0700, Guenter Roeck wrote:
> The only difference between supported chips is the number of channels.
> Drop enum chips and list the number of channels in struct i2c_device_id
> directly.
> 
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>

Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org>
diff mbox series

Patch

diff --git a/drivers/hwmon/max1668.c b/drivers/hwmon/max1668.c
index 48f247ca5d85..071c17604131 100644
--- a/drivers/hwmon/max1668.c
+++ b/drivers/hwmon/max1668.c
@@ -49,12 +49,10 @@  static bool read_only;
 module_param(read_only, bool, 0);
 MODULE_PARM_DESC(read_only, "Don't set any values, read only mode");
 
-enum chips { max1668, max1805, max1989 };
-
 struct max1668_data {
 	struct regmap *regmap;
 	const struct attribute_group *groups[3];
-	enum chips type;
+	int channels;
 };
 
 static ssize_t show_temp(struct device *dev,
@@ -393,11 +391,11 @@  static int max1668_probe(struct i2c_client *client)
 	if (IS_ERR(data->regmap))
 		return PTR_ERR(data->regmap);
 
-	data->type = (uintptr_t)i2c_get_match_data(client);
+	data->channels = (uintptr_t)i2c_get_match_data(client);
 
 	/* sysfs hooks */
 	data->groups[0] = &max1668_group_common;
-	if (data->type == max1668 || data->type == max1989)
+	if (data->channels == 5)
 		data->groups[1] = &max1668_group_unique;
 
 	hwmon_dev = devm_hwmon_device_register_with_groups(dev, client->name,
@@ -406,9 +404,9 @@  static int max1668_probe(struct i2c_client *client)
 }
 
 static const struct i2c_device_id max1668_id[] = {
-	{ "max1668", max1668 },
-	{ "max1805", max1805 },
-	{ "max1989", max1989 },
+	{ "max1668", 5 },
+	{ "max1805", 3 },
+	{ "max1989", 5 },
 	{ }
 };
 MODULE_DEVICE_TABLE(i2c, max1668_id);