xref: /openbmc/qemu/include/hw/gpio/bcm2835_gpio.h (revision a68694cd)
1 /*
2  * Raspberry Pi (BCM2835) GPIO Controller
3  *
4  * Copyright (c) 2017 Antfield SAS
5  *
6  * Authors:
7  *  Clement Deschamps <clement.deschamps@antfield.fr>
8  *  Luc Michel <luc.michel@antfield.fr>
9  *
10  * This work is licensed under the terms of the GNU GPL, version 2 or later.
11  * See the COPYING file in the top-level directory.
12  */
13 
14 #ifndef BCM2835_GPIO_H
15 #define BCM2835_GPIO_H
16 
17 #include "hw/sd/sd.h"
18 #include "hw/sysbus.h"
19 #include "qom/object.h"
20 
21 struct BCM2835GpioState {
22     SysBusDevice parent_obj;
23 
24     MemoryRegion iomem;
25 
26     /* SDBus selector */
27     SDBus sdbus;
28     SDBus *sdbus_sdhci;
29     SDBus *sdbus_sdhost;
30 
31     uint8_t fsel[54];
32     uint32_t lev0, lev1;
33     uint8_t sd_fsel;
34     qemu_irq out[54];
35 };
36 typedef struct BCM2835GpioState BCM2835GpioState;
37 
38 #define TYPE_BCM2835_GPIO "bcm2835_gpio"
39 DECLARE_INSTANCE_CHECKER(BCM2835GpioState, BCM2835_GPIO,
40                          TYPE_BCM2835_GPIO)
41 
42 #endif
43