---
name: "viapm"
section: "4"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["linux", "freebsd", "openbsd"]
url: "https://new.carta.tech/viapm"
---

# viapm(4)

VIA SMBus controller and VIA VT82C686A/VT8231 hardware monitor

## NAME

**viapm** – VIA SMBus controller and VIA VT82C686A/VT8231 hardware monitor

## SYNOPSIS

**viapm\* at pci?** **iic\* at viapm?**

## DESCRIPTION

The **viapm** driver provides support for the bus control and power management component of the VIA VT82C596, VT82C596B, VT82C686A, VT8231, VT8233, VT8233A, VT8235, VT8237, VT8237A, VT8237S, VT8251, CX700, VX800, VX855 and VX900 South Bridges. Only the SMBus host interface is supported and can be used with the [iic(4)](/iic/4.md) framework.

The **viapm** driver provides support for the hardware monitor in the VIA VT82C686A and VT8231 South Bridges. The hardware monitor is used with the [sysctl(8)](/sysctl/8.md) interface.

The device has 10 sensors:

| | | |
| --- | --- | --- |
| **Sensor** | **Units** | **Typical Use** |
| TSENS1 | uK | CPU temperature |
| TSENS2 | uK | System temperature |
| TSENS3 | uK | Unknown |
| FAN1 | RPM | CPU fan |
| FAN2 | RPM | System fan |
| VSENS1 | uV DC | CPU core voltage (2.0V) |
| VSENS2 | uV DC | North Bridge core voltage (2.5V) |
| Vcore | uV DC | Internal core voltage (3.3V) |
| VSENS3 | uV DC | +5V |
| VSENS4 | uV DC | +12V |

Sensor data is updated every 1.5 seconds.

## SEE ALSO

[iic(4)](/iic/4.md), [intro(4)](/intro/4.md), [pci(4)](/pci/4.md), [sensorsd(8)](/sensorsd/8.md), [sysctl(8)](/sysctl/8.md)

## HISTORY

The **viapm** driver first appeared in OpenBSD 3.9.

The **viaenv** driver first appeared in NetBSD 1.5. OpenBSD support was added in OpenBSD 3.4.

## AUTHORS

The **viapm** driver was written by Mark Kettenis ⟨*kettenis@openbsd.org*⟩.

The **viaenv** driver was written by Johan Danielsson and ported to OpenBSD 3.4 by Alexander Yurchenko ⟨*grange@openbsd.org*⟩. It was merged with **viapm** in OpenBSD 5.0.

## BUGS

The driver doesn't support commands with a data buffer size of more than 2 bytes.

Interrupt support is unimplemented, as is support for setting values.
