]>
Commit | Line | Data |
---|---|---|
7c62aeb8 AB |
1 | /* |
2 | * Raspberry Pi emulation (c) 2012 Gregory Estrade | |
3 | * Upstreaming code cleanup [including bcm2835_*] (c) 2013 Jan Petrous | |
4 | * | |
5 | * Rasperry Pi 2 emulation and refactoring Copyright (c) 2015, Microsoft | |
6 | * Written by Andrew Baumann | |
7 | * | |
6111a0c0 PMD |
8 | * This work is licensed under the terms of the GNU GPL, version 2 or later. |
9 | * See the COPYING file in the top-level directory. | |
7c62aeb8 AB |
10 | */ |
11 | ||
12 | #ifndef BCM2835_PERIPHERALS_H | |
13 | #define BCM2835_PERIPHERALS_H | |
14 | ||
7c62aeb8 | 15 | #include "hw/sysbus.h" |
0a21950e | 16 | #include "hw/char/pl011.h" |
97398d90 | 17 | #include "hw/char/bcm2835_aux.h" |
5e9c2a8d | 18 | #include "hw/display/bcm2835_fb.h" |
6717f587 | 19 | #include "hw/dma/bcm2835_dma.h" |
004c8a8b | 20 | #include "hw/or-irq.h" |
7c62aeb8 AB |
21 | #include "hw/intc/bcm2835_ic.h" |
22 | #include "hw/misc/bcm2835_property.h" | |
54a5ba13 | 23 | #include "hw/misc/bcm2835_rng.h" |
7c62aeb8 | 24 | #include "hw/misc/bcm2835_mbox.h" |
3d46938b | 25 | #include "hw/misc/bcm2835_mphi.h" |
d442d95f | 26 | #include "hw/misc/bcm2835_thermal.h" |
fc14176b | 27 | #include "hw/misc/bcm2835_cprman.h" |
38f2cfbb | 28 | #include "hw/misc/bcm2835_powermgt.h" |
7c62aeb8 | 29 | #include "hw/sd/sdhci.h" |
1eeb5c7d CD |
30 | #include "hw/sd/bcm2835_sdhost.h" |
31 | #include "hw/gpio/bcm2835_gpio.h" | |
0e5bbd74 | 32 | #include "hw/timer/bcm2835_systmr.h" |
60bf734e | 33 | #include "hw/usb/hcd-dwc2.h" |
00cbd5bd | 34 | #include "hw/misc/unimp.h" |
db1015e9 | 35 | #include "qom/object.h" |
7c62aeb8 AB |
36 | |
37 | #define TYPE_BCM2835_PERIPHERALS "bcm2835-peripherals" | |
8063396b | 38 | OBJECT_DECLARE_SIMPLE_TYPE(BCM2835PeripheralState, BCM2835_PERIPHERALS) |
7c62aeb8 | 39 | |
db1015e9 | 40 | struct BCM2835PeripheralState { |
7c62aeb8 AB |
41 | /*< private >*/ |
42 | SysBusDevice parent_obj; | |
43 | /*< public >*/ | |
44 | ||
45 | MemoryRegion peri_mr, peri_mr_alias, gpu_bus_mr, mbox_mr; | |
46 | MemoryRegion ram_alias[4]; | |
47 | qemu_irq irq, fiq; | |
48 | ||
0e5bbd74 | 49 | BCM2835SystemTimerState systmr; |
3d46938b | 50 | BCM2835MphiState mphi; |
8c1e9927 | 51 | UnimplementedDeviceState txp; |
00cbd5bd | 52 | UnimplementedDeviceState armtmr; |
38f2cfbb | 53 | BCM2835PowerMgtState powermgt; |
fc14176b | 54 | BCM2835CprmanState cprman; |
948770b0 | 55 | PL011State uart0; |
97398d90 | 56 | BCM2835AuxState aux; |
5e9c2a8d | 57 | BCM2835FBState fb; |
6717f587 | 58 | BCM2835DMAState dma; |
e844f0c5 | 59 | OrIRQState orgated_dma_irq; |
7c62aeb8 AB |
60 | BCM2835ICState ic; |
61 | BCM2835PropertyState property; | |
54a5ba13 | 62 | BCM2835RngState rng; |
7c62aeb8 AB |
63 | BCM2835MboxState mboxes; |
64 | SDHCIState sdhci; | |
1eeb5c7d CD |
65 | BCM2835SDHostState sdhost; |
66 | BCM2835GpioState gpio; | |
d442d95f | 67 | Bcm2835ThermalState thermal; |
00cbd5bd PMD |
68 | UnimplementedDeviceState i2s; |
69 | UnimplementedDeviceState spi[1]; | |
70 | UnimplementedDeviceState i2c[3]; | |
71 | UnimplementedDeviceState otp; | |
72 | UnimplementedDeviceState dbus; | |
73 | UnimplementedDeviceState ave0; | |
8c1e9927 | 74 | UnimplementedDeviceState v3d; |
00cbd5bd PMD |
75 | UnimplementedDeviceState bscsl; |
76 | UnimplementedDeviceState smi; | |
60bf734e | 77 | DWC2State dwc2; |
00cbd5bd | 78 | UnimplementedDeviceState sdramc; |
db1015e9 | 79 | }; |
7c62aeb8 AB |
80 | |
81 | #endif /* BCM2835_PERIPHERALS_H */ |