Home
last modified time | relevance | path

Searched refs:fan (Results 1 – 200 of 211) sorted by relevance

12

/linux-4.4.14/drivers/gpu/drm/nouveau/nvkm/subdev/therm/
Dfantog.c39 nvkm_fantog_update(struct nvkm_fantog *fan, int percent) in nvkm_fantog_update() argument
41 struct nvkm_therm *therm = fan->base.parent; in nvkm_fantog_update()
48 spin_lock_irqsave(&fan->lock, flags); in nvkm_fantog_update()
50 percent = fan->percent; in nvkm_fantog_update()
51 fan->percent = percent; in nvkm_fantog_update()
56 if (list_empty(&fan->alarm.head) && percent != (duty * 100)) { in nvkm_fantog_update()
57 u64 next_change = (percent * fan->period_us) / 100; in nvkm_fantog_update()
59 next_change = fan->period_us - next_change; in nvkm_fantog_update()
60 nvkm_timer_alarm(tmr, next_change * 1000, &fan->alarm); in nvkm_fantog_update()
62 spin_unlock_irqrestore(&fan->lock, flags); in nvkm_fantog_update()
[all …]
Dfan.c32 nvkm_fan_update(struct nvkm_fan *fan, bool immediate, int target) in nvkm_fan_update() argument
34 struct nvkm_therm *therm = fan->parent; in nvkm_fan_update()
42 spin_lock_irqsave(&fan->lock, flags); in nvkm_fan_update()
44 target = fan->percent; in nvkm_fan_update()
45 target = max_t(u8, target, fan->bios.min_duty); in nvkm_fan_update()
46 target = min_t(u8, target, fan->bios.max_duty); in nvkm_fan_update()
47 if (fan->percent != target) { in nvkm_fan_update()
49 fan->percent = target; in nvkm_fan_update()
53 duty = fan->get(therm); in nvkm_fan_update()
55 spin_unlock_irqrestore(&fan->lock, flags); in nvkm_fan_update()
[all …]
Dfanpwm.c40 struct nvkm_fanpwm *fan = (void *)therm->fan; in nvkm_fanpwm_get() local
47 ret = therm->func->pwm_get(therm, fan->func.line, &divs, &duty); in nvkm_fanpwm_get()
50 if (card_type <= NV_40 || (fan->func.log[0] & 1)) in nvkm_fanpwm_get()
55 return nvkm_gpio_get(gpio, 0, fan->func.func, fan->func.line) * 100; in nvkm_fanpwm_get()
61 struct nvkm_fanpwm *fan = (void *)therm->fan; in nvkm_fanpwm_set() local
66 divs = fan->base.perf.pwm_divisor; in nvkm_fanpwm_set()
67 if (fan->base.bios.pwm_freq) { in nvkm_fanpwm_set()
70 divs = therm->func->pwm_clock(therm, fan->func.line); in nvkm_fanpwm_set()
71 divs /= fan->base.bios.pwm_freq; in nvkm_fanpwm_set()
75 if (card_type <= NV_40 || (fan->func.log[0] & 1)) in nvkm_fanpwm_set()
[all …]
Dbase.c37 struct nvbios_therm_trip_point *trip = therm->fan->bios.trip, in nvkm_therm_update_trip()
45 for (i = 0; i < therm->fan->bios.nr_fan_trip; i++) { in nvkm_therm_update_trip()
69 u8 linear_min_temp = therm->fan->bios.linear_min_temp; in nvkm_therm_update_linear()
70 u8 linear_max_temp = therm->fan->bios.linear_max_temp; in nvkm_therm_update_linear()
76 return therm->fan->bios.min_duty; in nvkm_therm_update_linear()
78 return therm->fan->bios.max_duty; in nvkm_therm_update_linear()
82 duty *= (therm->fan->bios.max_duty - therm->fan->bios.min_duty); in nvkm_therm_update_linear()
84 duty += therm->fan->bios.min_duty; in nvkm_therm_update_linear()
112 switch(therm->fan->bios.fan_mode) { in nvkm_therm_update()
144 nvkm_therm_cstate(struct nvkm_therm *therm, int fan, int dir) in nvkm_therm_cstate() argument
[all …]
Dgf119.c127 if (therm->fan->tach.func != DCB_GPIO_UNUSED) { in gf119_therm_init()
128 nvkm_mask(device, 0x00d79c, 0x000000ff, therm->fan->tach.line); in gf119_therm_init()
Dfannil.c44 therm->fan = priv; in nvkm_fannil_create()
Dgt215.c43 struct dcb_gpio_func *tach = &therm->fan->tach; in gt215_therm_init()
DKbuild2 nvkm-y += nvkm/subdev/therm/fan.o
/linux-4.4.14/drivers/macintosh/
Dwindfarm_fcu_controls.c81 struct wf_fcu_fan *fan = ct->priv; in wf_fcu_fan_release() local
83 kref_put(&fan->fcu_priv->ref, wf_fcu_release); in wf_fcu_fan_release()
84 kfree(fan); in wf_fcu_fan_release()
147 struct wf_fcu_fan *fan = ct->priv; in wf_fcu_fan_set_rpm() local
148 struct wf_fcu_priv *pv = fan->fcu_priv; in wf_fcu_fan_set_rpm()
152 if (value < fan->min) in wf_fcu_fan_set_rpm()
153 value = fan->min; in wf_fcu_fan_set_rpm()
154 if (value > fan->max) in wf_fcu_fan_set_rpm()
155 value = fan->max; in wf_fcu_fan_set_rpm()
157 fan->target = value; in wf_fcu_fan_set_rpm()
[all …]
Dtherm_windtunnel.c57 struct i2c_client *fan; member
158 write_reg( x.fan, 0x25, val, 1 ); in tune_fan()
159 write_reg( x.fan, 0x20, 0, 1 ); in tune_fan()
179 casetemp = read_reg(x.fan, 0x0b, 1) << 8; in poll_temp()
180 casetemp |= (read_reg(x.fan, 0x06, 1) & 0x7) << 5; in poll_temp()
215 x.r0 = read_reg( x.fan, 0x00, 1 ); in setup_hardware()
216 x.r1 = read_reg( x.fan, 0x01, 1 ); in setup_hardware()
217 x.r20 = read_reg( x.fan, 0x20, 1 ); in setup_hardware()
218 x.r23 = read_reg( x.fan, 0x23, 1 ); in setup_hardware()
219 x.r25 = read_reg( x.fan, 0x25, 1 ); in setup_hardware()
[all …]
Dwindfarm_smu_controls.c259 struct device_node *smu, *fans, *fan; in smu_controls_init() local
273 for (fan = NULL; in smu_controls_init()
274 fans && (fan = of_get_next_child(fans, fan)) != NULL;) { in smu_controls_init()
277 fct = smu_fan_create(fan, 0); in smu_controls_init()
280 "RPM fan %s\n", fan->name); in smu_controls_init()
292 for (fan = NULL; in smu_controls_init()
293 fans && (fan = of_get_next_child(fans, fan)) != NULL;) { in smu_controls_init()
296 fct = smu_fan_create(fan, 1); in smu_controls_init()
299 "PWM fan %s\n", fan->name); in smu_controls_init()
Dtherm_adt746x.c91 static void write_fan_speed(struct thermostat *th, int speed, int fan);
148 static void write_fan_speed(struct thermostat *th, int speed, int fan) in write_fan_speed() argument
157 if (th->type == ADT7467 && fan == 1) in write_fan_speed()
160 if (th->last_speed[fan] != speed) { in write_fan_speed()
164 "for %s fan.\n", sensor_location[fan+1]); in write_fan_speed()
167 "for %s fan.\n", speed, sensor_location[fan+1]); in write_fan_speed()
173 manual = read_reg(th, MANUAL_MODE[fan]); in write_fan_speed()
175 write_reg(th, MANUAL_MODE[fan], in write_fan_speed()
176 manual | MANUAL_MASK | th->pwm_inv[fan]); in write_fan_speed()
177 write_reg(th, FAN_SPD_SET[fan], speed); in write_fan_speed()
[all …]
DKconfig195 This driver provides some thermostat and fan control for the desktop
202 This driver provides some thermostat and fan control for the
204 better fan behaviour by default, and some manual control.
/linux-4.4.14/drivers/acpi/
Dfan.c98 struct acpi_fan *fan = acpi_driver_data(device); in fan_get_max_state() local
100 if (fan->acpi4) in fan_get_max_state()
101 *state = fan->fps_count - 1; in fan_get_max_state()
110 struct acpi_fan *fan = acpi_driver_data(device); in fan_get_state_acpi4() local
131 for (i = 0; i < fan->fps_count; i++) { in fan_get_state_acpi4()
132 if (control == fan->fps[i].control) in fan_get_state_acpi4()
135 if (i == fan->fps_count) { in fan_get_state_acpi4()
167 struct acpi_fan *fan = acpi_driver_data(device); in fan_get_cur_state() local
169 if (fan->acpi4) in fan_get_cur_state()
186 struct acpi_fan *fan = acpi_driver_data(device); in fan_set_state_acpi4() local
[all …]
DMakefile65 obj-$(CONFIG_ACPI_FAN) += fan.o
DKconfig189 This driver supports ACPI fan devices, allowing user-mode
190 applications to perform basic fan control (on, off, status).
193 the module will be called fan.
/linux-4.4.14/drivers/gpu/drm/nouveau/nvkm/subdev/bios/
Dfan.c32 u16 fan = 0x0000; in nvbios_fan_table() local
36 fan = nvbios_rd16(bios, bit_P.offset + 0x58); in nvbios_fan_table()
38 if (fan) { in nvbios_fan_table()
39 *ver = nvbios_rd08(bios, fan + 0); in nvbios_fan_table()
42 *hdr = nvbios_rd08(bios, fan + 1); in nvbios_fan_table()
43 *len = nvbios_rd08(bios, fan + 2); in nvbios_fan_table()
44 *cnt = nvbios_rd08(bios, fan + 3); in nvbios_fan_table()
45 return fan; in nvbios_fan_table()
66 nvbios_fan_parse(struct nvkm_bios *bios, struct nvbios_therm_fan *fan) in nvbios_fan_parse() argument
75 fan->type = NVBIOS_THERM_FAN_TOGGLE; in nvbios_fan_parse()
[all …]
Dtherm.c153 nvbios_therm_fan_parse(struct nvkm_bios *bios, struct nvbios_therm_fan *fan) in nvbios_therm_fan_parse() argument
163 fan->nr_fan_trip = 0; in nvbios_therm_fan_parse()
164 fan->fan_mode = NVBIOS_THERM_FAN_OTHER; in nvbios_therm_fan_parse()
170 fan->min_duty = value & 0xff; in nvbios_therm_fan_parse()
171 fan->max_duty = (value & 0xff00) >> 8; in nvbios_therm_fan_parse()
174 fan->nr_fan_trip++; in nvbios_therm_fan_parse()
175 if (fan->fan_mode > NVBIOS_THERM_FAN_TRIP) in nvbios_therm_fan_parse()
176 fan->fan_mode = NVBIOS_THERM_FAN_TRIP; in nvbios_therm_fan_parse()
177 cur_trip = &fan->trip[fan->nr_fan_trip - 1]; in nvbios_therm_fan_parse()
183 cur_trip = &fan->trip[fan->nr_fan_trip - 1]; in nvbios_therm_fan_parse()
[all …]
Dperf.c186 struct nvbios_perf_fan *fan) in nvbios_perf_fan_parse() argument
194 fan->pwm_divisor = nvbios_rd16(bios, perf + 6); in nvbios_perf_fan_parse()
196 fan->pwm_divisor = 0; in nvbios_perf_fan_parse()
DKbuild10 nvkm-y += nvkm/subdev/bios/fan.o
/linux-4.4.14/Documentation/hwmon/
Dg7624 The GMT G762 Fan Speed PWM Controller is connected directly to a fan
5 and performs closed-loop or open-loop control of the fan speed. Two
19 fan revolution, ...); Those can be modified via devicetree bindings
24 fan1_target: set desired fan speed. This only makes sense in closed-loop
25 fan speed control (i.e. when pwm1_enable is set to 2).
27 fan1_input: provide current fan rotation value in RPM as reported by
28 the fan to the device.
30 fan1_div: fan clock divisor. Supported value are 1, 2, 4 and 8.
32 fan1_pulses: number of pulses per fan revolution. Supported values
35 fan1_fault: reports fan failure, i.e. no transition on fan gear pin for
[all …]
Dmax3179019 PWM outputs. The desired fan speeds (or PWM duty cycles) are written
21 or can be used to modulate the fan's power terminals using an external
24 Tachometer inputs monitor fan tachometer logic outputs for precise (+/-1%)
25 monitoring and control of fan RPM as well as detection of fan failure.
33 fan[1-12]_input RO fan tachometer speed in RPM
34 fan[1-12]_fault RO fan experienced fault
35 fan[1-6]_target RW desired fan speed in RPM
37 pwm[1-6] RW fan target duty cycle (0-255)
Dg760a15 The GMT G760A Fan Speed PWM Controller is connected directly to a fan
16 and performs closed-loop control of the fan speed.
18 The fan speed is programmed by setting the period via 'pwm1' of two
22 Setting a period of 0 stops the fan; setting the period to 255 sets
23 fan to maximum speed.
25 The measured fan rotation speed returned via 'fan1_input' is derived
27 source and a 2 pulse-per-revolution fan.
30 the G760A chip's status register: Bit 0 is set when the actual fan
31 speed differs more than 20% with respect to the programmed fan speed;
32 bit 1 is set when fan speed is below 1920 RPM.
Dnct677554 There are 4 to 5 fan rotation speed sensors, 8 to 15 analog voltage sensors,
56 fan regulation strategies (plus manual fan control mode).
69 NCT6775F, fan readings can be divided by a programmable divider (1, 2, 4, 8,
71 do not have a fan speed divider. The driver sets the most suitable fan divisor
72 itself; specifically, it increases the divider value each time a fan speed
73 reading returns an invalid value, and it reduces it if the fan speed reading
81 The driver supports automatic fan control mode known as Thermal Cruise.
83 predefined temperature range. If the temperature goes out of range, fan
91 pwm[1-5] - this file stores PWM duty cycle or DC value (fan speed) in range:
94 pwm[1-5]_enable - this file controls mode of fan/temperature control:
[all …]
Dadm924041 temperature, two fan speeds and chassis intrusion. Measured values can
63 with independent fan speed measurement cycles counting alternating rising
64 edges of the fan tacho inputs.
66 DS1780 measurement cycle is about once per second including fan speed.
68 LM81 measurement cycle is about once per 400ms including fan speed.
82 Two fan tacho inputs are provided, the ADM9240 gates an internal 22.5kHz
87 Automatic fan clock divider
91 - fan clock divider not changed
92 - auto fan clock adjuster enabled for valid fan speed reading
96 - fan clock divider set to max
[all …]
Df71882fg71 These chips also have fan controlling features, using either DC or PWM, in
88 Both PWM (pulse-width modulation) and DC fan speed control methods are
99 There are 2 modes to specify the speed of the fan, PWM duty cycle (or DC
101 mode where the actual RPM of the fan (as measured) is controlled and the speed
102 gets specified as 0-100% of the fan#_full_speed file.
105 whole lot of a difference when modifying fan control settings. The only
106 important difference is that in RPM mode the 0-100% controls the fan speed
107 between 0-100% of fan#_full_speed. It is assumed that if the BIOS programs
108 RPM mode, it will also set fan#_full_speed properly, if it does not then
109 fan control will not work properly, unless you set a sane fan#_full_speed
[all …]
Dw83792d39 The driver implements three temperature sensors, seven fan rotation speed
40 sensors, nine voltage sensors, and two automatic fan regulation
43 The driver also implements up to seven fan control outputs: pwm1-7. Pwm1-7
48 Automatic fan control mode is possible only for fan1-fan3.
50 For all pwmX outputs, a value of 0 means minimum fan speed and a value of
51 255 means maximum fan speed.
97 of full speed rotation of corresponding fan.
128 Works as expected. You just need to specify desired PWM/DC value (fan speed)
135 fan speed to keep the temperatures of CPU and the system within specific
138 interval. The fan speed will be lowered as long as the current temperature
[all …]
Dadm102627 List of GPIO pins (0-7) to program as fan tachs
37 16 general purpose digital I/O lines, eight (8) fan speed sensors (8-bit),
50 in counts of a 22.5kHz internal clock. Each fan has a high limit which
51 corresponds to a minimum fan speed. If the limit is exceeded, an interrupt
52 can be generated. Each fan can be programmed to divide the reference clock
55 two pulse per revolution fan is 661 RPM.
75 times a second. Fan speed measurement time depends on fan speed and
76 divisor. It can take as long as 1.5 seconds to measure all fan speeds.
78 The ADM1026 has the ability to automatically control fan speed based on the
80 used to control fan speed. Usually only one of these two outputs will be
[all …]
Dw83627ehf54 2 to 5 fan rotation speed sensors, 8 to 10 analog voltage sensors, one VID
56 and some automatic fan regulation strategies (plus manual fan control mode).
75 suitable fan divisor itself. Some fans might not be present because they
82 The driver supports automatic fan control mode known as Thermal Cruise.
84 predefined temperature range. If the temperature goes out of range, fan
103 pwm[1-4] - this file stores PWM duty cycle or DC value (fan speed) in range:
106 pwm[1-4]_enable - this file controls mode of fan/temperature control:
137 there are no changes to fan speed. Once the temperature leaves the interval,
138 fan speed increases (temp is higher) or decreases if lower than desired.
141 pwm[1-4]_min_output - minimum fan speed (range 1 - 255), when the temperature
[all …]
Dlm6330 The LM63 is a digital temperature sensor with integrated fan monitoring
33 The LM63 is basically an LM86 with fan speed monitoring and control
48 The fan speed is measured using a tachometer. Contrary to most chips which
51 value for measuring the speed of the fan. It can measure fan speeds down to
54 Note that the pin used for fan monitoring is shared with an alert out
55 function. Depending on how the board designer wanted to use the chip, fan
59 for fan monitoring and alert out. On the LM64, monitoring is always enabled;
62 A PWM output can be used to control the speed of the fan. The LM63 has two
69 but will return 'old' values. Values in the automatic fan control lookup table
Ddme173729 * force_start: bool Enables the monitoring of voltage, fan and temp inputs
46 1 internal) and up to 6 fan speeds fan[1-6]. Additionally, the chips implement
47 up to 5 PWM outputs pwm[1-3,5-6] for controlling fan speeds both manually and
50 For the DME1737, A8000 and SCH5027, fan[1-2] and pwm[1-2] are always present.
55 For the SCH311x and SCH5127, fan[1-3] and pwm[1-3] are always present and
56 fan[4-6] and pwm[5-6] don't exist.
138 fan tachometers. All 6 inputs have an associated min limit which triggers an
140 to the number of pulses per fan revolution that the connected tachometer
143 attribute that needs to be set to the maximum attainable RPM (fan at 100% duty-
150 This chip features 5 PWM outputs. PWM outputs 1-3 are associated with fan
[all …]
Dpwm-fan1 Kernel driver pwm-fan
4 This driver enables the use of a PWM module to drive a fan. It uses the
14 The driver implements a simple interface for driving a fan connected to
16 a range of SoCs. The driver exposes the fan to the user space through
Dasc762127 The fan speed control uses this finer value to produce a "step-less" fan
37 data sheet. Our temperature reports and fan PWM outputs are very smooth
50 Since there is a fan to zone assignment that allows for the "hotter" of
51 a set of zones to control the PWM of an individual fan, but there is no
53 is currently controlling the PWM for a given fan. This is in register
65 individual fans on each that would benefit from individual fan control.
69 fan types. We can also support pulse-stretched PWM so that 3-wire fans
84 Using temperature information from these four zones, an automatic fan speed
88 To set fan speed, the aSC7621 has three independent pulse width modulation
93 temperature readings for better control of fan speed and minimum acoustic
[all …]
Damc682118 The chip has one on-chip and one remote temperature sensor and one pwm fan
48 pwm1_enable rw regulator mode, 1=open loop, 2=fan controlled
49 by remote temperature, 3=fan controlled by
61 which is rw. Below this temperature fan stops.
68 temp1_auto_point3_temp rw Above this temperature fan runs at maximum
77 Below this temperature the fan stops in
85 temp2_auto_point3_temp rw Above this temperature fan runs at maximum
Dw8379336 This driver exports 10 voltage sensors, up to 12 fan tachometer inputs,
37 6 remote temperatures, up to 8 sets of PWM fan controls, SmartFan
38 (automatic fan speed control) on all temperature/PWM combinations, 2
63 For fan sensors, an alarm triggers if the measured value is below the
67 If you want to set a pwm fan to manual mode, you just need to make sure it
71 control the fan.
77 slow down all controlled fans, this means one fan can receive different
79 will always pick the safest (max) PWM value for each fan.
105 Only Fan1-5 and PWM1-3 are guaranteed to always exist, other fan inputs and
Dmax665025 set, e.g. only one fan-input, instead of 4 for the MAX6651.
31 fan1_input ro fan tachometer speed in RPM
35 fan1_target rw desired fan speed in RPM (closed loop mode only)
58 voltage_12V: 5=5V fan, 12=12V fan, 0=don't change
Dadt747020 external temperatures. It has four (4) 16-bit counters for measuring fan speed.
21 There are four (4) PWM outputs that can be used to control fan speed.
24 that allows fan speed to be adjusted automatically based on any of the ten
30 Each of the measured inputs (temperature, fan speed) has corresponding high/low
36 automatic fan pwm control to set the fan speed. The driver will not read the
Dw83l786ng27 The driver implements two temperature sensors, two fan rotation speed
35 or 128 for fan 1/2) to give the readings more range or accuracy.
44 pwm[1-2] - this file stores PWM duty cycle or DC value (fan speed) in range:
46 pwm[1-2]_enable - this file controls mode of fan/temperature control:
Dsysfs-interface14 temperature sensor is connected to the CPU, or that the second fan is on
49 "fan" (fan). Usual items are "input" (measured value), "max" (high
193 fan[1-*]_min Fan minimum value
197 fan[1-*]_max Fan maximum value
202 fan[1-*]_input Fan input value.
206 fan[1-*]_div Fan divisor.
213 fan[1-*]_pulses Number of tachometer pulses per fan revolution.
216 This value is a characteristic of the fan connected to the
217 device's input, so it has to be set in accordance with the fan
222 per fan revolution.
[all …]
Dit87124 include an 'environment controller' with 3 temperature sensors, 3 fan
146 counters for fans 1 to 3. This is better (no more fan clock divider mess) but
158 IT8728F. It only supports 3 fans, 16-bit fan mode, and the full speed mode
159 of the fan is not supported (value 0 of pwmX_enable).
162 IT8728F. It only supports 16-bit fan mode.
164 The IT8790E supports up to 3 fans. 16-bit fan mode is always enabled.
166 The IT8732F supports a closed-loop mode for fan control, but this is not
174 16-bit tachometer counters aren't used, fan readings can be divided by
226 The fan speed control features are limited to manual PWM mode. Automatic
231 If you are only able to control the fan speed with very small PWM values,
[all …]
Dadm103124 The ADM1030 and ADM1031 are digital temperature sensors and fan controllers.
34 The ADM1030 monitors a single fan speed, while the ADM1031 monitors up to
35 two. Each fan channel has its own low speed limit.
Df71805f38 This chip also has fan controlling features, using either DC or PWM, in
129 Both PWM (pulse-width modulation) and DC fan speed control methods are
137 fan model. As a rule of thumb, lower frequencies seem to give better
141 not going below 1 kHz, as the fan tachometers get confused by lower
148 Three different fan control modes are supported; the mode number is written
156 You define 3 temperature/fan speed trip points using the
158 relationship between temperature and fan speed with two additional points
160 is below auto_point1_temp the fan is switched off.
163 You ask for a specific fan speed by writing to the fan<n>_target file.
Dnct790419 interface, up to 12 fan tachometer inputs, up to 4 fan control channels
30 fan[1-12]_input Fan tachometer measurements (rpm)
Demc6w20118 "The EMC6W201 is an environmental monitoring device with automatic fan
32 temperatures and fan speeds. Limits can be changed. Alarms are not
33 supported, and neither is fan speed control.
Dpc8736039 PC87364 chip has monitoring and PWM control for a third fan.
46 Chip #vin #fan #pwm #temp devid
62 A different alarm is triggered if the fan speed is too low to be measured.
98 that the fan is stopped, and 255 meaning that the fan goes at full speed.
101 non-zero, can stop the fan, which may cause irreversible damage to your
105 One user reported problems with PWM. Changing PWM values would break fan
182 The datasheets suggests that some values (fan mins, fan dividers)
Dmax663918 temperature monitor with dual PWM fan speed controller. It can monitor its own
40 fan1_input R TACH1 fan tachometer input (in RPM)
41 fan2_input R TACH2 fan tachometer input (in RPM)
Ducd900032 functionality. Using these pins, the UCD90124 offers support for fan control,
102 fan[1-4]_input Fan RPM.
103 fan[1-4]_alarm Fan alarm.
104 fan[1-4]_fault Fan fault.
107 fan control (UCD90124, UCD90910). Attribute files are
Dadt747543 for measuring fan speed. There are three (3) PWM outputs that can be used
44 to control fan speed.
47 ADT747x that allows fan speed to be adjusted automatically based on any of the
53 Each of the measured inputs (voltage, temperature, fan speed) has
107 fan speed) is applied. PWM values range from 0 (off) to 255 (full speed).
Dw83791d62 five fan rotation speed sensors and manual PWM control of each fan.
78 Each fan controlled is controlled by PWM. The PWM duty cycle can be read and
79 set for each fan separately. Valid values range from 0 (stop) to 255 (full).
119 pwm[1-3]_enable - this file controls mode of fan/temperature control for
120 fan 1-3. Fan/PWM 4-5 only support manual mode.
131 in which the fan speed is not changed.
Dlm8555 measuring fan speed. Five (5) digital inputs are provided for sampling the
57 outputs that can be used to control fan speed.
71 LM85 that allows fan speed to be adjusted automatically based on any of the
77 Each of the measured inputs (voltage, temperature, fan speed) has
89 The LM85 has four fan speed monitoring modes. The ADM1027 has only two.
92 speed of a two wire fan, but the input conditioning circuitry is different
93 for 3-wire and 2-wire mode. For this reason, the 2-wire fan modes are not
100 config option but uses it to rate limit the changes to fan speed instead.
125 fan speeds. They use this monitoring capability to alert the system to out
160 within spec (just?!) with the least possible fan noise.
Dadt746217 This chip is a bit of a beast. It has 8 counters for measuring fan speed. It
24 that allows fan speed to be adjusted automatically based on any of the three
30 Each of the measured inputs (voltage, temperature, fan speed) has
Demc210317 contain up to 4 temperature sensors and a single fan controller.
26 This driver supports RPM based control, to use this a fan target
Dibmpowernv12 This driver implements reading the platform sensors data like temperature/fan/
35 1: Failing fan
Dsch563625 temperatures. Note that the driver detects how many fan headers /
27 likely see fewer temperature and fan inputs.
Dthmc5035 many processors), and a controllable fan/analog_out DAC. For the temperature
55 A typical symptom of wrong setting is a fan forced to full speed.
66 pwm1 -- fan speed (0 = stop, 255 = full)
Dlm9352 voltages. To set fan speed, the LM93 has two PWM outputs that are each
55 temperature readings for better control of fan speed. The LM93 has four
56 tachometer inputs to measure fan speed. Limit and status registers for all
119 If a fan is driven using a low-side drive PWM, the tachometer
120 output of the fan is corrupted. The LM93 includes smart tachometer
126 the fan tachometer with a pwm) to the sysfs file fan<n>_smart_tach. A zero
127 will disable the function for that fan. Note that Smart tach mode cannot be
156 The LM93 is capable of complex automatic fan control, with many different
255 four tach input pins. GPIO0-GPIO3 correspond to (fan) tach 1-4, respectively.
284 fan<n>_smart_tach enable or disable smart tach mode
Dnct668319 It supports up to 16 fan rotation sensors and up to 8 fan control engines.
Dabituguru56 * fan_sensors: int Tell the driver how many fan speed sensors there are
58 * pwms: int Tell the driver how many fan speed controls (fan
Dpc8742724 This chip also has fan controlling features (up to 4 PWM outputs),
39 (including stalled or missing fan).
Dasb10024 The ASB100 implements seven voltage sensors, three fan rotation speed
68 * Experiment with fan divisors > 8.
Dlineage-pem48 and fan status.
50 Input voltage, input current, input power, and fan speed measurement is only
Dabituguru-datasheet250 Sensor 0 usually controls the CPU fan
251 Sensor 1 usually controls the NB (or chipset for single chip) fan
252 Sensor 2 usually controls the System fan
259 0-255 = 0-12v (linear), specify voltage at which fan will rotate when under
263 0-255 = 0-12v (linear), specify voltage at which fan will rotate when above
278 Sensor 0: CPU fan speed
279 Sensor 1: NB (or chipset for single chip) fan speed
280 Sensor 2: SYS fan speed
Dsmsc47m126 fan.c program: http://www.lsc-group.phys.uwm.edu/%7Eballen/driver/
37 monitoring block' in addition to the fan monitoring and control. The
Dw83781d70 two on the W83783S), three fan rotation speed sensors, voltage sensors
308 - fan 1: register 0x28, divisor on register 0xA1 (bits 4-5)
309 - fan 2: register 0x29, divisor on register 0xA1 (bits 6-7)
375 is below a given limit, the fan runs at low speed. If the value is above
376 the limit, the fan runs at full speed. We have no clue as to what the limit
383 would not be significant. If the value is below a given limit, the fan runs
405 some form of auto-fan-control based on temp? hmm (Qfan? this mobo is an
431 In order to reduce the dependency of specific fan, the measurement is
432 conducted with a digital scope without fan connected. I found out that
433 P3B-F actually output variable DC voltage on fan header center pin,
Dnct780217 chip. NCT7802Y supports 6 temperature sensors, 5 voltage sensors, and 3 fan
Dsmsc47m19227 They do also have fan monitoring and control capabilities, but the
29 driver. Use the 'smsc47m1' driver for fan monitoring and control.
Duserspace-tools30 4) fix sensors.conf, labels, limits, fan divisors
Dsmsc47b39757 The fan speed information is located in the following registers:
60 fan speed on all systems).
Dlm8029 The LM80 implements one temperature sensor, two fan rotation speed sensors,
Dgl518sm32 The GL518SM implements one temperature sensor, two fan rotation speed
Dlm8729 The LM87 implements up to three temperature sensors, up to two fan
Dlm7830 The LM7* implements one temperature sensor, three fan rotation speed sensors,
Dlm8353 health monitoring. They also have voltage and fan rotation speed
Dvia686a39 The Via 686a implements three temperature sensors, two fan rotation speed
Dsis559557 The SiS5595 implements zero or one temperature sensor, two fan speed
Dvt121148 This chip also provides manual and automatic control of fan speeds (according
/linux-4.4.14/Documentation/devicetree/bindings/gpio/
Dgpio-fan.txt1 Bindings for fan connected to GPIO lines
4 - compatible : "gpio-fan"
9 - gpio-fan,speed-map: A mapping of possible fan RPM speeds and the
13 the fan, and a udev event will be fired.
16 min and max states are derived from the speed-map of the fan.
23 compatible = "gpio-fan";
26 gpio-fan,speed-map = <0 0
32 compatible = "gpio-fan";
35 gpio-fan,speed-map = <0 0>,
/linux-4.4.14/Documentation/thermal/
Dnouveau_thermal12 This driver allows to read the GPU core temperature, drive the GPU fan and
17 have one of those, temperature and/or fan management through Nouveau's HWMON
51 Not all cards have a drivable fan. If you do, then the following HWMON
54 * pwm1_enable: Current fan management mode (NONE, MANUAL or AUTO);
61 * fan1_input: Speed in RPM of your fan.
63 Your fan can be driven in different modes:
65 * 0: The fan is left untouched;
66 * 1: The fan can be driven in manual (use pwm1 to change the speed);
67 * 2; The fan is driven automatically depending on the temperature.
69 NOTE: Be sure to use the manual mode if you want to drive the fan speed manually
[all …]
Dsysfs-api.txt14 devices (sensors) and thermal cooling devices (fan, processor...) to register
79 This interface function adds a new thermal cooling device (fan/processor/...)
199 |---type: Type of the cooling device(processor/fan/...)
411 It has one processor and one fan, which are both registered as
415 If the processor is listed in _PSL method, and the fan is listed in _AL0
/linux-4.4.14/Documentation/devicetree/bindings/hwmon/
Dpwm-fan.txt1 Bindings for a fan connected to the PWM lines
4 - compatible : "pwm-fan"
5 - pwms : the PWM that is used to control the PWM fan
10 fan0: pwm-fan {
11 compatible = "pwm-fan";
Dibmpowernv.txt6 "ibm,opal-sensor-cooling-fan"
15 cooling-fan#8-data {
17 compatible = "ibm,opal-sensor-cooling-fan";
Dg762.txt12 - "fan_startv": fan startup voltage. Accepted values are 0, 1, 2 and 3.
18 - "fan_gear_mode": fan gear mode. Supported values are 0, 1 and 2.
/linux-4.4.14/drivers/hwmon/
Ddell-smm-hwmon.c216 static int i8k_get_fan_status(int fan) in i8k_get_fan_status() argument
220 regs.ebx = fan & 0xff; in i8k_get_fan_status()
227 static int i8k_get_fan_speed(int fan) in i8k_get_fan_speed() argument
231 regs.ebx = fan & 0xff; in i8k_get_fan_speed()
238 static int i8k_get_fan_type(int fan) in i8k_get_fan_type() argument
242 regs.ebx = fan & 0xff; in i8k_get_fan_type()
249 static int i8k_get_fan_nominal_speed(int fan, int speed) in i8k_get_fan_nominal_speed() argument
253 regs.ebx = (fan & 0xff) | (speed << 8); in i8k_get_fan_nominal_speed()
260 static int i8k_set_fan(int fan, int speed) in i8k_set_fan() argument
265 regs.ebx = (fan & 0xff) | (speed << 8); in i8k_set_fan()
[all …]
Dultra45_env.c147 #define fan(index) \ macro
148 static SENSOR_DEVICE_ATTR(fan##index##_speed, S_IRUGO | S_IWUSR, \
150 static SENSOR_DEVICE_ATTR(fan##index##_fault, S_IRUGO, \
153 fan(0);
154 fan(1);
155 fan(2);
156 fan(3);
157 fan(4);
Dlm80.c137 u8 fan[f_num_fan][2]; /* Register value, 1st index enum fan_index */ member
205 data->fan[f_input][0] = rv; in lm80_update_device()
210 data->fan[f_min][0] = rv; in lm80_update_device()
215 data->fan[f_input][1] = rv; in lm80_update_device()
220 data->fan[f_min][1] = rv; in lm80_update_device()
314 return sprintf(buf, "%d\n", FAN_FROM_REG(data->fan[nr][index], in show_fan()
341 data->fan[nr][index] = FAN_TO_REG(val, in set_fan_min()
344 data->fan[nr][index]); in set_fan_min()
369 min = FAN_FROM_REG(data->fan[f_min][nr], in set_fan_div()
398 data->fan[f_min][nr] = FAN_TO_REG(min, DIV_FROM_REG(data->fan_div[nr])); in set_fan_div()
[all …]
Dadm1029.c120 u8 fan[ARRAY_SIZE(ADM1029_REG_FAN)]; member
149 data->fan[nr] = in adm1029_update_device()
186 if (data->fan[attr->index] == 0 in show_fan()
188 || data->fan[attr->index] == 255) { in show_fan()
193 / data->fan[attr->index]; in show_fan()
Dadm9240.c144 u8 fan[2]; /* ro fan1_input */ member
203 data->fan[i] = i2c_smbus_read_byte_data(client, in adm9240_update_device()
207 if (data->valid && data->fan[i] == 255 && in adm9240_update_device()
397 return sprintf(buf, "%d\n", FAN_FROM_REG(data->fan[attr->index], in show_fan()
489 #define fan(nr) \ macro
490 static SENSOR_DEVICE_ATTR(fan##nr##_input, S_IRUGO, \
492 static SENSOR_DEVICE_ATTR(fan##nr##_div, S_IRUGO, \
494 static SENSOR_DEVICE_ATTR(fan##nr##_min, S_IRUGO | S_IWUSR, \
497 fan(1);
498 fan(2);
Demc6w201.c67 u16 fan[2][5]; member
169 data->fan[input][nr] = in emc6w201_update_device()
172 data->fan[min][nr] = in emc6w201_update_device()
275 if (data->fan[sf][nr] == 0 || data->fan[sf][nr] == 0xFFFF) in show_fan()
278 rpm = 5400000U / data->fan[sf][nr]; in show_fan()
305 data->fan[sf][nr] = val; in set_fan()
307 data->fan[sf][nr]); in set_fan()
Dsmsc47b397.c110 u16 fan[4]; member
141 data->fan[i] = smsc47b397_read_value(data, in smsc47b397_update_device()
143 data->fan[i] |= smsc47b397_read_value(data, in smsc47b397_update_device()
196 return sprintf(buf, "%d\n", fan_from_reg(data->fan[attr->index])); in show_fan()
Dabituguru3.c955 SENSOR_ATTR_2(fan%d_input, 0444, show_value, NULL, 0, 0),
956 SENSOR_ATTR_2(fan%d_min, 0444, show_value, NULL, 1, 0),
957 SENSOR_ATTR_2(fan%d_alarm, 0444, show_alarm, NULL, 0, 0),
958 SENSOR_ATTR_2(fan%d_beep, 0444, show_mask, NULL,
960 SENSOR_ATTR_2(fan%d_shutdown, 0444, show_mask, NULL,
962 SENSOR_ATTR_2(fan%d_alarm_enable, 0444, show_mask, NULL,
964 SENSOR_ATTR_2(fan%d_label, 0444, show_label, NULL, 0, 0)
Dvt8231.c170 u8 fan[2]; /* Register value */ member
502 return sprintf(buf, "%d\n", FAN_FROM_REG(data->fan[nr], in show_fan()
595 static SENSOR_DEVICE_ATTR(fan##offset##_input, S_IRUGO, \
597 static SENSOR_DEVICE_ATTR(fan##offset##_div, S_IRUGO | S_IWUSR, \
599 static SENSOR_DEVICE_ATTR(fan##offset##_min, S_IRUGO | S_IWUSR, \
899 data->fan[i] = vt8231_read_value(data, in vt8231_update_device()
927 if (!data->fan[0] && data->fan_min[0]) in vt8231_update_device()
929 else if (data->fan[0] && !data->fan_min[0]) in vt8231_update_device()
932 if (!data->fan[1] && data->fan_min[1]) in vt8231_update_device()
934 else if (data->fan[1] && !data->fan_min[1]) in vt8231_update_device()
Dsmsc47m1.c133 u8 fan[3]; /* Register value */ member
168 data->fan[i] = smsc47m1_read_value(data, in smsc47m1_update_device()
218 FAN_FROM_REG(data->fan[nr], in get_fan()
426 static SENSOR_DEVICE_ATTR(fan##offset##_input, S_IRUGO, get_fan, \
428 static SENSOR_DEVICE_ATTR(fan##offset##_min, S_IRUGO | S_IWUSR, \
430 static SENSOR_DEVICE_ATTR(fan##offset##_div, S_IRUGO | S_IWUSR, \
432 static SENSOR_DEVICE_ATTR(fan##offset##_alarm, S_IRUGO, get_fan_alarm, \
Damc6821.c163 u16 fan[FAN1_IDX_LEN]; member
202 data->fan[i] = i2c_smbus_read_byte_data( in amc6821_update_device()
205 data->fan[i] += i2c_smbus_read_byte_data( in amc6821_update_device()
636 if (0 == data->fan[ix]) in get_fan()
638 return sprintf(buf, "%d\n", (int)(6000000 / data->fan[ix])); in get_fan()
668 data->fan[ix] = (u16) clamp_val(val, 1, 0xFFFF); in set_fan()
670 data->fan[ix] & 0xFF)) { in set_fan()
676 fan_reg_hi[ix], data->fan[ix] >> 8)) { in set_fan()
Dlm63.c167 u16 fan[2]; /* 0: input member
249 data->fan[0] = i2c_smbus_read_byte_data(client, in lm63_update_device()
251 data->fan[0] |= i2c_smbus_read_byte_data(client, in lm63_update_device()
253 data->fan[1] = (i2c_smbus_read_byte_data(client, in lm63_update_device()
348 return sprintf(buf, "%d\n", FAN_FROM_REG(data->fan[attr->index])); in show_fan()
364 data->fan[1] = FAN_TO_REG(val); in set_fan()
366 data->fan[1] & 0xFF); in set_fan()
368 data->fan[1] >> 8); in set_fan()
Dsis5595.c197 u8 fan[2]; /* Register value */ member
377 return sprintf(buf, "%d\n", FAN_FROM_REG(data->fan[nr], in show_fan()
484 static SENSOR_DEVICE_ATTR(fan##offset##_input, S_IRUGO, \
486 static SENSOR_DEVICE_ATTR(fan##offset##_min, S_IRUGO | S_IWUSR, \
488 static SENSOR_DEVICE_ATTR(fan##offset##_div, S_IRUGO | S_IWUSR, \
727 data->fan[i] = in sis5595_update_device()
Dvia686a.c327 u8 fan[2]; /* Register value */ member
512 return sprintf(buf, "%d\n", FAN_FROM_REG(data->fan[nr], in show_fan()
572 static SENSOR_DEVICE_ATTR(fan##offset##_input, S_IRUGO, \
574 static SENSOR_DEVICE_ATTR(fan##offset##_min, S_IRUGO | S_IWUSR, \
576 static SENSOR_DEVICE_ATTR(fan##offset##_div, S_IRUGO | S_IWUSR, \
781 data->fan[i - 1] = in via686a_update_device()
Dvt1211.c131 u8 fan[2]; member
291 for (ix = 0; ix < ARRAY_SIZE(data->fan); ix++) { in vt1211_update_device()
292 data->fan[ix] = vt1211_read8(data, in vt1211_update_device()
509 res = RPM_FROM_REG(data->fan[ix], data->fan_div[ix]); in show_fan()
1014 SENSOR_ATTR_2(fan##ix##_input, S_IRUGO, \
1016 SENSOR_ATTR_2(fan##ix##_min, S_IRUGO | S_IWUSR, \
1018 SENSOR_ATTR_2(fan##ix##_div, S_IRUGO | S_IWUSR, \
1020 SENSOR_ATTR_2(fan##ix##_alarm, S_IRUGO, \
Dadm1026.c286 u8 fan[8]; /* Register value */ member
349 data->fan[i] = in adm1026_update_device()
642 return sprintf(buf, "%d\n", FAN_FROM_REG(data->fan[nr], in show_fan()
677 static SENSOR_DEVICE_ATTR(fan##offset##_input, S_IRUGO, show_fan, NULL, \
679 static SENSOR_DEVICE_ATTR(fan##offset##_min, S_IRUGO | S_IWUSR, \
692 static void fixup_fan_min(struct device *dev, int fan, int old_div) in fixup_fan_min() argument
697 int new_div = data->fan_div[fan]; in fixup_fan_min()
700 if (data->fan_min[fan] == 0 || data->fan_min[fan] == 0xff) in fixup_fan_min()
703 new_min = data->fan_min[fan] * old_div / new_div; in fixup_fan_min()
705 data->fan_min[fan] = new_min; in fixup_fan_min()
[all …]
Dasb100.c206 u8 fan[3]; /* Register value */ member
305 return sprintf(buf, "%d\n", FAN_FROM_REG(data->fan[nr], in show_fan()
403 static SENSOR_DEVICE_ATTR(fan##offset##_input, S_IRUGO, \
405 static SENSOR_DEVICE_ATTR(fan##offset##_min, S_IRUGO | S_IWUSR, \
407 static SENSOR_DEVICE_ATTR(fan##offset##_div, S_IRUGO | S_IWUSR, \
977 data->fan[i] = asb100_read_value(client, in asb100_update_device()
Dit87.c458 u16 fan[6][2]; /* Register values, [nr][0]=fan, [1]=min */ member
864 FAN16_FROM_REG(data->fan[nr][index]) : in show_fan()
865 FAN_FROM_REG(data->fan[nr][index], in show_fan()
927 data->fan[nr][index] = FAN16_TO_REG(val); in set_fan()
929 data->fan[nr][index] & 0xff); in set_fan()
931 data->fan[nr][index] >> 8); in set_fan()
945 data->fan[nr][index] = in set_fan()
948 data->fan[nr][index]); in set_fan()
973 min = FAN_FROM_REG(data->fan[nr][1], DIV_FROM_REG(data->fan_div[nr])); in set_fan_div()
994 data->fan[nr][1] = FAN_TO_REG(min, DIV_FROM_REG(data->fan_div[nr])); in set_fan_div()
[all …]
Ddme1737.c240 u16 fan[6]; member
688 for (ix = 0; ix < ARRAY_SIZE(data->fan); ix++) { in dme1737_update_device()
695 data->fan[ix] = dme1737_read(data, in dme1737_update_device()
697 data->fan[ix] |= dme1737_read(data, in dme1737_update_device()
1101 res = FAN_FROM_REG(data->fan[ix], in show_fan()
1580 static SENSOR_DEVICE_ATTR_2(fan##ix##_input, S_IRUGO, \
1582 static SENSOR_DEVICE_ATTR_2(fan##ix##_min, S_IRUGO | S_IWUSR, \
1584 static SENSOR_DEVICE_ATTR_2(fan##ix##_alarm, S_IRUGO, \
1586 static SENSOR_DEVICE_ATTR_2(fan##ix##_type, S_IRUGO | S_IWUSR, \
1597 static SENSOR_DEVICE_ATTR_2(fan##ix##_input, S_IRUGO, \
[all …]
Dlm87.c176 u8 fan[2]; /* register value */ member
229 data->fan[i] = lm87_read_value(client, in lm87_update_device()
471 return sprintf(buf, "%d\n", FAN_FROM_REG(data->fan[nr], in show_fan_input()
579 static SENSOR_DEVICE_ATTR(fan##offset##_input, S_IRUGO, \
581 static SENSOR_DEVICE_ATTR(fan##offset##_min, S_IRUGO | S_IWUSR, \
583 static SENSOR_DEVICE_ATTR(fan##offset##_div, S_IRUGO | S_IWUSR, \
Dsch5627.c93 u16 fan[SCH5627_NO_FANS]; member
133 data->fan[i] = val; in sch5627_update_device()
272 val = reg_to_rpm(data->fan[attr->index]); in show_fan()
289 data->fan[attr->index] == 0xffff); in show_fan_fault()
Dadt7462.c217 u16 fan[ADT7462_FAN_COUNT]; member
247 static int ADT7462_REG_FAN(int fan) in ADT7462_REG_FAN() argument
249 if (fan < 4) in ADT7462_REG_FAN()
250 return ADT7462_REG_FAN_BASE_ADDR + (2 * fan); in ADT7462_REG_FAN()
251 return ADT7462_REG_FAN2_BASE_ADDR + (2 * (fan - 4)); in ADT7462_REG_FAN()
706 data->fan[i] = adt7462_read_word_data(client, in adt7462_update_device()
1010 static int fan_enabled(struct adt7462_data *data, int fan) in fan_enabled() argument
1012 return data->fan_enabled & (1 << fan); in fan_enabled()
1067 !FAN_DATA_VALID(data->fan[attr->index])) in show_fan()
1071 FAN_PERIOD_TO_RPM(data->fan[attr->index])); in show_fan()
Dw83795.c348 u16 fan[14]; /* Register value combine */ member
492 for (i = 0; i < ARRAY_SIZE(data->fan); i++) { in w83795_update_limits()
645 for (i = 0; i < ARRAY_SIZE(data->fan); i++) { in w83795_update_device()
648 data->fan[i] = w83795_read(client, W83795_REG_FAN(i)) << 4; in w83795_update_device()
649 data->fan[i] |= w83795_read(client, W83795_REG_VRLSB) >> 4; in w83795_update_device()
798 val = data->fan[index] & 0x0fff; in show_fan()
1640 SENSOR_ATTR_2(fan##index##_input, S_IRUGO, show_fan, \
1642 SENSOR_ATTR_2(fan##index##_min, S_IWUSR | S_IRUGO, \
1644 SENSOR_ATTR_2(fan##index##_alarm, S_IRUGO, show_alarm_beep, \
1646 SENSOR_ATTR_2(fan##index##_beep, S_IWUSR | S_IRUGO, \
[all …]
Dlm78.c140 u8 fan[3]; /* Register value */ member
309 return sprintf(buf, "%d\n", FAN_FROM_REG(data->fan[nr], in show_fan()
417 static SENSOR_DEVICE_ATTR(fan##offset##_input, S_IRUGO, \
419 static SENSOR_DEVICE_ATTR(fan##offset##_min, S_IRUGO | S_IWUSR, \
766 data->fan[i] = in lm78_update_device()
Dadm1031.c92 u8 fan[2]; member
195 data->fan[chan] = in adm1031_update_device()
583 value = trust_fan_readings(data, nr) ? FAN_FROM_REG(data->fan[nr], in show_fan()
677 static SENSOR_DEVICE_ATTR(fan##offset##_input, S_IRUGO, \
679 static SENSOR_DEVICE_ATTR(fan##offset##_min, S_IRUGO | S_IWUSR, \
681 static SENSOR_DEVICE_ATTR(fan##offset##_div, S_IRUGO | S_IWUSR, \
Dlm85.c312 u16 fan[4]; /* Register value */ member
414 data->fan[i] = in lm85_update_device()
562 return sprintf(buf, "%d\n", FAN_FROM_REG(data->fan[nr])); in show_fan()
594 static SENSOR_DEVICE_ATTR(fan##offset##_input, S_IRUGO, \
596 static SENSOR_DEVICE_ATTR(fan##offset##_min, S_IRUGO | S_IWUSR, \
1448 u8 in_temp, fan; in lm85_is_fake() local
1452 fan = i2c_smbus_read_byte_data(client, 0x28 + i); in lm85_is_fake()
1453 if (in_temp != 0x00 || fan != 0xff) in lm85_is_fake()
DKconfig12 can include temperature sensors, voltage sensors, fan speed
310 control and fan control.
315 Data from the different sensors, keyboard backlight control and fan
515 Technology Inc G760A fan speed PWM controller chips.
525 Technology Inc G762 and G763 fan speed PWM controller chips.
531 tristate "GPIO fan"
538 will be called gpio-fan.
583 If you say yes here you get support for the temperature/fan/power
915 sensors with integrated fan control. Such chips are found
1108 The PC87360, PC87363 and PC87364 only have fan monitoring and
[all …]
DMakefile69 obj-$(CONFIG_SENSORS_GPIO_FAN) += gpio-fan.o
132 obj-$(CONFIG_SENSORS_PWM_FAN) += pwm-fan.o
Df71805f.c166 u16 fan[3]; member
184 u16 fan[3]; member
378 data->auto_points[nr].fan[apnr] = in f71805f_update_device()
398 data->fan[nr] = f71805f_read16(data, in f71805f_update_device()
577 return sprintf(buf, "%ld\n", fan_from_reg(data->fan[nr])); in show_fan()
839 fan_from_reg(data->auto_points[pwmnr].fan[apnr])); in show_pwm_auto_point_fan()
858 data->auto_points[pwmnr].fan[apnr] = fan_to_reg(val); in set_pwm_auto_point_fan()
860 data->auto_points[pwmnr].fan[apnr]); in set_pwm_auto_point_fan()
Dmax6639.c91 u8 fan[2]; /* Register value: TACH count for fans >=30 */ member
136 data->fan[i] = res; in max6639_update_device()
331 return sprintf(buf, "%d\n", FAN_FROM_REG(data->fan[attr->index], in show_fan_input()
Dabituguru.c1239 SENSOR_ATTR_2(fan%d_input, 0444, show_bank2_value, NULL, 0, 0),
1240 SENSOR_ATTR_2(fan%d_alarm, 0444, show_bank2_alarm, NULL, 0, 0),
1241 SENSOR_ATTR_2(fan%d_min, 0644, show_bank2_setting,
1243 SENSOR_ATTR_2(fan%d_beep, 0644, show_bank2_mask,
1245 SENSOR_ATTR_2(fan%d_shutdown, 0644, show_bank2_mask,
1247 SENSOR_ATTR_2(fan%d_alarm_enable, 0644, show_bank2_mask,
Dw83793.c234 u16 fan[12]; /* Register value combine */ member
488 val = data->fan[index] & 0x0fff; in show_fan()
1043 SENSOR_ATTR_2(fan##index##_alarm, S_IRUGO, show_alarm_beep, \
1045 SENSOR_ATTR_2(fan##index##_beep, S_IWUSR | S_IRUGO, \
1047 SENSOR_ATTR_2(fan##index##_input, S_IRUGO, show_fan, \
1049 SENSOR_ATTR_2(fan##index##_min, S_IWUSR | S_IRUGO, \
2080 for (i = 0; i < ARRAY_SIZE(data->fan); i++) { in w83793_update_device()
2083 data->fan[i] = in w83793_update_device()
2085 data->fan[i] |= in w83793_update_device()
Dpc87360.c201 u8 fan[3]; /* Register value */ member
262 return sprintf(buf, "%u\n", FAN_FROM_REG(data->fan[attr->index], in show_fan_input()
310 data->fan[attr->index] >>= 1; in set_fan_min()
1574 || (data->fan[nr] >= 224)) { /* next to overflow */ in pc87360_autodiv()
1578 data->fan[nr] >>= 1; in pc87360_autodiv()
1586 && data->fan[nr] < 85 /* bad accuracy */ in pc87360_autodiv()
1590 data->fan[nr] <<= 1; in pc87360_autodiv()
1622 data->fan[i] = pc87360_read_value(data, LD_FAN, in pc87360_update_device()
Dw83l786ng.c137 u8 fan[2]; member
187 data->fan[i] = w83l786ng_read_value(client, in w83l786ng_update_device()
300 show_fan_reg(fan);
Df75375s.c110 u16 fan[2]; member
238 data->fan[nr] = in f75375_update_device()
667 show_fan(fan);
Dadt7470.c159 u16 fan[ADT7470_FAN_COUNT]; member
318 data->fan[i] = adt7470_read_word_data(client, in adt7470_update_device()
621 if (FAN_DATA_VALID(data->fan[attr->index])) in show_fan()
623 FAN_PERIOD_TO_RPM(data->fan[attr->index])); in show_fan()
Df71882fg.c279 u16 fan[4]; member
1163 static inline u16 fan_to_reg(int fan) in fan_to_reg() argument
1165 return fan ? (1500000 / fan) : 0; in fan_to_reg()
1338 data->fan[nr] = f71882fg_read16(data, in f71882fg_update_device()
1350 data->fan[2] = f71882fg_read16(data, in f71882fg_update_device()
1356 data->fan[3] = f71882fg_read16(data, in f71882fg_update_device()
1389 int speed = fan_from_reg(data->fan[nr]); in show_fan()
Dw83791d.c298 u8 fan[NUMBER_OF_FANIN]; /* Register value */ member
544 show_fan_reg(fan);
1546 data->fan[i] = w83791d_read(client, in w83791d_update_device()
1667 dev_dbg(dev, "fan[%d] is: 0x%02x\n", i, data->fan[i]); in w83791d_print_debug()
Dw83627hf.c371 u8 fan[3]; /* Register value */ member
665 return sprintf(buf, "%ld\n", FAN_FROM_REG(data->fan[nr], in show_fan_input()
698 static SENSOR_DEVICE_ATTR(fan##offset##_input, S_IRUGO, \
700 static SENSOR_DEVICE_ATTR(fan##offset##_min, S_IRUGO | S_IWUSR, \
1851 data->fan[i] = in w83627hf_update_device()
Dw83792d.c287 u8 fan[7]; /* Register value */ member
418 show_fan_reg(fan);
1549 data->fan[i] = w83792d_read_value(client, in w83792d_update_device()
1659 dev_dbg(dev, "fan[%d] is: 0x%x\n", i, data->fan[i]); in w83792d_print_debug()
Dpc87427.c62 u16 fan[8]; /* register values */ member
189 data->fan[nr] = inw(iobase + PC87427_REG_FAN); in pc87427_readall_fan()
393 return sprintf(buf, "%lu\n", fan_from_reg(data->fan[nr])); in show_fan_input()
Dnct6775.c800 static u16 fan_to_reg(u32 fan, unsigned int divreg) in fan_to_reg() argument
802 if (!fan) in fan_to_reg()
805 return (1350000U / fan) >> divreg; in fan_to_reg()
2005 int fan = index / 6; /* fan index */ in nct6775_fan_is_visible() local
2008 if (!(data->has_fan & (1 << fan))) in nct6775_fan_is_visible()
2011 if (nr == 1 && data->ALARM_BITS[FAN_ALARM_BASE + fan] == -1) in nct6775_fan_is_visible()
2013 if (nr == 2 && data->BEEP_BITS[FAN_ALARM_BASE + fan] == -1) in nct6775_fan_is_visible()
2015 if (nr == 4 && !(data->has_fan_min & (1 << fan))) in nct6775_fan_is_visible()
Dlm93.c1805 struct lm93_data *data, int fan, long value) in lm93_write_fan_smart_tach() argument
1809 data->sf_tach_to_pwm &= ~(0x3 << fan * 2); in lm93_write_fan_smart_tach()
1810 data->sf_tach_to_pwm |= value << fan * 2; in lm93_write_fan_smart_tach()
1816 data->sfc2 |= 1 << fan; in lm93_write_fan_smart_tach()
1818 data->sfc2 &= ~(1 << fan); in lm93_write_fan_smart_tach()
Dnct7802.c870 int fan = index / 4; /* 4 attributes per fan */ in nct7802_fan_is_visible() local
875 if (err < 0 || !(reg & (1 << fan))) in nct7802_fan_is_visible()
Dnct6683.c745 int fan = index / 3; /* fan index */ in nct6683_fan_is_visible() local
748 if (!(data->have_fan & (1 << fan))) in nct6683_fan_is_visible()
Dw83781d.c228 u8 fan[3]; /* Register value */ member
322 show_fan_reg(fan);
1489 data->fan[i] = in w83781d_update_device()
/linux-4.4.14/drivers/gpu/drm/amd/amdgpu/
Damdgpu_dpm.c252 struct _ATOM_PPLIB_FANTABLE fan; member
334 adev->pm.dpm.fan.t_hyst = fan_info->fan.ucTHyst; in amdgpu_parse_extended_power_table()
335 adev->pm.dpm.fan.t_min = le16_to_cpu(fan_info->fan.usTMin); in amdgpu_parse_extended_power_table()
336 adev->pm.dpm.fan.t_med = le16_to_cpu(fan_info->fan.usTMed); in amdgpu_parse_extended_power_table()
337 adev->pm.dpm.fan.t_high = le16_to_cpu(fan_info->fan.usTHigh); in amdgpu_parse_extended_power_table()
338 adev->pm.dpm.fan.pwm_min = le16_to_cpu(fan_info->fan.usPWMMin); in amdgpu_parse_extended_power_table()
339 adev->pm.dpm.fan.pwm_med = le16_to_cpu(fan_info->fan.usPWMMed); in amdgpu_parse_extended_power_table()
340 adev->pm.dpm.fan.pwm_high = le16_to_cpu(fan_info->fan.usPWMHigh); in amdgpu_parse_extended_power_table()
341 if (fan_info->fan.ucFanTableFormat >= 2) in amdgpu_parse_extended_power_table()
342 adev->pm.dpm.fan.t_max = le16_to_cpu(fan_info->fan2.usTMax); in amdgpu_parse_extended_power_table()
[all …]
Dci_dpm.c486 if ((adev->pm.dpm.fan.fan_output_sensitivity & (1 << 15)) || in ci_populate_fuzzy_fan()
487 (adev->pm.dpm.fan.fan_output_sensitivity == 0)) in ci_populate_fuzzy_fan()
488 adev->pm.dpm.fan.fan_output_sensitivity = in ci_populate_fuzzy_fan()
489 adev->pm.dpm.fan.default_fan_output_sensitivity; in ci_populate_fuzzy_fan()
492 cpu_to_be16(adev->pm.dpm.fan.fan_output_sensitivity); in ci_populate_fuzzy_fan()
1078 adev->pm.dpm.fan.ucode_fan_control = false; in ci_thermal_setup_fan_table()
1086 adev->pm.dpm.fan.ucode_fan_control = false; in ci_thermal_setup_fan_table()
1090 tmp64 = (u64)adev->pm.dpm.fan.pwm_min * duty100; in ci_thermal_setup_fan_table()
1094 t_diff1 = adev->pm.dpm.fan.t_med - adev->pm.dpm.fan.t_min; in ci_thermal_setup_fan_table()
1095 t_diff2 = adev->pm.dpm.fan.t_high - adev->pm.dpm.fan.t_med; in ci_thermal_setup_fan_table()
[all …]
/linux-4.4.14/arch/arm/boot/dts/
Dkirkwood-synology.dtsi296 gpio-fan-150-32-35 {
298 compatible = "gpio-fan";
305 gpio-fan,speed-map = < 0 0
315 gpio-fan-150-15-18 {
317 compatible = "gpio-fan";
325 gpio-fan,speed-map = < 0 0
335 gpio-fan-100-32-35 {
337 compatible = "gpio-fan";
345 gpio-fan,speed-map = < 0 0
355 gpio-fan-100-15-18 {
[all …]
Dkirkwood-lsxl.dtsi20 pmx_fan_high: pmx-fan-high {
24 pmx_fan_low: pmx-fan-low {
44 pmx_fan_lock: pmx-fan-lock {
164 compatible = "gpio-fan";
169 gpio-fan,speed-map = <0 3
Dkirkwood-dnskw.dtsi35 compatible = "gpio-fan";
40 gpio-fan,speed-map = <0 0
120 pmx_fan_tacho: pmx-fan-tacho {
124 pmx_fan_high_speed: pmx-fan-high-speed {
128 pmx_fan_low_speed: pmx-fan-low-speed {
Dkirkwood-ns2max.dts25 compatible = "gpio-fan";
30 gpio-fan,speed-map =
Dkirkwood-lswxl.dts54 pmx_fan_high: pmx-fan-high {
58 pmx_fan_low: pmx-fan-low {
90 pmx_fan_lock: pmx-fan-lock {
224 compatible = "gpio-fan";
231 gpio-fan,speed-map = <0 3
Dkirkwood-lswvl.dts54 pmx_fan_high: pmx-fan-high {
58 pmx_fan_low: pmx-fan-low {
90 pmx_fan_lock: pmx-fan-lock {
224 compatible = "gpio-fan";
231 gpio-fan,speed-map = <0 3
Dkirkwood-ns2mini.dts26 compatible = "gpio-fan";
31 gpio-fan,speed-map =
Darmada-370-seagate-nas-2bay.dts29 gpio-fan {
30 gpio-fan,speed-map =
Dkirkwood-nas2big.dts55 fan {
57 * An I2C fan controller (GMT G762) is used but alarm is
60 compatible = "gpio-fan";
Dkirkwood-net2big.dts31 fan {
32 compatible = "gpio-fan";
Dorion5x-linkstation-lswtgl.dts111 pmx_fan_high: pmx-fan-high {
116 pmx_fan_low: pmx-fan-low {
121 pmx_fan_lock: pmx-fan-lock {
179 compatible = "gpio-fan";
186 gpio-fan,speed-map = <0 3
Darmada-370-synology-ds213j.dts205 gpio-fan-32-38 {
207 compatible = "gpio-fan";
215 gpio-fan,speed-map = < 0 0
330 fan_ctrl_low_pin: fan-ctrl-low-pin {
335 fan_ctrl_mid_pin: fan-ctrl-mid-pin {
340 fan_ctrl_high_pin: fan-ctrl-high-pin {
345 fan_alarm_pin: fan-alarm-pin {
Dexynos4412-odroidu3.dts36 fan0: pwm-fan {
37 compatible = "pwm-fan";
Darmada-370-rd.dts156 gpio-fan {
157 compatible = "gpio-fan";
159 gpio-fan,speed-map = <0 0 3000 1>;
241 fan_pins: fan-pins {
Darmada-370-seagate-nas-4bay.dts126 gpio-fan {
127 gpio-fan,speed-map =
Dkirkwood-ds409slim.dts30 gpio-fan-150-32-35 {
Dkirkwood-ds212j.dts31 gpio-fan-100-32-35 {
Dkirkwood-ds112.dts30 gpio-fan-100-15-35-1 {
Dkirkwood-ds111.dts30 gpio-fan-100-15-35-1 {
Dkirkwood-ds209.dts30 gpio-fan-150-32-35 {
Dkirkwood-ds411slim.dts30 gpio-fan-100-15-35-1 {
Dkirkwood-rs212.dts30 gpio-fan-100-15-35-3 {
Dkirkwood-rs411.dts30 gpio-fan-100-15-35-3 {
Dkirkwood-rs409.dts30 gpio-fan-150-15-18 {
Dkirkwood-ds110jv10.dts31 gpio-fan-150-32-35 {
Dkirkwood-ds411j.dts30 gpio-fan-150-15-18 {
Dkirkwood-ds109.dts31 gpio-fan-150-32-35 {
Dkirkwood-ds411.dts30 gpio-fan-100-15-35-1 {
Dkirkwood-ds210.dts32 gpio-fan-150-32-35 {
Dkirkwood-ds409.dts30 gpio-fan-150-15-18 {
Dkirkwood-ds212.dts33 gpio-fan-100-15-35-1 {
Dexynos5422-odroidxu4.dts37 * PWM 0 -- fan
Darmada-370-seagate-nas-xbay.dtsi151 gpio-fan {
152 compatible = "gpio-fan";
Dorion5x-lacie-d2-network.dts156 fan@3e {
184 pmx_fan_fail: pmx-fan-fail {
Dimx6q-tbs2910.dts66 fan {
67 compatible = "gpio-fan";
71 gpio-fan,speed-map = <0 0
Darmada-xp-linksys-mamba.dts331 compatible = "gpio-fan";
334 gpio-fan,speed-map = <0 0
396 gpio_fan_pin: gpio-fan-pin {
Dexynos5422-odroidxu3-lite.dts59 * PWM 0 -- fan
Darmada-xp-netgear-rn2120.dts104 /* Controller for rear fan #1 of 3 (Protechnic
115 /* Controller for rear (center) fan #2 of 3 */
125 /* Controller for rear fan #3 of 3 */
Darmada-388-gp.dts268 gpio-fan {
269 compatible = "gpio-fan";
271 gpio-fan,speed-map = < 0 0
Dexynos5422-odroidxu3.dts90 * PWM 0 -- fan
Dexynos5440.dtsi144 fan: fan { label
Dexynos5422-odroidxu3-common.dtsi49 fan0: pwm-fan {
50 compatible = "pwm-fan";
Dam57xx-beagle-x15.dts95 compatible = "gpio-fan";
97 gpio-fan,speed-map = <0 0>,
/linux-4.4.14/drivers/gpu/drm/radeon/
Dr600_dpm.c812 struct _ATOM_PPLIB_FANTABLE fan; member
892 rdev->pm.dpm.fan.t_hyst = fan_info->fan.ucTHyst; in r600_parse_extended_power_table()
893 rdev->pm.dpm.fan.t_min = le16_to_cpu(fan_info->fan.usTMin); in r600_parse_extended_power_table()
894 rdev->pm.dpm.fan.t_med = le16_to_cpu(fan_info->fan.usTMed); in r600_parse_extended_power_table()
895 rdev->pm.dpm.fan.t_high = le16_to_cpu(fan_info->fan.usTHigh); in r600_parse_extended_power_table()
896 rdev->pm.dpm.fan.pwm_min = le16_to_cpu(fan_info->fan.usPWMMin); in r600_parse_extended_power_table()
897 rdev->pm.dpm.fan.pwm_med = le16_to_cpu(fan_info->fan.usPWMMed); in r600_parse_extended_power_table()
898 rdev->pm.dpm.fan.pwm_high = le16_to_cpu(fan_info->fan.usPWMHigh); in r600_parse_extended_power_table()
899 if (fan_info->fan.ucFanTableFormat >= 2) in r600_parse_extended_power_table()
900 rdev->pm.dpm.fan.t_max = le16_to_cpu(fan_info->fan2.usTMax); in r600_parse_extended_power_table()
[all …]
Dci_dpm.c368 if ((rdev->pm.dpm.fan.fan_output_sensitivity & (1 << 15)) || in ci_populate_fuzzy_fan()
369 (rdev->pm.dpm.fan.fan_output_sensitivity == 0)) in ci_populate_fuzzy_fan()
370 rdev->pm.dpm.fan.fan_output_sensitivity = in ci_populate_fuzzy_fan()
371 rdev->pm.dpm.fan.default_fan_output_sensitivity; in ci_populate_fuzzy_fan()
374 cpu_to_be16(rdev->pm.dpm.fan.fan_output_sensitivity); in ci_populate_fuzzy_fan()
960 rdev->pm.dpm.fan.ucode_fan_control = false; in ci_thermal_setup_fan_table()
967 rdev->pm.dpm.fan.ucode_fan_control = false; in ci_thermal_setup_fan_table()
971 tmp64 = (u64)rdev->pm.dpm.fan.pwm_min * duty100; in ci_thermal_setup_fan_table()
975 t_diff1 = rdev->pm.dpm.fan.t_med - rdev->pm.dpm.fan.t_min; in ci_thermal_setup_fan_table()
976 t_diff2 = rdev->pm.dpm.fan.t_high - rdev->pm.dpm.fan.t_med; in ci_thermal_setup_fan_table()
[all …]
Dsi_dpm.c6052 rdev->pm.dpm.fan.ucode_fan_control = false; in si_thermal_setup_fan_table()
6059 rdev->pm.dpm.fan.ucode_fan_control = false; in si_thermal_setup_fan_table()
6063 tmp64 = (u64)rdev->pm.dpm.fan.pwm_min * duty100; in si_thermal_setup_fan_table()
6067 t_diff1 = rdev->pm.dpm.fan.t_med - rdev->pm.dpm.fan.t_min; in si_thermal_setup_fan_table()
6068 t_diff2 = rdev->pm.dpm.fan.t_high - rdev->pm.dpm.fan.t_med; in si_thermal_setup_fan_table()
6070 pwm_diff1 = rdev->pm.dpm.fan.pwm_med - rdev->pm.dpm.fan.pwm_min; in si_thermal_setup_fan_table()
6071 pwm_diff2 = rdev->pm.dpm.fan.pwm_high - rdev->pm.dpm.fan.pwm_med; in si_thermal_setup_fan_table()
6076 fan_table.temp_min = cpu_to_be16((50 + rdev->pm.dpm.fan.t_min) / 100); in si_thermal_setup_fan_table()
6077 fan_table.temp_med = cpu_to_be16((50 + rdev->pm.dpm.fan.t_med) / 100); in si_thermal_setup_fan_table()
6078 fan_table.temp_max = cpu_to_be16((50 + rdev->pm.dpm.fan.t_max) / 100); in si_thermal_setup_fan_table()
[all …]
/linux-4.4.14/Documentation/laptops/
Dthinkpad-acpi.txt46 - Fan control and monitoring: fan speed, fan enable/disable
121 Sysfs device attributes for the sensors and fan are on the
918 Use it to determine the register holding the fan
921 - make sure the fan is running
924 Often fan and temperature values vary between
1132 Fan control and monitoring: fan speed, fan enable/disable
1135 procfs: /proc/acpi/ibm/fan
1140 NOTE NOTE NOTE: fan control operations are disabled by default for
1144 This feature attempts to show the current fan speed, control mode and
1145 other fan data that might be available. The speed is read directly
[all …]
Dsony-laptop.txt55 fanspeed get/set the fan speed
/linux-4.4.14/arch/powerpc/platforms/44x/
Dwarp.c225 u32 fan = in_be32(fpga + 0x34) & (1 << 14); in pika_dtm_check_fan() local
227 if (fan_state != fan) { in pika_dtm_check_fan()
228 fan_state = fan; in pika_dtm_check_fan()
229 if (fan) in pika_dtm_check_fan()
/linux-4.4.14/drivers/hwmon/pmbus/
Ducd9000.c55 static int ucd9000_get_fan_config(struct i2c_client *client, int fan) in ucd9000_get_fan_config() argument
61 if (data->fan_data[fan][3] & 1) in ucd9000_get_fan_config()
65 fan_config |= (data->fan_data[fan][3] & 0x06) >> 1; in ucd9000_get_fan_config()
/linux-4.4.14/drivers/gpu/drm/nouveau/include/nvkm/subdev/bios/
Dfan.h5 u16 nvbios_fan_parse(struct nvkm_bios *bios, struct nvbios_therm_fan *fan);
/linux-4.4.14/drivers/platform/x86/
Dasus-wmi.c181 u8 fan; /* fan number: 0: set auto mode 1: 1st fan */ member
1088 static int asus_hwmon_agfn_fan_speed_read(struct asus_wmi *asus, int fan, in asus_hwmon_agfn_fan_speed_read() argument
1095 .fan = fan, in asus_hwmon_agfn_fan_speed_read()
1101 if (fan != 1) in asus_hwmon_agfn_fan_speed_read()
1115 static int asus_hwmon_agfn_fan_speed_write(struct asus_wmi *asus, int fan, in asus_hwmon_agfn_fan_speed_write() argument
1122 .fan = fan, in asus_hwmon_agfn_fan_speed_write()
1129 if (fan != 1 && fan != 0) in asus_hwmon_agfn_fan_speed_write()
1137 if (speed && fan == 1) in asus_hwmon_agfn_fan_speed_write()
1174 static int asus_hwmon_fan_rpm_show(struct device *dev, int fan) in asus_hwmon_fan_rpm_show() argument
1184 ret = asus_hwmon_agfn_fan_speed_read(asus, fan+1, &value); in asus_hwmon_fan_rpm_show()
[all …]
Dacerhdf.c283 u8 fan; in acerhdf_get_fanstate() local
285 if (ec_read(bios_cfg->fanreg, &fan)) in acerhdf_get_fanstate()
288 if (fan != bios_cfg->cmd.cmd_off) in acerhdf_get_fanstate()
DKconfig40 tristate "Acer Aspire One temperature and fan driver"
45 the temperature sensor and to control the fan.
47 After loading this driver the BIOS is still in control of the fan.
48 To let the kernel handle the fan, do:
352 rfkill switch, hotkey, fan control and backlight control.
/linux-4.4.14/Documentation/ABI/testing/
Dsysfs-platform-ideapad-laptop13 Change fan mode
Dsysfs-platform-msi-laptop80 Contains either 0 or 1 and indicates if fan speed is controlled
81 automatically (1) or fan runs at maximal speed (0). Can be
Dsysfs-driver-toshiba_acpi135 What: /sys/devices/LNXSYSTM:00/LNXSYBUS:00/TOS{1900,620{0,7,8}}:00/fan
139 Description: This file controls the state of the internal fan, valid
/linux-4.4.14/drivers/gpu/drm/nouveau/include/nvkm/subdev/
Dtherm.h64 struct nvkm_fan *fan; member
/linux-4.4.14/Documentation/gpio/
Ddrivers-on-gpio.txt67 - gpio-fan: drivers/hwmon/gpio-fan.c is used to control a fan for cooling the
/linux-4.4.14/Documentation/devicetree/bindings/thermal/
Ddb8500-thermal.txt39 trip1-cdev-name1 = "thermal-fan";
Dthermal.txt50 fan speeds. In both cases, cooling devices shall have a way to determine
54 of heat dissipation). For example a fan's cooling states correspond to
55 the different fan speeds possible. Cooling states are referred to by
239 * A simple fan controller which supports 10 speeds of operation
242 fan0: fan@0x48 {
305 used to monitor the zone 'cpu-thermal' using its sole sensor. A fan
/linux-4.4.14/tools/thermal/tmon/
DREADME6 thermal relationship between processor and fan has become past for modern
/linux-4.4.14/Documentation/watchdog/
Dwdt.txt7 ICS WDT501-P (no fan tachometer)
Dwatchdog-api.txt143 some do temperature, fan and power level monitoring, some can tell you
167 A system fan monitored by the watchdog card has failed
/linux-4.4.14/Documentation/devicetree/bindings/i2c/
Dtrivial-devices.txt68 national,lm63 Temperature sensor with integrated fan control
71 national,lm85 Temperature sensor with integrated fan control
/linux-4.4.14/drivers/sbus/char/
DKconfig53 Kernel support for temperature and fan monitoring on Sun SME
/linux-4.4.14/Documentation/i2c/busses/
Di2c-i801122 the "fan" and "thermal" drivers, and check in /proc/acpi/fan and
/linux-4.4.14/drivers/staging/iio/Documentation/
Doverview.txt10 sensors used in applications such as fan speed control and temperature
/linux-4.4.14/Documentation/x86/
Dmtrr.txt18 MTRRs is through the use of SMI handlers, one case could be for fan control,
19 the platform code would need uncachable access to some of its fan control
/linux-4.4.14/drivers/thermal/
DKconfig113 used for fans without throttling. Some fan drivers depend on this

12