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_A2
、GPIO0_A4
、SPI0
通讯引脚,背光引脚接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