User Tools

Site Tools


Sidebar

Go Back

Refresh

You are not allowed to add pages

Direct Link

library:rk3568:lcddrv

LCD @ Core-3568J

1. 硬件信息

1.1 LCD接口

模块参数

分辨率:128×160
驱动芯片:ST7735S
接口类型:SPI
背光电流:30mA
电压:3.3V

模块接口

pin Name Feature
1 NC
2 GND
3 LED-
4 LED+
5 GND
6 /RESET 复位,低有效
7 A0 指令/数据, L:指令,H:数据
8 SDA
9 SCK
10 VCC 电源2.8~3.3v
11 IOVCC IO电压2.8~3.3v
12 /CS 片选,低有效
13 GND
14 NC

1.2 控制接口

No 信号 pin@Core-3568J pin@rk3568 GPIO
1 /RESET 169 GPIO0_A6
2 /CS 185 SPI0_CS0_M0 GPIO0_C6
3 SCK 175 SPI0_CLK_M0 GPIO0_B5
4 SDA 159 SPI0_MOSI_M0 GPIO0_B6
5 CD 173 GPIO0_C1
6 BL 171 GPIO0_C3

2. Linux驱动设计(A)

采用gpio-leds + spidev方式连接LCD模块,模块端口信号采用两种驱动:

  • io: /Reset,BL,CD信号,使用gpio-leds驱动
  • spi: /CS,SCK,SDA使用spidev驱动

2.1 控制IO

2.1.1 dts

		lcd_reset: reset {
			label = "lcd:reset";
			linux,default-trigger = "none"; 
			default-state = "on";
			gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
		};

		lcd_backlight: backlight {
			label = "lcd:backlight";
			linux,default-trigger = "none"; 
			default-state = "on";
			gpios = <&gpio0 RK_PC3 GPIO_ACTIVE_HIGH>;
		};

		lcd_data: data {
			label = "lcd:data";
			linux,default-trigger = "none"; 
			default-state = "on";
			gpios = <&gpio0 RK_PC1 GPIO_ACTIVE_HIGH>;
		};

添加以上3个pin的gpio-leds节点,驱动成功后的访问入口为:

/sys/class/leds/lcd:reset
/sys/class/leds/lcd:backlight
/sys/class/leds/lcd:data

可以用命令测试这几个pin的状态:

# backlight = 1
echo 1 > /sys/class/leds/lcd:backlight
# backlight = 0
echo 1 > /sys/class/leds/lcd:backlight

2.2 spidev配置

修改DTS及添加驱动到内核

2.2.1 内核配置spidev

Device Drivers ‐‐‐> 
  [*] SPI support ‐‐‐> 
     <*> Rockchip SPI controller driver
     [*] User mode SPI device driver support

2.2.2 dts配置

  • rk3568-firefly-mplayer.dtsi

添加节点spi0

&spi0 {
    status = "okay";
    max-freq = <50000000>;
    pinctrl-0 = <&spi0m0_cs0 &spi0m0_cs0 &spi0m0_pins>;
    pinctrl-1 = <&spi0m0_cs0 &spi0m0_cs0 &spi0m0_pins_hs>;	
    spidev@0 {
        compatible = "rockchip,spidev";
        reg = <0>; // CS0
        spi-max-frequency = <5000000>;
    };
};
  • pinctrl-0/1 重写覆盖了原定义,cs脚使用 spi0m0_cs1 代替 spi0m0_cs0
  • 停用冲突的管脚: uart8,pwm7等

2.3 Demo script

library/rk3568/lcddrv.txt · Last modified: 2022/11/02 23:55 by lhaosen