rk3506驱动ST7735r点屏

144 阅读1分钟
  1. 设备树文件
    kernel/arch/arm/boot/dts/rk3506b-luckfox-lyra-pi-w.dts

2.引脚图

image.png

  1. 点屏幕
    CLK ==> RM_IO27
    MOSI ==> RM_IO26
    CS ==> RM_IO25
    DC ==> RM_IO24 (GPIO1_B1)
    RES ==> RM_IO8 (GPIO0_B0)
    BLK ==> RM_IO7 (GPIO0_A7)
&spi0 {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&rm_io27_spi0_clk &rm_io26_spi0_mosi &rm_io25_spi0_csn0>;

/*    spidev@0 {
        compatible = "rockchip,spidev";
        spi-max-frequency = <10000000>;
        reg = <0>;
    };
*/

    st7735r@0{
        status = "okay";
        compatible = "sitronix,st7735r";
        reg = <0>;
        spi-max-frequency = <60000000>;
        fps = <30>;
        buswidth = <8>;
        debug = <0x7>;
        led-gpios = <&gpio0 RK_PA7 GPIO_ACTIVE_HIGH>;//BL
        dc-gpios = <&gpio1 RK_PB1 GPIO_ACTIVE_HIGH>;      //DC
        reset-gpios = <&gpio0 RK_PB0 GPIO_ACTIVE_LOW>;    //RES
    };

};
./build.sh kernel-config #打开fbtft和st7735r
./build.sh kernel  #编译内核
烧录内核
scp上传ko文件(最快验证方法,也可以打包rootfs重烧不过会比较慢)
scp output/kernel-modules/lib/modules/6.1.99/kernel/drivers/staging/fbtft/fbtft.ko root@192.168.123.100:/lib/modules/6.1.99/kernel/drivers/staging/fbtft/
scp output/kernel-modules/lib/modules/6.1.99/kernel/drivers/staging/fbtft/fb_st7735r.ko root@192.168.123.100:/lib/modules/6.1.99/kernel/drivers/staging/fbtft/

调试方法

  1. 确认设备树节点是否被匹配
ls /sys/bus/spi/devices/   #应该看到类似spi0.0
cat /sys/bus/spi/devices/spi0.0/modalias #应该是spi:st7735r

2. 手动加载ko

insmod /lib/modules/6.1.99/kernel/drivers/staging/fbtft/fbtft.ko
insmod /lib/modules/6.1.99/kernel/drivers/staging/fbtft/fb_st7735r.ko