Revision 6cd816b8 hw/pxa2xx_keypad.c

b/hw/pxa2xx_keypad.c
80 80
#define PXAKBD_MAXCOL   8
81 81

  
82 82
struct PXA2xxKeyPadState {
83
    MemoryRegion iomem;
83 84
    qemu_irq    irq;
84 85
    struct  keymap *map;
85 86
    int         pressed_cnt;
......
174 175
    return;
175 176
}
176 177

  
177
static uint32_t pxa2xx_keypad_read(void *opaque, target_phys_addr_t offset)
178
static uint64_t pxa2xx_keypad_read(void *opaque, target_phys_addr_t offset,
179
                                   unsigned size)
178 180
{
179 181
    PXA2xxKeyPadState *s = (PXA2xxKeyPadState *) opaque;
180 182
    uint32_t tmp;
......
235 237
    return 0;
236 238
}
237 239

  
238
static void pxa2xx_keypad_write(void *opaque,
239
                target_phys_addr_t offset, uint32_t value)
240
static void pxa2xx_keypad_write(void *opaque, target_phys_addr_t offset,
241
                                uint64_t value, unsigned size)
240 242
{
241 243
    PXA2xxKeyPadState *s = (PXA2xxKeyPadState *) opaque;
242 244

  
......
277 279
    }
278 280
}
279 281

  
280
static CPUReadMemoryFunc * const pxa2xx_keypad_readfn[] = {
281
    pxa2xx_keypad_read,
282
    pxa2xx_keypad_read,
283
    pxa2xx_keypad_read
284
};
285

  
286
static CPUWriteMemoryFunc * const pxa2xx_keypad_writefn[] = {
287
    pxa2xx_keypad_write,
288
    pxa2xx_keypad_write,
289
    pxa2xx_keypad_write
282
static const MemoryRegionOps pxa2xx_keypad_ops = {
283
    .read = pxa2xx_keypad_read,
284
    .write = pxa2xx_keypad_write,
285
    .endianness = DEVICE_NATIVE_ENDIAN,
290 286
};
291 287

  
292 288
static const VMStateDescription vmstate_pxa2xx_keypad = {
......
306 302
    }
307 303
};
308 304

  
309
PXA2xxKeyPadState *pxa27x_keypad_init(target_phys_addr_t base,
310
        qemu_irq irq)
305
PXA2xxKeyPadState *pxa27x_keypad_init(MemoryRegion *sysmem,
306
                                      target_phys_addr_t base,
307
                                      qemu_irq irq)
311 308
{
312
    int iomemtype;
313 309
    PXA2xxKeyPadState *s;
314 310

  
315 311
    s = (PXA2xxKeyPadState *) g_malloc0(sizeof(PXA2xxKeyPadState));
316 312
    s->irq = irq;
317 313

  
318
    iomemtype = cpu_register_io_memory(pxa2xx_keypad_readfn,
319
                    pxa2xx_keypad_writefn, s, DEVICE_NATIVE_ENDIAN);
320
    cpu_register_physical_memory(base, 0x00100000, iomemtype);
314
    memory_region_init_io(&s->iomem, &pxa2xx_keypad_ops, s,
315
                          "pxa2xx-keypad", 0x00100000);
316
    memory_region_add_subregion(sysmem, base, &s->iomem);
321 317

  
322 318
    vmstate_register(NULL, 0, &vmstate_pxa2xx_keypad, s);
323 319

  

Also available in: Unified diff