流程(在内核设备树)

  1. 首先确认使用的屏幕

    这里使用的屏幕:ST7789V + CTC2.8 3SPI_RGB18BIT 需要spi去做初始化。

    有些通用并口LCD屏编写设备树的方式又不一样。

  2. 查看PCB原理图,确认接线。

    屏幕接线

  3. 找到背光引脚,先点亮背光。

背光

  1. 修改背光设备树(GPIO控制背光)

    新建aa_rv1106-lcd.dtsi测试文件。在使用的dts中#include引入,注意不能有panel节点,panel节点会控制背光,如果panel初始化失败,背光就没有效果。

    1. 新增背光节点

      #include <dt-bindings/pinctrl/rockchip.h>
      
      / {
      	backlight: backlight {
      		status = "okay";
      		compatible = "gpio-backlight";
      		gpios = <&gpio1 RK_PB0 GPIO_ACTIVE_HIGH>;
      		default-on;
      		power-supply = <&vcc_3v3>;
      	};
      };
      
    2. 开启内核支持

      CONFIG_BACKLIGHT_GPIO=y
      
    3. 查看是否有配置

      ls /sys/class/backlight #下有 backlight
      
    4. 控制背光

      echo 0 > /sys/class/backlight/backlight/brightness
      echo 1 > /sys/class/backlight/backlight/brightness
      
  2. 修改背光设备树(PWM控制背光)

    1. 新增节点

      #include <dt-bindings/pinctrl/rockchip.h>
      / {
      	backlight: backlight {
      		status = "okay";
      		compatible = "pwm-backlight";
      		pwms = <&pwm3 0 25000 1>;
      		brightness-levels = <0 10 30 60 100 150 200 255>;
      		default-brightness-level = <7>;
      		power-supply = <&vcc_3v3>;
      	};
      };
      
      /* PWM3_M1 = GPIO1_B0, 用于背光 */
      &pwm3 {
      	status = "okay";
      	pinctrl-names = "active";
      	pinctrl-0 = <&pwm3m1_pins>;
      };
      
    2. 内核支持

      CONFIG_PWM=y
      #CONFIG_PWM_ROCKCHIP=y
      #CONFIG_BACKLIGHT_PWM=y