/Linux-v5.10/drivers/macintosh/ |
D | windfarm_fcu_controls.c | 3 * Windfarm PowerMac thermal control. FCU fan control 80 struct wf_fcu_fan *fan = ct->priv; in wf_fcu_fan_release() local 82 kref_put(&fan->fcu_priv->ref, wf_fcu_release); in wf_fcu_fan_release() 83 kfree(fan); in wf_fcu_fan_release() 146 struct wf_fcu_fan *fan = ct->priv; in wf_fcu_fan_set_rpm() local 147 struct wf_fcu_priv *pv = fan->fcu_priv; in wf_fcu_fan_set_rpm() 151 if (value < fan->min) in wf_fcu_fan_set_rpm() 152 value = fan->min; in wf_fcu_fan_set_rpm() 153 if (value > fan->max) in wf_fcu_fan_set_rpm() 154 value = fan->max; in wf_fcu_fan_set_rpm() [all …]
|
D | windfarm_smu_controls.c | 63 /* The SMU has an "old" and a "new" way of setting the fan speed in smu_set_fan() 99 printk(KERN_WARNING "windfarm: SMU failed new fan command " in smu_set_fan() 187 if (!strcmp(l, "Rear Fan 0") || !strcmp(l, "Rear Fan") || in smu_fan_create() 188 !strcmp(l, "Rear fan 0") || !strcmp(l, "Rear fan") || in smu_fan_create() 190 fct->ctrl.name = "cpu-rear-fan-0"; in smu_fan_create() 191 else if (!strcmp(l, "Rear Fan 1") || !strcmp(l, "Rear fan 1") || in smu_fan_create() 193 fct->ctrl.name = "cpu-rear-fan-1"; in smu_fan_create() 194 else if (!strcmp(l, "Front Fan 0") || !strcmp(l, "Front Fan") || in smu_fan_create() 195 !strcmp(l, "Front fan 0") || !strcmp(l, "Front fan") || in smu_fan_create() 197 fct->ctrl.name = "cpu-front-fan-0"; in smu_fan_create() [all …]
|
/Linux-v5.10/drivers/gpu/drm/nouveau/nvkm/subdev/therm/ |
D | fan.c | 27 #include <subdev/bios/fan.h> 32 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() 41 /* update target fan speed, restricting to allowed range */ 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() 48 nvkm_debug(subdev, "FAN target: %d\n", target); in nvkm_fan_update() [all …]
|
D | fantog.c | 39 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() 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() 68 struct nvkm_fantog *fan = in nvkm_fantog_alarm() local [all …]
|
D | fanpwm.c | 29 #include <subdev/bios/fan.h> 40 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() [all …]
|
/Linux-v5.10/drivers/platform/x86/ |
D | gpd-pocket-fan.c | 3 * GPD Pocket fan controller driver 32 "Millicelsius values above which the fan speed increases"); 37 "Hysteresis in millicelsius before lowering the fan speed"); 42 "minimum fan speed to allow when system is powered by AC"); 54 static void gpd_pocket_fan_set_speed(struct gpd_pocket_fan_data *fan, int speed) in gpd_pocket_fan_set_speed() argument 56 if (speed == fan->last_speed) in gpd_pocket_fan_set_speed() 59 gpiod_direction_output(fan->gpio0, !!(speed & 1)); in gpd_pocket_fan_set_speed() 60 gpiod_direction_output(fan->gpio1, !!(speed & 2)); in gpd_pocket_fan_set_speed() 62 fan->last_speed = speed; in gpd_pocket_fan_set_speed() 75 struct gpd_pocket_fan_data *fan = in gpd_pocket_fan_worker() local [all …]
|
/Linux-v5.10/Documentation/devicetree/bindings/hwmon/ |
D | npcm750-pwm-fan.txt | 1 Nuvoton NPCM7xx PWM and Fan Tacho controller device 4 controller outputs and 16 Fan tachometer controller inputs. 6 Required properties for pwm-fan node 9 - compatible : "nuvoton,npcm750-pwm-fan" for Poleg NPCM7XX. 13 * "fan" for the Fan registers. 17 * "fan" for Fan controller operating clock. 18 - interrupts : contain the Fan interrupts with flags for falling edge. 20 - pinctrl-0 : phandle referencing pin configuration of the PWM and Fan 23 fan subnode format: 25 Under fan subnode can be upto 8 child nodes, each child node representing a fan. [all …]
|
D | aspeed-pwm-tacho.txt | 1 ASPEED AST2400/AST2500 PWM and Fan Tacho controller device driver 3 The ASPEED PWM controller can support upto 8 PWM outputs. The ASPEED Fan Tacho 4 controller can support upto 16 Fan tachometer inputs. 6 There can be upto 8 fans supported. Each fan can have one PWM output and 7 one/two Fan tach inputs. 29 fan subnode format: 31 Under fan subnode there can upto 8 child nodes, with each child node 32 representing a fan. If there are 8 fans each fan can have one PWM port and 33 one/two Fan tach inputs. 45 - aspeed,fan-tach-ch : should specify the Fan tach input channel. [all …]
|
D | pwm-fan.txt | 1 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 - fan-supply : phandle to the regulator that provides power to the fan 12 describes the tachometer output of the fan as an 14 defined number of interrupts per fan revolution, which 17 - pulses-per-revolution : define the tachometer pulses per fan revolution as 22 fan0: pwm-fan { 23 compatible = "pwm-fan"; 50 fan0: pwm-fan { [all …]
|
D | max6650.txt | 1 Bindings for MAX6651 and MAX6650 I2C fan controllers 11 - maxim,fan-microvolt : The supply voltage of the fan, either 5000000 uV or 13 - maxim,fan-prescale : Pre-scaling value, as per datasheet [1]. Lower values 16 - maxim,fan-target-rpm: Initial requested fan rotation speed. If specified, the 18 This ensures the fan is already running before userspace 22 fan-max6650: max6650@1b { 25 maxim,fan-microvolt = <12000000>; 26 maxim,fan-prescale = <4>; 27 maxim,fan-target-rpm = <1200>;
|
/Linux-v5.10/drivers/hwmon/ |
D | mlxreg-fan.c | 20 * Minimum and maximum FAN allowed speed in percent: from 20% to 100%. Values 22 * setting FAN speed dynamic minimum. For example, if value is set to 14 (40%) 34 * FAN datasheet defines the formula for RPM calculations as RPM = 15/t-high. 116 struct mlxreg_fan *fan = dev_get_drvdata(dev); in mlxreg_fan_read() local 123 tacho = &fan->tacho[channel]; in mlxreg_fan_read() 126 err = regmap_read(fan->regmap, tacho->reg, ®val); in mlxreg_fan_read() 130 *val = MLXREG_FAN_GET_RPM(regval, fan->divider, in mlxreg_fan_read() 131 fan->samples); in mlxreg_fan_read() 135 err = regmap_read(fan->regmap, tacho->reg, ®val); in mlxreg_fan_read() 150 err = regmap_read(fan->regmap, fan->pwm.reg, ®val); in mlxreg_fan_read() [all …]
|
D | npcm750-pwm-fan.c | 79 /* NPCM7XX FAN Tacho registers */ 140 /* FAN General Definition */ 141 /* Define the maximum FAN channel number */ 147 * Get Fan Tach Timeout (base on clock 214843.75Hz, 1 cnt = 4.654us) 149 * (The minimum FAN speed could to support ~640RPM/pulse 1, 165 /* Obtain the fan number */ 166 #define NPCM7XX_FAN_INPUT(fan, cmp) (((fan) << 1) + (cmp)) argument 168 /* fan sample status */ 265 u8 fan, u8 cmp) in npcm7xx_fan_start_capture() argument 272 fan_id = NPCM7XX_FAN_INPUT(fan, cmp); in npcm7xx_fan_start_capture() [all …]
|
/Linux-v5.10/Documentation/hwmon/ |
D | g762.rst | 4 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 25 set desired fan speed. This only makes sense in closed-loop 26 fan speed control (i.e. when pwm1_enable is set to 2). 29 provide current fan rotation value in RPM as reported by 30 the fan to the device. 33 fan clock divisor. Supported value are 1, 2, 4 and 8. 36 number of pulses per fan revolution. Supported values 40 reports fan failure, i.e. no transition on fan gear pin for [all …]
|
D | nct6775.rst | 100 There are 4 to 5 fan rotation speed sensors, 8 to 15 analog voltage sensors, 102 fan regulation strategies (plus manual fan control mode). 113 Fan rotation speeds are reported in RPM (rotations per minute). An alarm is 115 NCT6775F, fan readings can be divided by a programmable divider (1, 2, 4, 8, 117 do not have a fan speed divider. The driver sets the most suitable fan divisor 118 itself; specifically, it increases the divider value each time a fan speed 119 reading returns an invalid value, and it reduces it if the fan speed reading 127 The driver supports automatic fan control mode known as Thermal Cruise. 129 predefined temperature range. If the temperature goes out of range, fan 138 - this file stores PWM duty cycle or DC value (fan speed) in range: [all …]
|
D | w83792d.rst | 44 The driver implements three temperature sensors, seven fan rotation speed 45 sensors, nine voltage sensors, and two automatic fan regulation 46 strategies called: Smart Fan I (Thermal Cruise mode) and Smart Fan II. 48 The driver also implements up to seven fan control outputs: pwm1-7. Pwm1-7 53 Automatic fan control mode is possible only for fan1-fan3. 55 For all pwmX outputs, a value of 0 means minimum fan speed and a value of 56 255 means maximum fan speed. 63 Fan rotation speeds are reported in RPM (rotations per minute). An alarm is 64 triggered if the rotation speed has dropped below a programmable limit. Fan 105 of full speed rotation of corresponding fan. [all …]
|
D | f71882fg.rst | 125 These chips also have fan controlling features, using either DC or PWM, in 135 The Voltage, Fan and Temperature Monitoring uses the standard sysfs 139 Fan Control 142 Both PWM (pulse-width modulation) and DC fan speed control methods are 153 There are 2 modes to specify the speed of the fan, PWM duty cycle (or DC 155 mode where the actual RPM of the fan (as measured) is controlled and the speed 156 gets specified as 0-100% of the fan#_full_speed file. 159 whole lot of a difference when modifying fan control settings. The only 160 important difference is that in RPM mode the 0-100% controls the fan speed 161 between 0-100% of fan#_full_speed. It is assumed that if the BIOS programs [all …]
|
D | adm9240.rst | 54 temperature, two fan speeds and chassis intrusion. Measured values can 76 with independent fan speed measurement cycles counting alternating rising 77 edges of the fan tacho inputs. 79 DS1780 measurement cycle is about once per second including fan speed. 81 LM81 measurement cycle is about once per 400ms including fan speed. 93 Fan Speed 95 Two fan tacho inputs are provided, the ADM9240 gates an internal 22.5kHz 96 clock via a divider to an 8-bit counter. Fan speed (rpm) is calculated by: 100 Automatic fan clock divider 105 - fan clock divider not changed [all …]
|
D | max31785.rst | 19 The Maxim MAX31785 is a PMBus device providing closed-loop, multi-channel fan 20 management with temperature and remote voltage sensing. Various fan control 22 dual tachometer measurements, and fan health monitoring. 25 readings in attributes fan[5-8]_input. By contrast the MAX31785 only exposes 26 the slowest rotor measurement, and does so in the fan[1-4]_input attributes. 38 fan[1-4]_alarm Fan alarm. 39 fan[1-4]_fault Fan fault. 40 fan[1-8]_input Fan RPM. On the MAX31785A, inputs 5-8 correspond to the 42 fan[1-4]_target Fan input target 55 pwm[1-4] Fan target duty cycle (0..255) [all …]
|
D | w83627ehf.rst | 88 2 to 5 fan rotation speed sensors, 8 to 10 analog voltage sensors, one VID 90 and some automatic fan regulation strategies (plus manual fan control mode). 105 Fan rotation speeds are reported in RPM (rotations per minute). An alarm is 106 triggered if the rotation speed has dropped below a programmable limit. Fan 109 suitable fan divisor itself. Some fans might not be present because they 116 The driver supports automatic fan control mode known as Thermal Cruise. 118 predefined temperature range. If the temperature goes out of range, fan 139 this file stores PWM duty cycle or DC value (fan speed) in range: 144 this file controls mode of fan/temperature control: 148 * 3 "Fan Speed Cruise" mode [all …]
|
D | g760a.rst | 19 The GMT G760A Fan Speed PWM Controller is connected directly to a fan 20 and performs closed-loop control of the fan speed. 22 The fan speed is programmed by setting the period via 'pwm1' of two 26 Setting a period of 0 stops the fan; setting the period to 255 sets 27 fan to maximum speed. 29 The measured fan rotation speed returned via 'fan1_input' is derived 31 source and a 2 pulse-per-revolution fan. 34 the G760A chip's status register: Bit 0 is set when the actual fan 35 speed differs more than 20% with respect to the programmed fan speed; 36 bit 1 is set when fan speed is below 1920 RPM.
|
D | max31790.rst | 23 PWM outputs. The desired fan speeds (or PWM duty cycles) are written 25 or can be used to modulate the fan's power terminals using an external 28 Tachometer inputs monitor fan tachometer logic outputs for precise (+/-1%) 29 monitoring and control of fan RPM as well as detection of fan failure. 38 fan[1-12]_input RO fan tachometer speed in RPM 39 fan[1-12]_fault RO fan experienced fault 40 fan[1-6]_target RW desired fan speed in RPM 42 pwm[1-6] RW fan target duty cycle (0-255)
|
/Linux-v5.10/drivers/acpi/ |
D | fan.c | 3 * acpi_fan.c - ACPI Fan Driver ($Revision: 29 $) 20 MODULE_DESCRIPTION("ACPI Fan Driver"); 80 .name = "acpi-fan", 91 struct acpi_fan *fan = acpi_driver_data(device); in fan_get_max_state() local 93 if (fan->acpi4) in fan_get_max_state() 94 *state = fan->fps_count - 1; in fan_get_max_state() 103 struct acpi_fan *fan = acpi_driver_data(device); in fan_get_state_acpi4() local 110 dev_err(&device->dev, "Get fan state failed\n"); in fan_get_state_acpi4() 124 for (i = 0; i < fan->fps_count; i++) { in fan_get_state_acpi4() 127 * corresponding to maximum fan->fps[i].control in fan_get_state_acpi4() [all …]
|
/Linux-v5.10/drivers/gpu/drm/nouveau/nvkm/subdev/bios/ |
D | fan.c | 26 #include <subdev/bios/fan.h> 32 u32 fan = 0; in nvbios_fan_table() local 36 fan = nvbios_rd32(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 [all …]
|
D | therm.c | 153 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 …]
|
/Linux-v5.10/arch/arm/boot/dts/ |
D | aspeed-bmc-lenovo-hr855xg2.dts | 340 fan@0 { 342 aspeed,fan-tach-ch = /bits/ 8 <0x00>; 345 fan@1 { 347 aspeed,fan-tach-ch = /bits/ 8 <0x01>; 350 fan@2 { 352 aspeed,fan-tach-ch = /bits/ 8 <0x02>; 355 fan@3 { 357 aspeed,fan-tach-ch = /bits/ 8 <0x03>; 360 fan@4 { 362 aspeed,fan-tach-ch = /bits/ 8 <0x04>; [all …]
|