在驱动程序中,最终希望对IO口进行操作
我选用的方法是通过I/O映射对端口进行操作。 以2440的GPA为例, GPA的两个寄存器分别是 GPACON 位于物理地址0x56000000 GPADAT 位于物理地址0x56000004
在IO操作中,首先声请使用IO端口
这里我使用的函数是request_region(0x56000000,8,GPIO) 在声请完后 使用__raw_writel(dat,address)和__raw_readl(adress) 进行端口的读写
但是在看__raw_writel(dat,address)和__raw_readl(adress)的定义时发现
adress指的是__iomem 地址,即0xFE000000 而我声请的需要使用的端口地址是0x56000000 他们能自己联系起来吗? 还是我对request_region第一个地址参数的理解错了,在那里也应该使用0xFE000000??
请大侠指点迷津,谢谢
|