xref: /linux/Documentation/hwmon/tsc1641.rst (revision 84318277d6334c6981ab326d4acc87c6a6ddc9b8)
1*0c7d530aSIgor Reznichenko.. SPDX-License-Identifier: GPL-2.0-only
2*0c7d530aSIgor Reznichenko
3*0c7d530aSIgor ReznichenkoKernel driver tsc1641
4*0c7d530aSIgor Reznichenko=====================
5*0c7d530aSIgor Reznichenko
6*0c7d530aSIgor ReznichenkoSupported chips:
7*0c7d530aSIgor Reznichenko
8*0c7d530aSIgor Reznichenko  * ST TSC1641
9*0c7d530aSIgor Reznichenko
10*0c7d530aSIgor Reznichenko    Prefix: 'tsc1641'
11*0c7d530aSIgor Reznichenko
12*0c7d530aSIgor Reznichenko    Addresses scanned: -
13*0c7d530aSIgor Reznichenko
14*0c7d530aSIgor Reznichenko    Datasheet:
15*0c7d530aSIgor Reznichenko	https://www.st.com/resource/en/datasheet/tsc1641.pdf
16*0c7d530aSIgor Reznichenko
17*0c7d530aSIgor ReznichenkoAuthor:
18*0c7d530aSIgor Reznichenko	- Igor Reznichenko <igor@reznichenko.net>
19*0c7d530aSIgor Reznichenko
20*0c7d530aSIgor Reznichenko
21*0c7d530aSIgor ReznichenkoDescription
22*0c7d530aSIgor Reznichenko-----------
23*0c7d530aSIgor Reznichenko
24*0c7d530aSIgor ReznichenkoThe TSC1641 is a high-precision current, voltage, power, and temperature
25*0c7d530aSIgor Reznichenkomonitoring analog front-end (AFE). It monitors bidirectional current into a
26*0c7d530aSIgor Reznichenkoshunt resistor and load voltage up to 60 V in a synchronized way. Digital bus
27*0c7d530aSIgor Reznichenkointerface is I2C/SMbus. The TSC1641 allows the assertion of several alerts
28*0c7d530aSIgor Reznichenkoregarding the voltage, current, power and temperature.
29*0c7d530aSIgor Reznichenko
30*0c7d530aSIgor ReznichenkoUsage Notes
31*0c7d530aSIgor Reznichenko-----------
32*0c7d530aSIgor Reznichenko
33*0c7d530aSIgor ReznichenkoThe TSC1641 driver requires the value of the external shunt resistor to
34*0c7d530aSIgor Reznichenkocorrectly compute current and power measurements. The resistor value, in
35*0c7d530aSIgor Reznichenkomicro-ohms, should be provided either through the device tree property
36*0c7d530aSIgor Reznichenko"shunt-resistor-micro-ohms" or via writable sysfs attribute "shunt_resistor".
37*0c7d530aSIgor ReznichenkoPlease refer to the Documentation/devicetree/bindings/hwmon/st,tsc1641.yaml
38*0c7d530aSIgor Reznichenkofor bindings if the device tree is used.
39*0c7d530aSIgor Reznichenko
40*0c7d530aSIgor ReznichenkoSupported range of shunt resistor values is from 100 uOhm to 655.35 mOhm, in
41*0c7d530aSIgor Reznichenko10 uOhm steps.
42*0c7d530aSIgor ReznichenkoWhen selecting the value keep in mind device maximum DC power measurement is
43*0c7d530aSIgor Reznichenko1600W. See datasheet p.22 for ST recommendations on selecting shunt value.
44*0c7d530aSIgor Reznichenko
45*0c7d530aSIgor ReznichenkoIf the shunt resistor value is not specified in the device tree, the driver
46*0c7d530aSIgor Reznichenkoinitializes it to 1000 uOhm by default. Users may configure the correct shunt
47*0c7d530aSIgor Reznichenkoresistor value at runtime by writing to the "shunt_resistor" sysfs attribute.
48*0c7d530aSIgor Reznichenko
49*0c7d530aSIgor ReznichenkoThe driver only supports continuous operating mode.
50*0c7d530aSIgor ReznichenkoMeasurement ranges:
51*0c7d530aSIgor Reznichenko
52*0c7d530aSIgor Reznichenko================ ===============================================================
53*0c7d530aSIgor ReznichenkoCurrent          Bidirectional, dependent on shunt
54*0c7d530aSIgor ReznichenkoBus voltage      0-60V
55*0c7d530aSIgor ReznichenkoMaximum DC power 1600W
56*0c7d530aSIgor ReznichenkoTemperature      -40C to +125C
57*0c7d530aSIgor Reznichenko================ ===============================================================
58*0c7d530aSIgor Reznichenko
59*0c7d530aSIgor ReznichenkoSysfs entries
60*0c7d530aSIgor Reznichenko-------------
61*0c7d530aSIgor Reznichenko
62*0c7d530aSIgor Reznichenko==================== ===========================================================
63*0c7d530aSIgor Reznichenkoin0_input            bus voltage (mV)
64*0c7d530aSIgor Reznichenkoin0_max              bus voltage max alarm limit (mV)
65*0c7d530aSIgor Reznichenkoin0_max_alarm        bus voltage max alarm limit exceeded
66*0c7d530aSIgor Reznichenkoin0_min              bus voltage min alarm limit (mV)
67*0c7d530aSIgor Reznichenkoin0_min_alarm        bus voltage min alarm limit exceeded
68*0c7d530aSIgor Reznichenko
69*0c7d530aSIgor Reznichenkocurr1_input          current measurement (mA)
70*0c7d530aSIgor Reznichenkocurr1_max            current max alarm limit (mA)
71*0c7d530aSIgor Reznichenkocurr1_max_alarm      current max alarm limit exceeded
72*0c7d530aSIgor Reznichenkocurr1_min            current min alarm limit (mA)
73*0c7d530aSIgor Reznichenkocurr1_min_alarm      current min alarm limit exceeded
74*0c7d530aSIgor Reznichenko
75*0c7d530aSIgor Reznichenkopower1_input         power measurement (uW)
76*0c7d530aSIgor Reznichenkopower1_max           power max alarm limit (uW)
77*0c7d530aSIgor Reznichenkopower1_max_alarm     power max alarm limit exceeded
78*0c7d530aSIgor Reznichenko
79*0c7d530aSIgor Reznichenkoshunt_resistor       shunt resistor value (uOhms)
80*0c7d530aSIgor Reznichenko
81*0c7d530aSIgor Reznichenkotemp1_input          temperature measurement (mdegC)
82*0c7d530aSIgor Reznichenkotemp1_max            temperature max alarm limit (mdegC)
83*0c7d530aSIgor Reznichenkotemp1_max_alarm      temperature max alarm limit exceeded
84*0c7d530aSIgor Reznichenko
85*0c7d530aSIgor Reznichenkoupdate_interval      data conversion time (1 - 33ms), longer conversion time
86*0c7d530aSIgor Reznichenko                     corresponds to higher effective resolution in bits
87*0c7d530aSIgor Reznichenko==================== ===========================================================