问题描述
- Linux内核LCD驱动某些寄存器值无法修改
-
为了熟悉总线驱动,便自己写内核LCD驱动,板子是4412的开发板,make menuconfig里面裁剪LCD驱动后会报很多错误所以在drivers/video下面注释掉LCD相关的驱动。注释过后重新编译kernel。dev下面已经没有fb了。现在只是测试内核LCD显示,寄存器配置用的跟裸板一样的配置步骤,裸板上面已经测试过了,能够正常显示图片。证明寄存器的,所以寄存器配置步骤应该是没有问题的。
现在出现的问题就是,按照裸板上的配置步骤,让开发板在Linux内核模块程序中配置寄存器,insmod能够成功添加模块,但printk打印来看,某些寄存器(LCD寄存器)能够修改,某些寄存器不能修改,修改的方法是一样的。所以应该不是修改方法的问题。我看了一下/proc/iomem文件,不能修改的那段寄存器地址已经被注册了,不知道是不是这个原因导致我无法修改。
搞了几天了,个人无法解决,跪求方法 Orz
解决方案
解决方案二:
这是/proc/iomem 文件里面LCD寄存器注册的那一部分
11a30000-11a30fff : s5p-sysmmu.2
11a30000-11a30fff : s5p-sysmmu.2
11a40000-11a40fff : s5p-sysmmu.3
11a40000-11a40fff : s5p-sysmmu.3
11a50000-11a50fff : s5p-sysmmu.4
11a50000-11a50fff : s5p-sysmmu.4
11a60000-11a60fff : s5p-sysmmu.5
11a60000-11a60fff : s5p-sysmmu.5
11c00000-11c07fff : s3cfb.0
12000000-1225ffff : exynos4-fimc-is
12000000-1225ffff : exynos4-fimc-is
12260000-12260fff : s5p-sysmmu.16
12260000-12260fff : s5p-sysmmu.16
12270000-12270fff : s5p-sysmmu.17
12270000-12270fff : s5p-sysmmu.17
122a0000-122a0fff : s5p-sysmmu.18
解决方案三:
不是所有的bit能改
解决方案四:
这个问题解决了么,我现在也碰到了这个问题