Skip to content

Commit c263d91

Browse files
committed
hwmon: (ina2xx) Move ina2xx_get_value()
ina2xx_get_value() will be needed earlier in the next patch, so move it. No functional change. Reviewed-by: Tzung-Bi Shih <[email protected]> Signed-off-by: Guenter Roeck <[email protected]>
1 parent aa7d176 commit c263d91

File tree

1 file changed

+36
-36
lines changed

1 file changed

+36
-36
lines changed

drivers/hwmon/ina2xx.c

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,42 @@ static u16 ina226_interval_to_reg(unsigned long interval)
211211
return FIELD_PREP(INA226_AVG_RD_MASK, avg_bits);
212212
}
213213

214+
static int ina2xx_get_value(struct ina2xx_data *data, u8 reg,
215+
unsigned int regval)
216+
{
217+
int val;
218+
219+
switch (reg) {
220+
case INA2XX_SHUNT_VOLTAGE:
221+
/* signed register */
222+
val = DIV_ROUND_CLOSEST((s16)regval, data->config->shunt_div);
223+
break;
224+
case INA2XX_BUS_VOLTAGE:
225+
val = (regval >> data->config->bus_voltage_shift) *
226+
data->config->bus_voltage_lsb;
227+
val = DIV_ROUND_CLOSEST(val, 1000);
228+
break;
229+
case INA2XX_POWER:
230+
val = regval * data->power_lsb_uW;
231+
break;
232+
case INA2XX_CURRENT:
233+
/* signed register, result in mA */
234+
val = (s16)regval * data->current_lsb_uA;
235+
val = DIV_ROUND_CLOSEST(val, 1000);
236+
break;
237+
case INA2XX_CALIBRATION:
238+
val = regval;
239+
break;
240+
default:
241+
/* programmer goofed */
242+
WARN_ON_ONCE(1);
243+
val = 0;
244+
break;
245+
}
246+
247+
return val;
248+
}
249+
214250
static int ina2xx_read_reg(struct device *dev, int reg, unsigned int *regval)
215251
{
216252
struct ina2xx_data *data = dev_get_drvdata(dev);
@@ -264,42 +300,6 @@ static int ina2xx_read_reg(struct device *dev, int reg, unsigned int *regval)
264300
return -ENODEV;
265301
}
266302

267-
static int ina2xx_get_value(struct ina2xx_data *data, u8 reg,
268-
unsigned int regval)
269-
{
270-
int val;
271-
272-
switch (reg) {
273-
case INA2XX_SHUNT_VOLTAGE:
274-
/* signed register */
275-
val = DIV_ROUND_CLOSEST((s16)regval, data->config->shunt_div);
276-
break;
277-
case INA2XX_BUS_VOLTAGE:
278-
val = (regval >> data->config->bus_voltage_shift)
279-
* data->config->bus_voltage_lsb;
280-
val = DIV_ROUND_CLOSEST(val, 1000);
281-
break;
282-
case INA2XX_POWER:
283-
val = regval * data->power_lsb_uW;
284-
break;
285-
case INA2XX_CURRENT:
286-
/* signed register, result in mA */
287-
val = (s16)regval * data->current_lsb_uA;
288-
val = DIV_ROUND_CLOSEST(val, 1000);
289-
break;
290-
case INA2XX_CALIBRATION:
291-
val = regval;
292-
break;
293-
default:
294-
/* programmer goofed */
295-
WARN_ON_ONCE(1);
296-
val = 0;
297-
break;
298-
}
299-
300-
return val;
301-
}
302-
303303
static ssize_t ina2xx_value_show(struct device *dev,
304304
struct device_attribute *da, char *buf)
305305
{

0 commit comments

Comments
 (0)