![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux driver : Input system
zmjames2000
这个作者很懒,什么都没留下…
展开
-
1. 通过key上报事件
#include <linux/init.h>#include <linux/module.h>#include <linux/kernel.h>#include <linux/of.h>#include <linux/of_gpio.h>#include <linux/interrupt.h>#include ...原创 2019-02-22 07:15:55 · 259 阅读 · 0 评论 -
/hardware/libhardware/hardware.c
https://blog.csdn.net/u012728256/article/details/71130877/hardware/libhardware/hardware.c#include <hardware/hardware.h>#include <cutils/properties.h>#include <dlfcn.h>#incl...原创 2019-02-25 11:07:05 · 435 阅读 · 0 评论 -
linux 2440 LCD 应用程序编程
linux 2440 LCD 应用程序编程一、Linux的帧缓冲设备帧缓冲(framebuffer)是 Linux 为显示设备提供的一个接口,把显存抽象后的一种设备,他允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。这种操作是抽象的,统一的。用户不必关心物理显存的位置、换页机制等等具体细节。这些都是由Framebuffer 设备驱动来完成的。帧缓冲驱动的应用广泛,在 linux ...转载 2019-02-25 11:21:23 · 191 阅读 · 0 评论 -
基于msm8916移植lcd流程--LK
come from : https://blog.csdn.net/m0_37166404/article/details/55510535本篇先不讲解lcd代码在kernel和lk中的流程,讲解基于msm8916,移植ILI9881C型号的lcd首先要准备一下东西:屏IC 规格书,初始化代码,硬件原理图 屏IC 规格书—>获得时序等数据 初始化代码 —>获得初始化屏幕ic...转载 2019-02-25 13:10:00 · 644 阅读 · 0 评论 -
基于msm8916移植lcd流程--kernel
come from :https://blog.csdn.net/m0_37166404/article/details/55522071二、在Kernel中移植lcd 流程大致和在lk中移植lcd差不多 1.首先要写好.dts文件 创建arch/arm/boot/dts/qcom/dsi-panel-xxx-video.dtsi文件 文件就一个节点,&mdss_mdp,这其中...转载 2019-02-25 13:13:52 · 662 阅读 · 0 评论 -
qcom 亮灭屏代码分析 -----Good
come from : https://blog.csdn.net/u012719256/article/details/542905650. fb0以及背光注册流程// mdss_fb.cmdss_fb_probe// fbi 结构赋值 mdss_fb_register(struct msm_fb_data_type *mfd) ...转载 2019-02-25 14:46:12 · 885 阅读 · 0 评论 -
linux qcom LCD framwork --- Good
come from : https://blog.csdn.net/u012719256/article/details/520967270.关键字MDSS : Multimedia Display sub system DSI: Display Serial Interfaceqcom,mdss-dsi-force-clock-lane-hs; // faulse ...转载 2019-02-25 15:31:46 · 686 阅读 · 0 评论 -
系统自带 s3c2410fb.c
D:\source_code\linux-2.6.22.6\drivers\video\s3c2410fb.cstatic struct platform_driver s3c2410fb_driver = { .probe = s3c2410fb_probe, .remove = s3c2410fb_remove, .suspend = s3c2410fb_suspend, ....原创 2019-02-26 00:05:43 · 208 阅读 · 0 评论 -
裸机LCD驱动配置
come from : http://www.cnblogs.com/lifexy/p/7144890.html本节来学习裸机下的LCD 驱动,本节学完后,再来学习Linux下如何使用LCD驱动 Linux中的LCD驱动,链接如下:(Linux-LCD层次分析链接:http://www.cnblogs.com/lifexy/p/7603327.html)(Linux-LCD驱动...转载 2019-02-26 09:59:51 · 219 阅读 · 0 评论 -
高通平台手机开发之LCD
come from : https://blog.csdn.net/Winva/article/details/507392174.1. LCD 参考文档: 1) 80-NA157-174_E_DSI_Programing_Guide_B-Family_Android_Devices.pdf2) 80-NN766-1_A_Linux_Android_Display_Driver_Por...转载 2019-02-27 00:27:21 · 367 阅读 · 0 评论 -
高通平台手机开发之TP
come from : https://blog.csdn.net/Winva/article/details/507392674.2. TP TP驱动芯片厂商主要有:Goodix(汇顶),FocalTech(敦泰科技),cypress(赛普拉斯),synaptics(新思)。 TP驱动的调试主要是将接口调通。 从TP厂商获取驱动和配置资料。 4.2.1. 集成或者使用系统自带的TP驱...转载 2019-02-27 00:32:45 · 805 阅读 · 0 评论 -
android gralloc 流程分析
come from : https://blog.csdn.net/g_salamander/article/details/8424334Android 中 lcd 是一个帧缓冲设备,驱动程序通过处理器的 lcd 控制器将物理内存的一段区域设置为显存,如果向这段内存区域写入数据就会马上在 lcd 上显示出来。Android 在 HAL 中提供了gralloc 模块,封装了用户层对帧缓冲设备...转载 2019-02-25 10:51:22 · 836 阅读 · 0 评论 -
18.Llinux-触摸屏驱动(详解)
come from :https://www.cnblogs.com/lifexy/p/7628889.html 本节的触摸屏驱动也是使用之前的输入子系统 1.先来回忆之前第12节分析的输入子系统其中输入子系统层次如下图所示, 其中事件处理层的函数都是通过input_register_handler()函数注册到input_handler_list链表中搜索i...转载 2019-02-24 10:56:06 · 414 阅读 · 0 评论 -
设备树的获取 API
come from :https://blog.csdn.net/fengyuwuzu0519/article/details/74352188二、常用函数设备树函数思路是:uboot启动时将设备树地址传给内核,内核解析设备树,并创建设备,初始化相关属性,驱动中通 of_get_XXX函数去获取设备树加载时创建的设备。想要知道of函数做了什么,就去追踪这个函数最后调用了什么,同时也就知道...转载 2019-02-22 07:16:19 · 1035 阅读 · 0 评论 -
Linux设备树语法详解
come from :https://www.cnblogs.com/xiaojiang1025/p/6131381.html概念Linux内核从3.x开始引入设备树的概念,用于实现驱动代码与设备信息相分离。在设备树出现以前,所有关于设备的具体信息都要写在驱动里,一旦外围设备变化,驱动代码就要重写。引入了设备树之后,驱动代码只负责处理驱动的逻辑,而关于设备的具体信息存放到设备树文件中,这样...转载 2019-02-22 07:16:31 · 109 阅读 · 0 评论 -
设备树的结构体
struct device_node { const char *name; const char *type; phandle phandle; const char *full_name; struct fwnode_handle fwnode; struct property *properties; struct property *deadprops; /* remov...原创 2019-02-22 07:16:08 · 287 阅读 · 0 评论 -
2. 匹配
input.c subsys_initcall(input_init);module_exit(input_exit);static int __init input_init(void){ int err; err = class_register(&input_class); if (err) { pr_err("unable to register in...原创 2019-02-22 07:15:40 · 190 阅读 · 0 评论 -
3. 上报
input_eventvoid input_event(struct input_dev *dev, unsigned int type, unsigned int code, int value){ unsigned long flags; if (is_event_supported(type, dev->evbit, EV_MAX)) { spin_lock_...原创 2019-02-22 07:15:29 · 98 阅读 · 0 评论 -
framebuffer 子系统分析
come from :https://blog.csdn.net/u012728256/article/details/70274465struct fb_info { int node; int flags; struct mutex lock; /* 调用open/release/ioctl时的锁 */ struct mutex mm_lock; /* fb_mmap和sm...转载 2019-02-23 16:46:58 · 158 阅读 · 0 评论 -
12.Linux之输入子系统分析(详解)
come from : https://ww w.cnblogs.com/lifexy/p/7542989.html Good在此节之前,我们学的都是简单的字符驱动,涉及的内容有字符驱动的框架、自动创建设备节点、linux中断、poll机制、异步通知、同步互斥/非阻塞、定时器去抖动。其中驱动框架如下:1)写file_operations结构体的成员函数: .open()...转载 2019-02-23 16:46:33 · 115 阅读 · 0 评论 -
13.Linux键盘按键驱动 (详解)
come from :http://www.cnblogs.com/lifexy/p/7553861.html Good在上一节分析输入子系统内的intput_handler软件处理部分后,接下来我们开始写input_dev驱动本节目标: 实现键盘驱动,让开发板的4个按键代表键盘中的L、S、空格键、回车键 1.先来介绍以下几个结构体使用和函数,下面代码中会...转载 2019-02-22 23:16:42 · 169 阅读 · 0 评论 -
15.linux-LCD层次分析(详解)
come from:https://www.cnblogs.com/lifexy/p/7603327.html 如果我们的系统要用GUI(图形界面接口),这时LCD设备驱动程序就应该编写成frambuffer接口,而不是像之前那样只编写操作底层的LCD控制器接口。什么是frambuffer设备? frambuffer设备层是对图像设备的一种抽象,它代表了视频硬件的帧缓存,使得应...转载 2019-02-23 16:52:37 · 123 阅读 · 0 评论 -
16.Linux-LCD驱动(详解)
come from : https://www.cnblogs.com/lifexy/p/7604011.html在上一节LCD层次分析中,得出写个LCD驱动入口函数,需要以下4步:1) 分配一个fb_info结构体: framebuffer_alloc();2) 设置fb_info3) 设置硬件相关的操作4) 使能LCD,并注册fb_info: register_frameb...转载 2019-02-23 16:54:06 · 176 阅读 · 0 评论 -
Linux驱动之输入子系统框架
come from :https://blog.csdn.net/lizuobin2/article/details/51508839好记性不如烂笔头,整理一下笔记~Linux驱动之输入子系统框架输入子系统将该类驱动划分为3部分1、核心层 input.c2、设备层 Gpio_keys.c ...3、事件处理层 Evdev.c事件处...转载 2019-02-28 09:36:48 · 115 阅读 · 0 评论