summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/cpu/arm7/lpc210x.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/cpu/arm7/lpc210x.h')
-rw-r--r--src/devices/cpu/arm7/lpc210x.h66
1 files changed, 33 insertions, 33 deletions
diff --git a/src/devices/cpu/arm7/lpc210x.h b/src/devices/cpu/arm7/lpc210x.h
index afcc4a57795..00bee60ef00 100644
--- a/src/devices/cpu/arm7/lpc210x.h
+++ b/src/devices/cpu/arm7/lpc210x.h
@@ -1,13 +1,15 @@
// license:BSD-3-Clause
// copyright-holders:David Haywood
-#ifndef MAME_CPU_ARM7_LPC2103_H
-#define MAME_CPU_ARM7_LPC2103_H
+#ifndef MAME_CPU_ARM7_LPC210X_H
+#define MAME_CPU_ARM7_LPC210X_H
#pragma once
#include "arm7.h"
-#include "arm7core.h"
+
+#include "machine/vic_pl192.h"
+
/***************************************************************************
DEVICE CONFIGURATION MACROS
@@ -23,57 +25,53 @@ class lpc210x_device : public arm7_cpu_device
public:
lpc210x_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t);
- DECLARE_READ32_MEMBER(arm_E01FC088_r);
- DECLARE_READ32_MEMBER(flash_r);
- DECLARE_WRITE32_MEMBER(flash_w);
+ uint32_t arm_E01FC088_r();
+ uint32_t flash_r(offs_t offset);
+ void flash_w(offs_t offset, uint32_t data);
// timer 0 / 1
- DECLARE_READ32_MEMBER(timer0_r) { return read_timer(space, 0, offset, mem_mask); }
- DECLARE_WRITE32_MEMBER(timer0_w) { write_timer(space, 0, offset, data, mem_mask); }
+ uint32_t timer0_r(offs_t offset, uint32_t mem_mask = ~0) { return read_timer(0, offset, mem_mask); }
+ void timer0_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0) { write_timer(0, offset, data, mem_mask); }
- DECLARE_READ32_MEMBER(timer1_r) { return read_timer(space, 1, offset, mem_mask); }
- DECLARE_WRITE32_MEMBER(timer1_w) { write_timer(space, 1, offset, data, mem_mask); }
+ uint32_t timer1_r(offs_t offset, uint32_t mem_mask = ~0) { return read_timer(1, offset, mem_mask); }
+ void timer1_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0) { write_timer(1, offset, data, mem_mask); }
- void write_timer(address_space &space, int timer, int offset, uint32_t data, uint32_t mem_mask);
- uint32_t read_timer(address_space &space, int timer, int offset, uint32_t mem_mask);
-
- // VIC
- DECLARE_READ32_MEMBER(vic_r);
- DECLARE_WRITE32_MEMBER(vic_w);
+ void write_timer(int timer, int offset, uint32_t data, uint32_t mem_mask);
+ uint32_t read_timer(int timer, int offset, uint32_t mem_mask);
// PIN select block
- DECLARE_READ32_MEMBER(pin_r);
- DECLARE_WRITE32_MEMBER(pin_w);
+ uint32_t pin_r(offs_t offset, uint32_t mem_mask = ~0);
+ void pin_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
//PLL Phase Locked Loop
- DECLARE_READ32_MEMBER(pll_r);
- DECLARE_WRITE32_MEMBER(pll_w);
+ uint32_t pll_r(offs_t offset, uint32_t mem_mask = ~0);
+ void pll_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
//MAM memory controller
- DECLARE_READ32_MEMBER(mam_r);
- DECLARE_WRITE32_MEMBER(mam_w);
+ uint32_t mam_r(offs_t offset, uint32_t mem_mask = ~0);
+ void mam_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
//APB divider
- DECLARE_READ32_MEMBER(apbdiv_r);
- DECLARE_WRITE32_MEMBER(apbdiv_w);
+ uint32_t apbdiv_r(offs_t offset, uint32_t mem_mask = ~0);
+ void apbdiv_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
//syscon misc
- DECLARE_READ32_MEMBER(scs_r);
- DECLARE_WRITE32_MEMBER(scs_w);
+ uint32_t scs_r(offs_t offset, uint32_t mem_mask = ~0);
+ void scs_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
// fio
- DECLARE_READ32_MEMBER(fio_r);
- DECLARE_WRITE32_MEMBER(fio_w);
+ uint32_t fio_r(offs_t offset, uint32_t mem_mask = ~0);
+ void fio_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
// todo, use an appropriate flash type instead
uint8_t m_flash[0x8000]; // needs to be public because the harmony/melody device injects contents with memcpy, yuck
- void lpc2103_map(address_map &map);
+ void lpc2103_map(address_map &map) ATTR_COLD;
protected:
// device-level overrides
- virtual void device_add_mconfig(machine_config &config) override;
- virtual void device_start() override;
- virtual void device_reset() override;
+ virtual void device_add_mconfig(machine_config &config) override ATTR_COLD;
+ virtual void device_start() override ATTR_COLD;
+ virtual void device_reset() override ATTR_COLD;
virtual space_config_vector memory_space_config() const override;
@@ -81,10 +79,12 @@ protected:
private:
address_space_config m_program_config;
+
+ required_device<vic_pl190_device> m_vic;
};
// device type definition
DECLARE_DEVICE_TYPE(LPC2103, lpc210x_device)
-#endif // MAME_CPU_ARM7_LPC2103_H
+#endif // MAME_CPU_ARM7_LPC210X_H