blob: 51085e166ca50d5797848078eb3e648c72d02d18 [file] [log] [blame]
Philippe Mathieu-Daudé98fa3322019-04-12 18:54:11 +02001/*
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
Peter Maydellc45460d2023-10-30 11:47:57 +000011#ifndef HW_INPUT_STELLARIS_GAMEPAD_H
12#define HW_INPUT_STELLARIS_GAMEPAD_H
Philippe Mathieu-Daudé98fa3322019-04-12 18:54:11 +020013
Peter Maydella75f3362023-10-30 11:48:01 +000014#include "hw/sysbus.h"
15#include "qom/object.h"
Philippe Mathieu-Daudé98fa3322019-04-12 18:54:11 +020016
Peter Maydella75f3362023-10-30 11:48:01 +000017/*
18 * QEMU interface:
19 * + QOM array property "keycodes": uint32_t QEMU keycodes to handle
Peter Maydell7c76f392023-10-30 11:48:02 +000020 * (these are QCodes, ie the Q_KEY_* values)
Peter Maydella75f3362023-10-30 11:48:01 +000021 * + 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"
26OBJECT_DECLARE_SIMPLE_TYPE(StellarisGamepad, STELLARIS_GAMEPAD)
27
28struct StellarisGamepad {
29 SysBusDevice parent_obj;
30
31 uint32_t num_buttons;
32 qemu_irq *irqs;
33 uint32_t *keycodes;
34 uint8_t *pressed;
Peter Maydella75f3362023-10-30 11:48:01 +000035};
Philippe Mathieu-Daudé98fa3322019-04-12 18:54:11 +020036
37#endif