1 /* 2 * Code specific to PKUnity SoC and UniCore ISA 3 * 4 * Maintained by GUAN Xue-tao <gxt@mprc.pku.edu.cn> 5 * Copyright (C) 2001-2011 Guan Xuetao 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License version 2 as 9 * published by the Free Software Foundation. 10 */ 11 #ifndef _I8042_UNICORE32_H 12 #define _I8042_UNICORE32_H 13 14 #include <mach/hardware.h> 15 16 /* 17 * Names. 18 */ 19 #define I8042_KBD_PHYS_DESC "isa0060/serio0" 20 #define I8042_AUX_PHYS_DESC "isa0060/serio1" 21 #define I8042_MUX_PHYS_DESC "isa0060/serio%d" 22 23 /* 24 * IRQs. 25 */ 26 #define I8042_KBD_IRQ IRQ_PS2_KBD 27 #define I8042_AUX_IRQ IRQ_PS2_AUX 28 29 /* 30 * Register numbers. 31 */ 32 #define I8042_COMMAND_REG PS2_COMMAND 33 #define I8042_STATUS_REG PS2_STATUS 34 #define I8042_DATA_REG PS2_DATA 35 36 #define I8042_REGION_START (resource_size_t)(PS2_DATA) 37 #define I8042_REGION_SIZE (resource_size_t)(16) 38 i8042_read_data(void)39static inline int i8042_read_data(void) 40 { 41 return readb(I8042_DATA_REG); 42 } 43 i8042_read_status(void)44static inline int i8042_read_status(void) 45 { 46 return readb(I8042_STATUS_REG); 47 } 48 i8042_write_data(int val)49static inline void i8042_write_data(int val) 50 { 51 writeb(val, I8042_DATA_REG); 52 } 53 i8042_write_command(int val)54static inline void i8042_write_command(int val) 55 { 56 writeb(val, I8042_COMMAND_REG); 57 } 58 i8042_platform_init(void)59static inline int i8042_platform_init(void) 60 { 61 if (!request_mem_region(I8042_REGION_START, I8042_REGION_SIZE, "i8042")) 62 return -EBUSY; 63 64 i8042_reset = I8042_RESET_ALWAYS; 65 return 0; 66 } 67 i8042_platform_exit(void)68static inline void i8042_platform_exit(void) 69 { 70 release_mem_region(I8042_REGION_START, I8042_REGION_SIZE); 71 } 72 73 #endif /* _I8042_UNICORE32_H */ 74