diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2023-08-15 11:09:24 +0200 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2023-08-15 11:09:24 +0200 |
| commit | ec8bd3d7a1afae48eae3a540cd867a4cd71edd39 (patch) | |
| tree | bcc8512edeb1520982bb8b5f6efbdc56c4922965 | |
| parent | 407619c8600ed015f609e947cb5a335377d161b1 (diff) | |
Minor changes
| -rwxr-xr-x | ina260.c | 32 |
1 files changed, 28 insertions, 4 deletions
@@ -80,7 +80,7 @@ struct client_data { static int ina260_hwmon_read(struct device *dev, enum hwmon_sensor_types type, u32 attr, int channel, long *val) { - int rvalue, reg, err; + int rvalue, reg, err, rem; struct client_data *cdata=dev_get_drvdata(dev); switch(type){ case hwmon_power: @@ -101,7 +101,7 @@ static int ina260_hwmon_read(struct device *dev, enum hwmon_sensor_types type, } else if(type == hwmon_power) { *val=10*rvalue*1000; } else{ - *val=div_u64(rvalue*25,100)+rvalue; + *val=div_u64_rem(rvalue*25,100,&rem)+rvalue+div_u64(rem,10); } return 0; } @@ -131,8 +131,32 @@ INA260_REG_STORE(alert_limit,INA260_REG_ALERTLIMIT) static umode_t ina260_hwmon_is_visible(const void *drvdata, enum hwmon_sensor_types type, u32 attr, int channel){ - return 0444; - } + switch (type) { + case hwmon_in: + switch (attr) { + case hwmon_in_input: + return 0444; + default: + return 0; + } + case hwmon_curr: + switch (attr) { + case hwmon_curr_input: + return 0444; + default: + return 0; + } + case hwmon_power: + switch (attr) { + case hwmon_power_input: + return 0444; + default: + return 0; + } + default: + return 0; + } +} static const struct hwmon_channel_info * ina260_hwmon_info[] = { HWMON_CHANNEL_INFO(in,HWMON_I_INPUT), HWMON_CHANNEL_INFO(power,HWMON_P_INPUT), |
