Revision 8ea72f38 hw/stellaris.c

b/hw/stellaris.c
687 687
    SysBusDevice busdev;
688 688
    i2c_bus *bus;
689 689
    qemu_irq irq;
690
    MemoryRegion iomem;
690 691
    uint32_t msa;
691 692
    uint32_t mcs;
692 693
    uint32_t mdr;
......
704 705
#define STELLARIS_I2C_MCS_IDLE    0x20
705 706
#define STELLARIS_I2C_MCS_BUSBSY  0x40
706 707

  
707
static uint32_t stellaris_i2c_read(void *opaque, target_phys_addr_t offset)
708
static uint64_t stellaris_i2c_read(void *opaque, target_phys_addr_t offset,
709
                                   unsigned size)
708 710
{
709 711
    stellaris_i2c_state *s = (stellaris_i2c_state *)opaque;
710 712

  
......
741 743
}
742 744

  
743 745
static void stellaris_i2c_write(void *opaque, target_phys_addr_t offset,
744
                                uint32_t value)
746
                                uint64_t value, unsigned size)
745 747
{
746 748
    stellaris_i2c_state *s = (stellaris_i2c_state *)opaque;
747 749

  
......
832 834
    stellaris_i2c_update(s);
833 835
}
834 836

  
835
static CPUReadMemoryFunc * const stellaris_i2c_readfn[] = {
836
   stellaris_i2c_read,
837
   stellaris_i2c_read,
838
   stellaris_i2c_read
839
};
840

  
841
static CPUWriteMemoryFunc * const stellaris_i2c_writefn[] = {
842
   stellaris_i2c_write,
843
   stellaris_i2c_write,
844
   stellaris_i2c_write
837
static const MemoryRegionOps stellaris_i2c_ops = {
838
    .read = stellaris_i2c_read,
839
    .write = stellaris_i2c_write,
840
    .endianness = DEVICE_NATIVE_ENDIAN,
845 841
};
846 842

  
847 843
static const VMStateDescription vmstate_stellaris_i2c = {
......
865 861
{
866 862
    stellaris_i2c_state *s = FROM_SYSBUS(stellaris_i2c_state, dev);
867 863
    i2c_bus *bus;
868
    int iomemtype;
869 864

  
870 865
    sysbus_init_irq(dev, &s->irq);
871 866
    bus = i2c_init_bus(&dev->qdev, "i2c");
872 867
    s->bus = bus;
873 868

  
874
    iomemtype = cpu_register_io_memory(stellaris_i2c_readfn,
875
                                       stellaris_i2c_writefn, s,
876
                                       DEVICE_NATIVE_ENDIAN);
877
    sysbus_init_mmio(dev, 0x1000, iomemtype);
869
    memory_region_init_io(&s->iomem, &stellaris_i2c_ops, s,
870
                          "i2c", 0x1000);
871
    sysbus_init_mmio_region(dev, &s->iomem);
878 872
    /* ??? For now we only implement the master interface.  */
879 873
    stellaris_i2c_reset(s);
880 874
    vmstate_register(&dev->qdev, -1, &vmstate_stellaris_i2c, s);

Also available in: Unified diff