cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

adt7470.rst (2993B)


      1Kernel driver adt7470
      2=====================
      3
      4Supported chips:
      5
      6  * Analog Devices ADT7470
      7
      8    Prefix: 'adt7470'
      9
     10    Addresses scanned: I2C 0x2C, 0x2E, 0x2F
     11
     12    Datasheet: Publicly available at the Analog Devices website
     13
     14Author: Darrick J. Wong
     15
     16Description
     17-----------
     18
     19This driver implements support for the Analog Devices ADT7470 chip.  There may
     20be other chips that implement this interface.
     21
     22The ADT7470 uses the 2-wire interface compatible with the SMBus 2.0
     23specification. Using an analog to digital converter it measures up to ten (10)
     24external temperatures. It has four (4) 16-bit counters for measuring fan speed.
     25There are four (4) PWM outputs that can be used to control fan speed.
     26
     27A sophisticated control system for the PWM outputs is designed into the ADT7470
     28that allows fan speed to be adjusted automatically based on any of the ten
     29temperature sensors. Each PWM output is individually adjustable and
     30programmable. Once configured, the ADT7470 will adjust the PWM outputs in
     31response to the measured temperatures with further host intervention.  This
     32feature can also be disabled for manual control of the PWM's.
     33
     34Each of the measured inputs (temperature, fan speed) has corresponding high/low
     35limit values. The ADT7470 will signal an ALARM if any measured value exceeds
     36either limit.
     37
     38The ADT7470 samples all inputs continuously.  A kernel thread is started up for
     39the purpose of periodically querying the temperature sensors, thus allowing the
     40automatic fan pwm control to set the fan speed.  The driver will not read the
     41registers more often than once every 5 seconds.  Further, configuration data is
     42only read once per minute.
     43
     44Special Features
     45----------------
     46
     47The ADT7470 has a 8-bit ADC and is capable of measuring temperatures with 1
     48degC resolution.
     49
     50The Analog Devices datasheet is very detailed and describes a procedure for
     51determining an optimal configuration for the automatic PWM control.
     52
     53Configuration Notes
     54-------------------
     55
     56Besides standard interfaces driver adds the following:
     57
     58* PWM Control
     59
     60* pwm#_auto_point1_pwm and pwm#_auto_point1_temp and
     61* pwm#_auto_point2_pwm and pwm#_auto_point2_temp -
     62
     63  - point1: Set the pwm speed at a lower temperature bound.
     64  - point2: Set the pwm speed at a higher temperature bound.
     65
     66The ADT7470 will scale the pwm between the lower and higher pwm speed when
     67the temperature is between the two temperature boundaries.  PWM values range
     68from 0 (off) to 255 (full speed).  Fan speed will be set to maximum when the
     69temperature sensor associated with the PWM control exceeds
     70pwm#_auto_point2_temp.
     71
     72The driver also allows control of the PWM frequency:
     73
     74* pwm1_freq
     75
     76The PWM frequency is rounded to the nearest one of:
     77
     78* 11.0 Hz
     79* 14.7 Hz
     80* 22.1 Hz
     81* 29.4 Hz
     82* 35.3 Hz
     83* 44.1 Hz
     84* 58.8 Hz
     85* 88.2 Hz
     86* 1.4 kHz
     87* 22.5 kHz
     88
     89Notes
     90-----
     91
     92The temperature inputs no longer need to be read periodically from userspace in
     93order for the automatic pwm algorithm to run.  This was the case for earlier
     94versions of the driver.