xref: /openbmc/qemu/include/hw/char/bcm2835_aux.h (revision 4dad0a9aa818698e0735c8352bf7925a1660df6f)
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