本文wukongpi开发板全志H3芯片,lcd以st7789为例

kernel设置

在menuconfig中打开fbtft开关,在kernel根目录下执行make menuconfig

1
2
3
4
└─>Device Drivers
└─>Staging drivers
└─>Support for small TFT LCD display modules
└─> FB driver for the ST7789V LCD Controller

Img
相关驱动源代码在 drivers\staging\fbtft\fb_st7789v.c,感兴趣可自行查看

设备树配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
&spi1 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&spi1_pins>;
cs-gpios = <&pio 0 13 GPIO_ACTIVE_LOW>; /* PA13 */
#address-cells = <1>;
#size-cells = <0>;
spilcd@0 {
compatible = "sitronix,st7789v";
reg = <0>;
spi-max-frequency = <32000000>;
fps = <60>;
buswidth = <8>;
reset-gpios = <&pio 0 0 GPIO_ACTIVE_HIGH>; /* PA0 */
dc-gpios = <&pio 0 1 GPIO_ACTIVE_HIGH>; /* PA1 */
blk-gpios = <&pio 0 6 GPIO_ACTIVE_HIGH>; /* PA6 */
pinctrl-names = "default";
};
};

由于lcd通过spi协议通信,在这里用H3的spi1外设
spi1_pins已在芯片相关设备树头文件中定义,硬件接口如clk,mosi接口就要使用spi1的接口
compatible = “sitronix,st7789v”,”sitronix,st7789v”在drivers\staging\fbtft\fb_st7789v.c中定义
其他接口可自行配置,在本例中设置 reset-PA0,dc-PA1,blk-PA6,cs-PA13

编译

kernel配置和设备树配置完后,就可编译kernel镜像和设备树文件。
之后在bootargs中设置添加console=tty1即可。