摘要: 前言 编写驱动的时候,经常会用到中断,这时候我们在驱动初始化时就得申请中断,那么问题来了,中断号是多少呢?以前的中断号在板级相关的头文件里面已经静态定义好了,bsp的代码在内核启动过程也会根据那个帮我们建立好hw irq到irq的映射,我们直接用它静态定义的irq就可以了。但是在硬件越来越复杂的今天 阅读全文
posted @ 2017-10-14 10:19 rongpmcu 阅读(2071) 评论(0) 推荐(0) 编辑
摘要: 情景分析 打算从两个角度来情景分析,先从bsp驱动工程师的角度,然后是驱动工程师的角度,下面以三星s3c6410 Pinctrl samsung.c为例看看pinctrl输入参数的初始化过程(最开始的zynq平台的pin配置貌似是通过bitstreams来的,内核层没看到有关配置pin的代码,不过最 阅读全文
posted @ 2017-10-14 10:18 rongpmcu 阅读(4585) 评论(2) 推荐(1) 编辑
摘要: pinctrl子系统核心实现分析 pinctrl子系统的内容在drivers/pinctrl文件夹下,主要文件有(建议先看看pinctrl内核文档Documentation/pinctrl.txt): core.c devicetree.c pinconf.c pinmux.c pinctrl xx 阅读全文
posted @ 2017-10-14 10:18 rongpmcu 阅读(2771) 评论(0) 推荐(1) 编辑
摘要: 前言 随着内核的发展,linux驱动框架在不断的变化。很早很早以前,出现了gpio子系统,后来又出现了pinctrl子系统。在网上很难看到一篇讲解这类子系统的文章。就拿gpio操作来说吧,很多时候都是简单的调用gpio子系统提供的api,然后根据sdk说明文档写明的gpio号传参数,至于里面的工作过 阅读全文
posted @ 2017-10-14 10:18 rongpmcu 阅读(11999) 评论(0) 推荐(3) 编辑
摘要: 前言 主要是想对Linux 下spi驱动框架有一个整体的把控,因此会忽略某些细节,同时里面涉及到的一些驱动基础,比如平台驱动、设备模型等也不进行详细说明原理。如果有任何错误地方,请指出,谢谢! spi介绍 SPI接口是Motorola 首先提出的全双工三线同步串行外围接口,采用主从模式(Master 阅读全文
posted @ 2017-10-14 10:18 rongpmcu 阅读(13342) 评论(0) 推荐(0) 编辑
摘要: 前言 驱动子系统太多了,连时钟也搞了个子系统,这导致一般的时钟芯片的驱动也会涉及到至少2个子系统,一个是时钟芯片接口子系统(比如 接口的时钟芯片),一个是内核给所有时钟芯片提供的rtc子系统。当然也可以自己写一个字符设备直接操作芯片然后给上层用户空间提供接口,但这种方法实在是太糟糕了,内核既然提供了 阅读全文
posted @ 2017-10-14 10:18 rongpmcu 阅读(1143) 评论(0) 推荐(1) 编辑
摘要: 前言 主要是想对Linux I2c驱动框架有一个整体的把控,因此会忽略协议上的某些细节,同时里面涉及到的一些驱动基础,比如平台驱动、设备模型、sysfs等也不进行详细说明原理,涉及到i2c协议部分也只会简单带过,因为linux内核里面已经实现了该协议,我们以后并不需要重新实现这些,只需要对协议有个简 阅读全文
posted @ 2017-10-14 10:18 rongpmcu 阅读(1471) 评论(0) 推荐(1) 编辑
摘要: 前言 camera驱动框架涉及到的知识点比较多,特别是camera本身的接口就有很多,有些是直接连接到soc的camif口上的,有些是通过usb接口导出的,如usb camera。我这里主要讨论前者,也就是与soc直连的。我认为凡是涉及到usb的,都不是一两句话可以说明白的!如有错误,欢迎指正,谢谢 阅读全文
posted @ 2017-10-14 10:18 rongpmcu 阅读(12534) 评论(1) 推荐(2) 编辑
摘要: camera host的驱动 下面开始分析camera host吧,如果仅仅是想知道camera sensor驱动怎么写,而不想知道内部具体怎么个调用流程,怎么个架构设计,那可以跳过该部分,直接去看i2c camera sensor的驱动了。前面说了我们选择at91平台,那对应的camera hos 阅读全文
posted @ 2017-10-14 10:18 rongpmcu 阅读(2121) 评论(0) 推荐(1) 编辑
摘要: sensor的驱动 先用 创建info对应的 对象(代表着一个i2c client),并进行驱动匹配。匹配就会触发i2c sensor驱动的probe调用。现在进入到目录 ,我们还是看OV2640驱动吧,毕竟前面的板级文件里只有在定义了 宏才会编译进去。 直接看 。这是一个i2c sensor驱动该 阅读全文
posted @ 2017-10-14 10:18 rongpmcu 阅读(3227) 评论(0) 推荐(2) 编辑