diff options
Diffstat (limited to 'src/devices/machine/dimm_spd.h')
-rw-r--r-- | src/devices/machine/dimm_spd.h | 35 |
1 files changed, 7 insertions, 28 deletions
diff --git a/src/devices/machine/dimm_spd.h b/src/devices/machine/dimm_spd.h index 7fc42844bd5..d1551ca17a7 100644 --- a/src/devices/machine/dimm_spd.h +++ b/src/devices/machine/dimm_spd.h @@ -5,13 +5,8 @@ #pragma once -//************************************************************************** -// TYPE DEFINITIONS -//************************************************************************** - -// ======================> dimm_spd_device - -class dimm_spd_device : public device_t +#include "machine/i2chle.h" +class dimm_spd_device : public device_t, public i2c_hle_interface { public: // construction/destruction @@ -22,16 +17,6 @@ public: dimm_spd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - // inline configuration helpers - void set_address(u16 address) { m_address = address; } - - auto sda_callback() { return write_sda.bind(); } - - void sda_write(int state); - void scl_write(int state); - - devcb_write_line write_sda; - typedef enum { SIZE_SLOT_EMPTY = 0, @@ -47,20 +32,14 @@ public: void set_dimm_size(dimm_size_t size); protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; + // device_t overrides + virtual void device_start() override ATTR_COLD; + // i2c_hle_interface overrides + virtual u8 read_data(u16 offset) override; + virtual const char *get_tag() override { return tag(); } private: u8 m_data[256]; - u8 m_latch; - u8 m_bit; - u16 m_address; - u16 m_last_address; - int m_sda, m_scl; - u32 m_state, m_state_next; - u16 m_data_offset; - bool m_just_acked; dimm_size_t m_size; }; |