mirror of
https://github.com/holub/mame
synced 2025-10-07 01:16:22 +03:00
s3c24xx: isolated the callback that resists devcb2 conversion (nw)
This commit is contained in:
parent
5e0dbfed80
commit
90cf5ab2cb
@ -45,6 +45,7 @@ s3c2400_device::s3c2400_device(const machine_config &mconfig, const char *tag, d
|
||||
m_cpu(*this, ":maincpu"),
|
||||
m_pin_r_cb(*this),
|
||||
m_pin_w_cb(*this),
|
||||
m_port_w_cb(*this),
|
||||
m_scl_w_cb(*this),
|
||||
m_sda_r_cb(*this),
|
||||
m_sda_w_cb(*this),
|
||||
|
@ -26,6 +26,9 @@
|
||||
#define MCFG_S3C2400_CORE_PIN_W_CB(_devcb) \
|
||||
devcb = &s3c2400_device::set_core_pin_w_callback(*device, DEVCB2_##_devcb);
|
||||
|
||||
#define MCFG_S3C2400_GPIO_PORT_W_CB(_devcb) \
|
||||
devcb = &s3c2400_device::set_gpio_port_w_callback(*device, DEVCB2_##_devcb);
|
||||
|
||||
#define MCFG_S3C2400_I2C_SCL_W_CB(_devcb) \
|
||||
devcb = &s3c2400_device::set_i2c_scl_w_callback(*device, DEVCB2_##_devcb);
|
||||
|
||||
@ -62,7 +65,6 @@ enum
|
||||
struct s3c2400_interface_gpio
|
||||
{
|
||||
devcb_read32 port_r;
|
||||
devcb_write32 port_w;
|
||||
};
|
||||
|
||||
struct s3c2400_interface
|
||||
@ -369,6 +371,7 @@ public:
|
||||
static void static_set_palette_tag(device_t &device, const char *tag);
|
||||
template<class _Object> static devcb2_base &set_core_pin_r_callback(device_t &device, _Object object) { return downcast<s3c2400_device &>(device).m_pin_r_cb.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_core_pin_w_callback(device_t &device, _Object object) { return downcast<s3c2400_device &>(device).m_pin_w_cb.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_gpio_port_w_callback(device_t &device, _Object object) { return downcast<s3c2400_device &>(device).m_port_w_cb.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_i2c_scl_w_callback(device_t &device, _Object object) { return downcast<s3c2400_device &>(device).m_scl_w_cb.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_i2c_sda_r_callback(device_t &device, _Object object) { return downcast<s3c2400_device &>(device).m_sda_r_cb.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_i2c_sda_w_callback(device_t &device, _Object object) { return downcast<s3c2400_device &>(device).m_sda_w_cb.set_callback(object); }
|
||||
@ -888,7 +891,7 @@ public:
|
||||
devcb2_read32 m_pin_r_cb;
|
||||
devcb2_write32 m_pin_w_cb;
|
||||
devcb_resolved_read32 m_port_r;
|
||||
devcb_resolved_write32 m_port_w;
|
||||
devcb2_write32 m_port_w_cb;
|
||||
devcb2_write_line m_scl_w_cb;
|
||||
devcb2_read_line m_sda_r_cb;
|
||||
devcb2_write_line m_sda_w_cb;
|
||||
|
@ -45,6 +45,7 @@ s3c2410_device::s3c2410_device(const machine_config &mconfig, const char *tag, d
|
||||
m_cpu(*this, ":maincpu"),
|
||||
m_pin_r_cb(*this),
|
||||
m_pin_w_cb(*this),
|
||||
m_port_w_cb(*this),
|
||||
m_scl_w_cb(*this),
|
||||
m_sda_r_cb(*this),
|
||||
m_sda_w_cb(*this),
|
||||
|
@ -26,6 +26,9 @@
|
||||
#define MCFG_S3C2410_CORE_PIN_W_CB(_devcb) \
|
||||
devcb = &s3c2410_device::set_core_pin_w_callback(*device, DEVCB2_##_devcb);
|
||||
|
||||
#define MCFG_S3C2410_GPIO_PORT_W_CB(_devcb) \
|
||||
devcb = &s3c2410_device::set_gpio_port_w_callback(*device, DEVCB2_##_devcb);
|
||||
|
||||
#define MCFG_S3C2410_I2C_SCL_W_CB(_devcb) \
|
||||
devcb = &s3c2410_device::set_i2c_scl_w_callback(*device, DEVCB2_##_devcb);
|
||||
|
||||
@ -83,7 +86,6 @@ enum
|
||||
struct s3c2410_interface_gpio
|
||||
{
|
||||
devcb_read32 port_r;
|
||||
devcb_write32 port_w;
|
||||
};
|
||||
|
||||
struct s3c2410_interface
|
||||
@ -457,6 +459,7 @@ public:
|
||||
static void static_set_palette_tag(device_t &device, const char *tag);
|
||||
template<class _Object> static devcb2_base &set_core_pin_r_callback(device_t &device, _Object object) { return downcast<s3c2410_device &>(device).m_pin_r_cb.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_core_pin_w_callback(device_t &device, _Object object) { return downcast<s3c2410_device &>(device).m_pin_w_cb.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_gpio_port_w_callback(device_t &device, _Object object) { return downcast<s3c2410_device &>(device).m_port_w_cb.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_i2c_scl_w_callback(device_t &device, _Object object) { return downcast<s3c2410_device &>(device).m_scl_w_cb.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_i2c_sda_r_callback(device_t &device, _Object object) { return downcast<s3c2410_device &>(device).m_sda_r_cb.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_i2c_sda_w_callback(device_t &device, _Object object) { return downcast<s3c2410_device &>(device).m_sda_w_cb.set_callback(object); }
|
||||
@ -1065,7 +1068,7 @@ public:
|
||||
devcb2_read32 m_pin_r_cb;
|
||||
devcb2_write32 m_pin_w_cb;
|
||||
devcb_resolved_read32 m_port_r;
|
||||
devcb_resolved_write32 m_port_w;
|
||||
devcb2_write32 m_port_w_cb;
|
||||
devcb2_write_line m_scl_w_cb;
|
||||
devcb2_read_line m_sda_r_cb;
|
||||
devcb2_write_line m_sda_w_cb;
|
||||
|
@ -45,6 +45,7 @@ s3c2440_device::s3c2440_device(const machine_config &mconfig, const char *tag, d
|
||||
m_cpu(*this, ":maincpu"),
|
||||
m_pin_r_cb(*this),
|
||||
m_pin_w_cb(*this),
|
||||
m_port_w_cb(*this),
|
||||
m_scl_w_cb(*this),
|
||||
m_sda_r_cb(*this),
|
||||
m_sda_w_cb(*this),
|
||||
|
@ -25,6 +25,9 @@
|
||||
#define MCFG_S3C2440_CORE_PIN_W_CB(_devcb) \
|
||||
devcb = &s3c2440_device::set_core_pin_w_callback(*device, DEVCB2_##_devcb);
|
||||
|
||||
#define MCFG_S3C2440_GPIO_PORT_W_CB(_devcb) \
|
||||
devcb = &s3c2440_device::set_gpio_port_w_callback(*device, DEVCB2_##_devcb);
|
||||
|
||||
#define MCFG_S3C2440_I2C_SCL_W_CB(_devcb) \
|
||||
devcb = &s3c2440_device::set_i2c_scl_w_callback(*device, DEVCB2_##_devcb);
|
||||
|
||||
@ -83,7 +86,6 @@ enum
|
||||
struct s3c2440_interface_gpio
|
||||
{
|
||||
devcb_read32 port_r;
|
||||
devcb_write32 port_w;
|
||||
};
|
||||
|
||||
struct s3c2440_interface
|
||||
@ -489,6 +491,7 @@ public:
|
||||
static void static_set_palette_tag(device_t &device, const char *tag);
|
||||
template<class _Object> static devcb2_base &set_core_pin_r_callback(device_t &device, _Object object) { return downcast<s3c2440_device &>(device).m_pin_r_cb.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_core_pin_w_callback(device_t &device, _Object object) { return downcast<s3c2440_device &>(device).m_pin_w_cb.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_gpio_port_w_callback(device_t &device, _Object object) { return downcast<s3c2440_device &>(device).m_port_w_cb.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_i2c_scl_w_callback(device_t &device, _Object object) { return downcast<s3c2440_device &>(device).m_scl_w_cb.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_i2c_sda_r_callback(device_t &device, _Object object) { return downcast<s3c2440_device &>(device).m_sda_r_cb.set_callback(object); }
|
||||
template<class _Object> static devcb2_base &set_i2c_sda_w_callback(device_t &device, _Object object) { return downcast<s3c2440_device &>(device).m_sda_w_cb.set_callback(object); }
|
||||
@ -1150,7 +1153,7 @@ public:
|
||||
devcb2_read32 m_pin_r_cb;
|
||||
devcb2_write32 m_pin_w_cb;
|
||||
devcb_resolved_read32 m_port_r;
|
||||
devcb_resolved_write32 m_port_w;
|
||||
devcb2_write32 m_port_w_cb;
|
||||
devcb2_write_line m_scl_w_cb;
|
||||
devcb2_read_line m_sda_r_cb;
|
||||
devcb2_write_line m_sda_w_cb;
|
||||
|
@ -1766,9 +1766,9 @@ UINT32 S3C24_CLASS_NAME::iface_gpio_port_r(int port, UINT32 mask)
|
||||
|
||||
void S3C24_CLASS_NAME::iface_gpio_port_w(int port, UINT32 mask, UINT32 data)
|
||||
{
|
||||
if (!m_port_w.isnull())
|
||||
if (!m_port_w_cb.isnull())
|
||||
{
|
||||
(m_port_w)( port, data, mask );
|
||||
(m_port_w_cb)( port, data, mask );
|
||||
}
|
||||
}
|
||||
|
||||
@ -3476,7 +3476,7 @@ void S3C24_CLASS_NAME::s3c24xx_device_start()
|
||||
m_pin_r_cb.resolve();
|
||||
m_pin_w_cb.resolve_safe();
|
||||
m_port_r.resolve(m_iface_gpio.port_r, *this);
|
||||
m_port_w.resolve(m_iface_gpio.port_w, *this);
|
||||
m_port_w_cb.resolve();
|
||||
m_scl_w_cb.resolve();
|
||||
m_sda_r_cb.resolve();
|
||||
m_sda_w_cb.resolve();
|
||||
|
@ -562,7 +562,7 @@ INPUT_PORTS_END
|
||||
static const s3c2410_interface bballoon_s3c2410_intf =
|
||||
{
|
||||
// GPIO (port read / port write)
|
||||
{ DEVCB_DRIVER_MEMBER32(ghosteo_state,s3c2410_gpio_port_r), DEVCB_DRIVER_MEMBER32(ghosteo_state,s3c2410_gpio_port_w) }
|
||||
{ DEVCB_DRIVER_MEMBER32(ghosteo_state,s3c2410_gpio_port_r) }
|
||||
};
|
||||
|
||||
|
||||
@ -634,6 +634,7 @@ static MACHINE_CONFIG_START( ghosteo, ghosteo_state )
|
||||
MCFG_DEVICE_CONFIG(bballoon_s3c2410_intf)
|
||||
MCFG_S3C2410_PALETTE("palette")
|
||||
MCFG_S3C2410_CORE_PIN_R_CB(READ32(ghosteo_state, s3c2410_core_pin_r))
|
||||
MCFG_S3C2410_GPIO_PORT_W_CB(WRITE32(ghosteo_state, s3c2410_gpio_port_w))
|
||||
MCFG_S3C2410_I2C_SCL_W_CB(WRITELINE(ghosteo_state, s3c2410_i2c_scl_w))
|
||||
MCFG_S3C2410_I2C_SDA_R_CB(READLINE(ghosteo_state, s3c2410_i2c_sda_r))
|
||||
MCFG_S3C2410_I2C_SDA_W_CB(WRITELINE(ghosteo_state, s3c2410_i2c_sda_w))
|
||||
|
@ -183,7 +183,7 @@ DRIVER_INIT_MEMBER(gizmondo_state,gizmondo)
|
||||
static S3C2440_INTERFACE( gizmondo_s3c2440_intf )
|
||||
{
|
||||
// GPIO (port read / port write)
|
||||
{ DEVCB_DRIVER_MEMBER32(gizmondo_state,s3c2440_gpio_port_r), DEVCB_DRIVER_MEMBER32(gizmondo_state,s3c2440_gpio_port_w) }
|
||||
{ DEVCB_DRIVER_MEMBER32(gizmondo_state,s3c2440_gpio_port_r) }
|
||||
};
|
||||
|
||||
static MACHINE_CONFIG_START( gizmondo, gizmondo_state )
|
||||
@ -206,6 +206,7 @@ static MACHINE_CONFIG_START( gizmondo, gizmondo_state )
|
||||
MCFG_DEVICE_ADD("s3c2440", S3C2440, 12000000)
|
||||
MCFG_DEVICE_CONFIG(gizmondo_s3c2440_intf)
|
||||
MCFG_S3C2440_PALETTE("palette")
|
||||
MCFG_S3C2440_GPIO_PORT_W_CB(WRITE32(gizmondo_state, s3c2440_gpio_port_w))
|
||||
|
||||
MCFG_DISKONCHIP_G3_ADD("diskonchip", 64)
|
||||
|
||||
|
@ -279,7 +279,7 @@ DRIVER_INIT_MEMBER(hp49gp_state,hp49gp)
|
||||
static S3C2410_INTERFACE( hp49gp_s3c2410_intf )
|
||||
{
|
||||
// GPIO (port read / port write)
|
||||
{ DEVCB_DRIVER_MEMBER32(hp49gp_state,s3c2410_gpio_port_r), DEVCB_DRIVER_MEMBER32(hp49gp_state,s3c2410_gpio_port_w) }
|
||||
{ DEVCB_DRIVER_MEMBER32(hp49gp_state,s3c2410_gpio_port_r) }
|
||||
};
|
||||
|
||||
static MACHINE_CONFIG_START( hp49gp, hp49gp_state )
|
||||
@ -301,6 +301,7 @@ static MACHINE_CONFIG_START( hp49gp, hp49gp_state )
|
||||
MCFG_DEVICE_ADD("s3c2410", S3C2410, 12000000)
|
||||
MCFG_DEVICE_CONFIG(hp49gp_s3c2410_intf)
|
||||
MCFG_S3C2410_PALETTE("palette")
|
||||
MCFG_S3C2410_GPIO_PORT_W_CB(WRITE32(hp49gp_state, s3c2410_gpio_port_w))
|
||||
MCFG_S3C2410_LCD_FLAGS(S3C24XX_INTERFACE_LCD_REVERSE)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -212,7 +212,7 @@ DRIVER_INIT_MEMBER(mini2440_state,mini2440)
|
||||
static S3C2440_INTERFACE( mini2440_s3c2440_intf )
|
||||
{
|
||||
// GPIO (port read / port write)
|
||||
{ DEVCB_DRIVER_MEMBER32(mini2440_state,s3c2440_gpio_port_r), DEVCB_DRIVER_MEMBER32(mini2440_state,s3c2440_gpio_port_w) }
|
||||
{ DEVCB_DRIVER_MEMBER32(mini2440_state,s3c2440_gpio_port_r) }
|
||||
};
|
||||
|
||||
static NAND_INTERFACE( mini2440_nand_intf )
|
||||
@ -245,6 +245,7 @@ static MACHINE_CONFIG_START( mini2440, mini2440_state )
|
||||
MCFG_DEVICE_CONFIG(mini2440_s3c2440_intf)
|
||||
MCFG_S3C2440_PALETTE("palette")
|
||||
MCFG_S3C2440_CORE_PIN_R_CB(READ32(mini2440_state, s3c2440_core_pin_r))
|
||||
MCFG_S3C2440_GPIO_PORT_W_CB(WRITE32(mini2440_state, s3c2440_gpio_port_w))
|
||||
MCFG_S3C2440_ADC_DATA_R_CB(READ32(mini2440_state, s3c2440_adc_data_r))
|
||||
MCFG_S3C2440_I2S_DATA_W_CB(WRITE16(mini2440_state, s3c2440_i2s_data_w))
|
||||
MCFG_S3C2440_NAND_COMMAND_W_CB(WRITE8(mini2440_state, s3c2440_nand_command_w))
|
||||
|
@ -278,7 +278,7 @@ DRIVER_INIT_MEMBER(palmz22_state,palmz22)
|
||||
static S3C2410_INTERFACE( palmz22_s3c2410_intf )
|
||||
{
|
||||
// GPIO (port read / port write)
|
||||
{ DEVCB_DRIVER_MEMBER32(palmz22_state,s3c2410_gpio_port_r), DEVCB_DRIVER_MEMBER32(palmz22_state,s3c2410_gpio_port_w)}
|
||||
{ DEVCB_DRIVER_MEMBER32(palmz22_state,s3c2410_gpio_port_r) }
|
||||
};
|
||||
|
||||
static NAND_INTERFACE( palmz22_nand_intf )
|
||||
@ -305,6 +305,7 @@ static MACHINE_CONFIG_START( palmz22, palmz22_state )
|
||||
MCFG_DEVICE_CONFIG(palmz22_s3c2410_intf)
|
||||
MCFG_S3C2410_PALETTE("palette")
|
||||
MCFG_S3C2410_CORE_PIN_R_CB(READ32(palmz22_state, s3c2410_core_pin_r))
|
||||
MCFG_S3C2410_GPIO_PORT_W_CB(WRITE32(palmz22_state, s3c2410_gpio_port_w))
|
||||
MCFG_S3C2410_ADC_DATA_R_CB(READ32(palmz22_state, s3c2410_adc_data_r))
|
||||
MCFG_S3C2410_NAND_COMMAND_W_CB(WRITE8(palmz22_state, s3c2410_nand_command_w))
|
||||
MCFG_S3C2410_NAND_ADDRESS_W_CB(WRITE8(palmz22_state, s3c2410_nand_address_w))
|
||||
|
Loading…
Reference in New Issue
Block a user