| /linux/drivers/macintosh/ |
| H A D | windfarm_fcu_controls.c | 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() 156 fan->target = value; in wf_fcu_fan_set_rpm() [all …]
|
| H A D | therm_windtunnel.c | 58 struct i2c_client *fan; member 159 write_reg( x.fan, 0x25, val, 1 ); in tune_fan() 160 write_reg( x.fan, 0x20, 0, 1 ); in tune_fan() 180 casetemp = read_reg(x.fan, 0x0b, 1) << 8; in poll_temp() 181 casetemp |= (read_reg(x.fan, 0x06, 1) & 0x7) << 5; in poll_temp() 216 x.r0 = read_reg( x.fan, 0x00, 1 ); in setup_hardware() 217 x.r1 = read_reg( x.fan, 0x01, 1 ); in setup_hardware() 218 x.r20 = read_reg( x.fan, 0x20, 1 ); in setup_hardware() 219 x.r23 = read_reg( x.fan, 0x23, 1 ); in setup_hardware() 220 x.r25 = read_reg( x.fan, 0x25, 1 ); in setup_hardware() [all …]
|
| /linux/drivers/gpu/drm/nouveau/nvkm/subdev/therm/ |
| H A 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 …]
|
| H A D | fan.c | 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() 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 …]
|
| H A D | fanpwm.c | 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() 75 if (card_type <= NV_40 || (fan->func.log[0] & 1)) in nvkm_fanpwm_set() [all …]
|
| H A D | base.c | 40 struct nvbios_therm_trip_point *trip = therm->fan->bios.trip, in nvkm_therm_update_trip() 48 for (i = 0; i < therm->fan->bios.nr_fan_trip; i++) { in nvkm_therm_update_trip() 78 return therm->fan->bios.min_duty; in nvkm_therm_compute_linear_duty() 80 return therm->fan->bios.max_duty; in nvkm_therm_compute_linear_duty() 84 duty *= (therm->fan->bios.max_duty - therm->fan->bios.min_duty); in nvkm_therm_compute_linear_duty() 86 duty += therm->fan->bios.min_duty; in nvkm_therm_compute_linear_duty() 93 u8 min = therm->fan->bios.linear_min_temp; in nvkm_therm_update_linear() 94 u8 max = therm->fan->bios.linear_max_temp; in nvkm_therm_update_linear() 129 switch(therm->fan->bios.fan_mode) { in nvkm_therm_update() 164 nvkm_therm_cstate(struct nvkm_therm *therm, int fan, int dir) in nvkm_therm_cstate() argument [all …]
|
| /linux/drivers/platform/x86/ |
| H A D | gpd-pocket-fan.c | 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 80 if (thermal_zone_get_temp(fan->dts0, &t0) || in gpd_pocket_fan_worker() 81 thermal_zone_get_temp(fan->dts1, &t1)) { in gpd_pocket_fan_worker() 82 dev_warn(fan->dev, "Error getting temperature\n"); in gpd_pocket_fan_worker() 89 speed = fan->last_speed; in gpd_pocket_fan_worker() [all …]
|
| /linux/drivers/acpi/ |
| H A D | fan_hwmon.c | 18 static struct acpi_fan_fps *acpi_fan_get_current_fps(struct acpi_fan *fan, u64 control) in acpi_fan_get_current_fps() argument 22 for (i = 0; i < fan->fps_count; i++) { in acpi_fan_get_current_fps() 23 if (fan->fps[i].control == control) in acpi_fan_get_current_fps() 24 return &fan->fps[i]; in acpi_fan_get_current_fps() 33 const struct acpi_fan *fan = drvdata; in acpi_fan_hwmon_is_visible() local 43 if (!fan->acpi4) in acpi_fan_hwmon_is_visible() 50 if (fan->fif.fine_grain_ctrl) in acpi_fan_hwmon_is_visible() 61 if (!fan->acpi4) in acpi_fan_hwmon_is_visible() 68 if (fan->fif.fine_grain_ctrl) in acpi_fan_hwmon_is_visible() 75 for (i = 0; i < fan->fps_count; i++) { in acpi_fan_hwmon_is_visible() [all …]
|
| H A D | fan_attr.c | 68 struct acpi_fan *fan = acpi_driver_data(acpi_dev); in show_fine_grain_control() local 70 return sysfs_emit(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 79 sysfs_attr_init(&fan->fst_speed.attr); in acpi_fan_create_attributes() 80 fan->fst_speed.show = show_fan_speed; in acpi_fan_create_attributes() 81 fan->fst_speed.store = NULL; in acpi_fan_create_attributes() 82 fan->fst_speed.attr.name = "fan_speed_rpm"; in acpi_fan_create_attributes() 83 fan->fst_speed.attr.mode = 0444; in acpi_fan_create_attributes() 84 status = sysfs_create_file(&device->dev.kobj, &fan->fst_speed.attr); in acpi_fan_create_attributes() 88 if (!fan->acpi4) in acpi_fan_create_attributes() [all …]
|
| /linux/arch/arm/boot/dts/aspeed/ |
| H A D | aspeed-bmc-amd-daytonax.dts | 231 fan@0 { 233 aspeed,fan-tach-ch = /bits/ 8 <0x00>; 236 fan@1 { 238 aspeed,fan-tach-ch = /bits/ 8 <0x01>; 241 fan@2 { 243 aspeed,fan-tach-ch = /bits/ 8 <0x02>; 246 fan@3 { 248 aspeed,fan-tach-ch = /bits/ 8 <0x03>; 251 fan@4 { 253 aspeed,fan-tach-ch = /bits/ 8 <0x04>; [all …]
|
| H A D | aspeed-bmc-lenovo-hr630.dts | 335 fan@0 { 337 aspeed,fan-tach-ch = /bits/ 8 <0x00>; 340 fan@1 { 342 aspeed,fan-tach-ch = /bits/ 8 <0x01>; 345 fan@2 { 347 aspeed,fan-tach-ch = /bits/ 8 <0x02>; 350 fan@3 { 352 aspeed,fan-tach-ch = /bits/ 8 <0x03>; 355 fan@4 { 357 aspeed,fan-tach-ch = /bits/ 8 <0x04>; [all …]
|
| H A D | aspeed-bmc-microsoft-olympus.dts | 177 fan@0 { 179 aspeed,fan-tach-ch = /bits/ 8 <0x00>; 182 fan@1 { 184 aspeed,fan-tach-ch = /bits/ 8 <0x01>; 187 fan@2 { 189 aspeed,fan-tach-ch = /bits/ 8 <0x02>; 192 fan@3 { 194 aspeed,fan-tach-ch = /bits/ 8 <0x03>; 197 fan@4 { 199 aspeed,fan-tach-ch = /bits/ 8 <0x04>; [all …]
|
| H A D | aspeed-bmc-facebook-wedge40.dts | 34 fan@0 { 36 aspeed,fan-tach-ch = /bits/ 8 <0x00 0x01>; 39 fan@1 { 41 aspeed,fan-tach-ch = /bits/ 8 <0x02 0x03>; 44 fan@6 { 46 aspeed,fan-tach-ch = /bits/ 8 <0x04 0x05>; 49 fan@7 { 51 aspeed,fan-tach-ch = /bits/ 8 <0x06 0x07>;
|
| H A D | aspeed-bmc-vegman-sx20.dts | 126 fan@0 { 128 aspeed,fan-tach-ch = /bits/ 8 <0x00>; 130 fan@1 { 132 aspeed,fan-tach-ch = /bits/ 8 <0x01>; 134 fan@2 { 136 aspeed,fan-tach-ch = /bits/ 8 <0x02>; 138 fan@3 { 140 aspeed,fan-tach-ch = /bits/ 8 <0x03>; 142 fan@4 { 144 aspeed,fan-tach-ch = /bits/ 8 <0x04>; [all …]
|
| /linux/drivers/gpu/drm/nouveau/nvkm/subdev/bios/ |
| H A D | fan.c | 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 75 fan->type = NVBIOS_THERM_FAN_TOGGLE; in nvbios_fan_parse() [all …]
|
| H A 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/arch/arm64/boot/dts/renesas/ |
| H A D | r8a779g3-sparrow-hawk-fan-argon40.dtso | 3 * Device Tree Overlay for the Argon40 HAT blower fan on connector CN7 10 * # Localize hwmon sysfs directory that matches the PWM fan, 11 * # enable the PWM fan, and configure the fan speed manually. 12 * r8a779g3-sparrow-hawk$ ls -1 /sys/devices/platform/pwm-fan-ext/hwmon/hwmon?/pwm?_enable 13 * /sys/devices/platform/pwm-fan-ext/hwmon/hwmon0/pwm1_enable 15 * # Select mode 2 , enable fan PWM and regulator and keep them enabled. 16 * # For details, see Linux Documentation/hwmon/pwm-fan.rst 17 * r8a779g3-sparrow-hawk$ echo 2 > /sys/devices/platform/pwm-fan-ext/hwmon/hwmon0/pwm1_enable 19 * # Configure PWM fan speed in range 0..255 , 0 is stopped , 255 is full speed . 20 * # Fan speed 101 is about 2/5 of the PWM fan speed: [all …]
|
| /linux/Documentation/hwmon/ |
| H A 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 …]
|
| H A 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.
|
| H A D | max31760.rst | 21 The MAX31760 integrates temperature sensing along with precision PWM fan 30 the user to program a smooth nonlinear fan speed vs. temperature transfer 31 function to minimize acoustic fan noise. Two tachometer inputs allow 43 Lookup table for auto fan control 61 fan[1-2]_input Fan speed (in RPM) 62 fan[1-2]_enable Enable fan readings and fan fault alarms 63 fan[1-2]_fault Fan fault status 71 pwm1 PWM value for direct fan control 72 pwm1_enable 1: direct fan control, 2: temperature based auto fan control 74 pwm1_auto_channels_temp Temperature source for auto fan control. 1: temp1, 2: temp2, 3: max… [all …]
|
| H A D | gxp-fan-ctrl.rst | 3 Kernel driver gxp-fan-ctrl 16 gxp-fan-ctrl is a driver which provides fan control for the hpe gxp soc. 17 The driver allows the gathering of fan status and the use of fan 26 fan[0-7]_fault Fan 0 to 7 respective fault status: 1 fail, 0 ok 27 fan[0-7]_enable Fan 0 to 7 respective enabled status: 1 enabled, 0 disabled
|
| H A D | aquacomputer_d5next.rst | 8 * Aquacomputer Aquaero 5/6 fan controllers 12 * Aquacomputer Octo fan controller 13 * Aquacomputer Quadro fan controller 18 * Aquacomputer Poweradjust 3 fan controller 32 speed (in RPM), power, voltage and current. Temperature offsets and fan speeds 35 For the D5 Next pump, available sensors are pump and fan speed, power, voltage 38 count. Attaching a fan to it is optional and allows it to be controlled using 39 temperature curves directly from the pump. If it's not connected, the fan-related 69 and fan IC. It also exposes pump and fan speeds (in RPM), voltages, as well as pump 73 with speed, power, voltage and current of both the pump and optionally connected fan. [all …]
|
| H A D | max6620.rst | 25 This driver implements support for Maxim MAX6620 fan controller. 27 The driver configures the fan controller in RPM mode. To give the readings more 34 fan[1-4]_alarm ro Fan alarm. 35 fan[1-4]_div rw Sets the nominal RPM range of the fan. Valid values 37 fan[1-4]_input ro Fan speed in RPM. 38 fan[1-4]_target rw Desired fan speed in RPM.
|
| /linux/drivers/hwmon/ |
| H A D | macsmc-hwmon.c | 88 struct macsmc_hwmon_fans fan; member 111 *str = hwmon->fan.fans[channel].label; in macsmc_hwmon_read_label() 277 &hwmon->fan.fans[chan].now, 1, val); in macsmc_hwmon_read_fan() 280 &hwmon->fan.fans[chan].min, 1, val); in macsmc_hwmon_read_fan() 283 &hwmon->fan.fans[chan].max, 1, val); in macsmc_hwmon_read_fan() 286 &hwmon->fan.fans[chan].set, 1, val); in macsmc_hwmon_read_fan() 299 if (!fan_control || hwmon->fan.fans[channel].mode.macsmc_key == 0) in macsmc_hwmon_write_fan() 305 ret = macsmc_hwmon_read_key(hwmon->smc, &hwmon->fan.fans[channel].min, in macsmc_hwmon_write_fan() 310 ret = macsmc_hwmon_read_key(hwmon->smc, &hwmon->fan.fans[channel].max, in macsmc_hwmon_write_fan() 316 if (!hwmon->fan.fans[channel].manual) { in macsmc_hwmon_write_fan() [all …]
|
| /linux/arch/arm64/boot/dts/ti/ |
| H A D | k3-am62x-phyboard-lyra-gpio-fan.dtso | 15 fan: gpio-fan { 16 compatible = "gpio-fan"; 17 gpio-fan,speed-map = <0 0 8600 1>; 26 gpio_fan_pins_default: gpio-fan-default-pins { 36 main0_fan: main0-fan { 47 <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>, 56 cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
|