s3c24xx: isolated the callback that resists devcb2 conversion (nw)

This commit is contained in:
Ivan Vangelista 2014-04-25 14:37:19 +00:00
parent 5e0dbfed80
commit 90cf5ab2cb
12 changed files with 31 additions and 14 deletions

View File

@ -45,6 +45,7 @@ s3c2400_device::s3c2400_device(const machine_config &mconfig, const char *tag, d
m_cpu(*this, ":maincpu"), m_cpu(*this, ":maincpu"),
m_pin_r_cb(*this), m_pin_r_cb(*this),
m_pin_w_cb(*this), m_pin_w_cb(*this),
m_port_w_cb(*this),
m_scl_w_cb(*this), m_scl_w_cb(*this),
m_sda_r_cb(*this), m_sda_r_cb(*this),
m_sda_w_cb(*this), m_sda_w_cb(*this),

View File

@ -26,6 +26,9 @@
#define MCFG_S3C2400_CORE_PIN_W_CB(_devcb) \ #define MCFG_S3C2400_CORE_PIN_W_CB(_devcb) \
devcb = &s3c2400_device::set_core_pin_w_callback(*device, DEVCB2_##_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) \ #define MCFG_S3C2400_I2C_SCL_W_CB(_devcb) \
devcb = &s3c2400_device::set_i2c_scl_w_callback(*device, DEVCB2_##_devcb); devcb = &s3c2400_device::set_i2c_scl_w_callback(*device, DEVCB2_##_devcb);
@ -62,7 +65,6 @@ enum
struct s3c2400_interface_gpio struct s3c2400_interface_gpio
{ {
devcb_read32 port_r; devcb_read32 port_r;
devcb_write32 port_w;
}; };
struct s3c2400_interface struct s3c2400_interface
@ -369,6 +371,7 @@ public:
static void static_set_palette_tag(device_t &device, const char *tag); 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_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_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_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_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); } 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_read32 m_pin_r_cb;
devcb2_write32 m_pin_w_cb; devcb2_write32 m_pin_w_cb;
devcb_resolved_read32 m_port_r; 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_write_line m_scl_w_cb;
devcb2_read_line m_sda_r_cb; devcb2_read_line m_sda_r_cb;
devcb2_write_line m_sda_w_cb; devcb2_write_line m_sda_w_cb;

View File

@ -45,6 +45,7 @@ s3c2410_device::s3c2410_device(const machine_config &mconfig, const char *tag, d
m_cpu(*this, ":maincpu"), m_cpu(*this, ":maincpu"),
m_pin_r_cb(*this), m_pin_r_cb(*this),
m_pin_w_cb(*this), m_pin_w_cb(*this),
m_port_w_cb(*this),
m_scl_w_cb(*this), m_scl_w_cb(*this),
m_sda_r_cb(*this), m_sda_r_cb(*this),
m_sda_w_cb(*this), m_sda_w_cb(*this),

View File

@ -26,6 +26,9 @@
#define MCFG_S3C2410_CORE_PIN_W_CB(_devcb) \ #define MCFG_S3C2410_CORE_PIN_W_CB(_devcb) \
devcb = &s3c2410_device::set_core_pin_w_callback(*device, DEVCB2_##_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) \ #define MCFG_S3C2410_I2C_SCL_W_CB(_devcb) \
devcb = &s3c2410_device::set_i2c_scl_w_callback(*device, DEVCB2_##_devcb); devcb = &s3c2410_device::set_i2c_scl_w_callback(*device, DEVCB2_##_devcb);
@ -83,7 +86,6 @@ enum
struct s3c2410_interface_gpio struct s3c2410_interface_gpio
{ {
devcb_read32 port_r; devcb_read32 port_r;
devcb_write32 port_w;
}; };
struct s3c2410_interface struct s3c2410_interface
@ -457,6 +459,7 @@ public:
static void static_set_palette_tag(device_t &device, const char *tag); 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_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_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_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_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); } 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_read32 m_pin_r_cb;
devcb2_write32 m_pin_w_cb; devcb2_write32 m_pin_w_cb;
devcb_resolved_read32 m_port_r; 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_write_line m_scl_w_cb;
devcb2_read_line m_sda_r_cb; devcb2_read_line m_sda_r_cb;
devcb2_write_line m_sda_w_cb; devcb2_write_line m_sda_w_cb;

View File

@ -45,6 +45,7 @@ s3c2440_device::s3c2440_device(const machine_config &mconfig, const char *tag, d
m_cpu(*this, ":maincpu"), m_cpu(*this, ":maincpu"),
m_pin_r_cb(*this), m_pin_r_cb(*this),
m_pin_w_cb(*this), m_pin_w_cb(*this),
m_port_w_cb(*this),
m_scl_w_cb(*this), m_scl_w_cb(*this),
m_sda_r_cb(*this), m_sda_r_cb(*this),
m_sda_w_cb(*this), m_sda_w_cb(*this),

View File

@ -25,6 +25,9 @@
#define MCFG_S3C2440_CORE_PIN_W_CB(_devcb) \ #define MCFG_S3C2440_CORE_PIN_W_CB(_devcb) \
devcb = &s3c2440_device::set_core_pin_w_callback(*device, DEVCB2_##_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) \ #define MCFG_S3C2440_I2C_SCL_W_CB(_devcb) \
devcb = &s3c2440_device::set_i2c_scl_w_callback(*device, DEVCB2_##_devcb); devcb = &s3c2440_device::set_i2c_scl_w_callback(*device, DEVCB2_##_devcb);
@ -83,7 +86,6 @@ enum
struct s3c2440_interface_gpio struct s3c2440_interface_gpio
{ {
devcb_read32 port_r; devcb_read32 port_r;
devcb_write32 port_w;
}; };
struct s3c2440_interface struct s3c2440_interface
@ -489,6 +491,7 @@ public:
static void static_set_palette_tag(device_t &device, const char *tag); 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_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_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_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_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); } 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_read32 m_pin_r_cb;
devcb2_write32 m_pin_w_cb; devcb2_write32 m_pin_w_cb;
devcb_resolved_read32 m_port_r; 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_write_line m_scl_w_cb;
devcb2_read_line m_sda_r_cb; devcb2_read_line m_sda_r_cb;
devcb2_write_line m_sda_w_cb; devcb2_write_line m_sda_w_cb;

View File

@ -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) 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_r_cb.resolve();
m_pin_w_cb.resolve_safe(); m_pin_w_cb.resolve_safe();
m_port_r.resolve(m_iface_gpio.port_r, *this); 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_scl_w_cb.resolve();
m_sda_r_cb.resolve(); m_sda_r_cb.resolve();
m_sda_w_cb.resolve(); m_sda_w_cb.resolve();

View File

@ -562,7 +562,7 @@ INPUT_PORTS_END
static const s3c2410_interface bballoon_s3c2410_intf = static const s3c2410_interface bballoon_s3c2410_intf =
{ {
// GPIO (port read / port write) // 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_DEVICE_CONFIG(bballoon_s3c2410_intf)
MCFG_S3C2410_PALETTE("palette") MCFG_S3C2410_PALETTE("palette")
MCFG_S3C2410_CORE_PIN_R_CB(READ32(ghosteo_state, s3c2410_core_pin_r)) 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_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_R_CB(READLINE(ghosteo_state, s3c2410_i2c_sda_r))
MCFG_S3C2410_I2C_SDA_W_CB(WRITELINE(ghosteo_state, s3c2410_i2c_sda_w)) MCFG_S3C2410_I2C_SDA_W_CB(WRITELINE(ghosteo_state, s3c2410_i2c_sda_w))

View File

@ -183,7 +183,7 @@ DRIVER_INIT_MEMBER(gizmondo_state,gizmondo)
static S3C2440_INTERFACE( gizmondo_s3c2440_intf ) static S3C2440_INTERFACE( gizmondo_s3c2440_intf )
{ {
// GPIO (port read / port write) // 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 ) 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_ADD("s3c2440", S3C2440, 12000000)
MCFG_DEVICE_CONFIG(gizmondo_s3c2440_intf) MCFG_DEVICE_CONFIG(gizmondo_s3c2440_intf)
MCFG_S3C2440_PALETTE("palette") MCFG_S3C2440_PALETTE("palette")
MCFG_S3C2440_GPIO_PORT_W_CB(WRITE32(gizmondo_state, s3c2440_gpio_port_w))
MCFG_DISKONCHIP_G3_ADD("diskonchip", 64) MCFG_DISKONCHIP_G3_ADD("diskonchip", 64)

View File

@ -279,7 +279,7 @@ DRIVER_INIT_MEMBER(hp49gp_state,hp49gp)
static S3C2410_INTERFACE( hp49gp_s3c2410_intf ) static S3C2410_INTERFACE( hp49gp_s3c2410_intf )
{ {
// GPIO (port read / port write) // 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 ) 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_ADD("s3c2410", S3C2410, 12000000)
MCFG_DEVICE_CONFIG(hp49gp_s3c2410_intf) MCFG_DEVICE_CONFIG(hp49gp_s3c2410_intf)
MCFG_S3C2410_PALETTE("palette") 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) MCFG_S3C2410_LCD_FLAGS(S3C24XX_INTERFACE_LCD_REVERSE)
MACHINE_CONFIG_END MACHINE_CONFIG_END

View File

@ -212,7 +212,7 @@ DRIVER_INIT_MEMBER(mini2440_state,mini2440)
static S3C2440_INTERFACE( mini2440_s3c2440_intf ) static S3C2440_INTERFACE( mini2440_s3c2440_intf )
{ {
// GPIO (port read / port write) // 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 ) static NAND_INTERFACE( mini2440_nand_intf )
@ -245,6 +245,7 @@ static MACHINE_CONFIG_START( mini2440, mini2440_state )
MCFG_DEVICE_CONFIG(mini2440_s3c2440_intf) MCFG_DEVICE_CONFIG(mini2440_s3c2440_intf)
MCFG_S3C2440_PALETTE("palette") MCFG_S3C2440_PALETTE("palette")
MCFG_S3C2440_CORE_PIN_R_CB(READ32(mini2440_state, s3c2440_core_pin_r)) 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_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_I2S_DATA_W_CB(WRITE16(mini2440_state, s3c2440_i2s_data_w))
MCFG_S3C2440_NAND_COMMAND_W_CB(WRITE8(mini2440_state, s3c2440_nand_command_w)) MCFG_S3C2440_NAND_COMMAND_W_CB(WRITE8(mini2440_state, s3c2440_nand_command_w))

View File

@ -278,7 +278,7 @@ DRIVER_INIT_MEMBER(palmz22_state,palmz22)
static S3C2410_INTERFACE( palmz22_s3c2410_intf ) static S3C2410_INTERFACE( palmz22_s3c2410_intf )
{ {
// GPIO (port read / port write) // 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 ) static NAND_INTERFACE( palmz22_nand_intf )
@ -305,6 +305,7 @@ static MACHINE_CONFIG_START( palmz22, palmz22_state )
MCFG_DEVICE_CONFIG(palmz22_s3c2410_intf) MCFG_DEVICE_CONFIG(palmz22_s3c2410_intf)
MCFG_S3C2410_PALETTE("palette") MCFG_S3C2410_PALETTE("palette")
MCFG_S3C2410_CORE_PIN_R_CB(READ32(palmz22_state, s3c2410_core_pin_r)) 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_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_COMMAND_W_CB(WRITE8(palmz22_state, s3c2410_nand_command_w))
MCFG_S3C2410_NAND_ADDRESS_W_CB(WRITE8(palmz22_state, s3c2410_nand_address_w)) MCFG_S3C2410_NAND_ADDRESS_W_CB(WRITE8(palmz22_state, s3c2410_nand_address_w))