1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
| #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
|
|