Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/superio/superio.h
- This file was added.
Property | Old Value | New Value |
---|---|---|
svn:eol-style | null | native \ No newline at end of property |
svn:keywords | null | FreeBSD=%H \ No newline at end of property \ No newline at end of property \ No newline at end of property \ No newline at end of property |
svn:mime-type | null | text/plain \ No newline at end of property |
/* | |||||
* Copyright (c) 2016 Andriy Gapon | |||||
* All rights reserved. | |||||
* | |||||
* Redistribution and use in source and binary forms, with or without | |||||
* modification, are permitted provided that the following conditions | |||||
* are met: | |||||
* 1. Redistributions of source code must retain the above copyright | |||||
* notice, this list of conditions and the following disclaimer. | |||||
* 2. Redistributions in binary form must reproduce the above copyright | |||||
* notice, this list of conditions and the following disclaimer in the | |||||
* documentation and/or other materials provided with the distribution. | |||||
* | |||||
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS AS IS'' AND | |||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |||||
* SUCH DAMAGE. | |||||
* | |||||
* $FreeBSD$ | |||||
*/ | |||||
#ifndef SUPERIO_H | |||||
#define SUPERIO_H | |||||
typedef enum superio_vendor { | |||||
SUPERIO_VENDOR_NONE, | |||||
SUPERIO_VENDOR_ITE, | |||||
SUPERIO_VENDOR_NUVOTON, | |||||
SUPERIO_VENDOR_MAX | |||||
} superio_vendor_t; | |||||
typedef enum superio_dev_type { | |||||
SUPERIO_DEV_NONE, | |||||
SUPERIO_DEV_HWM, | |||||
SUPERIO_DEV_WDT, | |||||
SUPERIO_DEV_MAX | |||||
} superio_dev_type_t; | |||||
superio_vendor_t superio_vendor(device_t dev); | |||||
uint16_t superio_devid(device_t dev); | |||||
uint8_t superio_revid(device_t dev); | |||||
uint8_t superio_read(device_t dev, uint8_t reg); | |||||
void superio_write(device_t dev, uint8_t reg, uint8_t val); | |||||
bool superio_dev_enabled(device_t dev); | |||||
void superio_dev_enable(device_t dev); | |||||
void superio_dev_disable(device_t dev); | |||||
device_t superio_find_dev(device_t superio, superio_dev_type_t type, | |||||
int ldn); | |||||
enum superio_ivars { | |||||
SUPERIO_IVAR_LDN, | |||||
SUPERIO_IVAR_TYPE, | |||||
SUPERIO_IVAR_IOBASE, | |||||
SUPERIO_IVAR_IOBASE2, | |||||
SUPERIO_IVAR_IRQ, | |||||
SUPERIO_IVAR_DMA | |||||
}; | |||||
#define SUPERIO_ACCESSOR(var, ivar, type) \ | |||||
__BUS_ACCESSOR(superio, var, SUPERIO, ivar, type) | |||||
SUPERIO_ACCESSOR(ldn, LDN, uint8_t) | |||||
SUPERIO_ACCESSOR(type, TYPE, superio_dev_type_t) | |||||
SUPERIO_ACCESSOR(iobase, IOBASE, uint16_t) | |||||
SUPERIO_ACCESSOR(iobase2, IOBASE2, uint16_t) | |||||
SUPERIO_ACCESSOR(irq, IRQ, uint8_t) | |||||
SUPERIO_ACCESSOR(dma, DMA, uint8_t) | |||||
#undef SUPERIO_ACCESSOR | |||||
#endif /*SUPERIO_H*/ |