forked from ~ljy/RK356X_SDK_RELEASE

hc
2024-01-04 1543e317f1da31b75942316931e8f491a8920811
kernel/drivers/hwmon/ltc2990.c
....@@ -1,10 +1,9 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * Driver for Linear Technology LTC2990 power monitor
34 *
45 * Copyright (C) 2014 Topic Embedded Products
56 * Author: Mike Looijmans <mike.looijmans@topic.nl>
6
- *
7
- * License: GPLv2
87 */
98
109 #include <linux/bitops.h>
....@@ -14,7 +13,7 @@
1413 #include <linux/i2c.h>
1514 #include <linux/kernel.h>
1615 #include <linux/module.h>
17
-#include <linux/of.h>
16
+#include <linux/property.h>
1817
1918 #define LTC2990_STATUS 0x00
2019 #define LTC2990_CONTROL 0x01
....@@ -136,7 +135,7 @@
136135 return 0;
137136 }
138137
139
-static ssize_t ltc2990_show_value(struct device *dev,
138
+static ssize_t ltc2990_value_show(struct device *dev,
140139 struct device_attribute *da, char *buf)
141140 {
142141 struct sensor_device_attribute *attr = to_sensor_dev_attr(da);
....@@ -170,26 +169,16 @@
170169 return 0;
171170 }
172171
173
-static SENSOR_DEVICE_ATTR(temp1_input, S_IRUGO, ltc2990_show_value, NULL,
174
- LTC2990_TEMP1);
175
-static SENSOR_DEVICE_ATTR(temp2_input, S_IRUGO, ltc2990_show_value, NULL,
176
- LTC2990_TEMP2);
177
-static SENSOR_DEVICE_ATTR(temp3_input, S_IRUGO, ltc2990_show_value, NULL,
178
- LTC2990_TEMP3);
179
-static SENSOR_DEVICE_ATTR(curr1_input, S_IRUGO, ltc2990_show_value, NULL,
180
- LTC2990_CURR1);
181
-static SENSOR_DEVICE_ATTR(curr2_input, S_IRUGO, ltc2990_show_value, NULL,
182
- LTC2990_CURR2);
183
-static SENSOR_DEVICE_ATTR(in0_input, S_IRUGO, ltc2990_show_value, NULL,
184
- LTC2990_IN0);
185
-static SENSOR_DEVICE_ATTR(in1_input, S_IRUGO, ltc2990_show_value, NULL,
186
- LTC2990_IN1);
187
-static SENSOR_DEVICE_ATTR(in2_input, S_IRUGO, ltc2990_show_value, NULL,
188
- LTC2990_IN2);
189
-static SENSOR_DEVICE_ATTR(in3_input, S_IRUGO, ltc2990_show_value, NULL,
190
- LTC2990_IN3);
191
-static SENSOR_DEVICE_ATTR(in4_input, S_IRUGO, ltc2990_show_value, NULL,
192
- LTC2990_IN4);
172
+static SENSOR_DEVICE_ATTR_RO(temp1_input, ltc2990_value, LTC2990_TEMP1);
173
+static SENSOR_DEVICE_ATTR_RO(temp2_input, ltc2990_value, LTC2990_TEMP2);
174
+static SENSOR_DEVICE_ATTR_RO(temp3_input, ltc2990_value, LTC2990_TEMP3);
175
+static SENSOR_DEVICE_ATTR_RO(curr1_input, ltc2990_value, LTC2990_CURR1);
176
+static SENSOR_DEVICE_ATTR_RO(curr2_input, ltc2990_value, LTC2990_CURR2);
177
+static SENSOR_DEVICE_ATTR_RO(in0_input, ltc2990_value, LTC2990_IN0);
178
+static SENSOR_DEVICE_ATTR_RO(in1_input, ltc2990_value, LTC2990_IN1);
179
+static SENSOR_DEVICE_ATTR_RO(in2_input, ltc2990_value, LTC2990_IN2);
180
+static SENSOR_DEVICE_ATTR_RO(in3_input, ltc2990_value, LTC2990_IN3);
181
+static SENSOR_DEVICE_ATTR_RO(in4_input, ltc2990_value, LTC2990_IN4);
193182
194183 static struct attribute *ltc2990_attrs[] = {
195184 &sensor_dev_attr_temp1_input.dev_attr.attr,
....@@ -211,13 +200,11 @@
211200 };
212201 __ATTRIBUTE_GROUPS(ltc2990);
213202
214
-static int ltc2990_i2c_probe(struct i2c_client *i2c,
215
- const struct i2c_device_id *id)
203
+static int ltc2990_i2c_probe(struct i2c_client *i2c)
216204 {
217205 int ret;
218206 struct device *hwmon_dev;
219207 struct ltc2990_data *data;
220
- struct device_node *of_node = i2c->dev.of_node;
221208
222209 if (!i2c_check_functionality(i2c->adapter, I2C_FUNC_SMBUS_BYTE_DATA |
223210 I2C_FUNC_SMBUS_WORD_DATA))
....@@ -229,9 +216,10 @@
229216
230217 data->i2c = i2c;
231218
232
- if (of_node) {
233
- ret = of_property_read_u32_array(of_node, "lltc,meas-mode",
234
- data->mode, 2);
219
+ if (dev_fwnode(&i2c->dev)) {
220
+ ret = device_property_read_u32_array(&i2c->dev,
221
+ "lltc,meas-mode",
222
+ data->mode, 2);
235223 if (ret < 0)
236224 return ret;
237225
....@@ -280,7 +268,7 @@
280268 .driver = {
281269 .name = "ltc2990",
282270 },
283
- .probe = ltc2990_i2c_probe,
271
+ .probe_new = ltc2990_i2c_probe,
284272 .id_table = ltc2990_i2c_id,
285273 };
286274