diff options
Diffstat (limited to 'src/devices/cpu/arm7/lpc210x.h')
-rw-r--r-- | src/devices/cpu/arm7/lpc210x.h | 66 |
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 |