/*
 * Arm PrimeCell PL050 Keyboard / Mouse Interface
 *
 * Copyright (c) 2006-2007 CodeSourcery.
 * Written by Paul Brook
 *
 * This code is licensed under the GPL.
 */

#ifndef HW_PL050_H
#define HW_PL050_H

#include "hw/core/sysbus.h"
#include "migration/vmstate.h"
#include "hw/input/ps2.h"
#include "hw/core/irq.h"

struct PL050DeviceClass {
    SysBusDeviceClass parent_class;

    DeviceRealize parent_realize;
};

#define TYPE_PL050 "pl050"
OBJECT_DECLARE_TYPE(PL050State, PL050DeviceClass, PL050)

struct PL050State {
    SysBusDevice parent_obj;

    MemoryRegion iomem;
    PS2State *ps2dev;
    uint32_t cr;
    uint32_t clk;
    uint32_t last;
    int pending;
    qemu_irq irq;
    bool is_mouse;
};

#define TYPE_PL050_KBD_DEVICE "pl050_keyboard"
OBJECT_DECLARE_SIMPLE_TYPE(PL050KbdState, PL050_KBD_DEVICE)

struct PL050KbdState {
    PL050State parent_obj;

    PS2KbdState kbd;
};

#define TYPE_PL050_MOUSE_DEVICE "pl050_mouse"
OBJECT_DECLARE_SIMPLE_TYPE(PL050MouseState, PL050_MOUSE_DEVICE)

struct PL050MouseState {
    PL050State parent_obj;

    PS2MouseState mouse;
};

#endif
