
andriod,驱动
文章平均质量分 89
福哥哥哥
这个作者很懒,什么都没留下…
展开
-
linux内核中的GPIO系统之(5):gpio subsysem和pinctrl subsystem之间的耦合
1. 前言按理说,kernel中gpio subsystem和pinctrl subsystem的关系应该非常清楚:pinctrl subsystem管理系统的所有管脚,GPIO是这些管脚的用途之一,因此gpio subsystem应该是pinctrl subsystem的client(也可叫做backend、consumer),基于pinctrl subsystem提供的功能,处理GPIO有关的逻辑。不过,实际情况却不是这么简单,它们之间有着较为紧密的耦合(看一看kernel中pinct.原创 2021-09-24 17:30:28 · 479 阅读 · 0 评论 -
linux内核中的GPIO系统之(4):pinctrl驱动的理解和总结
1. 前言本站之前的三篇文章[1][2][3]介绍了pin controller(对应的pin controller subsystem)、gpio controller(对应的GPIO subsystem)有关的基本概念,包括pin multiplexing、pin configuration等等。本文将基于这些文章,单纯地从pin controller driver的角度(屏蔽掉pinctrl core的实现细节),理解pinctrl subsystem的设计思想,并掌握pinctrl驱动的移植和实原创 2021-09-24 17:28:25 · 949 阅读 · 0 评论 -
Linux内核中的GPIO系统之(3):pin controller driver代码分析
一、前言对于一个嵌入式软件工程师,我们的软件模块经常和硬件打交道,pin control subsystem也不例外,被它驱动的硬件叫做pin controller(一般ARM soc的datasheet会把pin controller的内容放入GPIO controller的章节中),主要功能包括:(1)pin multiplexing。基于ARM core的嵌入式处理器一般会提供丰富的功能,例如camera interface、LCD interface、USB、I2C、SPI等等。虽然处理器有原创 2021-09-24 17:26:20 · 1126 阅读 · 0 评论 -
linux内核中的GPIO系统之(2):pin control subsystem
一、前言在linux2.6内核上工作的嵌入式软件工程师在pin control上都会遇到这样的状况:(1)启动一个新的项目后,需要根据硬件平台的设定进行pin control相关的编码。例如:在bootloader中建立一个大的table,描述各个引脚的配置和缺省状态。此外,由于SOC的引脚是可以复用的,因此在各个具体的driver中,也可能会对引脚进行的配置。这些工作都是比较繁琐的工作,需要极大的耐心和细致度。(2)发现某个driver不能正常工作,辛辛苦苦debug后发现仅仅是因为其他的dr原创 2021-09-24 17:24:23 · 767 阅读 · 0 评论 -
linux内核中的GPIO系统之(1):软件框架
一、前言作为一个工作多年的系统工程师,免不了做两件事情:培训新员工和给新员工分配任务。对于那些刚刚从学校出来的学生,一般在开始的时候总是分配一些非常简单的任务,例如GPIO driver、LED driver。往往CPU datasheet的关于GPIO或者IO ports的章节都是比较简单的,非常适合刚入行的工程师。虽然GPIO子系统相关的硬件比较简单,没有复杂的协议,不过,对于软件抽象而言,其分层次的软件思想是每个嵌入式软件工程师需要掌握的内容。我更倾向使用GPIO系统这个名字来代替GPIO d原创 2021-09-24 17:21:11 · 540 阅读 · 0 评论 -
Linux内核之 module_init解析 (下)
从上一篇博文http://blog.youkuaiyun.com/richard_liujh/article/details/45669207介绍了module_init宏函数,简单来说上篇博文介绍module_init如何注册驱动的init函数,这篇博文将详细分析kernel启动过程又是如何执行我们注册的init函数。如果了解过linux操作系统启动流程,那么当bootloader加载完kernel并解压并放置与内存中准备开始运行,首先被调用的函数是start_kernel。start_kernel函数顾名思义,转载 2021-08-25 17:15:52 · 302 阅读 · 0 评论 -
linux内核驱动 之 module_init解析 (上)
原文链接:https://blog.youkuaiyun.com/Richard_LiuJH/article/details/45669207写过linux驱动的程序猿都知道module_init() 这个函数。那么我们来了解一下module_init这个函数的具体功能和执行过程在kernel源码目录中找到include\linux\init.h文件/*** module_init() - driver initialization entry point* @x: function to be..转载 2021-08-25 17:09:13 · 555 阅读 · 0 评论 -
android驱动分析
因为年后工作需要,预先对Android 驱动做一些了解,以下以 I2C 接口的 多点电容触摸屏 驱动为例,简单总结下Android 驱动1.首先编写驱动模块的 Kconfig 和 Makefile 两个文件################################# lfl add 20160819 ####################################原创 2017-01-23 18:00:47 · 1131 阅读 · 0 评论 -
在freescale mx6DL 平台上添加spi资源
在freescale mx6DL 平台上添加spi资源,通过SPI总线挂载两个SPI设备,APP层通过JNI层访问设备文件,通过设备文件实现 SPI 通信硬件平台 :freescale mx6DL 软件平台:Android4.4.2系统:Ubuntu14.041. 打开系统SPI驱动 kernel_imx/drivers原创 2017-04-28 15:56:14 · 2011 阅读 · 0 评论