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