无法在UART4中进行软件复位

时间:2014-04-28 08:53:20

标签: c linux-device-driver embedded-linux uart

我的omap4460 pandaboard加载了linux内核3.4。我使用echo -n omap_uart.3 > /sys/bus/platform/drivers/omap_uart/unbind从uart4实例解除了绑定驱动程序。

我使用简单的struct file_operations

编写了一个新的驱动程序

现在,在我进行软件复位并等待其完成后,在pad配置之后,循环不会出现循环。

l = ioread32(io_map + 0x54);
    printk(KERN_ALERT "SYSC value before = %x\n", l);
    iowrite32(0x2,io_map + 0x54);
    l = ioread32(io_map + 0x54);
    printk(KERN_ALERT "SYSC value after = %x\n", l);
    readval = ioread32(io_map + 0x58);
    printk(KERN_ALERT "SYSS read value = %x\n", readval);
    while((readval & 0x1)== 0);
    printk(KERN_ALERT "software reset completed\n");

io_map是从呼叫

获得的地址
io_map = ioremap(UART4_BASE,UART_SIZE);

其中UART_SIZE为0x83,UART4_BASE为0x4806eooo。 第1和第2个printk语句给出相同的值0。

0 个答案:

没有答案