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