This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM623: DSS: DPI display on am62x

Part Number: AM623

Hi,

  We are trying to bring up DPI display(RGB888) on custom am62x board,
facing challenge to get display, not able to display any thing on screen.
any suggestion to solve issue will be helpful.
 
we are using ehrpwm for backlight pwm, dpi1 port
 enabled required driver


modification as below

backlight_dpi: backlight-dpi {
        compatible = "pwm-backlight";
        pinctrl-names = "default";
        pwms = <&epwm0 0 50000 0>;
        brightness-levels = <0 4 8 16 32 64 128 255>;
        default-brightness-level = <7>;
        enable-gpios = <&main_gpio1 13  GPIO_ACTIVE_HIGH>;
};

panel {
        compatible = "ampire,am-800480bdtzqw-01h";
        backlight = <&backlight_dpi>;
        enable-gpios = <&main_gpio0 85 GPIO_ACTIVE_HIGH>;

        port {
                panel_in: endpoint {
                        remote-endpoint = <&dpi1_out>;
                };
        };
};

&epwm0 {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&ehrpwm0_pins>;
};



&dss {
        pinctrl-names = "default";
        pinctrl-0 = <&main_dss0_pins_default>;
};

&dss_ports {
        /* VP2: DPI Output */
        port@1 {
                reg = <1>;

                dpi1_out: endpoint {
                        remote-endpoint = <&panel_in>;
                };
        };
};

some of dmesg/proc entry

sudo dmesg | grep "dss"
[    0.078797] platform panel: Fixing up cyclic dependency with 30200000.dss
[    4.119187] [drm] Initialized tidss 1.0.0 20180215 for 30200000.dss on minor 0
[    4.126609] tidss 30200000.dss: [drm] Cannot find any crtc or sizes

 sudo dmesg | grep "panel"
[    0.078797] platform panel: Fixing up cyclic dependency with 30200000.dss
[    4.108645] panel-simple panel: supply power not found, using dummy regulator

sudo dmesg | grep "backlight"
[    4.131079] pwm-backlight backlight-dpi: supply power not found, using dummy regulator

cat /sys/kernel/debug/pwm
platform/23000000.pwm, 2 PWM devices
 pwm-0   (backlight-dpi       ): requested period: 50000 ns duty: 0 ns polarity: normal
 pwm-1   (sysfs               ): requested period: 0 ns duty: 0 ns polarity: normal

 
ls -l /dev/dri/card0
crw-rw---- 1 root video 226, 0 Aug  4 04:08 /dev/dri/card0

ls -l /dev/dri/by-path/
total 0
lrwxrwxrwx 1 root root 8 Aug  4 04:08 platform-30200000.dss-card -> ../card0

  • Hello,

    Can you remove the backlight and let's just test the LCD first. As an example, I took the 9.0 release and made changes to support DPI panel (changes attached). For experimental purposes, I used the panel entry "newhaven,nhd-4.3-480272ef-atxl" and the timings are already defined in the following file: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/gpu/drm/panel/panel-simple.c?h=ti-linux-6.1.y#n2898

    After Linux boot, here is what I observe:

    root@am62xx-evm:~# kmsprint
    Connector 0 (40) DPI-1 (connected)
      Encoder 0 (39) DPI
        Crtc 0 (38) 480x272@59.94 9.000 480/2/41/2/- 272/2/10/2/- 60 (59.94) 0xa 0x48
          Plane 0 (31) fb-id: 52 (crtcs: 0) 0,0 480x272 -> 0,0 480x272 (AR12 AB12 RA12 RG16 BG16 AR15 AB15 AR24 AB24 RA24 BA24 RG24 BG24 AR30 AB30 XR12 XB12 RX12 XR15 XB)
            FB 52 480x272
    

    diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
    index 07763091a..ae2b3a102 100644
    --- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
    +++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
    @@ -105,6 +105,16 @@ framebuffer: framebuffer@ff700000 {
     		};
     	};
     
    +	panel {
    +			compatible = "newhaven,nhd-4.3-480272ef-atxl";
    +
    +			port {
    +					panel_in: endpoint {
    +							remote-endpoint = <&dpi1_out>;
    +					};
    +			};
    +	};
    +	
     	leds {
     		compatible = "gpio-leds";
     		pinctrl-names = "default";
    @@ -153,17 +163,6 @@ sound_master: simple-audio-card,codec {
     			clocks = <&tlv320_mclk>;
     		};
     	};
    -
    -	hdmi: connector {
    -		compatible = "hdmi-connector";
    -		label = "hdmi";
    -		type = "a";
    -		port {
    -			hdmi_connector_in: endpoint {
    -				remote-endpoint = <&sii9022_out>;
    -			};
    -		};
    -	};
     };
     
     &main_pmx0 {
    @@ -386,37 +385,6 @@ tlv320aic3106: audio-codec@1b {
     		DRVDD-supply = <&vcc_3v3_sys>;
     	};
     
    -	sii9022: sii9022@3b {
    -		#sound-dai-cells = <0>;
    -		compatible = "sil,sii9022";
    -		reg = <0x3b>;
    -
    -		interrupt-parent = <&exp1>;
    -		interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
    -
    -		sil,i2s-data-lanes = < 0 >;
    -
    -		ports {
    -			#address-cells = <1>;
    -			#size-cells = <0>;
    -
    -			port@0 {
    -				reg = <0>;
    -
    -				sii9022_in: endpoint {
    -					remote-endpoint = <&dpi1_out>;
    -				};
    -			};
    -
    -			port@1 {
    -				reg = <1>;
    -
    -				sii9022_out: endpoint {
    -					remote-endpoint = <&hdmi_connector_in>;
    -				};
    -			};
    -		};
    -	};
     };
     
     &main_i2c2 {
    @@ -564,7 +532,7 @@ port@1 {
     		reg = <1>;
     
     		dpi1_out: endpoint {
    -			remote-endpoint = <&sii9022_in>;
    +			remote-endpoint = <&panel_in>;
     		};
     	};
     };
    
     

    Regards,
    Krunal

  • Thanks for the support, now I am able get display.