ADT7462SM(4)

NAME
adt7462sm - On Semiconductor (Analog Devices) ADT7462 Flexible Temperature, Voltage Monitor, and System Fan Controller

SYNOPSIS
adt7462sm* at iic? addr?

DESCRIPTION
The adt7462sm driver provides support for the On Semiconductor ADT7462 system monitor. The chip possesses 8 fan speed sensors, 4 temperature sensors, and 13 voltage sensors. The number of each sensor type configured by the driver depends on the chip configuration.

The values of the sensors are made available through the envstat(8) interface.
Sensor | Units | Description
fan N | RPM | Fan 0–7
local | C | Local temperature
remote N | C | Remote temperature 1–3
V2.5 N | V DC | 2.5V voltage 1–3
V1.8 N | V DC | 1.8V voltage 1–3
V1.5 N | V DC | 1.5V voltage 1–4
V3.3 N | V DC | 3.3V voltage 1–2
V1.2 N | V DC | 1.2V voltage 1–2
Vbatt | V DC | Battery voltage
V12 N | V DC | 12V voltage 1–3
V0.9 | V DC | 0.9V voltage
V1.25 | V DC | 1.25V voltage
V5 | V DC | 5V voltage
fan fault | none | Fan fault display

Configurable limits for the sensors are also available via envstat(8). Initial limit values are read from the chip. Each temperature sensor has therm, high and low limits, which are mapped to critmax, warnmax and warnmin, respectively. Voltage sensors have high (warnmax) and low (warnmin) limits. Fan sensors have a high limit mapped to warnmin, because the fan measurements are revolution intervals, so higher numbers correlate to lower fan speeds. Note, that there are two therm limits per temperature sensor and the one with the lowest value is used as critmax. The fan fault sensor has a value of 0 in normal operation. If a fault is detected, the fan fault value will represent the numbers of the failed fans, 1 for fan 0, 10 for fan 1, and so on, to 10000000 for fan 7.

The chip also supports Pulse-Width Modulated (PWM) fan speed control and the adt7462sm driver makes PWM and temperature settings available via sysctl(8). For each PWM channel, the controlling temperature channel is shown. For example:

    hw.adt7462sm0.pwm1.channel = remote1_dynamic
    hw.adt7462sm0.pwm2.channel = remote2_dynamic
    hw.adt7462sm0.pwm3.channel = remote3
    hw.adt7462sm0.pwm4.channel = manual

If the channel is shown as “manual”, then the PWM duty cycle can be altered through the corresponding duty_cycle variable. For example:

    hw.adt7462sm0.pwm4.duty_cycle = 12

The duty cycle can be set to any value between 0% (off) and 100% (full) although the minimum non-zero value for a fan is usually in the 20% to 33% range.

If the channel is shown as “remoteN”, then the. tmin and trange variables for that “remoteN” can be used to adjust the PWM value and fan speed. For example:

    hw.adt7462sm0.remote3.tmin = 40
    hw.adt7462sm0.remote3.trange = 32

The tmin value is the temperature in degC at which the fan starts and the trange value represents the temperature range over which the fan speed increases until it reaches full speed. Both of these values can be altered, although tmin must be lower than the corresponding critmax value from envstat and trange must be between 2 and 80.

If the channel is shown as “remoteN_dynamic”, then the tmin value is read-only, and the trange and oppoint variables for that “remoteN” are used to adjust the PWM value and fan speed. For example:

    hw.adt7462sm0.remote1.tmin = 40
    hw.adt7462sm0.remote1.trange = 32
    hw.adt7462sm0.remote1.oppoint = 60

The tmin value is still the temperature in degC at which the fan starts, but is dynamically calculated by the chip based on the oppoint (operating point) and trange values. The operating point is a target temperature and the chip will attempt to maintain that temperature or lower. It does this by adjusting the tmin value based on the trange, thus causing the PWM values and fan speed to vary based on the difference between the current and operating point temperatures. Both the oppoint and trange values can be altered, although oppoint must be higher than tmin.

If the channel is shown as “local_remote3”, then tmin and trange for both the “local” and the “remote3” temperature sensors affect the PWM value and fan speed.

If the channel is shown as “off”, then it can not be altered.

SEE ALSO
iic(4), intro(4), envstat(8), sysctl(8)

HISTORY
The adt7462sm driver first appeared in NetBSD 11.1.

AUTHORS
-nosplit The adt7462sm driver was written by Julian Coleman <jcoleman@NetBSD.org>.

BUGS
It's not possible to determine if either a sensor is not connected, or the monitored device is producing no output. Therefore, unconnected sensors will show outputs of 0.

The adt7462sm driver does not support interrupt output.