问题描述及复现步骤:
1、使用AIO-3399J-HDMI_IN的开发板,使用edp屏幕,根据edp屏幕的datesheet修改kernel下的rk3399-firefly-edp.dts里面的ttiming参数。修改内容如下:
修改1
edp_panel: edp-panel {
compatible = "simple-panel";
status = "okay";
backlight = <&backlight>;
display-timings {
native-mode = <&timing0>;
timing0: timing0 {
clock-frequency = <139000000>;
hactive = <1920>;//1536 根据datesheet修改了参数。
vactive = <1080>;//2048
hfront-porch = <55>;//12
hsync-len = <50>;//16
hback-porch = <55>;//48
vfront-porch = <12>;//8
vsync-len = <8>;//4
vback-porch = <12>;//8
hsync-active = <0>;
vsync-active = <0>;
de-active = <0>;
pixelclk-active = <0>;
};
};
修改2
power_ctr: power_ctr {
rockchip,debug = <0>;
lcd_en: lcd-en {
gpios = <&gpio1 1 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&lcd_panel_enable>;
rockchip,delay = <20>;
};
lcd_rst: lcd-rst {
gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&lcd_panel_reset>;
rockchip,delay = <20>;
};
lcd_pwr_en: lcd-pwr-en { //增加了这部分内容。
gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&lcd_panel_pwr_en>;
rockchip,delay = <20>;
};
};
修改3
&pinctrl {
lcd-panel {
lcd_panel_reset: lcd-panel-reset {
rockchip,pins = <4 29 RK_FUNC_GPIO &pcfg_pull_up>;
};
lcd_panel_enable: lcd-panel-enable {
rockchip,pins = <1 1 RK_FUNC_GPIO &pcfg_pull_up>;
};
lcd_panel_pwr_en: lcd-panel-pwr-en { // 增加了这部分内容。
rockchip,pins = <1 4 RK_FUNC_GPIO &pcfg_pull_up>;
};
};
};
2、使用官方编译脚本进行编译kernel ./FFtools/make.sh -k -d rk3399-firefly-edp -j8 -l rk3399_firefly_edp-userdebug .
3、输入AIO-3399J_Industry7.1.2_HDMI_211214 固件后更新编译出来的resource.img
4、出现现象,
(1)开机后点亮屏幕,显示firefly的开机logo。
(2)开机edp-hdp管脚始终没有电压。
(3)在屏幕显示时,BL_EN、PMW0有2.8电压,在屏幕熄灭后电压为0。
问:哪位大神能指点下,半路出家搞这个,现在还是个大白。搞不明白时什么地方对 BL_EN和PMW0进行了控制。
更多回帖