Linux-2.6.12-rc2
[linux-2.6.git] / drivers / net / irda / w83977af.h
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