全志F1C100s主线linux入坑记录 (4)GT911触摸移植

GT911触摸移植

百度网站



一、添加gt911库文件

在 drivers/input/touchscreen 路径下添加gt911.c文件

在这里插入图片描述

修改Makefile 添加gt911.c的文件编译 drivers/input/touchscreen/Makefile 添加obj-y += gt911.o

在这里插入图片描述

二、添加设备树文件

修改文件路径 :arch/arm/boot/dts/suniv-f1c100s.dtsi

添加I2C属性定义 到soc节点下

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>;
};

在这里插入图片描述

添加I2C引脚定义 到pio节点下

i2c0_pins: i2c0 {
	pins = "PD0", "PD12";
	function = "i2c0";
};

在这里插入图片描述

修改LCD的引脚定义,因为有两个脚被I2C占用了

lcd_rgb666_pins: lcd-rgb666-pins {
	pins = "PD1", "PD2", "PD3", "PD4",
	       "PD5", "PD6", "PD7", "PD8", "PD9",
	       "PD10", "PD11", "PD13", "PD14",
	       "PD15", "PD16", "PD17", "PD18", "PD19",
	       "PD20", "PD21";
	function = "lcd";
};

在这里插入图片描述

修改文件路径 :arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts

添加头文件

#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>

添加gt911设备树配置

&i2c0 {
    pinctrl-0 = <&i2c0_pins>;
    pinctrl-names = "default";
    status = "okay";

	/*  触摸 */
	gt911:gt911@5d {

		compatible = "goodix,gt911","goodix,gt9xx";
		reg = <0x5d>;

		pinctrl-names = "default";

		interrupt-parent = <&pio>;
		interrupts = <4 12 IRQ_TYPE_EDGE_FALLING>; 

		irq-gpio = <&pio 4 12 GPIO_ACTIVE_HIGH>; 
		rst-gpio = <&pio 0 0 GPIO_ACTIVE_HIGH>; 
		status = "okay";

	};
};

编译烧录

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

编译文件放到SD卡的boot分区之后开机,可看到驱动已经挂上。

在这里插入图片描述

ls /dev/input/

在这里插入图片描述

cat proc/interrupts

在这里插入图片描述

三、添加ts-lib触摸测试软件

触摸驱动移植成功后需要判断是否可用,可以用ts-lib 这个软件直观的测试触摸驱动

buildroot配置安装ts-lib软件

make menuconfig

打开ts-lib功能 位置:Target packages > Libraries > Hardware handling > tslib

在这里插入图片描述
编译软件

make -j12

在这里插入图片描述
编译完成 烧录根目录文件系统后启动开发板,在 /usr/bin 路径下会发现多了很多可执行文件

在这里插入图片描述
接下来要设置tslib的配置文件

打开 /etc/ts.conf 文件 查看是否有 module_raw input 如果被注解解开注解 如果没有自己添加一句

在这里插入图片描述
打开/etc/profile 文件,在里面加入如下内容:

export TSLIB_TSDEVICE=/dev/input/event0		#触摸驱动文件路径
export TSLIB_CALIBFILE=/etc/pointercal		
export TSLIB_CONFFILE=/etc/ts.conf			#触摸配置文件路径
export TSLIB_PLUGINDIR=/usr/lib/ts			#触摸库文件路径   input.so 文件的所在路径
export TSLIB_CONSOLEDEVICE=none	
export TSLIB_FBDEVICE=/dev/fb0 				#软件显示在那个fb上

具体配置方法可参考tslib移植小问题这篇博客

保存后重启开发板,输入ts_test启动测试软件,可以直观的测试触摸情况了。

在这里插入图片描述

参考

https://blog.csdn.net/Ternence_zq/article/details/109778136
链接

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
全志F1C100S芯片是一款广泛应用于嵌入式系统的ARM处理器,支持运行Linux操作系统。设备树(Device Tree)作为一种硬件描述语言,被广泛应用于嵌入式系统中,用于描述硬件设备的信息。 要在运行Linux系统的全志F1C100S芯片上添加设备树,需要按照以下步骤进行: 1. 首先,了解全志F1C100S芯片的硬件架构和设备信息。通过查阅芯片的数据手册,获得芯片中的各个设备及其相关寄存器地址、中断信息等。 2. 在Linux内核源码中找到与全志F1C100S芯片相关的设备树文件(一般以.dts或.dtb文件格式存在)。这些文件位于arch/arm/boot/dts目录下。 3. 复制芯片相关的设备树文件,命名为相应的名称。根据需要,在设备树文件中添加新设备的描述。可以参考其他设备的描述,了解设备树的结构和语法规则。 4. 编辑设备树文件,添加新设备的描述信息。根据设备手册中的相关信息,包括设备的名称、地址、中断等,正确地描述设备的各个属性。 5. 编译设备树文件。使用设备树编译器(dtc)将设备树文件编译为设备树二进制文件(.dtb)。 6. 更新内核配置文件。在Makefile或Kconfig文件中,确保设备树文件被正确引用和编译进内核镜像中。 7. 编译内核。使用交叉编译工具链将内核源码编译为可在全志F1C100S芯片上运行的二进制文件。 8. 烧写内核。将编译好的内核镜像烧写到全志F1C100S芯片的存储介质中,如SPI Flash、SD卡等。 9. 启动系统。按照相应的启动方式(如从SPI Flash、SD卡启动),启动全志F1C100S芯片上的Linux系统。 通过以上步骤,我们可以成功地在运行Linux系统的全志F1C100S芯片上添加设备树,使得系统能够正确地识别和管理新添加的设备。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值