197398d90SAndrew Baumann /* 297398d90SAndrew Baumann * Rasperry Pi 2 emulation and refactoring Copyright (c) 2015, Microsoft 397398d90SAndrew Baumann * Written by Andrew Baumann 497398d90SAndrew Baumann * 56111a0c0SPhilippe Mathieu-Daudé * This work is licensed under the terms of the GNU GPL, version 2 or later. 66111a0c0SPhilippe Mathieu-Daudé * See the COPYING file in the top-level directory. 797398d90SAndrew Baumann */ 897398d90SAndrew Baumann 997398d90SAndrew Baumann #ifndef BCM2835_AUX_H 1097398d90SAndrew Baumann #define BCM2835_AUX_H 1197398d90SAndrew Baumann 1297398d90SAndrew Baumann #include "hw/sysbus.h" 134d43a603SMarc-André Lureau #include "chardev/char-fe.h" 14db1015e9SEduardo Habkost #include "qom/object.h" 1597398d90SAndrew Baumann 1697398d90SAndrew Baumann #define TYPE_BCM2835_AUX "bcm2835-aux" 17*8063396bSEduardo Habkost OBJECT_DECLARE_SIMPLE_TYPE(BCM2835AuxState, BCM2835_AUX) 1897398d90SAndrew Baumann 1997398d90SAndrew Baumann #define BCM2835_AUX_RX_FIFO_LEN 8 2097398d90SAndrew Baumann 21db1015e9SEduardo Habkost struct BCM2835AuxState { 2297398d90SAndrew Baumann /*< private >*/ 2397398d90SAndrew Baumann SysBusDevice parent_obj; 2497398d90SAndrew Baumann /*< public >*/ 2597398d90SAndrew Baumann 2697398d90SAndrew Baumann MemoryRegion iomem; 27becdfa00SMarc-André Lureau CharBackend chr; 2897398d90SAndrew Baumann qemu_irq irq; 2997398d90SAndrew Baumann 3097398d90SAndrew Baumann uint8_t read_fifo[BCM2835_AUX_RX_FIFO_LEN]; 3197398d90SAndrew Baumann uint8_t read_pos, read_count; 3297398d90SAndrew Baumann uint8_t ier, iir; 33db1015e9SEduardo Habkost }; 3497398d90SAndrew Baumann 3597398d90SAndrew Baumann #endif 36