blob: 4332ceedc12fd5197a591bdec4fea49e0a0c6f3a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
// license:BSD-3-Clause
// copyright-holders:Andrei I. Holub
#ifndef MAME_MACHINE_DS1307_H
#define MAME_MACHINE_DS1307_H
#include "dirtc.h"
#include "i2chle.h"
#include "machine/nvram.h"
class i2c_ds1307_device : public device_t, public i2c_hle_interface, public device_rtc_interface
{
public:
i2c_ds1307_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock = 32'768);
TIMER_CALLBACK_MEMBER(timer_callback);
protected:
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 void rtc_clock_updated(int year, int month, int day, int day_of_week, int hour, int minute, int second) override;
virtual u8 read_data(u16 offset) override;
virtual void write_data(u16 offset, u8 data) override;
private:
u8 m_cmos[0x40];
required_device<nvram_device> m_nvram;
emu_timer *m_timer;
};
DECLARE_DEVICE_TYPE(I2C_DS1307, i2c_ds1307_device)
#endif // MAME_MACHINE_DS1307_H
|