ADT7462SM(4) | Device Drivers Manual | 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

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.

February 19, 2026 | NetBSD 11.99