aboutsummaryrefslogtreecommitdiffstats
path: root/include/hw/arm/nrf51_soc.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/hw/arm/nrf51_soc.h')
-rw-r--r--include/hw/arm/nrf51_soc.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/include/hw/arm/nrf51_soc.h b/include/hw/arm/nrf51_soc.h
new file mode 100644
index 000000000..e52a56e75
--- /dev/null
+++ b/include/hw/arm/nrf51_soc.h
@@ -0,0 +1,57 @@
+/*
+ * Nordic Semiconductor nRF51 SoC
+ *
+ * Copyright 2018 Joel Stanley <joel@jms.id.au>
+ *
+ * This code is licensed under the GPL version 2 or later. See
+ * the COPYING file in the top-level directory.
+ */
+
+#ifndef NRF51_SOC_H
+#define NRF51_SOC_H
+
+#include "hw/sysbus.h"
+#include "hw/arm/armv7m.h"
+#include "hw/char/nrf51_uart.h"
+#include "hw/misc/nrf51_rng.h"
+#include "hw/gpio/nrf51_gpio.h"
+#include "hw/nvram/nrf51_nvm.h"
+#include "hw/timer/nrf51_timer.h"
+#include "hw/clock.h"
+#include "qom/object.h"
+
+#define TYPE_NRF51_SOC "nrf51-soc"
+OBJECT_DECLARE_SIMPLE_TYPE(NRF51State, NRF51_SOC)
+
+#define NRF51_NUM_TIMERS 3
+
+struct NRF51State {
+ /*< private >*/
+ SysBusDevice parent_obj;
+
+ /*< public >*/
+ ARMv7MState cpu;
+
+ NRF51UARTState uart;
+ NRF51RNGState rng;
+ NRF51NVMState nvm;
+ NRF51GPIOState gpio;
+ NRF51TimerState timer[NRF51_NUM_TIMERS];
+
+ MemoryRegion iomem;
+ MemoryRegion sram;
+ MemoryRegion flash;
+ MemoryRegion clock;
+ MemoryRegion twi;
+
+ uint32_t sram_size;
+ uint32_t flash_size;
+
+ MemoryRegion *board_memory;
+
+ MemoryRegion container;
+
+ Clock *sysclk;
+};
+
+#endif