xref: /qemu/include/hw/input/pl050.h (revision 0a3c1e1bf883afa5cd9df102742f087030b49c80)
1 /*
2  * Arm PrimeCell PL050 Keyboard / Mouse Interface
3  *
4  * Copyright (c) 2006-2007 CodeSourcery.
5  * Written by Paul Brook
6  *
7  * This code is licensed under the GPL.
8  */
9 
10 #ifndef HW_PL050_H
11 #define HW_PL050_H
12 
13 #include "qemu/osdep.h"
14 #include "hw/sysbus.h"
15 #include "migration/vmstate.h"
16 #include "hw/input/ps2.h"
17 #include "hw/irq.h"
18 
19 #define TYPE_PL050 "pl050"
20 OBJECT_DECLARE_SIMPLE_TYPE(PL050State, PL050)
21 
22 struct PL050State {
23     SysBusDevice parent_obj;
24 
25     MemoryRegion iomem;
26     PS2State *ps2dev;
27     uint32_t cr;
28     uint32_t clk;
29     uint32_t last;
30     int pending;
31     qemu_irq irq;
32     bool is_mouse;
33 };
34 
35 #define TYPE_PL050_KBD_DEVICE "pl050_keyboard"
36 OBJECT_DECLARE_SIMPLE_TYPE(PL050KbdState, PL050_KBD_DEVICE)
37 
38 struct PL050KbdState {
39     PL050State parent_obj;
40 };
41 
42 #define TYPE_PL050_MOUSE_DEVICE "pl050_mouse"
43 OBJECT_DECLARE_SIMPLE_TYPE(PL050MouseState, PL050_MOUSE_DEVICE)
44 
45 struct PL050MouseState {
46     PL050State parent_obj;
47 };
48 
49 #endif
50