/*
 * Raspberry Pi emulation (c) 2012 Gregory Estrade
 * Upstreaming code cleanup [including bcm2835_*] (c) 2013 Jan Petrous
 *
 * Rasperry Pi 2 emulation and refactoring Copyright (c) 2015, Microsoft
 * Written by Andrew Baumann
 *
 * This work is licensed under the terms of the GNU GPL, version 2 or later.
 * See the COPYING file in the top-level directory.
 */

#ifndef BCM2835_PERIPHERALS_H
#define BCM2835_PERIPHERALS_H

#include "hw/sysbus.h"
#include "hw/char/pl011.h"
#include "hw/char/bcm2835_aux.h"
#include "hw/display/bcm2835_fb.h"
#include "hw/dma/bcm2835_dma.h"
#include "hw/or-irq.h"
#include "hw/intc/bcm2835_ic.h"
#include "hw/misc/bcm2835_property.h"
#include "hw/misc/bcm2835_rng.h"
#include "hw/misc/bcm2835_mbox.h"
#include "hw/misc/bcm2835_mphi.h"
#include "hw/misc/bcm2835_thermal.h"
#include "hw/misc/bcm2835_cprman.h"
#include "hw/misc/bcm2835_powermgt.h"
#include "hw/sd/sdhci.h"
#include "hw/sd/bcm2835_sdhost.h"
#include "hw/gpio/bcm2835_gpio.h"
#include "hw/timer/bcm2835_systmr.h"
#include "hw/usb/hcd-dwc2.h"
#include "hw/misc/unimp.h"
#include "qom/object.h"

#define TYPE_BCM2835_PERIPHERALS "bcm2835-peripherals"
OBJECT_DECLARE_SIMPLE_TYPE(BCM2835PeripheralState, BCM2835_PERIPHERALS)

struct BCM2835PeripheralState {
    /*< private >*/
    SysBusDevice parent_obj;
    /*< public >*/

    MemoryRegion peri_mr, peri_mr_alias, gpu_bus_mr, mbox_mr;
    MemoryRegion ram_alias[4];
    qemu_irq irq, fiq;

    BCM2835SystemTimerState systmr;
    BCM2835MphiState mphi;
    UnimplementedDeviceState txp;
    UnimplementedDeviceState armtmr;
    BCM2835PowerMgtState powermgt;
    BCM2835CprmanState cprman;
    PL011State uart0;
    BCM2835AuxState aux;
    BCM2835FBState fb;
    BCM2835DMAState dma;
    qemu_or_irq orgated_dma_irq;
    BCM2835ICState ic;
    BCM2835PropertyState property;
    BCM2835RngState rng;
    BCM2835MboxState mboxes;
    SDHCIState sdhci;
    BCM2835SDHostState sdhost;
    BCM2835GpioState gpio;
    Bcm2835ThermalState thermal;
    UnimplementedDeviceState i2s;
    UnimplementedDeviceState spi[1];
    UnimplementedDeviceState i2c[3];
    UnimplementedDeviceState otp;
    UnimplementedDeviceState dbus;
    UnimplementedDeviceState ave0;
    UnimplementedDeviceState v3d;
    UnimplementedDeviceState bscsl;
    UnimplementedDeviceState smi;
    DWC2State dwc2;
    UnimplementedDeviceState sdramc;
};

#endif /* BCM2835_PERIPHERALS_H */
