RK3288 最大输出分辨率为 3840x2160
HDMI 驱动代码位于 kernel/drivers/video/rockchip/hdmi/rockchip-hdmiv2 目录
1、设置默认输出分辨率
网上的资源是修改 kernel/drivers/video/rockchip/hdmi/rockchip-hdmiv2 中的 rockchip-hdmi.h 文件,
/* HDMI default vide mode */ #define HDMI_VIDEO_DEFAULT_MODE HDMI_1280X720P_60HZ
官方文档中是修改板级 dts 文件,路径为 kernel\arch\arm\boot\dts\xxx.dts
在 hdmi 节点中添加 rockchip,defaultmode = <value>,<value>值可以在 rockchip-hdmi.h 的 hdmi_video_infomation_code 中查到相应值。
hdmi_video_infomation_code 是一个枚举数组,从 1 开始,想设置哪个分辨率,value 值就填此分辨率的序号。
设置前首先得支持此分辨率。查看支持的分辨率:cat /sys/class/display/HDMI/modes
例如,设置默认分辨率为1280x720P60Hz输出:
//路径:kernel\arch\arm\boot\dts\xxx.dts &hdmi { status = "okay"; rockchip,hdmi_video_source = <DISPLAY_SOURCE_LCDC1>; rockchip,defaultmode = <4>; }; //路径:kernel\drivers\video\rockchip\hdmi\rockchip-hdmi.h /* HDMI video information code according CEA-861-F */ enum hdmi_video_infomation_code { HDMI_640X480P_60HZ = 1, HDMI_720X480P_60HZ_4_3, HDMI_720X480P_60HZ_16_9, HDMI_1280X720P_60HZ, ... }
2、调试方法
查看sink设备的EDID信息,含原始数据和解析后信息。
cat /sys/class/display/HDMI/debug
shell@xxx:/ $ cat /sys/class/display/HDMI/debug //EDID状态 EDID status:Okay //原始数据 Raw Data: 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x05, 0xe3, 0x80, 0x22, 0xfd, 0x05,