xref: /linux/drivers/input/serio/i8042-ip22io.h (revision ca55b2fef3a9373fcfc30f82fd26bc7fccbda732)
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 = 1;
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 */
77