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 * + unnamed GPIO outputs: one per keycode, in the same order as the 21 * "keycodes" array property entries; asserted when key is down 22 */ 23 24 #define TYPE_STELLARIS_GAMEPAD "stellaris-gamepad" 25 OBJECT_DECLARE_SIMPLE_TYPE(StellarisGamepad, STELLARIS_GAMEPAD) 26 27 struct StellarisGamepad { 28 SysBusDevice parent_obj; 29 30 uint32_t num_buttons; 31 qemu_irq *irqs; 32 uint32_t *keycodes; 33 uint8_t *pressed; 34 int extension; 35 }; 36 37 #endif 38