
linux driver
文章平均质量分 91
flaoter
这个作者很懒,什么都没留下…
展开
-
新加sensor
海思平台和Movidious平台新sensor bringup的比较从海思文档找到的sensor bringup的步骤如下,调试思路都是一样的。1. 准备材料准备环节与平台无关。1.1 确认主芯片规格支持Master模式,支持的线性、WDR接口模式,支持输入频率上限。1.2 Sensor datasheet确认图像传输接口模式,输出频率。确认曝光时间、增益如何设置,帧率如何修改。确认在WDR 模式下的以上两项。LVDS 接口,需要确认同步码。1.3 Initialize Settin原创 2021-08-29 17:36:10 · 1061 阅读 · 0 评论 -
msm8996平台的一些debug方法
欢迎使用Markdown编辑器写博客本文中基于一些基于msm8996平台的bsp和kernel调试的一些节点和方法,有些与高通平台相关,但大部分应该是linux通用的调试信息,未经仔细整理,只当随笔记录了。android版本是7.1,kernel版本是3.18。regualtor msm8996:/d/regulator/pm8994_l17 # ls -l total 0 drwx...原创 2018-05-14 21:56:54 · 2076 阅读 · 0 评论 -
展讯平台android display驱动分析
本文以展讯tshak平台的display controller为硬件模型,来说明Android底层显示驱动的实现原理。该硬件模型较基础和简单,目前大多SOC平台的硬件设计都变得越来越复杂,实现功能也越来越全面,但基于此平台的设计更方便理解。1 display控制器下图的结构即是显示控制器的模块组成,它内部集成了lcd显示相关的控制器:lcdc和dispc,其中lcdc仅支持MCU接口类型(...原创 2017-11-05 20:39:26 · 4134 阅读 · 0 评论 -
Android启动流程(一)
本章节内容是基于手机平台的android启动流程进行解析,不同厂商的手机平台启动流程也都大体相似,涉及的代码大多开源,可以在相关社区进行下载。 启动顺序为: 1. ROM启动 2. spl 3. uboot 4. kernel 5. Andriod 我也将按照上述顺序对启动流程进行解析,本小节首先介绍ROM启动,spl和uboot。1 ROM启动手机SOC芯片内部一般都固原创 2017-06-17 15:46:39 · 1493 阅读 · 0 评论 -
linux SPI驱动框架(一)---控制器驱动
Linux SPI驱动分为核心层,控制器驱动层和设备驱动层。核心层是Linux的SPI核心部分,提供了核心数据结构的定义,总线、设备和驱动的注册、注销管理等,提供与上层的统一接口。linux将I2C、SPI、USB等总线驱动隔离成控制器驱动和设备驱动,使两者相对独立。 本文以qcom的spi控制器为例,对spi控制器驱动进行解析。kernel代码版本是3.18。1 控制器设备注册控制器的设备注册在原创 2015-11-23 21:17:02 · 6528 阅读 · 0 评论 -
I2C设备驱动(一)--工作原理
1.协议简介I2C,inter-IC control。该协议是由Philips公司提出的一种两线式通信方案,有如下特点:(1)只需要两线,SDA和SCL (2)连接到总线的设备有唯一地址,master-slave工作模式 (3)multi-master,需要arbitration来确定通信关系 (4)串行,半双工,standard mode最高100kb/s,fast mode最高400kb原创 2017-05-17 23:04:41 · 1477 阅读 · 0 评论 -
I2C设备驱动(二)
I2C设备驱动(二)本小节内容基于单片机平台的firmware开发,也可用于非保护模式运行的操作系统内的开发。 1. GPIO模拟//function: set_scl_high//description: static void set_scl_high ( void ){ uint16_t volatile timeout = SCL_TIMEOUT; SET_SCL;原创 2017-06-10 13:46:42 · 891 阅读 · 0 评论 -
I2C设备驱动(三)--linux i2c驱动框架
1 体系结构linux的i2c体系由以下三部分组成:(1)i2c核心由linux内核提供,定义基本数据结构,实现i2c驱动和设备的注册、注销,通信方法等。与设备无关。(2)i2c控制器驱动一般由soc设备厂商提供,主要实现i2c_adapter数据结构和通信方法数据结构i2c_algorithm。实现i2c master功能,也是本小节进行介绍的重点。(3)i2c设备驱动一般由外设厂商提供,主要实现原创 2017-06-10 15:55:13 · 6698 阅读 · 2 评论 -
I2C设备驱动(四)-- 调试问题
1 i2c死锁异常现象:master设备复位后,不能对slave进行读写操作,总线表现为SCL为高,SDA一直为低 原因:master与slave进行通信时,正好发生打算发第9个时钟,此时SCL为高,而从开始拉低SDA为低做准备(作为ACK信号),等待SCL变低后,从再释放SDA为高。如果此时正好master复位,master SCL还没来得及变低,直接变成高电平,此时slave还在等待SCL变低转载 2017-06-10 16:10:13 · 925 阅读 · 0 评论 -
linux clock
linux kernel在3.4之后加入了CCF(common clock framework)来统一管理clock,对外提供了统一的接口供其它模块调用,对内封装了clock驱动。linux的clock是基于provider/consumer模型的。本文叙述的顺序是先对clock的基本原理进行说明,然后对CCF和clock驱动进行解析,最后是外部模块的调用实例。1 原理clock是设备原创 2017-06-20 20:37:40 · 2074 阅读 · 0 评论 -
linux SPI驱动框架(二) -- 设备驱动
之前文章http://blog.youkuaiyun.com/flaoter/article/details/50001133对linux SPI驱动框架的控制器驱动进行了介绍,本节内容对SPI从设备的设备驱动进行讲解。设备驱动关注的结构体主要有两个,struct spi_device描述spi从设备,struct spi_driver是从设备的设备驱动。struct spi_device { stru原创 2017-07-11 21:20:34 · 6915 阅读 · 4 评论