1#ifndef W83977AF_H 2#define W83977AF_H 3 4#define W977_EFIO_BASE 0x370 5#define W977_EFIO2_BASE 0x3f0 6#define W977_DEVICE_IR 0x06 7 8 9/* 10 * Enter extended function mode 11 */ 12static inline void w977_efm_enter(unsigned int efio) 13{ 14 outb(0x87, efio); 15 outb(0x87, efio); 16} 17 18/* 19 * Select a device to configure 20 */ 21 22static inline void w977_select_device(__u8 devnum, unsigned int efio) 23{ 24 outb(0x07, efio); 25 outb(devnum, efio+1); 26} 27 28/* 29 * Write a byte to a register 30 */ 31static inline void w977_write_reg(__u8 reg, __u8 value, unsigned int efio) 32{ 33 outb(reg, efio); 34 outb(value, efio+1); 35} 36 37/* 38 * read a byte from a register 39 */ 40static inline __u8 w977_read_reg(__u8 reg, unsigned int efio) 41{ 42 outb(reg, efio); 43 return inb(efio+1); 44} 45 46/* 47 * Exit extended function mode 48 */ 49static inline void w977_efm_exit(unsigned int efio) 50{ 51 outb(0xAA, efio); 52} 53#endif 54