ARM: 7409/1: Do not call flush_cache_user_range with mmap_sem held
[linux/fpc-iii.git] / drivers / input / serio / i8042-snirm.h
blob409a9341143dbd65320ef43f4fe8b9ec79cc939f
1 #ifndef _I8042_SNIRM_H
2 #define _I8042_SNIRM_H
4 #include <asm/sni.h>
6 /*
7 * This program is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU General Public License version 2 as published by
9 * the Free Software Foundation.
13 * Names.
16 #define I8042_KBD_PHYS_DESC "onboard/serio0"
17 #define I8042_AUX_PHYS_DESC "onboard/serio1"
18 #define I8042_MUX_PHYS_DESC "onboard/serio%d"
21 * IRQs.
23 static int i8042_kbd_irq;
24 static int i8042_aux_irq;
25 #define I8042_KBD_IRQ i8042_kbd_irq
26 #define I8042_AUX_IRQ i8042_aux_irq
28 static void __iomem *kbd_iobase;
30 #define I8042_COMMAND_REG (kbd_iobase + 0x64UL)
31 #define I8042_DATA_REG (kbd_iobase + 0x60UL)
33 static inline int i8042_read_data(void)
35 return readb(kbd_iobase + 0x60UL);
38 static inline int i8042_read_status(void)
40 return readb(kbd_iobase + 0x64UL);
43 static inline void i8042_write_data(int val)
45 writeb(val, kbd_iobase + 0x60UL);
48 static inline void i8042_write_command(int val)
50 writeb(val, kbd_iobase + 0x64UL);
52 static inline int i8042_platform_init(void)
54 /* RM200 is strange ... */
55 if (sni_brd_type == SNI_BRD_RM200) {
56 kbd_iobase = ioremap(0x16000000, 4);
57 i8042_kbd_irq = 33;
58 i8042_aux_irq = 44;
59 } else {
60 kbd_iobase = ioremap(0x14000000, 4);
61 i8042_kbd_irq = 1;
62 i8042_aux_irq = 12;
64 if (!kbd_iobase)
65 return -ENOMEM;
67 return 0;
70 static inline void i8042_platform_exit(void)
75 #endif /* _I8042_SNIRM_H */