- 积分
- 5
贡献30
飞刀2 FD
注册时间2017-7-5
在线时间0 小时
扫一扫,手机访问本帖
|
您好:
在使用贵公式okmx6q-c+linux(uboot、linux、rootfs均使用贵公司提供的image),遇到了io读写的问题。
问题描述:iowrite32写入val到某一寄存器,回读的值不是val,而是默认值
补充:使用readl/writel或者直接*gpio1=**,**=*gpio1仍然有此问题
简单的测试代码见附注
谢谢
附注:
简单的测试代码:
static int tmp_test(void)
{
void __iomem *gpio1 = NULL;
int regval = 0;
/* remap gpio memory address */
gpio1 = ioremap(0x0209C000, 16*1024);
printk(KERN_WARNING "%s:remap gpio1 %p\n", __func__, gpio1);
if (NULL == gpio1)
return -ENOMEM;
regval = ioread32(gpio1);
printk(KERN_WARNING "%s:regval %x,\n", __func__, regval);
regval &= ~(0xff);
iowrite32(regval, gpio1);
printk(KERN_WARNING "%s:write 0x%x, read %x\n", __func__, regval, ioread32(gpio1));
iounmap(gpio1);
}
打印的信息:
tmp_test:remap gpio1 c0840000
tmp_test:regval 3e01087c,
tmp_test:write 0x3e010800, read 3e01087c |
|