208
211
944, 912, 1008, 976, 816, 784, 880, 848
211
static void cs_reset (void *opaque)
214
static void cs4231a_reset (DeviceState *dev)
216
CSState *s = CS4231A (dev);
215
218
s->regs[Index_Address] = 0x40;
216
219
s->regs[Index_Data] = 0x00;
644
static int cs4231a_initfn (ISADevice *dev)
646
CSState *s = DO_UPCAST (CSState, dev, dev);
648
isa_init_irq (dev, &s->pic, s->irq);
650
memory_region_init_io (&s->ioports, &cs_ioport_ops, s, "cs4231a", 4);
651
isa_register_ioport (dev, &s->ioports, s->port);
647
static void cs4231a_initfn (Object *obj)
649
CSState *s = CS4231A (obj);
651
memory_region_init_io (&s->ioports, OBJECT(s), &cs_ioport_ops, s,
655
static void cs4231a_realizefn (DeviceState *dev, Error **errp)
657
ISADevice *d = ISA_DEVICE (dev);
658
CSState *s = CS4231A (dev);
660
isa_init_irq (d, &s->pic, s->irq);
662
isa_register_ioport (d, &s->ioports, s->port);
653
664
DMA_register_channel (s->dma, cs_dma_read, s);
655
qemu_register_reset (cs_reset, s);
658
666
AUD_register_card ("cs4231a", &s->card);
662
669
static int cs4231a_init (ISABus *bus)
664
isa_create_simple (bus, "cs4231a");
671
isa_create_simple (bus, TYPE_CS4231A);
675
682
static void cs4231a_class_initfn (ObjectClass *klass, void *data)
677
684
DeviceClass *dc = DEVICE_CLASS (klass);
678
ISADeviceClass *ic = ISA_DEVICE_CLASS (klass);
679
ic->init = cs4231a_initfn;
686
dc->realize = cs4231a_realizefn;
687
dc->reset = cs4231a_reset;
688
set_bit(DEVICE_CATEGORY_SOUND, dc->categories);
680
689
dc->desc = "Crystal Semiconductor CS4231A";
681
690
dc->vmsd = &vmstate_cs4231a;
682
691
dc->props = cs4231a_properties;
685
694
static const TypeInfo cs4231a_info = {
695
.name = TYPE_CS4231A,
687
696
.parent = TYPE_ISA_DEVICE,
688
697
.instance_size = sizeof (CSState),
698
.instance_init = cs4231a_initfn,
689
699
.class_init = cs4231a_class_initfn,