Blame view

kernel/linux-imx6_3.14.28/Documentation/hwmon/adm9240 6.65 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
  Kernel driver adm9240
  =====================
  
  Supported chips:
    * Analog Devices ADM9240
      Prefix: 'adm9240'
      Addresses scanned: I2C 0x2c - 0x2f
      Datasheet: Publicly available at the Analog Devices website
      http://www.analog.com/UploadedFiles/Data_Sheets/79857778ADM9240_0.pdf
  
    * Dallas Semiconductor DS1780
      Prefix: 'ds1780'
      Addresses scanned: I2C 0x2c - 0x2f
      Datasheet: Publicly available at the Dallas Semiconductor (Maxim) website
      http://pdfserv.maxim-ic.com/en/ds/DS1780.pdf
  
    * National Semiconductor LM81
      Prefix: 'lm81'
      Addresses scanned: I2C 0x2c - 0x2f
      Datasheet: Publicly available at the National Semiconductor website
      http://www.national.com/ds.cgi/LM/LM81.pdf
  
  Authors:
      Frodo Looijaard <frodol@dds.nl>,
      Philip Edelbrock <phil@netroedge.com>,
      Michiel Rook <michiel@grendelproject.nl>,
      Grant Coady <gcoady.lk@gmail.com> with guidance
          from Jean Delvare <jdelvare@suse.de>
  
  Interface
  ---------
  The I2C addresses listed above assume BIOS has not changed the
  chip MSB 5-bit address. Each chip reports a unique manufacturer
  identification code as well as the chip revision/stepping level.
  
  Description
  -----------
  [From ADM9240] The ADM9240 is a complete system hardware monitor for
  microprocessor-based systems, providing measurement and limit comparison
  of up to four power supplies and two processor core voltages, plus
  temperature, two fan speeds and chassis intrusion. Measured values can
  be read out via an I2C-compatible serial System Management Bus, and values
  for limit comparisons can be programmed in over the same serial bus. The
  high speed successive approximation ADC allows frequent sampling of all
  analog channels to ensure a fast interrupt response to any out-of-limit
  measurement.
  
  The ADM9240, DS1780 and LM81 are register compatible, the following
  details are common to the three chips. Chip differences are described
  after this section.
  
  
  Measurements
  ------------
  The measurement cycle
  
  The adm9240 driver will take a measurement reading no faster than once
  each two seconds. User-space may read sysfs interface faster than the
  measurement update rate and will receive cached data from the most
  recent measurement.
  
  ADM9240 has a very fast 320us temperature and voltage measurement cycle
  with independent fan speed measurement cycles counting alternating rising
  edges of the fan tacho inputs.
  
  DS1780 measurement cycle is about once per second including fan speed.
  
  LM81 measurement cycle is about once per 400ms including fan speed.
  The LM81 12-bit extended temperature measurement mode is not supported.
  
  Temperature
  -----------
  On chip temperature is reported as degrees Celsius as 9-bit signed data
  with resolution of 0.5 degrees Celsius. High and low temperature limits
  are 8-bit signed data with resolution of one degree Celsius.
  
  Temperature alarm is asserted once the temperature exceeds the high limit,
  and is cleared when the temperature falls below the temp1_max_hyst value.
  
  Fan Speed
  ---------
  Two fan tacho inputs are provided, the ADM9240 gates an internal 22.5kHz
  clock via a divider to an 8-bit counter. Fan speed (rpm) is calculated by:
  
  rpm = (22500 * 60) / (count * divider)
  
  Automatic fan clock divider
  
    * User sets 0 to fan_min limit
      - low speed alarm is disabled
      - fan clock divider not changed
      - auto fan clock adjuster enabled for valid fan speed reading
  
    * User sets fan_min limit too low
      - low speed alarm is enabled
      - fan clock divider set to max
      - fan_min set to register value 254 which corresponds
        to 664 rpm on adm9240
      - low speed alarm will be asserted if fan speed is
        less than minimum measurable speed
      - auto fan clock adjuster disabled
  
    * User sets reasonable fan speed
      - low speed alarm is enabled
      - fan clock divider set to suit fan_min
      - auto fan clock adjuster enabled: adjusts fan_min
  
    * User sets unreasonably high low fan speed limit
      - resolution of the low speed limit may be reduced
      - alarm will be asserted
      - auto fan clock adjuster enabled: adjusts fan_min
  
      * fan speed may be displayed as zero until the auto fan clock divider
        adjuster brings fan speed clock divider back into chip measurement
        range, this will occur within a few measurement cycles.
  
  Analog Output
  -------------
  An analog output provides a 0 to 1.25 volt signal intended for an external
  fan speed amplifier circuit. The analog output is set to maximum value on
  power up or reset. This doesn't do much on the test Intel SE440BX-2.
  
  Voltage Monitor
  
  Voltage (IN) measurement is internally scaled:
  
      nr  label       nominal     maximum   resolution
                        mV          mV         mV
      0   +2.5V        2500        3320       13.0
      1   Vccp1        2700        3600       14.1
      2   +3.3V        3300        4380       17.2
      3     +5V        5000        6640       26.0
      4    +12V       12000       15940       62.5
      5   Vccp2        2700        3600       14.1
  
  The reading is an unsigned 8-bit value, nominal voltage measurement is
  represented by a reading of 192, being 3/4 of the measurement range.
  
  An alarm is asserted for any voltage going below or above the set limits.
  
  The driver reports and accepts voltage limits scaled to the above table.
  
  VID Monitor
  -----------
  The chip has five inputs to read the 5-bit VID and reports the mV value
  based on detected CPU type.
  
  Chassis Intrusion
  -----------------
  An alarm is asserted when the CI pin goes active high. The ADM9240
  Datasheet has an example of an external temperature sensor driving
  this pin. On an Intel SE440BX-2 the Chassis Intrusion header is
  connected to a normally open switch.
  
  The ADM9240 provides an internal open drain on this line, and may output
  a 20 ms active low pulse to reset an external Chassis Intrusion latch.
  
  Clear the CI latch by writing value 0 to the sysfs intrusion0_alarm file.
  
  Alarm flags reported as 16-bit word
  
      bit     label               comment
      ---     -------------       --------------------------
       0      +2.5 V_Error        high or low limit exceeded
       1      VCCP_Error          high or low limit exceeded
       2      +3.3 V_Error        high or low limit exceeded
       3      +5 V_Error          high or low limit exceeded
       4      Temp_Error          temperature error
       6      FAN1_Error          fan low limit exceeded
       7      FAN2_Error          fan low limit exceeded
       8      +12 V_Error         high or low limit exceeded
       9      VCCP2_Error         high or low limit exceeded
      12      Chassis_Error       CI pin went high
  
  Remaining bits are reserved and thus undefined. It is important to note
  that alarm bits may be cleared on read, user-space may latch alarms and
  provide the end-user with a method to clear alarm memory.