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==================== ===========================================================