1 /* 2 * Gamepad style buttons connected to IRQ/GPIO lines 3 * 4 * Copyright (c) 2007 CodeSourcery. 5 * Written by Paul Brook 6 * 7 * This work is licensed under the terms of the GNU GPL, version 2 or later. 8 * See the COPYING file in the top-level directory. 9 */ 10 11 #ifndef HW_INPUT_STELLARIS_GAMEPAD_H 12 #define HW_INPUT_STELLARIS_GAMEPAD_H 13 14 #include "hw/sysbus.h" 15 #include "qom/object.h" 16 17 /* 18 * QEMU interface: 19 * + QOM array property "keycodes": uint32_t QEMU keycodes to handle 20 * (these are QCodes, ie the Q_KEY_* values) 21 * + unnamed GPIO outputs: one per keycode, in the same order as the 22 * "keycodes" array property entries; asserted when key is down 23 */ 24 25 #define TYPE_STELLARIS_GAMEPAD "stellaris-gamepad" 26 OBJECT_DECLARE_SIMPLE_TYPE(StellarisGamepad, STELLARIS_GAMEPAD) 27 28 struct StellarisGamepad { 29 SysBusDevice parent_obj; 30 31 uint32_t num_buttons; 32 qemu_irq *irqs; 33 uint32_t *keycodes; 34 uint8_t *pressed; 35 }; 36 37 #endif 38