pxa2xx_keypad: convert to memory API
Signed-off-by: Benoit Canet <benoit.canet@gmail.com> Signed-off-by: Avi Kivity <avi@redhat.com>
This commit is contained in:
		
							parent
							
								
									59aee13c82
								
							
						
					
					
						commit
						6cd816b83f
					
				
							
								
								
									
										3
									
								
								hw/pxa.h
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								hw/pxa.h
									
									
									
									
									
								
							@ -105,7 +105,8 @@ struct  keymap {
 | 
				
			|||||||
    int row;
 | 
					    int row;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
typedef struct PXA2xxKeyPadState PXA2xxKeyPadState;
 | 
					typedef struct PXA2xxKeyPadState PXA2xxKeyPadState;
 | 
				
			||||||
PXA2xxKeyPadState *pxa27x_keypad_init(target_phys_addr_t base,
 | 
					PXA2xxKeyPadState *pxa27x_keypad_init(MemoryRegion *sysmem,
 | 
				
			||||||
 | 
					                                      target_phys_addr_t base,
 | 
				
			||||||
                                      qemu_irq irq);
 | 
					                                      qemu_irq irq);
 | 
				
			||||||
void pxa27x_register_keypad(PXA2xxKeyPadState *kp, struct keymap *map,
 | 
					void pxa27x_register_keypad(PXA2xxKeyPadState *kp, struct keymap *map,
 | 
				
			||||||
                int size);
 | 
					                int size);
 | 
				
			||||||
 | 
				
			|||||||
@ -2149,7 +2149,7 @@ PXA2xxState *pxa270_init(MemoryRegion *address_space,
 | 
				
			|||||||
                    qdev_get_gpio_in(s->dma, PXA2XX_RX_RQ_I2S),
 | 
					                    qdev_get_gpio_in(s->dma, PXA2XX_RX_RQ_I2S),
 | 
				
			||||||
                    qdev_get_gpio_in(s->dma, PXA2XX_TX_RQ_I2S));
 | 
					                    qdev_get_gpio_in(s->dma, PXA2XX_TX_RQ_I2S));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    s->kp = pxa27x_keypad_init(0x41500000,
 | 
					    s->kp = pxa27x_keypad_init(address_space, 0x41500000,
 | 
				
			||||||
                    qdev_get_gpio_in(s->pic, PXA2XX_PIC_KEYPAD));
 | 
					                    qdev_get_gpio_in(s->pic, PXA2XX_PIC_KEYPAD));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /* GPIO1 resets the processor */
 | 
					    /* GPIO1 resets the processor */
 | 
				
			||||||
 | 
				
			|||||||
@ -80,6 +80,7 @@
 | 
				
			|||||||
#define PXAKBD_MAXCOL   8
 | 
					#define PXAKBD_MAXCOL   8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
struct PXA2xxKeyPadState {
 | 
					struct PXA2xxKeyPadState {
 | 
				
			||||||
 | 
					    MemoryRegion iomem;
 | 
				
			||||||
    qemu_irq    irq;
 | 
					    qemu_irq    irq;
 | 
				
			||||||
    struct  keymap *map;
 | 
					    struct  keymap *map;
 | 
				
			||||||
    int         pressed_cnt;
 | 
					    int         pressed_cnt;
 | 
				
			||||||
@ -174,7 +175,8 @@ out:
 | 
				
			|||||||
    return;
 | 
					    return;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static uint32_t pxa2xx_keypad_read(void *opaque, target_phys_addr_t offset)
 | 
					static uint64_t pxa2xx_keypad_read(void *opaque, target_phys_addr_t offset,
 | 
				
			||||||
 | 
					                                   unsigned size)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    PXA2xxKeyPadState *s = (PXA2xxKeyPadState *) opaque;
 | 
					    PXA2xxKeyPadState *s = (PXA2xxKeyPadState *) opaque;
 | 
				
			||||||
    uint32_t tmp;
 | 
					    uint32_t tmp;
 | 
				
			||||||
@ -235,8 +237,8 @@ static uint32_t pxa2xx_keypad_read(void *opaque, target_phys_addr_t offset)
 | 
				
			|||||||
    return 0;
 | 
					    return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void pxa2xx_keypad_write(void *opaque,
 | 
					static void pxa2xx_keypad_write(void *opaque, target_phys_addr_t offset,
 | 
				
			||||||
                target_phys_addr_t offset, uint32_t value)
 | 
					                                uint64_t value, unsigned size)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    PXA2xxKeyPadState *s = (PXA2xxKeyPadState *) opaque;
 | 
					    PXA2xxKeyPadState *s = (PXA2xxKeyPadState *) opaque;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -277,16 +279,10 @@ static void pxa2xx_keypad_write(void *opaque,
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static CPUReadMemoryFunc * const pxa2xx_keypad_readfn[] = {
 | 
					static const MemoryRegionOps pxa2xx_keypad_ops = {
 | 
				
			||||||
    pxa2xx_keypad_read,
 | 
					    .read = pxa2xx_keypad_read,
 | 
				
			||||||
    pxa2xx_keypad_read,
 | 
					    .write = pxa2xx_keypad_write,
 | 
				
			||||||
    pxa2xx_keypad_read
 | 
					    .endianness = DEVICE_NATIVE_ENDIAN,
 | 
				
			||||||
};
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static CPUWriteMemoryFunc * const pxa2xx_keypad_writefn[] = {
 | 
					 | 
				
			||||||
    pxa2xx_keypad_write,
 | 
					 | 
				
			||||||
    pxa2xx_keypad_write,
 | 
					 | 
				
			||||||
    pxa2xx_keypad_write
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static const VMStateDescription vmstate_pxa2xx_keypad = {
 | 
					static const VMStateDescription vmstate_pxa2xx_keypad = {
 | 
				
			||||||
@ -306,18 +302,18 @@ static const VMStateDescription vmstate_pxa2xx_keypad = {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
PXA2xxKeyPadState *pxa27x_keypad_init(target_phys_addr_t base,
 | 
					PXA2xxKeyPadState *pxa27x_keypad_init(MemoryRegion *sysmem,
 | 
				
			||||||
 | 
					                                      target_phys_addr_t base,
 | 
				
			||||||
                                      qemu_irq irq)
 | 
					                                      qemu_irq irq)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    int iomemtype;
 | 
					 | 
				
			||||||
    PXA2xxKeyPadState *s;
 | 
					    PXA2xxKeyPadState *s;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    s = (PXA2xxKeyPadState *) g_malloc0(sizeof(PXA2xxKeyPadState));
 | 
					    s = (PXA2xxKeyPadState *) g_malloc0(sizeof(PXA2xxKeyPadState));
 | 
				
			||||||
    s->irq = irq;
 | 
					    s->irq = irq;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    iomemtype = cpu_register_io_memory(pxa2xx_keypad_readfn,
 | 
					    memory_region_init_io(&s->iomem, &pxa2xx_keypad_ops, s,
 | 
				
			||||||
                    pxa2xx_keypad_writefn, s, DEVICE_NATIVE_ENDIAN);
 | 
					                          "pxa2xx-keypad", 0x00100000);
 | 
				
			||||||
    cpu_register_physical_memory(base, 0x00100000, iomemtype);
 | 
					    memory_region_add_subregion(sysmem, base, &s->iomem);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    vmstate_register(NULL, 0, &vmstate_pxa2xx_keypad, s);
 | 
					    vmstate_register(NULL, 0, &vmstate_pxa2xx_keypad, s);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user