AC97 Codec: Add the ICE1232/VT1611A codec

This commit is contained in:
RichardG867
2025-12-19 18:01:30 -03:00
parent ff0a8bad1f
commit 9c6eccbf5a
2 changed files with 26 additions and 1 deletions

View File

@@ -108,6 +108,7 @@
#define AC97_CODEC_ALC100 AC97_VENDOR_ID('A', 'L', 'C', 0x20)
#define AC97_CODEC_CS4297 AC97_VENDOR_ID('C', 'R', 'Y', 0x03)
#define AC97_CODEC_CS4297A AC97_VENDOR_ID('C', 'R', 'Y', 0x11)
#define AC97_CODEC_ICE1232 AC97_VENDOR_ID('I', 'C', 'E', 0x11)
#define AC97_CODEC_STAC9708 AC97_VENDOR_ID(0x83, 0x84, 0x76, 0x08)
#define AC97_CODEC_STAC9721 AC97_VENDOR_ID(0x83, 0x84, 0x76, 0x09)
#define AC97_CODEC_TR28023 AC97_VENDOR_ID('T', 'R', 'A', 0x03)
@@ -161,9 +162,11 @@ extern const device_t alc100_device;
extern const device_t cs4297_device;
extern const device_t cs4297a_device;
# define ct1297_device tr28023_device
extern const device_t ice1232_device;
extern const device_t stac9708_device;
extern const device_t stac9721_device;
extern const device_t tr28023_device;
# define vt1611a_device ice1232_device
extern const device_t w83971d_device;
extern const device_t wm9701a_device;
#ifdef USE_SOFTMODEM

View File

@@ -35,7 +35,7 @@ static const struct {
uint16_t reset_flags;
uint16_t extid_flags;
uint8_t pcsr_mask; /* register 26 bits [15:8] */
uint8_t eascr_mask; /* register 2A bits [14:11] (audio) or 56 bits ... */
uint8_t eascr_mask; /* register 2A bits [14:11] */
uint8_t modem_flags;
uint16_t gpi_mask; /* modem GPIO input-capable bits */
uint16_t gpo_mask; /* modem GPIO output-capable bits */
@@ -80,6 +80,14 @@ static const struct {
.pcsr_mask = 0xff,
.vendor_regs = (const ac97_vendor_reg_t[]) {{0, 0x5e, 0x0000, 0x01b0}, {0, 0x60, 0x0023, 0x0001}, {0, 0x68, 0x0000, 0xdfff}, {0}}
},
{
.device = &ice1232_device,
.misc_flags = AC97_AUDIO | AC97_AUXOUT | AC97_MONOOUT | AC97_PCBEEP | AC97_PHONE | AC97_VIDEO | AC97_AUXIN | AC97_MS | AC97_LPBK,
.reset_flags = AC97_HPOUT | AC97_DAC_18B | AC97_ADC_18B | (27 << AC97_3D_SHIFT),
.extid_flags = AC97_VRA | AC97_AMAP,
.pcsr_mask = 0xff,
.vendor_regs = (const ac97_vendor_reg_t[]) {{0, 0x5a, 0x0021, 0x00fd}, {0}}
},
{
.device = &stac9708_device,
.misc_flags = AC97_AUDIO | AC97_AUXOUT | AC97_MONOOUT | AC97_PCBEEP | AC97_PHONE | AC97_VIDEO | AC97_AUXIN | AC97_MS | AC97_LPBK,
@@ -890,6 +898,20 @@ const device_t cs4297a_device = {
.config = NULL
};
const device_t ice1232_device = {
.name = "ICEnsemble ICE1232 / VIA VT1611A",
.internal_name = "ice1232",
.flags = DEVICE_AC97,
.local = AC97_CODEC_ICE1232,
.init = ac97_codec_init,
.close = ac97_codec_close,
.reset = ac97_codec_reset,
.available = NULL,
.speed_changed = NULL,
.force_redraw = NULL,
.config = NULL
};
const device_t stac9708_device = {
.name = "SigmaTel STAC9708",
.internal_name = "stac9708",