54 lines
858 B
C
54 lines
858 B
C
|
#ifndef W83977AF_H
|
||
|
#define W83977AF_H
|
||
|
|
||
|
#define W977_EFIO_BASE 0x370
|
||
|
#define W977_EFIO2_BASE 0x3f0
|
||
|
#define W977_DEVICE_IR 0x06
|
||
|
|
||
|
|
||
|
/*
|
||
|
* Enter extended function mode
|
||
|
*/
|
||
|
static inline void w977_efm_enter(unsigned int efio)
|
||
|
{
|
||
|
outb(0x87, efio);
|
||
|
outb(0x87, efio);
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* Select a device to configure
|
||
|
*/
|
||
|
|
||
|
static inline void w977_select_device(__u8 devnum, unsigned int efio)
|
||
|
{
|
||
|
outb(0x07, efio);
|
||
|
outb(devnum, efio+1);
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* Write a byte to a register
|
||
|
*/
|
||
|
static inline void w977_write_reg(__u8 reg, __u8 value, unsigned int efio)
|
||
|
{
|
||
|
outb(reg, efio);
|
||
|
outb(value, efio+1);
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* read a byte from a register
|
||
|
*/
|
||
|
static inline __u8 w977_read_reg(__u8 reg, unsigned int efio)
|
||
|
{
|
||
|
outb(reg, efio);
|
||
|
return inb(efio+1);
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
* Exit extended function mode
|
||
|
*/
|
||
|
static inline void w977_efm_exit(unsigned int efio)
|
||
|
{
|
||
|
outb(0xAA, efio);
|
||
|
}
|
||
|
#endif
|