1*4882a593SmuzhiyunKernel driver amc6821 2*4882a593Smuzhiyun===================== 3*4882a593Smuzhiyun 4*4882a593SmuzhiyunSupported chips: 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun Texas Instruments AMC6821 7*4882a593Smuzhiyun 8*4882a593Smuzhiyun Prefix: 'amc6821' 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun Addresses scanned: 0x18, 0x19, 0x1a, 0x2c, 0x2d, 0x2e, 0x4c, 0x4d, 0x4e 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun Datasheet: http://focus.ti.com/docs/prod/folders/print/amc6821.html 13*4882a593Smuzhiyun 14*4882a593SmuzhiyunAuthors: 15*4882a593Smuzhiyun Tomaz Mertelj <tomaz.mertelj@guest.arnes.si> 16*4882a593Smuzhiyun 17*4882a593Smuzhiyun 18*4882a593SmuzhiyunDescription 19*4882a593Smuzhiyun----------- 20*4882a593Smuzhiyun 21*4882a593SmuzhiyunThis driver implements support for the Texas Instruments amc6821 chip. 22*4882a593SmuzhiyunThe chip has one on-chip and one remote temperature sensor and one pwm fan 23*4882a593Smuzhiyunregulator. 24*4882a593SmuzhiyunThe pwm can be controlled either from software or automatically. 25*4882a593Smuzhiyun 26*4882a593SmuzhiyunThe driver provides the following sensor accesses in sysfs: 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun======================= == =============================================== 29*4882a593Smuzhiyuntemp1_input ro on-chip temperature 30*4882a593Smuzhiyuntemp1_min rw " 31*4882a593Smuzhiyuntemp1_max rw " 32*4882a593Smuzhiyuntemp1_crit rw " 33*4882a593Smuzhiyuntemp1_min_alarm ro " 34*4882a593Smuzhiyuntemp1_max_alarm ro " 35*4882a593Smuzhiyuntemp1_crit_alarm ro " 36*4882a593Smuzhiyun 37*4882a593Smuzhiyuntemp2_input ro remote temperature 38*4882a593Smuzhiyuntemp2_min rw " 39*4882a593Smuzhiyuntemp2_max rw " 40*4882a593Smuzhiyuntemp2_crit rw " 41*4882a593Smuzhiyuntemp2_min_alarm ro " 42*4882a593Smuzhiyuntemp2_max_alarm ro " 43*4882a593Smuzhiyuntemp2_crit_alarm ro " 44*4882a593Smuzhiyuntemp2_fault ro " 45*4882a593Smuzhiyun 46*4882a593Smuzhiyunfan1_input ro tachometer speed 47*4882a593Smuzhiyunfan1_min rw " 48*4882a593Smuzhiyunfan1_max rw " 49*4882a593Smuzhiyunfan1_fault ro " 50*4882a593Smuzhiyunfan1_div rw Fan divisor can be either 2 or 4. 51*4882a593Smuzhiyun 52*4882a593Smuzhiyunpwm1 rw pwm1 53*4882a593Smuzhiyunpwm1_enable rw regulator mode, 1=open loop, 2=fan controlled 54*4882a593Smuzhiyun by remote temperature, 3=fan controlled by 55*4882a593Smuzhiyun combination of the on-chip temperature and 56*4882a593Smuzhiyun remote-sensor temperature, 57*4882a593Smuzhiyunpwm1_auto_channels_temp ro 1 if pwm_enable==2, 3 if pwm_enable==3 58*4882a593Smuzhiyunpwm1_auto_point1_pwm ro Hardwired to 0, shared for both 59*4882a593Smuzhiyun temperature channels. 60*4882a593Smuzhiyunpwm1_auto_point2_pwm rw This value is shared for both temperature 61*4882a593Smuzhiyun channels. 62*4882a593Smuzhiyunpwm1_auto_point3_pwm rw Hardwired to 255, shared for both 63*4882a593Smuzhiyun temperature channels. 64*4882a593Smuzhiyun 65*4882a593Smuzhiyuntemp1_auto_point1_temp ro Hardwired to temp2_auto_point1_temp 66*4882a593Smuzhiyun which is rw. Below this temperature fan stops. 67*4882a593Smuzhiyuntemp1_auto_point2_temp rw The low-temperature limit of the proportional 68*4882a593Smuzhiyun range. Below this temperature 69*4882a593Smuzhiyun pwm1 = pwm1_auto_point2_pwm. It can go from 70*4882a593Smuzhiyun 0 degree C to 124 degree C in steps of 71*4882a593Smuzhiyun 4 degree C. Read it out after writing to get 72*4882a593Smuzhiyun the actual value. 73*4882a593Smuzhiyuntemp1_auto_point3_temp rw Above this temperature fan runs at maximum 74*4882a593Smuzhiyun speed. It can go from temp1_auto_point2_temp. 75*4882a593Smuzhiyun It can only have certain discrete values 76*4882a593Smuzhiyun which depend on temp1_auto_point2_temp and 77*4882a593Smuzhiyun pwm1_auto_point2_pwm. Read it out after 78*4882a593Smuzhiyun writing to get the actual value. 79*4882a593Smuzhiyun 80*4882a593Smuzhiyuntemp2_auto_point1_temp rw Must be between 0 degree C and 63 degree C and 81*4882a593Smuzhiyun it defines the passive cooling temperature. 82*4882a593Smuzhiyun Below this temperature the fan stops in 83*4882a593Smuzhiyun the closed loop mode. 84*4882a593Smuzhiyuntemp2_auto_point2_temp rw The low-temperature limit of the proportional 85*4882a593Smuzhiyun range. Below this temperature 86*4882a593Smuzhiyun pwm1 = pwm1_auto_point2_pwm. It can go from 87*4882a593Smuzhiyun 0 degree C to 124 degree C in steps 88*4882a593Smuzhiyun of 4 degree C. 89*4882a593Smuzhiyun 90*4882a593Smuzhiyuntemp2_auto_point3_temp rw Above this temperature fan runs at maximum 91*4882a593Smuzhiyun speed. It can only have certain discrete 92*4882a593Smuzhiyun values which depend on temp2_auto_point2_temp 93*4882a593Smuzhiyun and pwm1_auto_point2_pwm. Read it out after 94*4882a593Smuzhiyun writing to get actual value. 95*4882a593Smuzhiyun======================= == =============================================== 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun 98*4882a593SmuzhiyunModule parameters 99*4882a593Smuzhiyun----------------- 100*4882a593Smuzhiyun 101*4882a593SmuzhiyunIf your board has a BIOS that initializes the amc6821 correctly, you should 102*4882a593Smuzhiyunload the module with: init=0. 103*4882a593Smuzhiyun 104*4882a593SmuzhiyunIf your board BIOS doesn't initialize the chip, or you want 105*4882a593Smuzhiyundifferent settings, you can set the following parameters: 106*4882a593Smuzhiyun 107*4882a593Smuzhiyun- init=1, 108*4882a593Smuzhiyun- pwminv: 0 default pwm output, 1 inverts pwm output. 109