1、前提

  • Ubuntu 环境版本 (18.04)
Linux ubuntu 5.4.0-131-generic #147~18.04.1-Ubuntu SMP Sat Oct 15 13:10:18 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
  • ARM GCC版本
gcc version 7.2.1 20171011 (Linaro GCC 7.2-2017.11)
  • F1C100S Linux版本 (linux-nano-5.2-tf) 链接
Linux buildroot 5.2.0-licheepi-nano #5 Sun Oct 23 18:25:54 PDT 2022 armv5tejl GNU/Linux
  • I2C 引脚注意上拉电阻

2、Linux配置

2.1 打开 Gooidx (make menuconfig)


或者手工在 .config中改为y

2.2 在子文件路径中添加驱动文件


gt9147.c 源码链接:

2.3 修改Makefile

文件路径 drivers/input/touchscreen/Makefile

2.4 修改设备树

子文件路径 arch/arm/boot/dts/suniv-f1c100s.dtsi

  • 在pio 中接入 i2c0_pins:
 i2c0_pins: i2c0 {pins = "PE11", "PE12";function = "i2c0";};
  • 在后面插入i2c0节点,比如在uart2后面:
                i2c0: i2c@1C27000{compatible = "allwinner,sun6i-a31-i2c";reg = <0x01c27000 0x400>;interrupts = <7>;clocks = <&ccu CLK_BUS_I2C0>;resets = <&ccu RST_BUS_I2C0>;pinctrl-names = "default";pinctrl-0 = <&i2c0_pins>;status = "disabled";#address-cells = <1>;#size-cells = <0>;};

子文件路径 arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts

  • 引入头文件
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>
  • 插入&i2c0 节点。注意: gt9147地址有时候是0x14有时候是0x5d, 需要使用 I2cdetect 指令检查地址。启动信息也会提示
&i2c0 {pinctrl-0 = <&i2c0_pins>;pinctrl-names = "default";status = "okay";gt9147:gt9147@14{compatible = "goodix,gt9147","goodix,gt9xx";reg = <0x14>;interrupt-parent = <&pio>;interrupts = <4 10 IRQ_TYPE_EDGE_FALLING>;/*(PE10)*/pinctrl-names = "default";irq-gpio = <&pio 4 10 GPIO_ACTIVE_HIGH>;/*(PE10>*/rst-gpio = <&pio 4 9 GPIO_ACTIVE_HIGH>; /*RST (PE9)*/status =  "okay";};
};
2.5 编译并自行复制到TF卡中

编译

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j16

zImage (路径:arch/arm/boot)

dtb (路径:arch/arm/boot/dts)

3、Linux启动

3.1 检查启动信息

正常如下所示。如果报错(-6 -110 等),要检查I2C引脚电气连接、设备树地址配置等等。

3.2 i2cdetect 测试

正常的话对应地址应该是UU(驱动已占用)。48是荔枝派自带的,不用电阻屏就不用管他。

  • 如果3.1启动信息报错,这里又检查出个5d地址,就得回到设备树改地址为5d(见下方示例)
  • 如果提示 lock , 一般是缺上拉电阻,改硬件试试?
        gt9147:gt9147@5d{compatible = "goodix,gt9147","goodix,gt9xx";reg = <0x5d>;
3.3 tslib 测试

运行 ts_test ,正常触摸屏蔽后就会输出如下坐标信息

F1C100S(Lichee Nano)触摸屏 (GT9147)相关推荐

  1. 基于荔枝派Lichee Nano(全志f1c100s)的kernel移植(二)

    基于荔枝派Lichee Nano(全志f1c100s)的kernel移植(二) 1.获取源代码 2.linux内核修改dts设备树文件 3.内核配置修改 3.1.使用命令进入配置界面 3.2.支持jf ...

  2. 基于荔枝派Lichee Nano(全志f1c100s)的rootfs移植(三)

    基于荔枝派Lichee Nano(全志f1c100s)的rootfs移植(三) 1.下载Buildroot代码包 2.解压文件,获得源代码 3.配置Buildroot 4.编译 5.生成rootfs. ...

  3. lichee nano 荔枝派入门——linux内核

    获取源代码 见<lichee nano 荔枝派入门--搭建环境> 个人建议使用如下命令克隆内核代码: # 下载默认带480*272LCD的版本 git clone --depth=1 -b ...

  4. lichee nano 荔枝派入门——上手

    前言 最近上手一块lichee nano,主要看中它的小巧精制,最小系统只需要供电电路.SPI Flash.主芯片F1C100S即可,无需外部RAM芯片,因此硬件简单,后续做项目如果有用到简单的lin ...

  5. 【f1c200s/f1c100s】FT5426触摸屏驱动适配

    [f1c200s/f1c100s]FT5426触摸屏驱动适配 前言 设备树配置 IIC控制器 FT5426设备树配置 内核配置 结果 前言 嵌入式linux下的触摸屏驱动是基于input子系统的,当触 ...

  6. lichee nano 荔枝派入门——u-boot

    获取源代码 见上一篇文章<lichee nano 荔枝派入门--搭建环境> 切换分支 切换到lichee nano的代码分支,在u-boot目录下操作: # 查看分支 git branch ...

  7. lichee nano 荔枝派入门——buildroot构建文件系统

    lichee nano 荔枝派入门–buildroot构建文件系统 获取buildroot源代码 可以从lichee官方给的链接地址或者从GitHub下载最新的buildroot源代码,具体如下: 从 ...

  8. lichee nano 荔枝派入门——搭建环境

    概述 lichee nano开发大致需要如下环境: linux系统 交叉编译工具链 固件烧录工具 源代码 linux系统 一般使用虚拟机安装linux发行版,具体安装步骤网上很多,这里不再赘述. 另外 ...

  9. Linux 设备树中pinctrl与gpio(lichee nano pi)

    系列文章目录 第一章 Linux 中内核与驱动程序 第二章 Linux 设备驱动编写 (misc) 第三章 Linux 设备驱动编写及设备节点自动生成 (cdev) 第四章 Linux 平台总线pla ...

最新文章

  1. FDMemTable 数据集
  2. php调用css类,php – 使用xpath选择css类
  3. Qt工程生成xcode工程文件
  4. python 几何_OpenCV-Python系列之对极几何理论
  5. python用户输入一行字符串_python字符串练习
  6. iOS9定位获取经纬度 swift
  7. 删除win7多余的系统还原点_【Win7封装教程2019版】系列(二)必要的系统调整
  8. 嵌入式 Linux 的分类
  9. java 轻量级 编辑器_Java相关概念汇总
  10. 微信小程序 java通过 rawData 和 session_key 生成 signature 签名
  11. imagecopyresampled要生成彩色却生成了灰色图片
  12. 文本数据挖掘一般步骤
  13. 如何刷新bios?在windows系统上刷新bios的方法
  14. 微信机器人_微信聊天消息记录拦截分析
  15. matlab中cuk电路搭建,cuk电路matlab仿真
  16. 批量梯度下降和随机梯度下降法的缺点
  17. Python绘制双曲线
  18. windows电脑重装系统步骤、cmd常用命令等
  19. latex backmatter 是什么意思
  20. layui数据表格无数据显示undefined

热门文章

  1. P,NP,PSPACE都是什么,一文讲清计算复杂性分类
  2. Java手写单例模式
  3. DIY TCP/IP IP模块和ICMP模块的实现1
  4. 步进电机驱动器设计c语言软件,最新基于单片机系统的步进电机驱动STC单片机步进电机驱动器的设计及C语言程序.doc...
  5. 英雄埋骨无人问,戏子家事天下知!
  6. Laravel 数据库去重计数
  7. 外资企业申请互联网信息服务经营许可证ICP注意事项有哪些?
  8. java 2022-09-21T10:41:00.000+0800 转换成 yyyy-MM-dd HH:mm:ss
  9. 联想WIN10进入BIOS进行设置的两种方法
  10. Excel函数不生效的一种情况