summaryrefslogtreecommitdiff
path: root/ina260.c
diff options
context:
space:
mode:
Diffstat (limited to 'ina260.c')
-rw-r--r--ina260.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/ina260.c b/ina260.c
index 82fd554..b05ca31 100644
--- a/ina260.c
+++ b/ina260.c
@@ -233,6 +233,23 @@ static int ina260_set_register_3bits(struct client_data *cdata, unsigned char re
return -EINVAL;
}
+static int ina260_set_register_1bit(struct client_data *cdata, unsigned char reg, unsigned char n, int bit){
+ int mask, value;
+ if(bit==0 || bit == 1){
+ if(ina260_read_register(cdata,reg,&value)){
+ return 1;
+ }
+ mask=~(1<< n);
+ value &= mask; // clear bits
+ value |= bit << n;
+ if(ina260_write_register(cdata,reg,value)){
+ return 1;
+ }
+ return 0;
+ }
+ return -EINVAL;
+}
+
static ssize_t attr_field_store(struct kobject *_kobj,
struct kobj_attribute *attr,
const char *buf, size_t count)