GNU Linux-libre 4.14.254-gnu1
[releases.git] / drivers / input / serio / i8042-ip22io.h
1 #ifndef _I8042_IP22_H
2 #define _I8042_IP22_H
3
4 #include <asm/sgi/ioc.h>
5 #include <asm/sgi/ip22.h>
6
7 /*
8  * This program is free software; you can redistribute it and/or modify it
9  * under the terms of the GNU General Public License version 2 as published by
10  * the Free Software Foundation.
11  */
12
13 /*
14  * Names.
15  */
16
17 #define I8042_KBD_PHYS_DESC "hpc3ps2/serio0"
18 #define I8042_AUX_PHYS_DESC "hpc3ps2/serio1"
19 #define I8042_MUX_PHYS_DESC "hpc3ps2/serio%d"
20
21 /*
22  * IRQs.
23  */
24
25 #define I8042_KBD_IRQ SGI_KEYBD_IRQ
26 #define I8042_AUX_IRQ SGI_KEYBD_IRQ
27
28 /*
29  * Register numbers.
30  */
31
32 #define I8042_COMMAND_REG       ((unsigned long)&sgioc->kbdmouse.command)
33 #define I8042_STATUS_REG        ((unsigned long)&sgioc->kbdmouse.command)
34 #define I8042_DATA_REG          ((unsigned long)&sgioc->kbdmouse.data)
35
36 static inline int i8042_read_data(void)
37 {
38         return sgioc->kbdmouse.data;
39 }
40
41 static inline int i8042_read_status(void)
42 {
43         return sgioc->kbdmouse.command;
44 }
45
46 static inline void i8042_write_data(int val)
47 {
48         sgioc->kbdmouse.data = val;
49 }
50
51 static inline void i8042_write_command(int val)
52 {
53         sgioc->kbdmouse.command = val;
54 }
55
56 static inline int i8042_platform_init(void)
57 {
58 #if 0
59         /* XXX sgi_kh is a virtual address */
60         if (!request_mem_region(sgi_kh, sizeof(struct hpc_keyb), "i8042"))
61                 return -EBUSY;
62 #endif
63
64         i8042_reset = I8042_RESET_ALWAYS;
65
66         return 0;
67 }
68
69 static inline void i8042_platform_exit(void)
70 {
71 #if 0
72         release_mem_region(JAZZ_KEYBOARD_ADDRESS, sizeof(struct hpc_keyb));
73 #endif
74 }
75
76 #endif /* _I8042_IP22_H */