Hi i.mx experts,
I am trying create a hardware driver module for linux kernel. The hardware is connecting to the i.mx28 through UART, therefore I am trying to access the UART register directly through iowrite(). However I found that I can never write to the register address. Below is code I am using:
release_mem_region(UARTBASE_PA, 145);
if(request_mem_region(UARTBASE_PA, 145, "myserial") ==NULL){
printk("iomem request refused\n");
} else
UARTBASE =(u32) ioremap_nocache((u32) UARTBASE_PA, 145);
iowrite32((u32) 0x100,(u32) (UARTBASE+0x20));
x=ioread32(UARTBASE+0x20);
printk("%x\ \n", x);
Where the ioread() output always is the default value instead of the one I write to it.
I have no idea how to solve this problem, please help, any idea will be helpful.
Thank you in advance!
James