int ChipReadMemory(unsigned int arg_phys_addr,unsigned int *memValue) { void *virt_addr = NULL; unsigned int phys_addr = 0; phys_addr = DEVICE_BASE_ADDRESS + arg_phys_addr; virt_addr = ioremap(phys_addr, 4); if(virt_addr == NULL) { printk("ChipReadMemory: unable to perform ioremap \n"); return -1; } *memValue = readl(virt_addr); iounmap(virt_addr); return 0; } int ChipWriteMemory(unsigned int arg_phys_addr, unsigned int arg_val) { void *virt_addr = NULL; unsigned int phys_addr = 0; phys_addr = DEVICE_BASE_ADDRESS + arg_phys_addr; virt_addr = ioremap(phys_addr, 4); if(virt_addr == NULL) { printk("ChipWriteMemory : unable to perform ioremap \n"); return -1; } writel(arg_val,virt_addr); iounmap(virt_addr); return 0; }