xref: /linux/Documentation/hwmon/ina2xx.rst (revision a4eb44a6435d6d8f9e642407a4a06f65eb90ca04)
1Kernel driver ina2xx
2====================
3
4Supported chips:
5
6  * Texas Instruments INA219
7
8
9    Prefix: 'ina219'
10    Addresses: I2C 0x40 - 0x4f
11
12    Datasheet: Publicly available at the Texas Instruments website
13
14	       https://www.ti.com/
15
16  * Texas Instruments INA220
17
18    Prefix: 'ina220'
19
20    Addresses: I2C 0x40 - 0x4f
21
22    Datasheet: Publicly available at the Texas Instruments website
23
24	       https://www.ti.com/
25
26  * Texas Instruments INA226
27
28    Prefix: 'ina226'
29
30    Addresses: I2C 0x40 - 0x4f
31
32    Datasheet: Publicly available at the Texas Instruments website
33
34	       https://www.ti.com/
35
36  * Texas Instruments INA230
37
38    Prefix: 'ina230'
39
40    Addresses: I2C 0x40 - 0x4f
41
42    Datasheet: Publicly available at the Texas Instruments website
43
44	       https://www.ti.com/
45
46  * Texas Instruments INA231
47
48    Prefix: 'ina231'
49
50    Addresses: I2C 0x40 - 0x4f
51
52    Datasheet: Publicly available at the Texas Instruments website
53
54	       https://www.ti.com/
55
56Author: Lothar Felten <lothar.felten@gmail.com>
57
58Description
59-----------
60
61The INA219 is a high-side current shunt and power monitor with an I2C
62interface. The INA219 monitors both shunt drop and supply voltage, with
63programmable conversion times and filtering.
64
65The INA220 is a high or low side current shunt and power monitor with an I2C
66interface. The INA220 monitors both shunt drop and supply voltage.
67
68The INA226 is a current shunt and power monitor with an I2C interface.
69The INA226 monitors both a shunt voltage drop and bus supply voltage.
70
71INA230 and INA231 are high or low side current shunt and power monitors
72with an I2C interface. The chips monitor both a shunt voltage drop and
73bus supply voltage.
74
75The shunt value in micro-ohms can be set via platform data or device tree at
76compile-time or via the shunt_resistor attribute in sysfs at run-time. Please
77refer to the Documentation/devicetree/bindings/hwmon/ti,ina2xx.yaml for bindings
78if the device tree is used.
79
80Additionally ina226 supports update_interval attribute as described in
81Documentation/hwmon/sysfs-interface.rst. Internally the interval is the sum of
82bus and shunt voltage conversion times multiplied by the averaging rate. We
83don't touch the conversion times and only modify the number of averages. The
84lower limit of the update_interval is 2 ms, the upper limit is 2253 ms.
85The actual programmed interval may vary from the desired value.
86
87General sysfs entries
88---------------------
89
90======================= ===============================
91in0_input		Shunt voltage(mV) channel
92in1_input		Bus voltage(mV) channel
93curr1_input		Current(mA) measurement channel
94power1_input		Power(uW) measurement channel
95shunt_resistor		Shunt resistance(uOhm) channel
96======================= ===============================
97
98Sysfs entries for ina226, ina230 and ina231 only
99------------------------------------------------
100
101======================= ====================================================
102in0_lcrit		Critical low shunt voltage
103in0_crit		Critical high shunt voltage
104in0_lcrit_alarm		Shunt voltage critical low alarm
105in0_crit_alarm		Shunt voltage critical high alarm
106in1_lcrit		Critical low bus voltage
107in1_crit		Critical high bus voltage
108in1_lcrit_alarm		Bus voltage critical low alarm
109in1_crit_alarm		Bus voltage critical high alarm
110power1_crit		Critical high power
111power1_crit_alarm	Power critical high alarm
112update_interval		data conversion time; affects number of samples used
113			to average results for shunt and bus voltages.
114======================= ====================================================
115
116.. note::
117
118   - Configure `shunt_resistor` before configure `power1_crit`, because power
119     value is calculated based on `shunt_resistor` set.
120   - Because of the underlying register implementation, only one `*crit` setting
121     and its `alarm` can be active. Writing to one `*crit` setting clears other
122     `*crit` settings and alarms. Writing 0 to any `*crit` setting clears all
123     `*crit` settings and alarms.
124