平台:RK3588 Android12
问题:点一个EDP屏
1、首先肯定是背光了
从原理图上看,无非就是一个使能一个PWM,顺着找到主控那边配一下就好了,这里是2_B5拉低,用的是PWM1
++ backlight: backlight {
++ compatible = "pwm-backlight";
++ pwms = <&pwm1 0 25000 0>;
++ enable-gpios = <&gpio2 RK_PB5 GPIO_ACTIVE_LOW>;
++ default-brightness-level = <200>;
++ };
++ &pwm1 {
++ status = "okay";
++ };
背光配好了再配置一下edp就行了
看样子把VCC3V3_LCD配好就ok了,所以继续往下查原理图;
一查发现,这个使能脚居然和另外一个背光用的是同一个,但是原理图上却没有把这个背光画在一起,所以其实只需要把这个 LCD_PWREN_H拉高一下,就可以得到一组背光以及edp了。
++ panel-edp {
++ status = "okay";
++ compatible = "innolux,p120zdg-bf4", "simple-panel";
++ backlight = <&backlight>;
++ power-supply = <&vcc3v3_lcd_n>;
++ prepare-delay-ms = <120>;
++ //enable-gpios = <&gpio2 RK_PB5 GPIO_ACTIVE_LOW>;
++ enable-delay-ms = <120>;
++ unprepare-delay-ms = <500>;
++ disable-delay-ms = <120>;
++ width-mm = <254>;
++ height-mm = <169>;
++
++ panel-timing {
++ clock-frequency = <72300000>;
++ hactive = <1366>;
++ vactive = <768>;
++ hback-porch = <160>;
++ hfront-porch = <80>;
++ hsync-len = <20>;
++ vback-porch = <10>;
++ vfront-porch = <8>;
++ vsync-len = <4>;
++ hsync-active = <0>;
++ vsync-active = <0>;
++ de-active = <0>;
++ pixelclk-active = <0>;
++ };
++
++ port {
++ panel_in_edp: endpoint {
++ remote-endpoint = <&edp_out_panel>;
++ };
++ };
++ };
++ &edp0 {
++ force-hpd;
++ status = "okay";
++
++ ports {
++ port@1 {
++ reg = <1>;
++
++ edp_out_panel: endpoint {
++ remote-endpoint = <&panel_in_edp>;
++ };
++ };
++ };
++ };
++
++ &edp0_in_vp2 {
++ status = "okay";
++ };
++
++ &route_edp0 {
++ connect = <&vp2_out_edp0>;
++ status = "okay";
++ };
++
++ &hdptxphy0{
++ lane-polarity-invert = <0 1 0 0>;
++ status = "okay";
++ };
++ vcc3v3_lcd_n: vcc3v3-lcd0-n {
++ compatible = "regulator-fixed";
++ regulator-name = "vcc3v3_lcd0_n";
++ regulator-boot-on;
++ enable-active-high;
++ gpio = <&gpio4 RK_PA4 GPIO_ACTIVE_HIGH>;
++ vin-supply = <&vcc_3v3_s3>;
++ };
大功告成了!