| /kernel/linux/linux-5.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 …]
|
| /kernel/linux/linux-6.6/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 | 64 /* The SMU has an "old" and a "new" way of setting the fan speed in smu_set_fan() 100 printk(KERN_WARNING "windfarm: SMU failed new fan command " in smu_set_fan() 188 if (!strcmp(l, "Rear Fan 0") || !strcmp(l, "Rear Fan") || in smu_fan_create() 189 !strcmp(l, "Rear fan 0") || !strcmp(l, "Rear fan") || in smu_fan_create() 191 fct->ctrl.name = "cpu-rear-fan-0"; in smu_fan_create() 192 else if (!strcmp(l, "Rear Fan 1") || !strcmp(l, "Rear fan 1") || in smu_fan_create() 194 fct->ctrl.name = "cpu-rear-fan-1"; in smu_fan_create() 195 else if (!strcmp(l, "Front Fan 0") || !strcmp(l, "Front Fan") || in smu_fan_create() 196 !strcmp(l, "Front fan 0") || !strcmp(l, "Front fan") || in smu_fan_create() 198 fct->ctrl.name = "cpu-front-fan-0"; in smu_fan_create() [all …]
|
| /kernel/linux/linux-5.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 …]
|
| /kernel/linux/linux-6.6/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 …]
|
| /kernel/linux/linux-5.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 …]
|
| /kernel/linux/linux-6.6/drivers/platform/x86/ |
| D | gpd-pocket-fan.c | 3 * GPD Pocket fan controller driver 33 "Millicelsius values above which the fan speed increases"); 38 "Hysteresis in millicelsius before lowering the fan speed"); 43 "minimum fan speed to allow when system is powered by AC"); 55 static void gpd_pocket_fan_set_speed(struct gpd_pocket_fan_data *fan, int speed) in gpd_pocket_fan_set_speed() argument 57 if (speed == fan->last_speed) in gpd_pocket_fan_set_speed() 60 gpiod_direction_output(fan->gpio0, !!(speed & 1)); in gpd_pocket_fan_set_speed() 61 gpiod_direction_output(fan->gpio1, !!(speed & 2)); in gpd_pocket_fan_set_speed() 63 fan->last_speed = speed; in gpd_pocket_fan_set_speed() 76 struct gpd_pocket_fan_data *fan = in gpd_pocket_fan_worker() local [all …]
|
| /kernel/linux/linux-5.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 …]
|
| /kernel/linux/linux-6.6/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 …]
|
| /kernel/linux/linux-6.6/drivers/acpi/ |
| D | fan_core.c | 3 * fan_core.c - ACPI Fan core Driver 20 #include "fan.h" 33 struct acpi_fan *fan = acpi_driver_data(device); in fan_get_max_state() local 35 if (fan->acpi4) { in fan_get_max_state() 36 if (fan->fif.fine_grain_ctrl) in fan_get_max_state() 37 *state = 100 / fan->fif.step_size; in fan_get_max_state() 39 *state = fan->fps_count - 1; in fan_get_max_state() 56 dev_err(&device->dev, "Get fan state failed\n"); in acpi_fan_get_fst() 80 struct acpi_fan *fan = acpi_driver_data(device); in fan_get_state_acpi4() local 88 if (fan->fif.fine_grain_ctrl) { in fan_get_state_acpi4() [all …]
|
| D | fan_attr.c | 3 * fan_attr.c - Create extra attributes for ACPI Fan driver 15 #include "fan.h" 68 struct acpi_fan *fan = acpi_driver_data(acpi_dev); in show_fine_grain_control() local 70 return sprintf(buf, "%d\n", fan->fif.fine_grain_ctrl); in show_fine_grain_control() 75 struct acpi_fan *fan = acpi_driver_data(device); in acpi_fan_create_attributes() local 78 sysfs_attr_init(&fan->fine_grain_control.attr); in acpi_fan_create_attributes() 79 fan->fine_grain_control.show = show_fine_grain_control; in acpi_fan_create_attributes() 80 fan->fine_grain_control.store = NULL; in acpi_fan_create_attributes() 81 fan->fine_grain_control.attr.name = "fine_grain_control"; in acpi_fan_create_attributes() 82 fan->fine_grain_control.attr.mode = 0444; in acpi_fan_create_attributes() [all …]
|
| /kernel/linux/linux-6.6/drivers/hwmon/ |
| D | mlxreg-fan.c | 27 * FAN datasheet defines the formula for RPM calculations as RPM = 15/t-high. 77 * @fan: private data; 86 struct mlxreg_fan *fan; member 123 struct mlxreg_fan *fan = dev_get_drvdata(dev); in mlxreg_fan_read() local 131 tacho = &fan->tacho[channel]; in mlxreg_fan_read() 135 * Check FAN presence: FAN related bit in presence register is one, in mlxreg_fan_read() 136 * if FAN is physically connected, zero - otherwise. in mlxreg_fan_read() 138 if (tacho->prsnt && fan->tachos_per_drwr) { in mlxreg_fan_read() 139 err = regmap_read(fan->regmap, tacho->prsnt, ®val); in mlxreg_fan_read() 147 if (BIT(channel / fan->tachos_per_drwr) & regval) { in mlxreg_fan_read() [all …]
|
| /kernel/linux/linux-5.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() 131 /* FAN is broken - return zero for FAN speed. */ in mlxreg_fan_read() 136 *val = MLXREG_FAN_GET_RPM(regval, fan->divider, in mlxreg_fan_read() 137 fan->samples); in mlxreg_fan_read() 141 err = regmap_read(fan->regmap, tacho->reg, ®val); in mlxreg_fan_read() [all …]
|
| /kernel/linux/linux-5.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 …]
|
| /kernel/linux/linux-6.6/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 | dell-smm-hwmon.rst | 18 automatically adjust fan speed (please notice that it currently uses 35 fan[1-4]_input RO Fan speed in RPM. 36 fan[1-4]_label RO Fan label. 37 fan[1-4]_min RO Minimal Fan speed in RPM 38 fan[1-4]_max RO Maximal Fan speed in RPM 39 fan[1-4]_target RO Expected Fan speed in RPM 40 pwm[1-4] RW Control the fan PWM duty-cycle. 41 pwm1_enable WO Enable or disable automatic BIOS fan 50 fan number X. 52 Disabling automatic BIOS fan control [all …]
|
| D | nct6775.rst | 106 There are 4 to 5 fan rotation speed sensors, 8 to 15 analog voltage sensors, 108 fan regulation strategies (plus manual fan control mode). 119 Fan rotation speeds are reported in RPM (rotations per minute). An alarm is 121 NCT6775F, fan readings can be divided by a programmable divider (1, 2, 4, 8, 123 do not have a fan speed divider. The driver sets the most suitable fan divisor 124 itself; specifically, it increases the divider value each time a fan speed 125 reading returns an invalid value, and it reduces it if the fan speed reading 133 The driver supports automatic fan control mode known as Thermal Cruise. 135 predefined temperature range. If the temperature goes out of range, fan 144 - this file stores PWM duty cycle or DC value (fan speed) in range: [all …]
|
| /kernel/linux/linux-5.10/drivers/acpi/ |
| D | fan.c | 3 * acpi_fan.c - ACPI Fan Driver ($Revision: 29 $) 19 #include "fan.h" 22 MODULE_DESCRIPTION("ACPI Fan Driver"); 79 .name = "acpi-fan", 90 struct acpi_fan *fan = acpi_driver_data(device); in fan_get_max_state() local 92 if (fan->acpi4) in fan_get_max_state() 93 *state = fan->fps_count - 1; in fan_get_max_state() 102 struct acpi_fan *fan = acpi_driver_data(device); in fan_get_state_acpi4() local 109 dev_err(&device->dev, "Get fan state failed\n"); in fan_get_state_acpi4() 123 for (i = 0; i < fan->fps_count; i++) { in fan_get_state_acpi4() [all …]
|