Spacemit 屏幕调试文档
介绍spacemit k1平台 Uboot 和 kernel 的 mipi 与 hdmi 屏幕驱动用例和调试方法。
模块介绍
spacemit 平台 Display 模块使用 DRM 框架,DRM 全称是 Direct Rendering Manager,是Linux系统目前主流的显示框架,适应当前显示硬件的特性。

一、Uboot 屏幕调试
1.1. 源码结构介绍
spacemit 平台 Uboot 显示驱动源码结构:
uboot-2022.10/drivers/video$ tree spacemit
spacemit
├── dsi
│ ├── drv
│ │ ├── spacemit_dphy.c // mipi dsi dphy驱动
│ │ ├── spacemit_dphy.h
│ │ ├── spacemit_dsi_common.c
│ │ ├── spacemit_dsi_drv.c // mipi dsi 驱动
│ │ ├── spacemit_dsi_drv.h
│ │ └── spacemit_dsi_hw.h
│ ├── include
│ │ ├── spacemit_dsi_common.h
│ │ └── spacemit_video_tx.h
│ ├── Makefile
│ └── video
│ ├── lcd // panel 配置
│ │ ├── lcd_ft8201sinx101.c
│ │ ├── lcd_gx09inx101.c
│ │ ├── lcd_icnl9911c.c
│ │ ├── lcd_icnl9951r.c
│ │ ├── lcd_jd9365dah3.c
│ │ └── lcd_lt8911ext_edp_1080p.c
│ ├── spacemit_mipi_port.c
│ └── spacemit_video_tx.c
├── Kconfig
├── Makefile
├── spacemit_dpu.c // dpu 驱动
├── spacemit_dpu.h
├── spacemit_edp.c // eDP panel驱动
├── spacemit_hdmi.c // HDMI 驱动
├── spacemit_hdmi.h
├── spacemit_mipi.c // mipi 驱动
└── spacemit_mipi.h
1.2. 配置介绍
1.2.1. CONFIG配置
执行 make uboot-menuconfig,进入 Device Drivers -> Graphics support,将以下配置打开(默认情况下已开启)。
Device Drivers --->
Graphics support --->
<*> Enable SPACEMIT Video Suppor
<*> HDMI port
<*> MIPI Port
<*> EDP Port
1.2.2. HDMI dts配置
配置 hdmi 相关设备树
//uboot-2022.10/arch/riscv/dts/k1-x_deb1.dts
&dpu {
status = "okay";
};
&hdmi {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_hdmi_0>; //pinctrl
status = "okay";
};
1.2.3. MIPI dts配置
MIPI DSI
Gpio
MIPI DSI panel gpio相关配置,以k1-x_deb1方案为例: gpio81配置为panel复位pin,gpio82和gpio83 配置为panel电源控制pin。
//uboot-2022.10/arch/riscv/dts/k1-x_deb1.dts
&dpu {
status = "okay";
};
&mipi_dsi {
status = "okay";
};
&panel {
dcp-gpios = <&gpio 82 0>; // 配置panel 电源控制 gpio
dcn-gpios = <&gpio 83 0>; // 配置panel 电源控制 gpio
backlight = <&backlight>; // 配置背光 pwm
reset-gpios = <&gpio 81 0>; // 配置panel 复位 gpio
status = "okay";
};
DSI电源配置
MIPI DSI需要配置MIPI DSI 1.2v电源。
以k1-x_deb1方案为例: 需配置pmic ldo_5为MIPI DSI 1.2v。(方案实际可不需要配置,默认已开启)
//uboot-2022.10/arch/riscv/dts/k1-x_deb1.dts
&ldo_27 {
regulator-init-microvolt = <1200000>;
regulator-boot-on;
regulator-state-mem {
regulator-off-in-suspend;
};
};
//uboot-2022.10/arch/riscv/dts/k1-x_spm8821.dtsi
/* dldo */
ldo_27: LDO_REG5 {
regulator-name = "ldo5";
regulator-min-microvolt = <500000>;
regulator-max-microvolt = <3400000>;
regulator-state-mem {
regulator-off-in-suspend;
};
};
PWM
通过pwm控制背光
&pwm14 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_pwm14_1>;
status = "okay";
};
&backlight {
pwms = <&pwm14 0 2000>;
default-brightness-level = <6>;
status = "okay";
};