嵌入式-Linux内核LCD驱动某些寄存器值无法修改

问题描述

Linux内核LCD驱动某些寄存器值无法修改

为了熟悉总线驱动,便自己写内核LCD驱动,板子是4412的开发板,make menuconfig里面裁剪LCD驱动后会报很多错误所以在drivers/video下面注释掉LCD相关的驱动。注释过后重新编译kernel。dev下面已经没有fb了。

现在只是测试内核LCD显示,寄存器配置用的跟裸板一样的配置步骤,裸板上面已经测试过了,能够正常显示图片。证明寄存器的,所以寄存器配置步骤应该是没有问题的。

现在出现的问题就是,按照裸板上的配置步骤,让开发板在Linux内核模块程序中配置寄存器,insmod能够成功添加模块,但printk打印来看,某些寄存器(LCD寄存器)能够修改,某些寄存器不能修改,修改的方法是一样的。所以应该不是修改方法的问题。我看了一下/proc/iomem文件,不能修改的那段寄存器地址已经被注册了,不知道是不是这个原因导致我无法修改。

搞了几天了,个人无法解决,跪求方法 Orz

解决方案

linux内核-寄存器

解决方案二:

这是/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能改 

解决方案四:

这个问题解决了么,我现在也碰到了这个问题

时间: 2025-01-01 17:18:17

嵌入式-Linux内核LCD驱动某些寄存器值无法修改的相关文章

如何向 Linux 内核提交驱动

当Linux驱动程序开发到一定阶段,向kernel.org提交代码是一个很好的选择.对于很多没有向上游提交过代码的开发者来说,还是有很多疑问需要解决的.比如,究竟我们向哪里提交驱动程序?提交时我们的代码应该处于什么状态?提交的过程又如何呢? 向哪里提交 Linux staging tree是Greg KH建立的用于提交驱动程序的git仓库.我们可以把staging tree看作是代码进入mainline内核之前的一个预科班,新增的驱动程序首先需要放到这里供社区review和测试.Staging

嵌入式Linux支持LCD console【转】

转自:http://blog.sina.com.cn/s/blog_664c545f0100v9zl.html 转载:http://www.mculee.cn/post/48.html     [1]LCD 驱动基础知识 Linux- 2.6.32.2 内核已经支持S3C2440 的LCD 控制器驱动,但在此我们先介绍一下关于2440 LCD 控制器以及驱动相关的LCD 的一些基础知识.注意:在此我们只讨论 TFT LCD,也就是真彩屏.LCD 驱动中最关键的就是时钟频率(Clock frequ

谈谈为 Linux 内核写驱动的编码规范

最近在向Linux内核提交一些驱动程序,在提交的过程中,发现自己的代码离Linux内核 的coding style要求还是差很多.当初自己对内核文档里的CodingStyle一文只是粗略的浏览,真正写代码的时候在很多细节上会照顾不周.不过, 在不遵 守规则的程序员队伍里,我并不是孤独的.如果去看drivers/staging下的代码,就会发现很多驱动程序都没有严格遵守内核的coding style,而且在很多驱动程序的TODO文件里,都会把"checkpatch.pl fixes"作为

长期维护嵌入式Linux内核变得容易

Pengutronix 内核黑客 Jan Lübbe 总结了嵌入式 Linux 中正在不断增长的安全威胁,并在这次欧洲嵌入式 Linux 会议上概述了一个计划,以保持长期设备的安全和功能完整. 安全漏洞只发生在 Windows 上的好日子正在快速过去.恶意软件黑客和拒绝服务老手们正在越来越多地瞄准过时的嵌入式 Linux 设备,因此在 10 月的欧洲嵌入式 Linux 会议Embedded Linux Conference Europe(ELCE)上的几个演讲的主题就与修复 Linux 安全漏洞

转: 嵌入式linux下usb驱动开发方法--看完少走弯路【转】

转自:http://blog.csdn.net/jimmy_1986/article/details/5838297 嵌入式linux下的usb属于所有驱动中相当复杂的一个子系统,要想将她彻底征服,至少需要个把月的时间,不信?那是你没做过. 本人做过2年的嵌入式驱动开发,usb占了一大半的时间.期间走了不少弯路,下面将我的血的经验教训总结下,为要从事和正在从事的战友们做一点点贡献吧:) 首先,扫盲: 要做的是阅读usb Spec(英文的哦,其实很多文章.书籍和资料真有水平的还是原创的好,就像食品

Linux内核触摸屏驱动--多点触摸 【转】

  转自:http://blog.chinaunix.net/uid-24227137-id-3127126.html 简介 为了使用功能强大的多点触控设备,就需要一种方案去上报用户层所需的详细的手指触摸数据.这个文档所描述的多点触控协议可以让内核驱动程序向用户层上报任意多指的数据信息. 使用说明 单点触摸信息是以ABS承载并按一定顺序发送,如BTN_TOUCH.ABS_X.ABS_Y.SYNC.而多点触摸信息则是以 ABS_MT承载并按一定顺序发送,如ABS_MT_POSITION_X.ABS

linux内核 声卡驱动-platform匹配问题,没有对应的平台设备?

问题描述 platform匹配问题,没有对应的平台设备? 大家好: 我用的内核版本是linux-3.4.96,在sound/soc/samsung/s3c24xx_simtec_hermes.c这个文件里有一下代码: static struct platform_driver simtec_audio_hermes_platdrv = { .driver = { .owner = THIS_MODULE, .name = "s3c24xx-simtec-hermes-snd", .pm

Linux内核中断和异常分析(下)

这节,我们继续上,中(以前的日志有)篇目进行分析,结合一个真实的驱动案例来描述linux内核中驱动的中断机制,首先我们先了解一下linux内核中提供的中断接口.      这个接口我们需要包含一个头文件:#include <linux/interrupt.h>      在中断接口中,最重要的是以下的接口函数: 1.这个是请求中断函数 int request_irq(unsigned int irq, irq_handler_t handler, unsigned long irqflags,

《嵌入式 Linux C 语言应用程序设计(修订版)》——导读

前 言 嵌入式行业背景 进入后PC时代后,嵌入式系统在我们的生活中无处不在,我们每天都会接触很多的嵌入式产品,嵌入式产品方便了人们的生活,同时也给厂家带来巨大的利润. 嵌入式开发是当今计算机应用最热门的领域之一,广泛应用于汽车电子.无线通信.智能手机.便携式产品.数码相机.数字电视.数字机顶盒等领域,一时间,嵌入式开发人才非常紧缺. 嵌入式软件开发如何入门 嵌入式系统入门需要掌握嵌入式操作系统的原理并学会嵌入式应用程序的开发. 嵌入式Linux是源代码开放的嵌入式操作系统,是当今最优秀的嵌入式操