• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/powerpc/powermac/

Lines Matching defs:fan

57  * /u3@0,f8000000/i2c@f8001000/fan@15e
72 struct pmac_fan fan;
92 /* We can read the PWM and the RPM from a PWM controlled fan.
109 static int fcu_fan_set_rpm(struct fcu_fan *fan, int rpm);
110 static int fcu_fan_get_rpm(struct fcu_fan *fan);
111 static int fcu_fan_set_pwm(struct fcu_fan *fan, int pwm);
112 static int fcu_fan_get_pwm(device_t dev, struct fcu_fan *fan, int *pwm,
206 if (strcmp(name, "fan") != 0 || strcmp(compatible, "fcu") != 0)
270 fcu_fan_set_rpm(struct fcu_fan *fan, int rpm)
276 sc = device_get_softc(fan->dev);
279 rpm = max(fan->fan.min_rpm, rpm);
280 rpm = min(fan->fan.max_rpm, rpm);
282 if (fan->type == FCU_FAN_RPM) {
283 reg = FCU_RPM_SET(fan->id);
284 fan->setpoint = rpm;
286 device_printf(fan->dev, "Unknown fan type: %d\n", fan->type);
300 fcu_fan_get_rpm(struct fcu_fan *fan)
308 sc = device_get_softc(fan->dev);
310 if (fan->type == FCU_FAN_RPM) {
311 /* Check if the fan is available. */
315 if ((avail & (1 << fan->id)) == 0) {
316 device_printf(fan->dev,
317 "RPM Fan not available ID: %d\n", fan->id);
320 /* Check if we have a failed fan. */
324 if ((fail & (1 << fan->id)) != 0) {
325 device_printf(fan->dev,
326 "RPM Fan failed ID: %d\n", fan->id);
329 /* Check if fan is active. */
333 if ((active & (1 << fan->id)) == 0) {
334 device_printf(fan->dev, "RPM Fan not active ID: %d\n",
335 fan->id);
338 reg = FCU_RPM_READ(fan->id);
341 device_printf(fan->dev, "Unknown fan type: %d\n", fan->type);
355 fcu_fan_set_pwm(struct fcu_fan *fan, int pwm)
361 sc = device_get_softc(fan->dev);
364 pwm = max(fan->fan.min_rpm, pwm);
365 pwm = min(fan->fan.max_rpm, pwm);
367 if (fan->type == FCU_FAN_PWM) {
368 reg = FCU_PWM_SGET(fan->id);
373 fan->setpoint = pwm;
375 device_printf(fan->dev, "Unknown fan type: %d\n", fan->type);
387 fcu_fan_get_pwm(device_t dev, struct fcu_fan *fan, int *pwm, int *rpm)
396 if (fan->type == FCU_FAN_PWM) {
397 /* Check if the fan is available. */
401 if ((avail & (1 << fan->id)) == 0) {
403 fan->id);
406 /* Check if we have a failed fan. */
410 if ((fail & (1 << fan->id)) != 0) {
411 device_printf(dev, "PWM Fan failed ID: %d\n", fan->id);
414 /* Check if fan is active. */
418 if ((active & (1 << fan->id)) == 0) {
420 fan->id);
423 reg = FCU_PWM_SGET(fan->id);
425 device_printf(dev, "Unknown fan type: %d\n", fan->type);
436 reg = FCU_PWM_RPM(fan->id);
463 /* Fill the fan location property. */
468 strcpy(sc->sc_fans[i].fan.name, location + len);
477 /* Fill the fan type property. */
483 if (strcmp(type + len, "fan-rpm") == 0)
492 /* Fill the fan ID property. */
497 /* Fill the fan zone property. */
500 sc->sc_fans[j].fan.zone = id[j];
502 /* Finish setting up fan properties */
506 sc->sc_fans[j].fan.min_rpm = 4800 >> fcu_rpm_shift;
507 sc->sc_fans[j].fan.max_rpm = 56000 >> fcu_rpm_shift;
510 sc->sc_fans[j].fan.read =
512 sc->sc_fans[j].fan.set =
515 sc->sc_fans[j].fan.min_rpm = 30; /* Percent */
516 sc->sc_fans[j].fan.max_rpm = 100;
517 sc->sc_fans[j].fan.read = NULL;
518 sc->sc_fans[j].fan.set =
521 sc->sc_fans[j].fan.default_rpm = sc->sc_fans[j].fan.max_rpm;
532 struct fcu_fan *fan;
537 fan = &sc->sc_fans[arg2 & 0x00ff];
538 if (fan->type == FCU_FAN_RPM) {
539 rpm = fcu_fan_get_rpm(fan);
544 error = fcu_fan_get_pwm(fcu, fan, &pwm, &rpm);
561 /* We can only read the RPM from a PWM controlled fan, so return. */
568 if (fan->type == FCU_FAN_RPM)
569 return (fcu_fan_set_rpm(fan, rpm));
571 return (fcu_fan_set_pwm(fan, pwm));
610 pmac_thermal_fan_register(&sc->sc_fans[i].fan);
614 for (j = 0; j < strlen(sc->sc_fans[i].fan.name); j++) {
615 sysctl_name[j] = tolower(sc->sc_fans[i].fan.name[j]);
627 &(sc->sc_fans[i].fan.min_rpm), 0,
631 &(sc->sc_fans[i].fan.max_rpm), 0,
633 /* I use i to pass the fan id. */
647 &(sc->sc_fans[i].fan.min_rpm), 0,
651 &(sc->sc_fans[i].fan.max_rpm), 0,
653 /* I use i to pass the fan id or'ed with the type
667 /* Dump fan location, type & RPM. */
672 "RPM: %d\n", sc->sc_fans[i].fan.name,