@@ -306,21 +306,19 @@ static int ina2xx_read_init(struct device *dev, int reg, long *val)
306
306
* Turns alert limit values into register values.
307
307
* Opposite of the formula in ina2xx_get_value().
308
308
*/
309
- static u16 ina226_alert_to_reg (struct ina2xx_data * data , u32 mask , unsigned long val )
309
+ static u16 ina226_alert_to_reg (struct ina2xx_data * data , int reg , unsigned long val )
310
310
{
311
- switch (mask ) {
312
- case INA226_SHUNT_OVER_VOLTAGE_MASK :
313
- case INA226_SHUNT_UNDER_VOLTAGE_MASK :
311
+ switch (reg ) {
312
+ case INA2XX_SHUNT_VOLTAGE :
314
313
val = clamp_val (val , 0 , SHRT_MAX * data -> config -> shunt_div );
315
314
val *= data -> config -> shunt_div ;
316
315
return clamp_val (val , 0 , SHRT_MAX );
317
- case INA226_BUS_OVER_VOLTAGE_MASK :
318
- case INA226_BUS_UNDER_VOLTAGE_MASK :
316
+ case INA2XX_BUS_VOLTAGE :
319
317
val = clamp_val (val , 0 , 200000 );
320
318
val = (val * 1000 ) << data -> config -> bus_voltage_shift ;
321
319
val = DIV_ROUND_CLOSEST (val , data -> config -> bus_voltage_lsb );
322
320
return clamp_val (val , 0 , USHRT_MAX );
323
- case INA226_POWER_OVER_LIMIT_MASK :
321
+ case INA2XX_POWER :
324
322
val = clamp_val (val , 0 , UINT_MAX - data -> power_lsb_uW );
325
323
val = DIV_ROUND_CLOSEST (val , data -> power_lsb_uW );
326
324
return clamp_val (val , 0 , USHRT_MAX );
@@ -355,7 +353,7 @@ static int ina226_alert_limit_read(struct ina2xx_data *data, u32 mask, int reg,
355
353
return ret ;
356
354
}
357
355
358
- static int ina226_alert_limit_write (struct ina2xx_data * data , u32 mask , long val )
356
+ static int ina226_alert_limit_write (struct ina2xx_data * data , u32 mask , int reg , long val )
359
357
{
360
358
struct regmap * regmap = data -> regmap ;
361
359
int ret ;
@@ -375,7 +373,7 @@ static int ina226_alert_limit_write(struct ina2xx_data *data, u32 mask, long val
375
373
goto abort ;
376
374
377
375
ret = regmap_write (regmap , INA226_ALERT_LIMIT ,
378
- ina226_alert_to_reg (data , mask , val ));
376
+ ina226_alert_to_reg (data , reg , val ));
379
377
if (ret < 0 )
380
378
goto abort ;
381
379
@@ -522,10 +520,12 @@ static int ina2xx_in_write(struct device *dev, u32 attr, int channel, long val)
522
520
case hwmon_in_lcrit :
523
521
return ina226_alert_limit_write (data ,
524
522
channel ? INA226_BUS_UNDER_VOLTAGE_MASK : INA226_SHUNT_UNDER_VOLTAGE_MASK ,
523
+ channel ? INA2XX_BUS_VOLTAGE : INA2XX_SHUNT_VOLTAGE ,
525
524
val );
526
525
case hwmon_in_crit :
527
526
return ina226_alert_limit_write (data ,
528
527
channel ? INA226_BUS_OVER_VOLTAGE_MASK : INA226_SHUNT_OVER_VOLTAGE_MASK ,
528
+ channel ? INA2XX_BUS_VOLTAGE : INA2XX_SHUNT_VOLTAGE ,
529
529
val );
530
530
default :
531
531
return - EOPNOTSUPP ;
@@ -539,7 +539,8 @@ static int ina2xx_power_write(struct device *dev, u32 attr, long val)
539
539
540
540
switch (attr ) {
541
541
case hwmon_power_crit :
542
- return ina226_alert_limit_write (data , INA226_POWER_OVER_LIMIT_MASK , val );
542
+ return ina226_alert_limit_write (data , INA226_POWER_OVER_LIMIT_MASK ,
543
+ INA2XX_POWER , val );
543
544
default :
544
545
return - EOPNOTSUPP ;
545
546
}
0 commit comments