197398d90SAndrew Baumann /* 297398d90SAndrew Baumann * Rasperry Pi 2 emulation and refactoring Copyright (c) 2015, Microsoft 397398d90SAndrew Baumann * Written by Andrew Baumann 497398d90SAndrew Baumann * 597398d90SAndrew Baumann * This code is licensed under the GNU GPLv2 and later. 697398d90SAndrew Baumann */ 797398d90SAndrew Baumann 897398d90SAndrew Baumann #ifndef BCM2835_AUX_H 997398d90SAndrew Baumann #define BCM2835_AUX_H 1097398d90SAndrew Baumann 1197398d90SAndrew Baumann #include "hw/sysbus.h" 12*4d43a603SMarc-André Lureau #include "chardev/char-fe.h" 1397398d90SAndrew Baumann 1497398d90SAndrew Baumann #define TYPE_BCM2835_AUX "bcm2835-aux" 1597398d90SAndrew Baumann #define BCM2835_AUX(obj) OBJECT_CHECK(BCM2835AuxState, (obj), TYPE_BCM2835_AUX) 1697398d90SAndrew Baumann 1797398d90SAndrew Baumann #define BCM2835_AUX_RX_FIFO_LEN 8 1897398d90SAndrew Baumann 1997398d90SAndrew Baumann typedef struct { 2097398d90SAndrew Baumann /*< private >*/ 2197398d90SAndrew Baumann SysBusDevice parent_obj; 2297398d90SAndrew Baumann /*< public >*/ 2397398d90SAndrew Baumann 2497398d90SAndrew Baumann MemoryRegion iomem; 25becdfa00SMarc-André Lureau CharBackend chr; 2697398d90SAndrew Baumann qemu_irq irq; 2797398d90SAndrew Baumann 2897398d90SAndrew Baumann uint8_t read_fifo[BCM2835_AUX_RX_FIFO_LEN]; 2997398d90SAndrew Baumann uint8_t read_pos, read_count; 3097398d90SAndrew Baumann uint8_t ier, iir; 3197398d90SAndrew Baumann } BCM2835AuxState; 3297398d90SAndrew Baumann 3397398d90SAndrew Baumann #endif 34