文章

LuckFox Pico移植ILI9341驱动 2.8寸LCD屏幕

最近手里刚好有一块LuckFox Pico开发板,闲来无事,某宝上买了一块2.8寸的LCD屏幕,记录一下linux5.10驱动移植过程。

修改LuckFox Pico设备树

该文件在luckfox-pico/sysdrv/source/kernel/arch/arm/boot/dts下,我的设备树的文件是rv1103g-luckfox-pico.dts,用到的引脚有GPIO1_A2GPIO0_A4SPI0通讯引脚,背光引脚接3.3V,在设备树中注释所有有关于上述引脚的描述,我这里偷懒就全部注释了,一定要把相关的全部注释掉,下面是注释的一部分截图:

添加屏幕的节点:

&spi0 {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&spi0m0_pins>;
	cs-gpios = <&gpio1 RK_PC0 1>;
	// cs-gpios = <&gpio1 26 1>;
	#address-cells = <1>;
	#size-cells = <0>;
	// spidev@0 {
	// 	compatible = "rockchip,spidev";
	// 	spi-max-frequency = <1000000000>;
	// 	reg = <0>;
	// };


	display@0{
		compatible = "adafruit,yx240qv29", "ilitek,ili9341";
		reg = <0>;
		spi-max-frequency = <32000000>;
		dc = <&gpio0 RK_PA4 GPIO_ACTIVE_HIGH>;
		reset = <&gpio1 RK_PA2 GPIO_ACTIVE_HIGH>;
		rotation = <270>;
		bgr;
		fps = <30>;
		buswidth = <8>; // Most controllers use this value
		//backlight = <&backlight>;
	};
};

修改配置文件添加驱动

该文件在luckfox-pico/sysdrv/source/kernel/arch/arm/configs 下,我的配置文件是luckfox_rv1106_linux_defconfig ,这里如果没有该文件,可以通过修改内核添加ILI9341驱动,在该文件的中加入以下代码:

CONFIG_FB_TFT_ILI9341=y

没有这个文件的话,就打开内核目录,运行make menuconfig,在下图中添加驱动:

运行测试

编译镜像,烧写到开发板中,此时应该是黑屏有背光,我在调试过程中因为电源线接触不良问题导致没有背光,屏幕也不亮,最后人都傻了才发现线不通。

烧写好了系统,运行以下指令:

 cat /dev/urandom > /dev/fb0

可以看到屏幕有雪花点就移植成功了。

License:  CC BY 4.0