Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/drivers/input/serio/i8042-snirm.h
15112 views
1
#ifndef _I8042_SNIRM_H
2
#define _I8042_SNIRM_H
3
4
#include <asm/sni.h>
5
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.
10
*/
11
12
/*
13
* Names.
14
*/
15
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"
19
20
/*
21
* IRQs.
22
*/
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
27
28
static void __iomem *kbd_iobase;
29
30
#define I8042_COMMAND_REG (kbd_iobase + 0x64UL)
31
#define I8042_DATA_REG (kbd_iobase + 0x60UL)
32
33
static inline int i8042_read_data(void)
34
{
35
return readb(kbd_iobase + 0x60UL);
36
}
37
38
static inline int i8042_read_status(void)
39
{
40
return readb(kbd_iobase + 0x64UL);
41
}
42
43
static inline void i8042_write_data(int val)
44
{
45
writeb(val, kbd_iobase + 0x60UL);
46
}
47
48
static inline void i8042_write_command(int val)
49
{
50
writeb(val, kbd_iobase + 0x64UL);
51
}
52
static inline int i8042_platform_init(void)
53
{
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;
63
}
64
if (!kbd_iobase)
65
return -ENOMEM;
66
67
return 0;
68
}
69
70
static inline void i8042_platform_exit(void)
71
{
72
73
}
74
75
#endif /* _I8042_SNIRM_H */
76
77