| #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 |