Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
w83977af.h
Go to the documentation of this file.
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  */
12 static 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 
22 static 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  */
31 static 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  */
40 static 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  */
49 static inline void w977_efm_exit(unsigned int efio)
50 {
51  outb(0xAA, efio);
52 }
53 #endif