SUPERIO(9)
β¨ SUPERIO β¨
ok so this is the superio(9) manual page from the Kernel Developer's Manual and bestie, it's giving bus interface realness π it lives over in section 9 with all the other kernel-nerd pages.
πΈ NAME πΈ
superio, superio_devid, superio_dev_disable, superio_dev_enable, superio_dev_enabled, superio_find_dev, superio_get_dma, superio_get_iobase, superio_get_irq, superio_get_ldn, superio_get_type, superio_read, superio_revid, superio_vendor, superio_write β Super I/O bus interface π¦
like, it's the whole squad. all of them. no one left behind.
π SYNOPSIS π
#include <sys/bus.h>
#include <dev/superio/superio.h>
uint16_t
superio_devid(device_t dev);
void
superio_dev_disable(device_t dev, uint8_t mask);
void
superio_dev_enable(device_t dev, uint8_t mask);
bool
superio_dev_enabled(device_t dev, uint8_t mask);
device_t
superio_find_dev(device_t dev, superio_dev_type_t type, int ldn);
uint8_t
superio_get_dma(device_t dev);
uint16_t
superio_get_iobase(device_t dev);
uint8_t
superio_get_irq(device_t dev);
uint8_t
superio_get_ldn(device_t dev);
superio_dev_type_t
superio_get_type(device_t dev);
uint8_t
superio_read(device_t dev, uint8_t reg);
uint8_t
superio_revid(device_t dev);
superio_vendor_t
superio_vendor(device_t dev);
void
superio_write(device_t dev, uint8_t reg, uint8_t val);
π DESCRIPTION π
The superio set of functions are used for managing Super I/O devices. The functions provide support for raw configuration access, locating devices, device information, and device configuration. it's a whole vibe, honestly.
π The controller interface π
The superio_vendor() function is used to get a vendor of the Super I/O controller dev. Possible return values are SUPERIO_VENDOR_ITE and SUPERIO_VENDOR_NUVOTON. two options, both iconic π
The superio_devid() function is used to get a device ID of the Super I/O controller dev.
The superio_revid() function is used to get a revision ID of the Super I/O controller dev.
The superio_find_dev() function is used to find a device on the superio(4) bus, specified by dev, that has the requested type and logical device number. Either of those, but not both, can be a wildcard. Supported types are SUPERIO_DEV_GPIO, SUPERIO_DEV_HWM, and SUPERIO_DEV_WDT. The wildcard value for type is SUPERIO_DEV_NONE. The wildcard value for ldn is -1.
ok so lowkey important: either the type OR the ldn can be a wildcard. not both. pick a lane bestie π
π¦ The device interface π¦
The superio_read() function is used to read data from the Super I/O configuration register of the device dev.
The superio_write() function is used to write data to the Super I/O configuration register of the device dev.
The superio_dev_enable(), superio_dev_disable(), and superio_dev_enabled() functions are used to enable, disable, or check status of the device dev. The mask parameter selects sub-functions of a device that supports them. For devices that do not have sub-functions, mask should be set to 1.
π§ The accessor interface π§
The superio_get_dma() is used to get a DMA channel number configured for the device dev.
The superio_get_iobase() is used to get a base I/O port configured for the device dev. The device may expose additional or alternative configuration access via the I/O ports.
The superio_get_irq() is used to get an interrupt number configured for the device dev.
The superio_get_ldn() is used to get a Logical Device Number of the device dev.
The superio_get_type() is used to get a type of the device dev.
β SEE ALSO β
go read those too, they're all linked, it's a whole ecosystem π«Ά
π AUTHORS π
This manual page was written by Andriy Gapon avg@FreeBSD.org
and that's the page, bestie!! it came from the Debian crew and it's dated October 11, 2019 β yeah she's a lil vintage but she still ate π β¨ periodt π
π¦ where this page comes from
- debian bookworm: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- debian trixie: freebsd-manpages 12.2-2 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu jammy: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu noble: freebsd-manpages 12.2-1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu questing: freebsd-manpages 12.2-2
- ubuntu resolute: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- ubuntu stonking: freebsd-manpages 12.2-2build1 Β· BSD-2-Clause-FreeBSD AND BSD-4-Clause
- π the page's license: BSD-2-Clause-FreeBSD
- Copyright (c) 2019 Andriy Gapon <avg@FreeBSD.org>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms