Final round of clean-ups - AT / PS/2 KBC devices reduced to a single kbc_at_device added with parameters.

This commit is contained in:
OBattler
2025-08-23 16:12:48 +02:00
parent 713c5a3e59
commit d333ea8b4f
19 changed files with 484 additions and 765 deletions

View File

@@ -167,7 +167,7 @@ sis_5571_init(UNUSED(const device_t *info))
dev->ide = device_add_linked(&sis_5572_ide_device, dev->sis);
dev->usb = device_add_linked(&sis_5572_usb_device, dev->sis);
device_add_params(&kbc_at_sis_device, (void *) 0x00000000);
device_add_params(&kbc_at_device, (void *) KBC_VEN_SIS);
return dev;
}

View File

@@ -167,7 +167,7 @@ sis_5581_init(UNUSED(const device_t *info))
dev->ide = device_add_linked(&sis_5582_ide_device, dev->sis);
dev->usb = device_add_linked(&sis_5582_usb_device, dev->sis);
device_add_params(&kbc_at_sis_device, (void *) 0x00000000);
device_add_params(&kbc_at_device, (void *) KBC_VEN_SIS);
return dev;
}

View File

@@ -179,7 +179,7 @@ sis_5591_init(UNUSED(const device_t *info))
else
dev->pmu = device_add_linked(&sis_5595_pmu_device, dev->sis);
device_add_params(&kbc_at_sis_device, (void *) 0x00000000);
device_add_params(&kbc_at_device, (void *) KBC_VEN_SIS);
return dev;
}

View File

@@ -179,7 +179,7 @@ sis_5600_init(UNUSED(const device_t *info))
else
dev->pmu = device_add_linked(&sis_5595_pmu_device, dev->sis);
device_add_params(&kbc_at_sis_device, (void *) 0x00000000);
device_add_params(&kbc_at_device, (void *) KBC_VEN_SIS);
return dev;
}

View File

@@ -420,7 +420,7 @@ umc_8886_init(const device_t *info)
}
if (machine_get_kbc_device(machine) == NULL)
device_add(&kbc_at_umc_device);
device_add_params(&kbc_at_device, (void *) KBC_VEN_UMC);
umc_8886_reset(dev);

View File

@@ -1775,7 +1775,7 @@ pipc_init(const device_t *info)
acpi_set_irq_mode(dev->acpi, 0);
}
uint32_t kbc_params = 0x00004200;
uint32_t kbc_params = 0x00424600;
/*
NOTE: The VIA VT82C42N returns 0x46 ('F') in command 0xA1 (so it
emulates the AMI KF/AMIKey KBC firmware), and 0x42 ('B') in
@@ -1791,19 +1791,21 @@ pipc_init(const device_t *info)
switch (dev->local) {
/* 596A, 596B, 686B, and 8231 are guesses because we have no probes yet. */
case VIA_PIPC_586A: case VIA_PIPC_596A:
kbc_params = 0x00004300;
kbc_params = 0x00434600;
break;
case VIA_PIPC_586B: case VIA_PIPC_596B:
kbc_params = 0x00004400;
kbc_params = 0x00444600;
break;
case VIA_PIPC_686A: case VIA_PIPC_686B:
case VIA_PIPC_8231:
kbc_params = 0x00004500;
kbc_params = 0x00454600;
break;
}
kbc_params |= KBC_VEN_VIA;
if (machine_get_kbc_device(machine) == NULL)
device_add_params(&kbc_at_via_device, (void *) (uintptr_t) kbc_params);
device_add_params(&kbc_at_device, (void *) (uintptr_t) kbc_params);
return dev;
}

View File

@@ -3077,269 +3077,3 @@ const device_t kbc_at_device = {
.force_redraw = NULL,
.config = NULL
};
const device_t kbc_at_acer_device = {
.name = "PC/AT Keyboard (Acer 90M002A)",
.internal_name = "keyboard_at_acer",
.flags = DEVICE_KBC,
.local = KBC_VEN_ACER,
.init = kbc_at_init,
.close = kbc_at_close,
.reset = kbc_at_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t kbc_at_ali_device = {
.name = "PC/AT Keyboard Controller (ALi M5123/M1543C)",
.internal_name = "kbc_at",
.flags = DEVICE_KBC,
.local = KBC_VEN_ALI,
.init = kbc_at_init,
.close = kbc_at_close,
.reset = kbc_at_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t kbc_at_ami_device = {
.name = "PC/AT Keyboard Controller (AMI)",
.internal_name = "kbc_at_ami",
.flags = DEVICE_KBC,
.local = KBC_VEN_AMI,
.init = kbc_at_init,
.close = kbc_at_close,
.reset = kbc_at_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t kbc_at_ami_tg_device = {
.name = "PC/AT Keyboard Controller (TriGem AMI)",
.internal_name = "kbc_at_ami_tg",
.flags = DEVICE_KBC,
.local = KBC_VEN_AMI_TRIGEM,
.init = kbc_at_init,
.close = kbc_at_close,
.reset = kbc_at_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t kbc_at_award_device = {
.name = "PC/AT Keyboard (Award)",
.internal_name = "keyboard_at_award",
.flags = DEVICE_KBC,
.local = KBC_VEN_AWARD,
.init = kbc_at_init,
.close = kbc_at_close,
.reset = kbc_at_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t kbc_at_chips_device = {
.name = "PC/AT Keyboard (C&T)",
.internal_name = "keyboard_at_chips",
.flags = DEVICE_KBC,
.local = KBC_VEN_CHIPS,
.init = kbc_at_init,
.close = kbc_at_close,
.reset = kbc_at_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t kbc_at_compaq_device = {
.name = "PC/AT Keyboard Controller (Compaq)",
.internal_name = "kbc_at_compaq",
.flags = DEVICE_KBC,
.local = KBC_VEN_COMPAQ,
.init = kbc_at_init,
.close = kbc_at_close,
.reset = kbc_at_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t kbc_at_holtek_device = {
.name = "PC/AT Keyboard (Holtek)",
.internal_name = "keyboard_at_holtek",
.flags = DEVICE_KBC,
.local = KBC_VEN_HOLTEK | KBC_FLAG_IS_ASIC,
.init = kbc_at_init,
.close = kbc_at_close,
.reset = kbc_at_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t kbc_at_ibm_mca_device = {
.name = "PC/AT Keyboard Controller (IBM PS/2 MCA)",
.internal_name = "kbc_at_ibm_mca",
.flags = DEVICE_KBC,
.local = KBC_VEN_IBM,
.init = kbc_at_init,
.close = kbc_at_close,
.reset = kbc_at_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t kbc_at_ncr_device = {
.name = "PC/AT Keyboard Controller (NCR)",
.internal_name = "kbc_at_ncr",
.flags = DEVICE_KBC,
.local = KBC_VEN_NCR,
.init = kbc_at_init,
.close = kbc_at_close,
.reset = kbc_at_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t kbc_at_olivetti_device = {
.name = "PC/AT Keyboard Controller (Olivetti)",
.internal_name = "kbc_at_olivetti",
.flags = DEVICE_KBC,
.local = KBC_VEN_OLIVETTI,
.init = kbc_at_init,
.close = kbc_at_close,
.reset = kbc_at_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t kbc_at_phoenix_device = {
.name = "PC/AT Keyboard Controller (Phoenix)",
.internal_name = "kbc_at_phoenix",
.flags = DEVICE_KBC,
.local = KBC_VEN_PHOENIX,
.init = kbc_at_init,
.close = kbc_at_close,
.reset = kbc_at_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t kbc_at_quadtel_device = {
.name = "PC/AT Keyboard (Quadtel)",
.internal_name = "keyboard_at_quadtel",
.flags = DEVICE_KBC,
.local = KBC_VEN_QUADTEL,
.init = kbc_at_init,
.close = kbc_at_close,
.reset = kbc_at_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t kbc_at_siemens_device = {
.name = "PC/AT Keyboard Controller",
.internal_name = "kbc_at_siemens",
.flags = DEVICE_KBC,
.local = KBC_VEN_SIEMENS,
.init = kbc_at_init,
.close = kbc_at_close,
.reset = kbc_at_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t kbc_at_sis_device = {
.name = "PC/AT Keyboard Controller (SiS 5xxx)",
.internal_name = "kbc_at_sis",
.flags = DEVICE_KBC,
.local = KBC_VEN_SIS,
.init = kbc_at_init,
.close = kbc_at_close,
.reset = kbc_at_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t kbc_at_toshiba_device = {
.name = "PC/AT Keyboard Controller (Toshiba)",
.internal_name = "kbc_at_toshiba",
.flags = DEVICE_KBC,
.local = KBC_VEN_TOSHIBA,
.init = kbc_at_init,
.close = kbc_at_close,
.reset = kbc_at_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t kbc_at_umc_device = {
.name = "PC/AT Keyboard (UMC)",
.internal_name = "keyboard_at_umc",
.flags = DEVICE_KBC,
.local = KBC_VEN_UMC | KBC_FLAG_IS_ASIC,
.init = kbc_at_init,
.close = kbc_at_close,
.reset = kbc_at_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t kbc_at_via_device = {
.name = "PC/AT Keyboard (VIA)",
.internal_name = "keyboard_at_via",
.flags = DEVICE_KBC,
.local = KBC_VEN_VIA | KBC_FLAG_IS_ASIC,
.init = kbc_at_init,
.close = kbc_at_close,
.reset = kbc_at_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t kbc_at_xi8088_device = {
.name = "PC/AT Keyboard Controller (Xi8088)",
.internal_name = "kbc_at_xi8088",
.flags = DEVICE_KBC,
.local = KBC_VEN_GENERIC,
.init = kbc_at_init,
.close = kbc_at_close,
.reset = kbc_at_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};

View File

@@ -199,25 +199,6 @@ extern const device_t kbc_xt_fe2010_device;
extern const device_t kbc_xtclone_device;
extern const device_t kbc_at_device;
extern const device_t kbc_at_acer_device;
extern const device_t kbc_at_ali_device;
extern const device_t kbc_at_ami_device;
extern const device_t kbc_at_ami_tg_device;
extern const device_t kbc_at_award_device;
extern const device_t kbc_at_chips_device;
extern const device_t kbc_at_compaq_device;
extern const device_t kbc_at_holtek_device;
extern const device_t kbc_at_ibm_mca_device;
extern const device_t kbc_at_ncr_device;
extern const device_t kbc_at_olivetti_device;
extern const device_t kbc_at_phoenix_device;
extern const device_t kbc_at_quadtel_device;
extern const device_t kbc_at_siemens_device;
extern const device_t kbc_at_sis_device;
extern const device_t kbc_at_toshiba_device;
extern const device_t kbc_at_umc_device;
extern const device_t kbc_at_via_device;
extern const device_t kbc_at_xi8088_device;
extern const device_t keyboard_pc_xt_device;
extern const device_t keyboard_at_device;

View File

@@ -1401,7 +1401,7 @@ machine_at_hot433a_init(const machine_t *model)
machine_force_ps2(1);
else
machine_force_ps2(0);
device_add_params(&kbc_at_holtek_device, (void *) model->kbc_params);
device_add_params(machine_get_kbc_device(machine), (void *) model->kbc_params);
pic_toggle_latch(is_award);

File diff suppressed because it is too large Load Diff

View File

@@ -530,7 +530,7 @@ ali5123_init(const device_t *info)
io_sethandler(FDC_PRIMARY_ADDR, 0x0002,
ali5123_read, NULL, NULL, ali5123_write, NULL, NULL, dev);
device_add(&kbc_at_ali_device);
device_add_params(&kbc_at_device, (void *) KBC_VEN_ALI);
return dev;
}

View File

@@ -764,20 +764,20 @@ fdc37c67x_init(const device_t *info)
switch (dev->kbc_type) {
case FDC37XXX1:
dev->kbc = device_add(&kbc_at_compaq_device);
dev->kbc = device_add_params(&kbc_at_device, (void *) KBC_VEN_COMPAQ);
break;
case FDC37XXX2:
dev->kbc = device_add_params(&kbc_at_ami_device, (void *) 0x00003500);
dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_AMI | 0x00003500));
break;
case FDC37XXX3:
default:
dev->kbc = device_add(&kbc_at_device);
break;
case FDC37XXX5:
dev->kbc = device_add_params(&kbc_at_phoenix_device, (void *) 0x00013800);
dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00013800));
break;
case FDC37XXX7:
dev->kbc = device_add_params(&kbc_at_phoenix_device, (void *) 0x00041600);
dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00041600));
break;
}

View File

@@ -1919,20 +1919,20 @@ fdc37c93x_init(const device_t *info)
switch (dev->kbc_type) {
case FDC37XXX1:
dev->kbc = device_add(&kbc_at_compaq_device);
dev->kbc = device_add_params(&kbc_at_device, (void *) KBC_VEN_COMPAQ);
break;
case FDC37XXX2:
dev->kbc = device_add_params(&kbc_at_ami_device, (void *) 0x00003500);
dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_AMI | 0x00003500));
break;
case FDC37XXX3:
default:
dev->kbc = device_add(&kbc_at_device);
break;
case FDC37XXX5:
dev->kbc = device_add_params(&kbc_at_phoenix_device, (void *) 0x00013800);
dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00013800));
break;
case FDC37XXX7:
dev->kbc = device_add_params(&kbc_at_phoenix_device, (void *) 0x00041600);
dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00041600));
break;
}

View File

@@ -655,20 +655,20 @@ fdc37m60x_init(const device_t *info)
switch (dev->kbc_type) {
case FDC37XXX1:
dev->kbc = device_add(&kbc_at_compaq_device);
dev->kbc = device_add_params(&kbc_at_device, (void *) KBC_VEN_COMPAQ);
break;
case FDC37XXX2:
dev->kbc = device_add_params(&kbc_at_ami_device, (void *) 0x00003500);
dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_AMI | 0x00003500));
break;
case FDC37XXX3:
default:
dev->kbc = device_add(&kbc_at_device);
break;
case FDC37XXX5:
dev->kbc = device_add_params(&kbc_at_phoenix_device, (void *) 0x00013800);
dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00013800));
break;
case FDC37XXX7:
dev->kbc = device_add_params(&kbc_at_phoenix_device, (void *) 0x00041600);
dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00041600));
break;
}

View File

@@ -856,7 +856,7 @@ it86x1f_init(UNUSED(const device_t *info))
io_sethandler(0x279, 1, NULL, NULL, NULL, it86x1f_write_unlock, NULL, NULL, dev);
if (info->local == ITE_IT8671F)
device_add_params(&kbc_at_ami_device, (void *) 0x00004800);
device_add_params(&kbc_at_device, (void *) (KBC_VEN_AMI | 0x00004800));
it86x1f_reset(dev);

View File

@@ -537,13 +537,13 @@ pc87306_init(UNUSED(const device_t *info))
switch (dev->kbc_type) {
case PCX730X_AMI:
default:
dev->kbc = device_add_params(&kbc_at_ami_device, (void *) 0x00003500);
dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_AMI | 0x00003500));
break;
case PCX730X_PHOENIX_42:
dev->kbc = device_add_params(&kbc_at_phoenix_device, (void *) 0x00013700);
dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00013700));
break;
case PCX730X_PHOENIX_42I:
dev->kbc = device_add_params(&kbc_at_phoenix_device, (void *) 0x00041600);
dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00041600));
break;
}

View File

@@ -904,14 +904,14 @@ pc87307_init(const device_t *info)
switch (info->local & PCX730X_KBC) {
case PCX730X_AMI:
default:
dev->kbc = device_add_params(&kbc_at_ami_device, (void *) 0x00003500);
dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_AMI | 0x00003500));
break;
/* Optiplex! */
case PCX730X_PHOENIX_42:
dev->kbc = device_add_params(&kbc_at_phoenix_device, (void *) 0x00013700);
dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00013700));
break;
case PCX730X_PHOENIX_42I:
dev->kbc = device_add_params(&kbc_at_phoenix_device, (void *) 0x00041600);
dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00041600));
break;
}

View File

@@ -739,14 +739,14 @@ pc87309_init(const device_t *info)
switch (info->local & PCX730X_KBC) {
case PCX730X_AMI:
default:
dev->kbc = device_add_params(&kbc_at_ami_device, (void *) 0x00003500);
dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_AMI | 0x00003500));
break;
/* Optiplex! */
case PCX730X_PHOENIX_42:
dev->kbc = device_add_params(&kbc_at_phoenix_device, (void *) 0x00013700);
dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00013700));
break;
case PCX730X_PHOENIX_42I:
dev->kbc = device_add_params(&kbc_at_phoenix_device, (void *) 0x00041600);
dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00041600));
break;
}

View File

@@ -1294,10 +1294,10 @@ w83977_init(const device_t *info)
switch (dev->kbc_type) {
case W83977_AMI:
dev->kbc = device_add_params(&kbc_at_ami_device, (void *) 0x00004800);
dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_AMI | 0x00004800));
break;
case W83977_PHOENIX:
dev->kbc = device_add_params(&kbc_at_phoenix_device, (void *) 0x00041900);
dev->kbc = device_add_params(&kbc_at_device, (void *) (KBC_VEN_PHOENIX | 0x00041900));
break;
}