summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/dimm_spd.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/dimm_spd.h')
-rw-r--r--src/devices/machine/dimm_spd.h35
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;
};