1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 #ifndef _I8042_IP22_H 3 #define _I8042_IP22_H 4 5 #include <asm/sgi/ioc.h> 6 #include <asm/sgi/ip22.h> 7 8 9 /* 10 * Names. 11 */ 12 13 #define I8042_KBD_PHYS_DESC "hpc3ps2/serio0" 14 #define I8042_AUX_PHYS_DESC "hpc3ps2/serio1" 15 #define I8042_MUX_PHYS_DESC "hpc3ps2/serio%d" 16 17 /* 18 * IRQs. 19 */ 20 21 #define I8042_KBD_IRQ SGI_KEYBD_IRQ 22 #define I8042_AUX_IRQ SGI_KEYBD_IRQ 23 24 /* 25 * Register numbers. 26 */ 27 28 #define I8042_COMMAND_REG ((unsigned long)&sgioc->kbdmouse.command) 29 #define I8042_STATUS_REG ((unsigned long)&sgioc->kbdmouse.command) 30 #define I8042_DATA_REG ((unsigned long)&sgioc->kbdmouse.data) 31 32 static inline int i8042_read_data(void) 33 { 34 return sgioc->kbdmouse.data; 35 } 36 37 static inline int i8042_read_status(void) 38 { 39 return sgioc->kbdmouse.command; 40 } 41 42 static inline void i8042_write_data(int val) 43 { 44 sgioc->kbdmouse.data = val; 45 } 46 47 static inline void i8042_write_command(int val) 48 { 49 sgioc->kbdmouse.command = val; 50 } 51 52 static inline int i8042_platform_init(void) 53 { 54 #if 0 55 /* XXX sgi_kh is a virtual address */ 56 if (!request_mem_region(sgi_kh, sizeof(struct hpc_keyb), "i8042")) 57 return -EBUSY; 58 #endif 59 60 i8042_reset = I8042_RESET_ALWAYS; 61 62 return 0; 63 } 64 65 static inline void i8042_platform_exit(void) 66 { 67 #if 0 68 release_mem_region(JAZZ_KEYBOARD_ADDRESS, sizeof(struct hpc_keyb)); 69 #endif 70 } 71 72 #endif /* _I8042_IP22_H */ 73