124 lines
3.9 KiB
ReStructuredText
124 lines
3.9 KiB
ReStructuredText
Kernel driver ina2xx
|
|
====================
|
|
|
|
Supported chips:
|
|
|
|
* Texas Instruments INA219
|
|
|
|
|
|
Prefix: 'ina219'
|
|
Addresses: I2C 0x40 - 0x4f
|
|
|
|
Datasheet: Publicly available at the Texas Instruments website
|
|
|
|
https://www.ti.com/
|
|
|
|
* Texas Instruments INA220
|
|
|
|
Prefix: 'ina220'
|
|
|
|
Addresses: I2C 0x40 - 0x4f
|
|
|
|
Datasheet: Publicly available at the Texas Instruments website
|
|
|
|
https://www.ti.com/
|
|
|
|
* Texas Instruments INA226
|
|
|
|
Prefix: 'ina226'
|
|
|
|
Addresses: I2C 0x40 - 0x4f
|
|
|
|
Datasheet: Publicly available at the Texas Instruments website
|
|
|
|
https://www.ti.com/
|
|
|
|
* Texas Instruments INA230
|
|
|
|
Prefix: 'ina230'
|
|
|
|
Addresses: I2C 0x40 - 0x4f
|
|
|
|
Datasheet: Publicly available at the Texas Instruments website
|
|
|
|
https://www.ti.com/
|
|
|
|
* Texas Instruments INA231
|
|
|
|
Prefix: 'ina231'
|
|
|
|
Addresses: I2C 0x40 - 0x4f
|
|
|
|
Datasheet: Publicly available at the Texas Instruments website
|
|
|
|
https://www.ti.com/
|
|
|
|
Author: Lothar Felten <lothar.felten@gmail.com>
|
|
|
|
Description
|
|
-----------
|
|
|
|
The INA219 is a high-side current shunt and power monitor with an I2C
|
|
interface. The INA219 monitors both shunt drop and supply voltage, with
|
|
programmable conversion times and filtering.
|
|
|
|
The INA220 is a high or low side current shunt and power monitor with an I2C
|
|
interface. The INA220 monitors both shunt drop and supply voltage.
|
|
|
|
The INA226 is a current shunt and power monitor with an I2C interface.
|
|
The INA226 monitors both a shunt voltage drop and bus supply voltage.
|
|
|
|
INA230 and INA231 are high or low side current shunt and power monitors
|
|
with an I2C interface. The chips monitor both a shunt voltage drop and
|
|
bus supply voltage.
|
|
|
|
The shunt value in micro-ohms can be set via platform data or device tree at
|
|
compile-time or via the shunt_resistor attribute in sysfs at run-time. Please
|
|
refer to the Documentation/devicetree/bindings/hwmon/ti,ina2xx.yaml for bindings
|
|
if the device tree is used.
|
|
|
|
Additionally ina226 supports update_interval attribute as described in
|
|
Documentation/hwmon/sysfs-interface.rst. Internally the interval is the sum of
|
|
bus and shunt voltage conversion times multiplied by the averaging rate. We
|
|
don't touch the conversion times and only modify the number of averages. The
|
|
lower limit of the update_interval is 2 ms, the upper limit is 2253 ms.
|
|
The actual programmed interval may vary from the desired value.
|
|
|
|
General sysfs entries
|
|
---------------------
|
|
|
|
======================= ===============================
|
|
in0_input Shunt voltage(mV) channel
|
|
in1_input Bus voltage(mV) channel
|
|
curr1_input Current(mA) measurement channel
|
|
power1_input Power(uW) measurement channel
|
|
shunt_resistor Shunt resistance(uOhm) channel
|
|
======================= ===============================
|
|
|
|
Sysfs entries for ina226, ina230 and ina231 only
|
|
------------------------------------------------
|
|
|
|
======================= ====================================================
|
|
in0_lcrit Critical low shunt voltage
|
|
in0_crit Critical high shunt voltage
|
|
in0_lcrit_alarm Shunt voltage critical low alarm
|
|
in0_crit_alarm Shunt voltage critical high alarm
|
|
in1_lcrit Critical low bus voltage
|
|
in1_crit Critical high bus voltage
|
|
in1_lcrit_alarm Bus voltage critical low alarm
|
|
in1_crit_alarm Bus voltage critical high alarm
|
|
power1_crit Critical high power
|
|
power1_crit_alarm Power critical high alarm
|
|
update_interval data conversion time; affects number of samples used
|
|
to average results for shunt and bus voltages.
|
|
======================= ====================================================
|
|
|
|
.. note::
|
|
|
|
- Configure `shunt_resistor` before configure `power1_crit`, because power
|
|
value is calculated based on `shunt_resistor` set.
|
|
- Because of the underlying register implementation, only one `*crit` setting
|
|
and its `alarm` can be active. Writing to one `*crit` setting clears other
|
|
`*crit` settings and alarms. Writing 0 to any `*crit` setting clears all
|
|
`*crit` settings and alarms.
|