【f1c200s/f1c100s】FT5426触摸屏驱动适配
【f1c200s/f1c100s】FT5426触摸屏驱动适配
- 前言
- 设备树配置
- IIC控制器
- FT5426设备树配置
- 内核配置
- 结果
前言
- 嵌入式linux下的触摸屏驱动是基于input子系统的,当触摸发生时,内核上报触摸事件至用户层。
- 我使用的显示屏是正点原子的7寸RGB接口显示屏,触摸芯片为FT5426。和其他很多外设一样,FT5426的驱动linux内核(5.2)也是自带的,FT5426的数据接口是IIC,因此我们只需要在设备树中配置IIC并且打开内核相关功能即可。
设备树配置
IIC控制器
我的板子的触摸屏IIC数据线接到了PE11、PE12引脚,因此需要首先配置引脚为IIC功能。
因为PE11、PE12可复用为i2c0,因此在pio: pinctrl@1c20800
节点内添加i2c0子节点,将这俩复用为i2c0。
pio: pinctrl@1c20800 {compatible = "allwinner,suniv-f1c100s-pinctrl";reg = <0x01c20800 0x400>;interrupts = <38>, <39>, <40>;clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc32k>;clock-names = "apb", "hosc", "losc";gpio-controller;interrupt-controller;#interrupt-cells = <3>;#gpio-cells = <3>;//以下是添加的i2c0_pins: i2c0_pins {pins = "PE11", "PE12";function = "i2c0";};
};
这里的IIC控制器是源码中自带的,为了方便整理何记录,将其复制过来。
其中的寄存器首地址、范围、中断号都是能够在f1c200s的参考手册中查询到的。
i2c0: i2c@1C27000 { //0x1C27000为I2C0的寄存器首地址compatible = "allwinner,sun6i-a31-i2c"; reg = <0x01C27000 0x400>;//寄存器范围interrupts = <7>; //i2c0中断号clocks = <&ccu CLK_BUS_I2C0>;resets = <&ccu RST_BUS_I2C0>;pinctrl-names = "default";pinctrl-0 = <&i2c0_pins>; //i2c0引脚需要为pio中复用的引脚status = "disabled";#address-cells = <1>;#size-cells = <0>;
};
FT5426设备树配置
然后需要将FT5426的硬件信息添加至设备树。原理图中给出了FT5426的硬件连接
功能 | 引脚 |
---|---|
SDA | PE12 |
SCL | PE11 |
RESET复位 | PE10 |
INT中断 | PE5 |
我们需要在设备树中添加以上信息,SDA、SCL在IIC控制器设备树配置中已经编写了,还需要配置剩余的两个引脚功能,其中RESET配置为输出,INT配置为输入,在pio
节点中追加以下内容:
&pio {ts_reset_pin: ts_reset_pin {pins = "PE10";function = "gpio_out";};ts_int_pin: ts_int_pin {pins = "PE5";function = "gpio_in";};};
然后在i2c0节点中中追加如下内容:
关于ft5426的子节点如何编写,内核自带的绑定文档给出了详细的编写方法,可见Documentation/devicetree/bindings/input/touchscreen/edt-ft5x06.txt
。
&i2c0 {status = "okay";//使能i2c0驱动ft5426: touchscreen@38 { //38为设备地址(16进制)compatible = "edt,edt-ft5406"; //兼容性配置reg = <0x38>;//设备地址interrupt-parent = <&pio>;//gpio中断interrupts = <4 5 IRQ_TYPE_EDGE_FALLING>; //PE5为中断引脚,下降沿触发pinctrl-names = "default";pinctrl-0 = <&ts_int_pin>; //中断pinctrlreset-gpios = <&pio 4 10 GPIO_ACTIVE_LOW>; //PE510为复位引脚,低电平有效touchscreen-size-x = <800>; //屏幕分辨率touchscreen-size-y = <480>;touchscreen-swapped-x-y; //可选项,屏幕和触摸屏坐标反了则使能此项};
};
至此,设备树编写完毕。
内核配置
首先是使能IIC控制器和设备树对i2c设备的支持;
menuconfig中路径如下。至于为什么全志芯片使用的是marvell的i2c控制器,可以参考内核绑定文档:Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt
。
然后是使能FT5426的驱动。
结果
编译后拷贝内核和设备树至板子,不出意外在启动时会出现驱动加载成功的信息,如下图所示。
内核启动时,先后加载了i2c驱动和ft5x06的驱动。
进入系统后利用evtest工具进行测试,当手指接触触摸屏时,终端输出指针位置等信息。
【f1c200s/f1c100s】FT5426触摸屏驱动适配相关推荐
- F1C100S电阻触摸屏驱动
https://whycan.cn/t_2143.html 移植触摸屏驱动. 移植后遇到的问题,触摸中断一直在触发.[原因:由于rtp引脚复用没有设置] //读0x01C20800寄存器,可以看到没有 ...
- 【f1c200s/f1c100s】mangopi自制linux开发板驱动适配进度(PCB、代码开源)
[f1c200s/f1c100s]mangopi自制linux开发板驱动适配进度(PCB.代码开源) 目前进度 过程记录博客 目前进度 目前自制的mangopi设备驱动适配已完成部分包含: 基于扫描的 ...
- 【迅为iMX6Q】开发板 Linux 5.15.71 RTL8211E 以太网驱动适配
相关参考 [迅为iMX6Q]开发板 u-boot 2022.04 SD卡 启动 [迅为iMX6Q]开发板 u-boot 2020.04 RTL8211E 以太网驱动适配 [迅为iMX6Q]开发板 Li ...
- STM32MP157驱动开发——多点电容触摸屏驱动
STM32MP157驱动开发--多点电容触摸屏驱动 一.简介 二.电容触摸屏驱动框架简介 多点触摸(MT)协议详解 三.驱动开发 1.添加 FT5426 设备节点 2.FT5426 节点配置 3.驱动 ...
- LVGL8.3 集成 ST7789V 显示驱动和 CST816T 触摸屏驱动
LVGL8.3 集成 ST7789V 显示驱动和 CTS816S 触摸屏驱动 起因 效果(正常显示,触摸屏可调换X,Y轴) 使用方式 前提 操作步骤 最后 参考 起因 LVGL的ESP32 Drive ...
- Android触摸屏驱动屏幕翻转
项目中移植了Android触摸屏驱动,后来需要把屏幕翻转180度,此时触摸的坐标是没有适配的,修改以下代码即可: frameworks/native/services/inputflinger/Inp ...
- WINCE6.0+S3C6410的触摸屏驱动
********************************LoongEmbedded******************************** 作者:LoongEmbedded(kandi ...
- linux 触摸屏驱动编写
早在诺基亚手机还比较流行的时候,那时候触摸屏用的还不多.但是随着触摸屏手机.即智能手机的流行,触摸屏基本成了手机的标配.所以,今天可以看看触摸屏驱动在linux上是如何进行的. 1.驱动目录 driv ...
- linux内核关闭触摸屏校准,linux内核usb触摸屏驱动bug调试- selected device is not a touchscreen I understand...
近期给客户调试一块数控板,今天客户带过来一个屏,并且有一个usb的触摸屏芯片接在屏上.屏很快就弄好正常显示. 触摸屏在内核下找到usb 触摸屏驱动,内核启动后这个usb转的触摸屏也正常找到,注册为ev ...
最新文章
- Python爬虫入门(2):爬虫基础了解
- 《互联网+流通——F2R助力传统产业创新与转型》一一第1章 “互联网+”的新时代...
- Content Security Policy 入门教程
- 盈利模型的内容都有哪些?
- TCP粘包拆包基本解决方案
- Windows XP Embedded SP2 + 简体中文语言包
- python编写tftp服务器
- 纸牌、挖金子源码链接
- jclasslib安装
- Android、Symbian系统手机通讯录和Google Gmai同步
- 蓝桥杯质数的后代码c语言,质因数
- 微信支付开通流程,及微信支付商户号申请详细流程介绍
- java软件更换皮肤怎么做_java窗体程序更换皮肤方法详细步骤
- 【多目标进化优化】MOEA 的分类
- 有关人、社会的本质的思考--现代的捕蛇者说
- 生成统计图类pchart---中文翻译手册
- 股东转让股权后是否还应承担出资义务
- Java面试官:java高级工程师简历csdn
- 源码通透-mybatis源码分析以及整合spring过程
- linux下批量改文件名命令,Linux 批量更改文件名命令