diff --git a/README.md b/README.md index 67d37e6..055c7e1 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,23 @@ # INA260-sysfs-driver +Link to the [ina260 datasheet](https://www.ti.com/lit/gpn/INA260). + ## Installation $ make $ sudo insmod ina260.ko -## Usage +## Managing INA260 devices +- Add device: `echo ina260 [devaddr] > /sys/bus/i2c/devices//new_device` +- Delete device: `echo [devaddr] > /sys/bus/i2c/devices//delete_device` -- Add device: `echo ina260 > /sys/bus/i2c/devices//new_device` +## Sysfs structure +- Overview: `tree /sys/kernel/ina260` +- You can access to each device registers in `/sys/kernel/ina260//registers/` +- You can access to each device register fields in `/sys/kernel/ina260//fields/` +- You can access to the currently measured current, voltage and power via `/sys/kernel/ina260//` (units are watts, amperes and volts respectively) -- Next, run: `tree /sys/kernel/ina260` \ No newline at end of file +For more informations on the registers/fields, please refer to the [ina260 datasheet](https://www.ti.com/lit/gpn/INA260). + +## Notes +- Tested so far on a [Beaglebone Black](https://www.beagleboard.org/boards/beaglebone-black) with a [Mikrobus Cape](https://www.mikroe.com/beaglebone-mikrobus-cape) with up to four ina260 devices attached. \ No newline at end of file diff --git a/ina260.c b/ina260.c index 8a99b2e..283757c 100644 --- a/ina260.c +++ b/ina260.c @@ -371,9 +371,9 @@ static const struct attribute_group registers_group = { }; // ----- Metrics ----- static struct kobj_attribute metric_power_attribute = - __ATTR(power, 0664, attr_metric_show, NULL); + __ATTR(power, 0444, attr_metric_show, NULL); static struct kobj_attribute metric_voltage_attribute = - __ATTR(voltage, 0664, attr_metric_show, NULL); + __ATTR(voltage, 0444, attr_metric_show, NULL); static struct kobj_attribute metric_current_attribute = { .attr = {.name = "current", // current is a defined macro so need to do it manually .mode = VERIFY_OCTAL_PERMISSIONS(0444) },