linux/drivers/hwmon/ntc_thermistor.c
<<
>>
Prefs
   1/*
   2 * ntc_thermistor.c - NTC Thermistors
   3 *
   4 *  Copyright (C) 2010 Samsung Electronics
   5 *  MyungJoo Ham <myungjoo.ham@samsung.com>
   6 *
   7 * This program is free software; you can redistribute it and/or modify
   8 * it under the terms of the GNU General Public License as published by
   9 * the Free Software Foundation; either version 2 of the License, or
  10 * (at your option) any later version.
  11 *
  12 * This program is distributed in the hope that it will be useful,
  13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  15 * GNU General Public License for more details.
  16 *
  17 * You should have received a copy of the GNU General Public License
  18 * along with this program; if not, write to the Free Software
  19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  20 *
  21 */
  22
  23#include <linux/slab.h>
  24#include <linux/module.h>
  25#include <linux/pm_runtime.h>
  26#include <linux/math64.h>
  27#include <linux/platform_device.h>
  28#include <linux/err.h>
  29
  30#include <linux/platform_data/ntc_thermistor.h>
  31
  32#include <linux/hwmon.h>
  33#include <linux/hwmon-sysfs.h>
  34
  35struct ntc_compensation {
  36        int             temp_C;
  37        unsigned int    ohm;
  38};
  39
  40/*
  41 * A compensation table should be sorted by the values of .ohm
  42 * in descending order.
  43 * The following compensation tables are from the specification of Murata NTC
  44 * Thermistors Datasheet
  45 */
  46const struct ntc_compensation ncpXXwb473[] = {
  47        { .temp_C       = -40, .ohm     = 1747920 },
  48        { .temp_C       = -35, .ohm     = 1245428 },
  49        { .temp_C       = -30, .ohm     = 898485 },
  50        { .temp_C       = -25, .ohm     = 655802 },
  51        { .temp_C       = -20, .ohm     = 483954 },
  52        { .temp_C       = -15, .ohm     = 360850 },
  53        { .temp_C       = -10, .ohm     = 271697 },
  54        { .temp_C       = -5, .ohm      = 206463 },
  55        { .temp_C       = 0, .ohm       = 158214 },
  56        { .temp_C       = 5, .ohm       = 122259 },
  57        { .temp_C       = 10, .ohm      = 95227 },
  58        { .temp_C       = 15, .ohm      = 74730 },
  59        { .temp_C       = 20, .ohm      = 59065 },
  60        { .temp_C       = 25, .ohm      = 47000 },
  61        { .temp_C       = 30, .ohm      = 37643 },
  62        { .temp_C       = 35, .ohm      = 30334 },
  63        { .temp_C       = 40, .ohm      = 24591 },
  64        { .temp_C       = 45, .ohm      = 20048 },
  65        { .temp_C       = 50, .ohm      = 16433 },
  66        { .temp_C       = 55, .ohm      = 13539 },
  67        { .temp_C       = 60, .ohm      = 11209 },
  68        { .temp_C       = 65, .ohm      = 9328 },
  69        { .temp_C       = 70, .ohm      = 7798 },
  70        { .temp_C       = 75, .ohm      = 6544 },
  71        { .temp_C       = 80, .ohm      = 5518 },
  72        { .temp_C       = 85, .ohm      = 4674 },
  73        { .temp_C       = 90, .ohm      = 3972 },
  74        { .temp_C       = 95, .ohm      = 3388 },
  75        { .temp_C       = 100, .ohm     = 2902 },
  76        { .temp_C       = 105, .ohm     = 2494 },
  77        { .temp_C       = 110, .ohm     = 2150 },
  78        { .temp_C       = 115, .ohm     = 1860 },
  79        { .temp_C       = 120, .ohm     = 1615 },
  80        { .temp_C       = 125, .ohm     = 1406 },
  81};
  82const struct ntc_compensation ncpXXwl333[] = {
  83        { .temp_C       = -40, .ohm     = 1610154 },
  84        { .temp_C       = -35, .ohm     = 1130850 },
  85        { .temp_C       = -30, .ohm     = 802609 },
  86        { .temp_C       = -25, .ohm     = 575385 },
  8#L87" id="L87" class="line" name="L87">  8#L87" id="L87"n value="v2.6.18.6"
	  >
  v2.6.18.6t2v2.6.18.6"
	  >
  622"
	  >
ef">ntc_compensation temp_C    ef="+code=temp_C" class="sref">temp_C },
  65        { .tem9_Cohm     = 898485 },
  65        { .tem9_Cohm      = 6544 },
  84        { .ohm      = 5518 },
  57        { .ntc_c9mpens9tion ncpXXwl333[] = {
  57        { .temp_C9/a>  9    = -40, .ohm     = 1610154 },
  80        { .temp_C9/a>  9    = -35, .ohm     = 1130850 },
  86        { .temp_9 9     = -30, .ohm     = 802609 },
  60        { .temp_9 9     = -25, .ohm     = 575385 },
  75        { .  8#L87" id="L87"n9value9"v2.6.18.6"
	  >
  v2.6.18.6t2v2.6.18.6"
	  >
  622"
	  >
efa href="drivers/hwmon/ntc_thermistor.c#L62" id="L62" 2033="line" name="L86">  86        { .   8> #L10"9id="L10" class="linee!de=temp_C" class="sref">temp_C    ef="+code=ta href="drivers/hwmon/ntc_thermistor.c#L63" id="L63" claass="line" name="L79">  79        { .   9 _C _     = 40, .ohm      = 24591 },

  
  ohm      = 6544 },
  80        { .        = 80, .ohm      = 5518 },
  55        { .ncpXXwl333[] = {
  80        { .  103ohm     = 1610154 },
  65        { .  014ohm     = 1130850 },
  65        { .  15<06C      = -30, .ohm     = 802609 },
  63        { .      = -25, .ohm     = 575385 },
  55        { .  1708C "v2.6.18.6"
	  >
  v2.6.18.6t2v2.6.18.6"
	  >
  622"
	  >
efa href="drivers/hwmon/ntc_thermistor.c#L72" id="L72" 256.
  v2.6.18.4
  
  temp_C    ef="+code=ta href="drivers/hwmon/ntc_thermistor.c#L73" id="L73" 215s="line" name="L63">  63        { .   9> * t11_     = 40, .ohm      = 24591 },
  85        { . 1C1       = 75, .ohm      = 6544 },
  85        { .ohm      = 5518 },
  85        { . *11tion ncpXXwl333[] = {
temp_C },
  74        { .  113 11    = -40, .ohm     = 1610154 },
ntc_compensation    1411       = 95, .ohm      = 3388 },
  57        { .  15<ohm     = 2902 },
  57        { .o117">  17> * Y1u shou= 125, .o11me="L18">>  18  81}mist" id=82">  82const struct  * Foun1datio12_     = 40, .rmistor.c#L81" id="L81wmon/name="L81">  81  81o1"drivers/1hwmon/ntc_thermistor.c#L120" i121     = 40, .rmistor.c#L81" id="L81hm" class="sre_/ntc_thermistame="L81">  81}class="sre_/ntc_thermist     *.c#L81" id="L81pmistame="L81">  81o1"drivers/hwwmon/ntc_thermistor.c#L111" i12       = 80, tc_thermistor.c#L81" id="L81" class="line" name="L81">  81};
  81<;
o1"3rivers/ht"> */
  81  81o1""L13">  1ne" name="L23">  23#1inclu12    = -40, .<  81<"_;
o1"="L14">  name="L24">  24#incl1ude &12       = 95, charh.c#L81" id="L81">#iame="L81">  81<">#i" nam.c#L81" id="L81PLATFORM_NAME_SIZEame="L81">  81o1"class="li5">  25#include <1o1s="line" 1name="L26">  26#incl1ude &1t;o1s7">  17#include <  81  81  81  81  81  81  81)= 125, .o1sme="L18">line" name="L28">  28#inc1ude &l82">  82const struct linux/1err.h>
  81 == 0 && .c#L81" id="L81wividendame="L81">  81o1href="inc1lude/linux/platform_data1/ntc_131     = 40, .........n/ntc_t0 = 125, .o1c_thermis1tor.h>
  81 == 0)= 125, .o1hL12">  12<  81o1ame="L33"1>  33#include <  81  81  81) = 125, .o1a="L14">  sfs.h>
o1aclass="liline" name="L35">  35stru1t o1a="line" 1ss="line" name="L36">  3161      
	  >
h  81  81}mist" id=*.c#L81" id="L81wistame="L81">  81  81)= 125, .o17" id="L317" class="line" name="L317">  17 82">  82const struct f">ohm;
  81}class="sre_/ntc_thermist     *.c#L81" id="L81pmistame="L81">  81  81  81o1 name="L318">  38};
  81  81  81 /o1"drivers/1hwmon/ntc_thermistor.c#L140" i141     = 40, .s/hwmon/ntc_theuemp_C" clas>  81  81  81  81 /o1"_thermis1>  41  81  81  81  81o1 L12">  12c#L42" id="L42" class="l1ine" 143     = 40, .s/hwmon/ntc_thepuOp_C" clas>  81  81o1 "L13">  133  81  81o1 ="L14">  #L44" id="L44" class="li1ne" n1me="L4= 125, .o1 class="liwmon/ntc_thermistor.c#L415" id14   81  82const struct ntc_c1ompen1ation   81  81<;
nnect    6"= .c#L81" id="L81NTC_CONNECTED_POSITIVEame="L81">  81)= 125, .o1+code=tem1p_C" class="sref">temp_C1 1     = -40, .< = 40, .........n/ntc_ts/hwmon/ntc_theINT_MAXame="L81">  81o1+code=tem1p_C" class="sref">temp_C1 1     = -35, .<........n/ntc_t0 = 125, .o1"+code=te1mp_C" class="sref">temp_1C1      = -30, .}= 125, .o1"+code=te1mp_C" class="sref">temp_1C1      = -25, .df (s/hwmon/ntc_themVp_C" clas>  81  81o1"+code=te1mp_C" class="sref">temp_1C1      = -20, .........n/ntc_t(s/hwmon/ntc_thepmistame="L81">  81  81<;
nnect    6"= .c#L81" id="L81NTC_CONNECTED_POSITIVEame="L81">  81) ?= 125, .o1"L12">  12mp_C" class="sref">temp_1C153     = 40, .................0 :ts/hwmon/ntc_theINT_MAXame="L81">  81o1"+code=te1mp_C" class="sref">temp_1C15include/linux/hwmon-sysfs.h" class="fref">linux1"+code=te1mp_C" class="sref">temp_1C1      = -5, .  81  81<;
nnect    6"= .c#L81" id="L81NTC_CONNECTED_POSITIVEame="L81">  81 && .c#L81" id="L81puOp_C" clas>  81o1"+code=te1mp_C" class="sref">temp_1C1      = 0, .  81  81  81  81  81  81o1"compensa1mp_C" class="sref">temp_1C1      = 5, .  81  81<;
nnect    6"= .c#L81" id="L81NTC_CONNECTED_GROUNDame="L81">  81 && .c#L81" id="L81pdOp_C" clas>  81o1"code=tem1emp_C" class="sref">temp1_C  81  81  81  81  81  81o1"code=tem1emp_C" class="sref">temp1_C  81  81<;
nnect    6"= .c#L81" id="L81NTC_CONNECTED_POSITIVEame="L81">  81)= 125, .o1="+code=t1emp_C" class="sref">temp1_C  81  81  81  81  81  81o1=+code=te1emp_C" class="sref">temp1_C  81  81  81  81  81o1="+code=t1emp_C" class="sref">temp1_Co1=L12">  12emp_C" class="sref">temp1_C  81  81  81  81  81  81  81  81  81  81o1=+code=te1emp_C" class="sref">temp1_Clinux1="+code=t1emp_C" class="sref">temp1_C  81  81o1=class="linne" name="L15">  1516     = 0, .  81  81o1="+code=t1emp_C" class="sref">temp1_C  81o1=code=tem1emp_C" class="sref">temp1_Co1f="+code=1temp_C" class="sref">tem1p_Ctem1p_C     
	  >
hvoidts/hwmon/ntc_thelookup_;
  81  81}mist" id=*.c#L81" id="L81wistame="L81">  81o1f="+code=1temp_C" class="sref">tem1p_Co1f="+code=1temp_C" class="sref">tem1p_C     82">  82const struct tem1p_C       = 85,   81<
	 rt    ,rs/hwmon/ntc_theendame="L81">  81  81o1f="+code=1temp_C" class="sref">tem1p_Clinux1f="+code=1temp_C" class="sref">tem1p_C       = 95, /ntc_thermistor.c#L39" id="L39" class="line" name="L39">  39
tem1p_C * GNU Generaaaaaaaaa* Handlef="drial cases: Res
  39
  39
tem1p_Ctem1p_Ctem1p_C
lass="depted by tn hre tc_dif="dhref="drivers/hwmon/ntc_thermistor.c#L15" id="L15" f="+code=1temp_C" class="sref">tem1p_C * Thermistors Datasheet
  81  81<;
  82const struct ntc_c1ompen183     = 40, .........*.c#L81" id="L81i_lowc_thermistor.c#i_low" id,
o1+code=tem1p_C" class="sref">temp_C1 1     = -40, .<........*.c#L81" id="L81i_highc_thermistor.c#i_high    ,
o1+="+code=1p_C" class="sref">temp_C1 1     = -35, .< = 55, .n/ntc_ = 125, .o1+="+code=1mp_C" class="sref">temp_1C1      = -30, .}= 125, .o1"+code=te1mp_C" class="sref">temp_1C1      = -25, .if (s/hwmon/ntc_the/ntc_thermistor.c#L86" id=
la " .c#L81" id="L81wistame="L81">  81  81<;
  81  81<"_;
  82const struct   8#L87" id="L87"n1 valu18    = -40, .< = 40, .*.c#L81" id="L81i_lowc_thermistor.c#i_low" id,
<.c#L81" id="L81wistame="L81">  81  81<"_;
o1+="+code=1 s/hwmon/ntc_thermistor.1c#L1018    = -35, .<........*.c#L81" id="L81i_highc_thermistor.c#i_high    ,
<.c#L81" id="L81wistame="L81">  81  81<"_;
o19="+code=19emp_C" class="sref">tem19_Co19="+code=19emp_C" class="sref">tem19_Co19m   19 = 1406 },
o19compensa19ion" class="sref">ntc_c19mpen19tion  * Thermistors Datasheet
temp_C19/a> 194     = 40, .s/hwmon/ntc_the
	 rtame="L81">  81<
	 rt    ,
o19code=tem19_C" class="sref">temp_C19/a> 19    = -35, .  81  81  81<"_;
o19="+code=19p_C" class="sref">temp_1919     = -30, .whis="(s/hwmon/ntc_the
	 rtame="L81">  81<
	 rt    ,
la   81  82const struct temp_1919tion   81  81<
	 rt    ,+"(s/hwmon/ntc_theendame="L81">  81  81<
	 rt    ) / 2 = 125, .o19code=tem19L87">  8#L87" id="L87"n19valu19    = -40, .< = 40, .sntc_thermistor.c#L39" id="L39" class="line" name="L39">  39
   8>1 #L1019 * along with this program; aaaaaaaa........* 
	 rt=
la " mid,
la   39
   9<2aa>   9<2aclass="line" name="L10"201C   9<2a = 1406 },
  39
  203  39
  20_C" class="sref">temp_C205Csimplicityhref="drivers/hwmon/ntc_thermistor.c#L15" id="L15"20class="l20ne" name="L15">  15206C * GNU Generaaaaaaaaa........*comment"> * Thermistors Datasheet
  81  81<;
  81  82const struct   17<20a>  81  81o2sme="L18"20  18  82const struct    9<2/a> * t21      = 20, . = 40, .........s/hwmon/ntc_the
	 rtame="L81">  81<
	 rt    ,
  81o2 id="L10"2cclass="line" name="L10"2 1C  39
  39
 *21tion  213 21    =compensation table shouaaaaaaaa................*tdone. We tculd keep go by, buf hre tc_dif="dn clquitec_thermistor.c#L17" id="L17" class="line" name="L2=5L13">  2 1421    =compensation table shouaaaaaaaa................*tlikely to occur, so it  clworth check by fth>ithref="drivers/hwmon/ntc_thermistor.c#L15" id="L15"2 class="l2ine" name="L15">  152 * GNU Generaaaaaaaaa................*comment"> * Thermistors Datasheet
   81  81<;
  81<
	 rt    ]f="drivers/hwmon/ntc_thermistor.c#L86" id)> * Thermistors Datasheet
  17<2/a> * Y21    = -40, .< = 40, .................s/hwmon/ntc_theendame="L81">  81  81<
	 rt     = 125, .o2 me="L18"2>  18o2 * Foun2datio22      = 20, . = 40, .sntc_thermistor.c#L39" id="L39" class="line" name="L39">  39
  39
 */
 * Thermistors Datasheet
  2ne" name="L23">  23#2inclu22    = -40, .<}= 125, .o2<5L13">  2name="L24">  24#incl2ude &22       = 95, /ntc_thermistor.c#L39" id="L39" class="line" name="L39">  39
  25#include <2 * GNU Generaaaaaaaaa* 
	 rt==" end  "L39" class="line" name="L39">  39
  26#incl2ude &22"L16" class="line" name="L16aaaaaaaa* /hw6
  17<2>#include < * Thermistors Datasheet
  28#inc22    = -35, .<*.c#L81" id="L81i_lowc_thermistor.c#i_low" id,
<.c#L81" id="L81endame="L81">  81o2f">linux/2err.h>
  81  81<;
  81 * Thermistors Datasheet
  81o2fdrivers/2tor.h>
o2hL12">  12<  81o2ame="L33"2>  33#include <o2a="L14"> 2sfs.h>
o2aclass="l2line" name="L35">  35stru2t 
hohm  ml  81}mist" id=*.c#L81" id="L81wistame="L81">  81 * Thermistors Datasheet
  3262      82">  82const struct   23    = -40, .<o2ame="L18"2f">ohm;
 c_thermistor.c#/a>      = 125, .o2 name="L328">  38};
o2 ref="inc2hwmon/ntc_thermistor.c#L240" i241     = 40, .s/hwmon/ntc_thelookup_;
  81  81o2"_thermis2>  41  82const struct   12c#L42" id="L42" class="l2ine" 243     = 40, .........sntc_thermistor.c#L39" i Unass="to use L42"ar approximspan c*comment"> * Thermistors Datasheet
  233  81  81<;
ohm     = 2*o2 ="L14"> 2#L44" id="L44" class="li2ne" n24       = 95, }.else<82">  82const struct  c_thermistor.c#/a>     ,
<.c#L81" id="L81wistame="L81">  81  81<;
ohm     = 2*  82const struct ntc_c2ompen2ation   81  81<;
ohm     = 2- .c#L81" id="L81wistame="L81">  81  81<;
ohm     = ) *2">  82const struct temp_C2 2     = -40, .< = 40, .........  81  81<;
  82const struct temp_C2 2     = -35, .<........oooooooo((  81  81<;
  81  81<;
o2"+code=te2mp_C" class="sref">temp_2C2      = -30, .}= 125, .o2"+code=te2mp_C" class="sref">temp_2C2      = -25, .n/ntc_ts/hwmon/ntc_the/a> c_thermistor.c#/a>      = 125, .o2"+code=te2mp_C" class="sref">temp_2C2      }= 125, .o2"L12">  12mp_C" class="sref">temp_2C253    = 125, .o2""L13">  2mp_C" class="sref">temp_2C25inclu
	  >
h  81}class="sre_get_L86  81}mist" id=*.c#L81" id="L81wistame="L81">  81 * Thermistors Datasheet
temp_2C2      82">  82const struct temp_2C2      = 0, .  81o2"drivers/2mp_C" class="sref">temp_2C25;o2"code=tem2emp_C" class="sref">temp2_C  81  81  81 * Thermistors Datasheet
temp2_C  81  81  81o2="+code=t2emp_C" class="sref">temp2_Co2=+code=te2emp_C" class="sref">temp2_C  81  81  81  82const struct temp2_C  81  81  81  81o2=L12">  12emp_C" class="sref">temp2_C  81o2=+code=te2emp_C" class="sref">temp2_C  81o2="+code=t2emp_C" class="sref">temp2_C  81  81  81o2=+code=te2nne" name="L15">  152s26     = -30, .}= 125, .o2="+code=t2emp_C" class="sref">temp2_C  81o2=code=tem2emp_C" class="sref">temp2_Co2f="+code=2temp_C" class="sref">tem2p_Ctem2p_C     
	  >
hs/hwmon/ntc_thessize_tame="L81">  81<
size_t     .c#L81" id="L81" clshow_ef">ame="L81">  81}show_ef">  81  81o2f="+code=2temp_C" class="sref">tem2p_C  81  81  81 * Thermistors Datasheet
tem2p_C     82">  82const struct tem2p_C  81}mist" id=*.c#L81" id="L81wistame="L81">  81  81  81o2f="+code=2temp_C" class="sref">tem2p_Clinux2f="+code=2temp_C" class="sref">tem2p_C       = 95, n/ntc_h.c#L81" id="L81spr  81  81"%s\n"omment",rs/hwmon/ntc_thewistame="L81">  81ame="L81">  81o2f+code=te2temp_C" class="sref">tem2p_Co2fdrivers/2wwmon/ntc_thermistor.c#L26Co2fcode=tem2temp_C" class="sref">tem2p_C
h.c#L81" id="L81ssize_tame="L81">  81<
size_t     .c#L81" id="L81" clshow_typ>ame="L81">  81}show_typ>  81  81o2f="+code=2temp_C" class="sref">tem2p_C  81  81  81 * Thermistors Datasheet
tem2p_C  82const struct tem2p_C  81  81"4\n"omment") = 125, .o2hm   2  = 1406 },
o2_compensa2tion" class="sref">ntc_c2ompen283    = 125, .o2+code=tem2p_C" class="sref">temp_C2 284inux
	  >
h.c#L81" id="L81ssize_tame="L81">  81<
size_t     .c#L81" id="L81" clshow_ta> c_thermistor.c#" clshow_ta>   81  81o2+="+code=2p_C" class="sref">temp_C2 2     = -35, .< = 55, .rmistor.c#L81" id="L81wmon/n_attributname="L81">  81  81  81 * Thermistors Datasheet
temp_2C2      82">  82const struct temp_2C2      = -25, .rmistor.c#L81" id="L81" clmistame="L81">  81}mist" id=*.c#L81" id="L81wistame="L81">  81  81  81o2_code=tem2"L87">  8#L87" id="L87"n2 valu28    = -40, .<o2_="+code=2 s/hwmon/ntc_thermistor.2c#L1028mon/ntc_thermistor.c#L38" id="L38" class="line"29="+code=29emp_C" class="sref">tem29_C}class="sre_get_L86ame="L81">  81}class="sre_get_L86  81o29="+code=29emp_C" class="sref">tem29_Co29m   29 = 1406 },
o29compensa29ion" class="sref">ntc_c29mpen293    = 125, .o29code=tem29_C" class="sref">temp_C29/a> 294     = 40, .n/ntc_h.c#L81" id="L81spr  81  81"%d\n"omment",rs/hwmon/ntc_theget_/a>  mlass="sref">ohm  ml  81o29="+code=29_C" class="sref">temp_C29/a> 29hwmon}= 125, .o29="+code=29p_C" class="sref">temp_2929 o29+code=te29p_C" class="sref">temp_2929     
	  >
hs/hwmon/ntc_theSENSOR_DEVICE_ATTRc_thermistor.c#SENSOR_DEVICE_ATTR  81 1_typ>" id, s/hwmon/ntc_theS_IRUGOp_C" clas>  81ame="L81">  81}show_typ>  81o29code=tem29L87">  8#L87" id="L87"n29valu29linux
	  >
h.c#L81" id="L81SENSOR_DEVICE_ATTRc_thermistor.c#SENSOR_DEVICE_ATTR  81 1_input" id, s/hwmon/ntc_theS_IRUGOp_C" clas>  81 c_thermistor.c#" clshow_ta>   81o29="+code=2>>2 #L1029 * al
	  >
h.c#L81" id="L81DEVICE_ATTRc_thermistor.c#DEVICE_ATTRame="L81">  81  81ame="L81">  81}show_ef">  81o309">   9<3aa>o3ss">   9<3aclass="line" name="L10"301C
hrmistor.c#L81" id="L81attributname="L81">  81  81}attributns    []=" 82">  82const struct    9<3a = 1406 },
ame="L81">  81    f="drivers/hwmonattrame="L81">  81  82const struct    9<3aion" class="sref">ntc_c303C 1_typ>ame="L81">  81 1_typ>    f="drivers/hwmonmev_attrame="L81">  81  81  82const struct    9<3a_C" class="sref">temp_C304C 1_inputame="L81">  81 1_input    f="drivers/hwmonmev_attrame="L81">  81  81  82const struct    9<3a_C" class="sref">temp_C305C  81  82const struct    9<3ap_C" class="sref">temp_306Co307">   9<3ap_C" class="sref">temp_307Co307">  17<30a>
hconsthrmistor.c#L81" id="L81attributn_grou c_thermistor.c#attributn_grou      .c#L81" id="L81" clattr_grou c_thermistor.c#" clattr_grou " id=" 82">  82const struct   17<30>309C  81  81}attributns    ,2">  82const struct    9<3/a> * t31     } = 125, .o3 id="L10"3cclass="line" name="L10"3 1Co3 2">   9<3hwmon/ntc_thermistor.c#L311" i31 * A 
	  >
h  81<__mevinit     .c#L81" id="L81" clclass="sre_prob>ame="L81">  81}class="sre_prob>  81  81o3 3">   9<32 *31tion<82">  82const struct   313 314    = -20, .rmistor.c#L81" id="L81" clmistame="L81">  81}mist" id=*.c#L81" id="L81wistame="L81">  81o3 5">   9<3 14315    = -20, .rmistor.c#L81" id="L81" clclass="sre_platform_wistame="L81">  81}class="sre_platform_wist     *.c#L81" id="L81pwistame="L81">  81  81  81  81o3 6">   9<3ine" name="L15">  153  81o3 drivers/3hwmon/ntc_thermistor.c#L316" i31;o3 7">  17<3/a> * Y31    = -40, .  81  82const struct   18  81  81  81"No platform init mist supplied.\n"omment") = 125, .o3 * Foun3datio32      = 20, . = 40, .n/ntc_t-s/hwmon/ntc_theENODEVp_C" clas>  81o3"drivers/3hwmon/ntc_thermistor.c#L320" i32       = 75, }= 125, .o3"drivers/3wwmon/ntc_thermistor.c#L311" i32     = 125, .o3"3rivers/3t"> */
lwo  clrequired.c*comment"> * Thermistors Datasheet
  3ne" name="L23">  23#3inclu32    = -40, .  81  81  81  81  82const struct   3name="L24">  24#incl3ude &32    = -35, .< = 55, .="drivers/hwmonmev_errame="L81">  81  81  81  82const struct    9<35">  25#include <3 "Both read_uV and read_L86 "+csing. Need ei#L15 one*lwo.\n"omment") = 125, .o3  26#incl3ude &32tion   81o3"7">  17<3>#include <o3"me="L18"3line" name="L28">  28#inc32mon/ntc_thermistor.c#L38" id="L38" class="line"3f">linux/3err.h>
  81  81  81  81  82const struct   81  81  81  82const struct  "Only one*o3hL12">  13<  81  81  81o3h"L13">  3>  33#include <o3a="L14"> 3sfs.h>
o3aclass="l3line" name="L35">  35stru336     = 40, .if (s/hwmon/ntc_thepwistame="L81">  81  81  81  81o3adrivers/3ss="line" name="L36">  33633tion   81  81  81  81o3a7">  17<37" class="line" name="L337">  33    = -40, .< = 40, ................. .c#L81" id="L81NTC_CONNECTED_GROUNDp_C" clas>  81o3ame="L18"3f">ohm;
  81  81  81  81o3 name="L338">  38};
  81o3 ref="inc3hwmon/ntc_thermistor.c#L340" i341     = 40, .........oooooooooooooooo(s/hwmon/ntc_thepwistame="L81">  81  81  81o3 drivers/3>  41  81  81  81  82const struct   13c#L42" id="L42" class="l3ine" 343     = 40, .........s"drivers/hwmonmev_errame="L81">  81  81  81  82const struct   333"Required mist to use read_uV not supplied.\n"omment") = 125, .o3 ="L14"> 3#L44" id="L44" class="li3ne" n34    = -35, .< = 55, .n/ntc_t-s/hwmon/ntc_theEINVALp_C" clas>  81o3 class="l3wmon/ntc_thermistor.c#L435" id34     = 0, .o3 drivers/3tion" class="sref">ntc_c3ompen34;o3 " id="L33p_C" class="sref">temp_C3 3     = -40, .<.c#L81" id="L81wistame="L81">  81  81  81  81  81}mist" id), s/hwmon/ntc_theGFP_KERNELp_C" clas>  81o3 me="L18"3p_C" class="sref">temp_C3 3     = -35, .  81 * Thermistors Datasheet
temp_3C35      = 20, . = 40, .n/ntc_t-s/hwmon/ntc_theENOMEMp_C" clas>  81o3"+code=te3mp_C" class="sref">temp_3C351    = 125, .o3"+code=te3mp_C" class="sref">temp_3C352   = -40, .<.c#L81" id="L81wistame="L81">  81  81  81  81o3"L12">  13mp_C" class="sref">temp_3C353   = -40, .<.c#L81" id="L81wistame="L81">  81  81  81o3""L13">  3mp_C" class="sref">temp_3C354     = 40, .s/hwmon/ntc_the
	rlcpyame="L81">  81<
	rlcpy  81ame="L81">  81  81  81ame="L81">  81  81ame="L81">  81o3"+code=te3mp_C" class="sref">temp_3C35e="L4= 125, .o3"+code=te3mp_C" class="sref">temp_3C3      = 0, .  81  81  81< href=lmist" id)<82">  82const struct temp_3C35tion   81  82const struct temp3_C  81  81<;
  81o3"me="L18"3emp_C" class="sref">temp3_C  81  81<"_;
  81  81o3="+code=t3emp_C" class="sref">temp3_Co3=+code=te3emp_C" class="sref">temp3_C  81  82const struct temp3_C  81  81<;
o3=L12">  13emp_C" class="sref">temp3_C  81  81<"_;
  81o3="L13">  3emp_C" class="sref">temp3_Co3=+code=te3emp_C" class="sref">temp3_C  82const struct   153s36     = 0, .  81  81  81"Unknown wmon/n typ>: %lu(%s)\n"omment",2">  82const struct temp3_C   81  81  81< href=lmist" id,2">  82const struct temp3_C  81  81ame="L81">  81o3=me="L18"3temp_C" class="sref">tem3p_C  81o3f="+code=3temp_C" class="sref">tem3p_Co3f="+code=3temp_C" class="sref">tem3p_Co3f="+code=3temp_C" class="sref">tem3p_C  81  81  81o3f="+code=3temp_C" class="sref">tem3p_Co3f="+code=3temp_C" class="sref">tem3p_C  81  81  81  81o3f+code=te3temp_C" class="sref">tem3p_C       = 95, if (s/hwmon/ntc_theretame="L81">  81  82const struct tem3p_C  81  81  81"unass="to creatn 
ysfs files\n"omment") = 125, .o3fdrivers/3wwmon/ntc_thermistor.c#L36C   81o3f" id="L33temp_C" class="sref">tem3p_Co3f="+code=3temp_C" class="sref">tem3p_Ctem3p_C  81  81<8" id_wmo    =" s/hwmon/ntc_the8" id_wmon/n_regss=erame="L81">  81<8" id_wmon/n_regss=er  81  81o3f="+code=3temp_C" class="sref">tem3p_C  81  81<8" id_wmo    ))<82">  82const struct   81  81  81"unass="to regss=er as truct wmon/n.\n"omment") = 125, .o3_compensa3tion" class="sref">ntc_c3ompen383     = 40, ..........c#L81" id="L81retame="L81">  81  81  81<8" id_wmo    ) = 125, .o3_="+code=3p_C" class="sref">temp_C3 38    = -40, .<........goto hc#L81" id="L81err_af=er_
ysfsame="L81">  81o3+="+code=3p_C" class="sref">temp_C3 3     = -35, .<}= 125, .o37+code=te3mp_C" class="sref">temp_3C38 o3fdrivers/3mp_C" class="sref">temp_3C3      = -25, .hc#L81" id="L81wev_infoame="L81">  81  81  81"Tlass="sre %s:%d (typ>: %s/%lu) successfully prob>d.\n"omment",2">  82const struct   8#L87" id="L87"n3 valu38    = -40, .< = 40, .........s/hwmon/ntc_thepwmoame="L81">  81ame="L81">  81  81  81  81  81ame="L81">  81  82const struct   81  81  81< href=lmist" id) = 125, .o39="+code=39emp_C" class="sref">tem39_Co39="+code=39emp_C" class="sref">tem39_C  81  82const struct   81  81  81o39compensa39ion" class="sref">ntc_c39mpen393     = 20, .n/ntc_ts/hwmon/ntc_theretame="L81">  81o39code=tem39_C" class="sref">temp_C39/a> 394    }= 125, .o39="+code=39_C" class="sref">temp_C39/a> 39e="L4= 125, .o39="+code=39p_C" class="sref">temp_3939 
h  81<__mevexit     s/hwmon/ntc_the" clclass="sre_removnc_thermistor.c#" clclass="sre_removn  81  81o39+code=te39p_C" class="sref">temp_3939     82">  82const struct   8#L87" id="L87"n39valu39    = -40, .  81}mist" id=*.c#L81" id="L81wistame="L81">  81  81  81o39="+code=3>>3 #L1039mon/ntc_thermistor.c#L38" id="L38" class="line"409">   9<4aa>  81<8" id_wmon/n_unregss=er  81  81<8" id_wmo    ) = 125, .o4ss">   9<4aclass="line" name="L10"401C  81  81  81o4s2">   9<4a = 1406 },
  81  81  81o4s3">   9<4aion" class="sref">ntc_c403Co4s4">   9<4a_C" class="sref">temp_C404Co4s5">   9<4a_C" class="sref">temp_C405Co4s6">   9<4ap_C" class="sref">temp_406Co407">   9<4ap_C" class="sref">temp_407C
hconsthrmistor.c#L81" id="L81platform_wmon/n_idame="L81">  81  81<" clclass="sre_id    []=" 82">  82const struct   17<40a>"ncp15wb4te"omment",rs/hwmon/ntc_theTYPE_NCPXXWB4temp_C" cla>  81  82const struct   17<40>409C"ncp18wb4te"omment",rs/hwmon/ntc_theTYPE_NCPXXWB4temp_C" cla>  81  82const struct    9<4/a> * t410   = -35, .<{.sntc_thermistrmiing">"ncp21wb4te"omment",rs/hwmon/ntc_theTYPE_NCPXXWB4temp_C" cla>  81  82const struct    9<4cclass="line" name="L10"4 1C"ncp03wb4te"omment",rs/hwmon/ntc_theTYPE_NCPXXWB4temp_C" cla>  81  82const struct    9<4hwmon/ntc_thermistor.c#L411" i412   = -40, .<{.sntc_thermistrmiing">"ncp15wl3<<"omment",rs/hwmon/ntc_theTYPE_NCPXXW13<  81  82const struct    9<42 *413   = -40, .<{.},2">  82const struct    9<413 414    } = 125, .o4 5">   9<4 1441e="L4= 125, .o4 6">   9<4ine" name="L15">  154
hrmistor.c#L81" id="L81platform_whref=ame="L81">  81  81<" clclass="sre_whref=" id6" 82">  82const struct   81  82const struct   17<4/a> * Y41    = -40, .< = 40, .f="drivers/hwmon"f">ame="L81">  81"ntc-ref="+code"omment",2">  82const struct   18  81  81  82const struct  * Foun4datio42      = 20, .},2">  82const struct   81ame="L81">  81}class="sre_prob>  82const struct    9<4wwmon/ntc_thermistor.c#L411" i422      = 75, f="drivers/hwmonremovnc_thermistor.c#removn  82const struct    9<4t"> */
  81  81<" clclass="sre_id    ,2">  82const struct    9<4ne" name="L23">  23#4inclu424    } = 125, .o4<5L13">  4name="L24">  24#incl4ude &42e="L4= 125, .o4<6">   9<45">  25#include <4  81  81<" clclass="sre_whref=" id) = 125, .o4  26#incl4ude &42;o4"7">  17<4>#include <  81"NTC Tlass="sre Dhref="omment") = 125, .o4"me="L18"4line" name="L28">  28#inc42mon/n.c#L81" id="L81MODULE_AUTHORc_thermistor.c#MODULE_AUTHOR"MyungJoo Ham=
la myungjoo.ham@samsung.com
o4f">linux/4err.h>
  81"GPL"omment") = 125, .o4fdrivers/4lude/linux/platform_data4/ntc_431    hc#L81" id="L81MODULE_ALIASc_thermistor.c#MODULE_ALIAS"platform:ntc-ref="+code"omment") = 125, .o4f2">   9<4tor.h>
lxr@t;
ux.no    .
&gsubfoo=era> lxr.t; ux.no kindly hosted bys 125, .Redpill L; pro ASons seron/ns since 1995.