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.

AM625: AM62x enables LVDS exception

Part Number: AM625

Tool/software:

Problem description:

    When starting LVDS in dts, the backlight PWM has been unable to output. What could be the possible cause of this? Is it defconfig or dts exception?

My dts configuration:

#include <dt-bindings/pwm/pwm.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include "k3-pinctrl.h"
#include "k3-am62x-sk-common.dtsi"

&{/} {  
    backlight_lvds: backlight-lvds {
        compatible = "pwm-backlight";
        pwms = <&epwm1 1 20000 0>;
        brightness-levels = <
              0  20  20  21  21  22  22  23
             23  24  24  25  25  26  26  27
             27  28  28  29  29  30  30  31
             31  32  32  33  33  34  34  35
             35  36  36  37  37  38  38  39
             40  41  42  43  44  45  46  47
             48  49  50  51  52  53  54  55
             56  57  58  59  60  61  62  63
             64  65  66  67  68  69  70  71
             72  73  74  75  76  77  78  79
             80  81  82  83  84  85  86  87
             88  89  90  91  92  93  94  95
             96  97  98  99 100 101 102 103
            104 105 106 107 108 109 110 111
            112 113 114 115 116 117 118 119
            120 121 122 123 124 125 126 127
            128 129 130 131 132 133 134 135
            136 137 138 139 140 141 142 143
            144 145 146 147 148 149 150 151
            152 153 154 155 156 157 158 159
            160 161 162 163 164 165 166 167
            168 169 170 171 172 173 174 175
            176 177 178 179 180 181 182 183
            184 185 186 187 188 189 190 191
            192 193 194 195 196 197 198 199
            200 201 202 203 204 205 206 207
            208 209 210 211 212 213 214 215
            216 217 218 219 220 221 222 223
            224 225 226 227 228 229 230 231
            232 233 234 235 236 237 238 239
            240 241 242 243 244 245 246 247
            248 249 250 251 252 253 254 255
            >;
        default-brightness-level = <255>;
    };


    panel_lvds: panel_lvds {
        compatible = "panel-lvds";
        backlight = <&backlight_lvds>;
        lable = "LVDS";
        data-mapping = "vesa-24";
        width-mm = <229>;
        height-mm = <149>;

        panel-timing {
            clock-frequency = <71100000>;
            hactive = <1280>;
            vactive = <800>;

            hback-porch = <88>;
            hfront-porch = <70>;

            vback-porch = <21>;
            vfront-porch = <15>;

            hsync-len = <4>;
            vsync-len = <4>;

            hsync-active = <0>;
            vsync-active = <0>;

            de-active = <0>;
            pixelclk-active = <0>;
        };

        port@0 {
            lvds_in0: endpoint {
                remote-endpoint = <&lvds_out0>;
            };
        };
    };
};

&dss_ports {
    #address-cells = <1>;
    #size-cells = <0>;

    port@0 {
        reg = <0>;
        lvds_out0: endpoint {
            remote-endpoint = <&lvds_in0>;
        };
    };
};

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

&epwm1 {
    pinctrl-names = "default";
    pinctrl-0 = <&main_epwm1_a_pins_default>;
    status  = "okay";
};

&main_pmx0 {
    main_epwm1_a_pins_default: main-epwm1-a-pins-default {
        pinctrl-single,pins = <
            AM62X_IOPAD(0x19c, PIN_OUTPUT, 6) /* (B18) MCASP0_AXR1.EHRPWM1_A */			
        >;
    };

	main_oldi0_pins_default: main-oldi0-pins-default {
        pinctrl-single,pins = <
            AM62X_IOPAD(0x0260, PIN_OUTPUT, 0) /* (AA5) OLDI0_A0N */
            AM62X_IOPAD(0x025c, PIN_OUTPUT, 0) /* (Y6) OLDI0_A0P */
            AM62X_IOPAD(0x0268, PIN_OUTPUT, 0) /* (AD3) OLDI0_A1N */
            AM62X_IOPAD(0x0264, PIN_OUTPUT, 0) /* (AB4) OLDI0_A1P */
            AM62X_IOPAD(0x0270, PIN_OUTPUT, 0) /* (Y8) OLDI0_A2N */
            AM62X_IOPAD(0x026c, PIN_OUTPUT, 0) /* (AA8) OLDI0_A2P */
            AM62X_IOPAD(0x0278, PIN_OUTPUT, 0) /* (AB6) OLDI0_A3N */
            AM62X_IOPAD(0x0274, PIN_OUTPUT, 0) /* (AA7) OLDI0_A3P */
            AM62X_IOPAD(0x0280, PIN_OUTPUT, 0) /* (AC6) OLDI0_A4N */
            AM62X_IOPAD(0x027c, PIN_OUTPUT, 0) /* (AC5) OLDI0_A4P */
            AM62X_IOPAD(0x0288, PIN_OUTPUT, 0) /* (AE5) OLDI0_A5N */
            AM62X_IOPAD(0x0284, PIN_OUTPUT, 0) /* (AD6) OLDI0_A5P */
            AM62X_IOPAD(0x0290, PIN_OUTPUT, 0) /* (AE6) OLDI0_A6N */
            AM62X_IOPAD(0x028c, PIN_OUTPUT, 0) /* (AD7) OLDI0_A6P */
            AM62X_IOPAD(0x0298, PIN_OUTPUT, 0) /* (AD8) OLDI0_A7N */
            AM62X_IOPAD(0x0294, PIN_OUTPUT, 0) /* (AE7) OLDI0_A7P */
            AM62X_IOPAD(0x02a0, PIN_OUTPUT, 0) /* (AD4) OLDI0_CLK0N */
            AM62X_IOPAD(0x029c, PIN_OUTPUT, 0) /* (AE3) OLDI0_CLK0P */
            AM62X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (AE4) OLDI0_CLK1N */
            AM62X_IOPAD(0x02a4, PIN_OUTPUT, 0) /* (AD5) OLDI0_CLK1P */
        >;
    };
};

系统log:

root@sbc7138:~# cat /sys/kernel/debug/gpio
gpiochip2: GPIOs 344-367, parent: i2c/1-0022, 1-0022, can sleep:
 gpio-344 (GPIO_CPSW2_RST      )
 gpio-345 (GPIO_CPSW1_RST      )
 gpio-346 (PRU_DETECT          )
 gpio-347 (MMC1_SD_EN          |regulator-3         ) out lo 
 gpio-348 (VPP_LDO_EN          )
 gpio-349 (EXP_PS_3V3_En       )
 gpio-350 (EXP_PS_5V0_En       )
 gpio-351 (EXP_HAT_DETECT      )
 gpio-352 (GPIO_AUD_RSTn       )
 gpio-353 (GPIO_eMMC_RSTn      )
 gpio-354 (UART1_FET_BUF_EN    )
 gpio-355 (WL_LT_EN            |regulator-6         ) out lo ACTIVE LOW
 gpio-356 (GPIO_HDMI_RSTn      )
 gpio-357 (CSI_GPIO1           )
 gpio-358 (CSI_GPIO2           )
 gpio-359 (PRU_3V3_EN          )
 gpio-360 (HDMI_INTn           )
 gpio-361 (PD_I2C_IRQ          )
 gpio-362 (MCASP1_FET_EN       )
 gpio-363 (MCASP1_BUF_BT_EN    )
 gpio-364 (MCASP1_FET_SEL      )
 gpio-365 (UART1_FET_SEL       )
 gpio-366 (TSINT#              )
 gpio-367 (IO_EXP_TEST_LED     )

gpiochip1: GPIOs 368-419, parent: platform/601000.gpio, 601000.gpio:
 gpio-417 (                    |heartbeat           ) out lo 

gpiochip0: GPIOs 420-511, parent: platform/600000.gpio, 600000.gpio:
 gpio-451 (                    |tlv71033            ) out lo 
 gpio-491 (                    |regulator-7         ) out lo 
root@sbc7138:~# 
root@sbc7138:~# 
root@sbc7138:~# cat /sys/kernel/debug/pinctrl/f4000.pinctrl-pinctrl-single/pinmux-pins | grep pwm
pin 103 (PIN103): 23010000.pwm (GPIO UNCLAIMED) function main-epwm1-a-pins-default group main-epwm1-a-pins-default
root@sbc7138:~# 
root@sbc7138:~# dmesg | grep pwm
[   17.659335] pwm-backlight backlight-lvds: supply power not found, using dummy regulator
[   18.450811] Modules linked in: videobuf2_dma_contig m_can_platform m_can rti_wdt(+) syscopyarea videobuf2_memops sysfillrect sysimgblt fb_sys_fops videobuf2_v4l2 ti_k3_m4_remoteproc(+) videobuf2_common v4l2_async ti_k3_common can_dev drm videodev snd_soc_davinci_mcasp snd_soc_tlv320aic3x_i2c snd_soc_ti_udma snd_soc_tlv320aic3x cdns_dphy_rx snd_soc_ti_edma pruss sa2ul mcrc drm_panel_orientation_quirks snd_soc_ti_sdma mc pwm_bl optee_rng rng_core pwm_tiehrpwm ip_tables x_tables ipv6
root@sbc7138:~# 

  • add log:

    root@sbc7138:~# dmesg | grep dss
    [   10.444403] platform 30200000.dss: Fixed dependency cycle(s) with /bus@f0000/i2c@20010000/sii9022@3b
    [   10.474710] platform 30200000.dss: Fixed dependency cycle(s) with /panel_lvds
    [   10.482071] platform panel_lvds: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
    [   11.215104] platform 30200000.dss: Fixed dependency cycle(s) with /bus@f0000/i2c@20010000/sii9022@3b
    [   11.230782] i2c 1-003b: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
    [   18.991271] Modules linked in: ti_k3_r5_remoteproc(+) rti_wdt(+) k3_j72xx_bandgap(+) j721e_csi2rx videobuf2_dma_contig tidss sii902x drm_dma_helper videobuf2_memops videobuf2_v4l2 m_can_platform videobuf2_common drm_kms_helper v4l2_async m_can ti_k3_m4_remoteproc syscopyarea sysfillrect sysimgblt fb_sys_fops ti_k3_common videodev can_dev drm pruss mcrc sa2ul snd_soc_davinci_mcasp snd_soc_ti_udma snd_soc_ti_edma mc cdns_dphy_rx snd_soc_ti_sdma snd_soc_tlv320aic3x_i2c pwm_tiehrpwm snd_soc_tlv320aic3x drm_panel_orientation_quirks optee_rng rng_core pwm_bl ip_tables x_tables ipv6
    [   32.872677] platform 30200000.dss: deferred probe pending

  • Which SDK are you using?
    Can you please take reference from this example in the SDK: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am625-sk-microtips-mf101hie-panel.dtso?h=ti-linux-6.12.y and create you dts this way, with panel timings defined in panel-simple.c or equivalent.

    Are you using single-link or dual-link LVDS?
    Is it a custom board?
    Also share results of the following:

    kmsprint
    modetest -M tidss
    kmstest

    When you run kmstest, also share what you see on screen.

  •     Thank you very much for your reply. I haven't reached the lvds display section yet. Currently, the PWM backlight has no output.

        I have to manually execute the command to control it in order to activate the backlight.

       Could it be a problem with the backlight driver?

    cat /sys/class/backlight/backlight-lvds/actual_brightness
    255
    root@sbc7138:~# 
    root@sbc7138:~# cat /sys/class/backlight/backlight-lvds/bl_power
    4
    root@sbc7138:~# 
    root@sbc7138:~# cat /sys/kernel/debug/pwm
    platform/23010000.pwm, 2 PWM devices
     pwm-0   (backlight-lvds      ): requested period: 1000000 ns duty: 0 ns polarity: normal
     pwm-1   ((null)              ): period: 0 ns duty: 0 ns polarity: normal
    root@sbc7138:~# 
    root@sbc7138:~# 
    root@sbc7138:~# dmesg | grep pwm
    [   10.454584] platform 23010000.pwm: Fixed dependency cycle(s) with /bus@f0000/pwm@23010000
    root@sbc7138:~# 
    root@sbc7138:~# echo 0 > /sys/class/backlight/backlight-lvds/bl_power
    root@sbc7138:~# 
    root@sbc7138:~# cat /sys/kernel/debug/pwm
    platform/23010000.pwm, 2 PWM devices
     pwm-0   (backlight-lvds      ): requested enabled period: 1000000 ns duty: 1000000 ns polarity: normal
     pwm-1   ((null)              ): period: 0 ns duty: 0 ns polarity: normal
    root@sbc7138:~# 
    root@sbc7138:~# dmesg | grep backlight
    root@sbc7138:~# 

  • Let me get back to you by upcoming Monday

  • OK, Thank you very much。I'll add some more logs。

    root@sbc7138:~# dmesg | grep pwm
    [   10.454636] platform 23010000.pwm: Fixed dependency cycle(s) with /bus@f0000/pwm@23010000
    root@sbc7138:~# 
    root@sbc7138:~# dmesg | grep backlight
    root@sbc7138:~# 
    root@sbc7138:~# dmesg | grep lvds
    [   10.464265] platform 30200000.dss: Fixed dependency cycle(s) with /panel_lvds
    [   10.471622] platform panel_lvds: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
    root@sbc7138:~# 
    root@sbc7138:~# dmesg | grep dss
    [   10.464265] platform 30200000.dss: Fixed dependency cycle(s) with /panel_lvds
    [   10.471622] platform panel_lvds: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
    [   19.314492] Modules linked in: rtc_ti_k3(+) dwc3_am62 ti_k3_r5_remoteproc(+) k3_j72xx_bandgap(+) rti_wdt(+) tidss m_can_platform m_can ti_k3_m4_remoteproc ti_k3_common drm_dma_helper j721e_csi2rx can_dev drm_kms_helper syscopyarea videobuf2_dma_contig sysfillrect sysimgblt fb_sys_fops videobuf2_memops snd_soc_davinci_mcasp videobuf2_v4l2 snd_soc_ti_udma videobuf2_common snd_soc_ti_edma v4l2_async drm cdns_dphy_rx pruss snd_soc_ti_sdma videodev mc sa2ul mcrc drm_panel_orientation_quirks snd_soc_tlv320aic3x_i2c snd_soc_tlv320aic3x optee_rng rng_core ip_tables x_tables ipv6
    [   19.646650] [drm] Initialized tidss 1.0.0 20180215 for 30200000.dss on minor 0
    [   19.770502] tidss 30200000.dss: [drm] fb0: tidssdrmfb frame buffer device
    root@sbc7138:~# 
    root@sbc7138:~# lsmod | grep lvds
    panel_lvds             16384  0
    drm                   561152  5 drm_kms_helper,drm_dma_helper,tidss,panel_lvds
    root@sbc7138:~# 
    root@sbc7138:~# lsmod | grep pwm
    root@sbc7138:~# 

  •   I have now modified my dts file. The backlight can now be lit up.

      The system has recognized the LVDS device, but there is no display output.

      The CLK signal for testing LVDS is also not there.

    The following is my DTS:

    #include <dt-bindings/pwm/pwm.h>
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    #include "k3-pinctrl.h"
    #include "k3-am62x-sk-common.dtsi"
    
    &{/} {  
        backlight_lvds: backlight-lvds {
    		compatible = "pwm-backlight";
    		pwms = <&epwm1 0 1000000 0>; 
    		brightness-levels = <
                  0  20  20  21  21  22  22  23
                 23  24  24  25  25  26  26  27
                 27  28  28  29  29  30  30  31
                 31  32  32  33  33  34  34  35
                 35  36  36  37  37  38  38  39
                 40  41  42  43  44  45  46  47
                 48  49  50  51  52  53  54  55
                 56  57  58  59  60  61  62  63
                 64  65  66  67  68  69  70  71
                 72  73  74  75  76  77  78  79
                 80  81  82  83  84  85  86  87
                 88  89  90  91  92  93  94  95
                 96  97  98  99 100 101 102 103
                104 105 106 107 108 109 110 111
                112 113 114 115 116 117 118 119
                120 121 122 123 124 125 126 127
                128 129 130 131 132 133 134 135
                136 137 138 139 140 141 142 143
                144 145 146 147 148 149 150 151
                152 153 154 155 156 157 158 159
                160 161 162 163 164 165 166 167
                168 169 170 171 172 173 174 175
                176 177 178 179 180 181 182 183
                184 185 186 187 188 189 190 191
                192 193 194 195 196 197 198 199
                200 201 202 203 204 205 206 207
                208 209 210 211 212 213 214 215
                216 217 218 219 220 221 222 223
                224 225 226 227 228 229 230 231
                232 233 234 235 236 237 238 239
                240 241 242 243 244 245 246 247
                248 249 250 251 252 253 254 255
            >;
            default-brightness-level = <255>;
    		enable-gpios = <&main_gpio0 41 GPIO_ACTIVE_HIGH>; 
    		power-supply = <&vcc_3v3_sys>;	
        };
    
    
        panel_lvds: panel_lvds {
            compatible = "microtips,mf-101hiebcaf0", "panel-simple";
            backlight = <&backlight_lvds>;
            lable = "LVDS";
            data-mapping = "vesa-24";
            width-mm = <229>;
            height-mm = <149>;
    		
            panel-timing {
                clock-frequency = <71100000>;
                hactive = <1280>;
                vactive = <800>;
    
                hback-porch = <88>;
                hfront-porch = <70>;
    
                vback-porch = <21>;
                vfront-porch = <15>;
    
                hsync-len = <4>;
                vsync-len = <4>;
    
                hsync-active = <0>;
                vsync-active = <0>;
    
                de-active = <0>;
                pixelclk-active = <0>;
            };
    
    		ports {
    			port@0 {
    				lvds_in0: endpoint {
    					remote-endpoint = <&lvds_out0>;
    				};
    			};
    		};
        };
    };
    
    &dss {
        pinctrl-names = "default";
        pinctrl-0 = <&main_oldi0_pins_default>;
        status  = "okay";
    };
    
    &dss_ports {
        port@0 {
            reg = <0>;
            lvds_out0: endpoint {
                remote-endpoint = <&lvds_in0>;
            };
        };
    };
    
    &epwm1 {
        pinctrl-names = "default";
    	pwms = <&epwm1 0 20000 0>; 
        pinctrl-0 = <&main_epwm1_a_pins_default>;
        status  = "okay";
    };
    
    &main_pmx0 {
        main_epwm1_a_pins_default: main-epwm1-a-pins-default {
            pinctrl-single,pins = <
                AM62X_IOPAD(0x19c, PIN_OUTPUT, 6) /* (B18) MCASP0_AXR1.EHRPWM1_A */			
            >;
        };
    
    	pwmenable_pins_default: pwmenable-default-pins {
    		pinctrl-single,pins = <
    			/* PWM pin set */
    			AM62X_IOPAD(0x0094, PIN_INPUT_PULLDOWN, 7) /* (N20) GPMC0_BE1n.GPIO0_36  sbc7138-AM6254_BKLT_PWM_DC_SEL */
    			AM62X_IOPAD(0x00a4, PIN_INPUT_PULLDOWN, 7) /* (M22) GPMC0_DIR.GPIO0_40   sbc7138-AM6254_BKLT_PWM_VO_EN  */
    			AM62X_IOPAD(0x00a8, PIN_INPUT_PULLUP, 7) /* (M21) GPMC0_CSn0.GPIO0_41    sbc7138-AM6254_BKLT_ON         */
    			AM62X_IOPAD(0x00ac, PIN_INPUT_PULLDOWN, 7) /* (L21) GPMC0_CSn1.GPIO0_42  sbc7138-AM6254_BKLT_EN_VO_SEL  */
    			/* PWM pin set END */
    		>;
    	};
    
    	main_oldi0_pins_default: main-oldi0-pins-default {
            pinctrl-single,pins = <
                AM62X_IOPAD(0x0260, PIN_OUTPUT, 0) /* (AA5) OLDI0_A0N */
                AM62X_IOPAD(0x025c, PIN_OUTPUT, 0) /* (Y6) OLDI0_A0P */
                AM62X_IOPAD(0x0268, PIN_OUTPUT, 0) /* (AD3) OLDI0_A1N */
                AM62X_IOPAD(0x0264, PIN_OUTPUT, 0) /* (AB4) OLDI0_A1P */
                AM62X_IOPAD(0x0270, PIN_OUTPUT, 0) /* (Y8) OLDI0_A2N */
                AM62X_IOPAD(0x026c, PIN_OUTPUT, 0) /* (AA8) OLDI0_A2P */
                AM62X_IOPAD(0x0278, PIN_OUTPUT, 0) /* (AB6) OLDI0_A3N */
                AM62X_IOPAD(0x0274, PIN_OUTPUT, 0) /* (AA7) OLDI0_A3P */
                AM62X_IOPAD(0x0280, PIN_OUTPUT, 0) /* (AC6) OLDI0_A4N */
                AM62X_IOPAD(0x027c, PIN_OUTPUT, 0) /* (AC5) OLDI0_A4P */
                AM62X_IOPAD(0x0288, PIN_OUTPUT, 0) /* (AE5) OLDI0_A5N */
                AM62X_IOPAD(0x0284, PIN_OUTPUT, 0) /* (AD6) OLDI0_A5P */
                AM62X_IOPAD(0x0290, PIN_OUTPUT, 0) /* (AE6) OLDI0_A6N */
                AM62X_IOPAD(0x028c, PIN_OUTPUT, 0) /* (AD7) OLDI0_A6P */
                AM62X_IOPAD(0x0298, PIN_OUTPUT, 0) /* (AD8) OLDI0_A7N */
                AM62X_IOPAD(0x0294, PIN_OUTPUT, 0) /* (AE7) OLDI0_A7P */
                AM62X_IOPAD(0x02a0, PIN_OUTPUT, 0) /* (AD4) OLDI0_CLK0N */
                AM62X_IOPAD(0x029c, PIN_OUTPUT, 0) /* (AE3) OLDI0_CLK0P */
                AM62X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (AE4) OLDI0_CLK1N */
                AM62X_IOPAD(0x02a4, PIN_OUTPUT, 0) /* (AD5) OLDI0_CLK1P */
            >;
        };
    };

    Log:

    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.
    root@sbc7138:~# [   25.122925] broken atomic modeset userspace detected, disabling atomic
    [   26.731398] broken atomic modeset userspace detected, disabling atomic
    
    root@sbc7138:~# cat /sys/kernel/debug/pwm
    platform/23010000.pwm, 2 PWM devices
     pwm-0   (backlight-lvds      ): requested enabled period: 1000000 ns duty: 1000000 ns polarity: normal
     pwm-1   ((null)              ): period: 0 ns duty: 0 ns polarity: normal
    root@sbc7138:~# 
    root@sbc7138:~# cat /sys/class/backlight/backlight-lvds/actual_brightness
    255
    root@sbc7138:~# 
    root@sbc7138:~# cat /sys/class/backlight/backlight-lvds/bl_power
    0
    root@sbc7138:~# 
    root@sbc7138:~# ls /sys/kernel/debug/dri/0/
    clients  crtc-0  framebuffer  gem_names  internal_clients  LVDS-1  name  state
    root@sbc7138:~# 
    root@sbc7138:~# dmesg | grep lvds
    [   10.464293] platform 30200000.dss: Fixed dependency cycle(s) with /panel_lvds
    [   10.471646] platform panel_lvds: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
    [   19.534586] panel-simple panel_lvds: supply power not found, using dummy regulator
    [   20.312009] panel-simple panel_lvds: Reject override mode: panel has a fixed mode
    root@sbc7138:~# 
    root@sbc7138:~# dmesg | grep dss
    [   10.464293] platform 30200000.dss: Fixed dependency cycle(s) with /panel_lvds
    [   10.471646] platform panel_lvds: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
    [   19.069174] Modules linked in: rtc_ti_k3(+) dwc3_am62(+) ti_k3_r5_remoteproc(+) rti_wdt(+) tidss ti_k3_m4_remoteproc ti_k3_common drm_dma_helper j721e_csi2rx m_can_platform videobuf2_dma_contig m_can videobuf2_memops drm_kms_helper videobuf2_v4l2 videobuf2_common can_dev syscopyarea sysfillrect sysimgblt v4l2_async fb_sys_fops drm snd_soc_davinci_mcasp videodev cdns_dphy_rx drm_panel_orientation_quirks mcrc snd_soc_ti_udma sa2ul snd_soc_ti_edma mc snd_soc_ti_sdma pruss snd_soc_tlv320aic3x_i2c snd_soc_tlv320aic3x optee_rng rng_core ip_tables x_tables ipv6
    [   19.834675] Modules linked in: panel_simple(+) k3_j72xx_bandgap(+) phy_can_transceiver(+) rtc_ti_k3 dwc3_am62 ti_k3_r5_remoteproc rti_wdt(+) tidss ti_k3_m4_remoteproc ti_k3_common drm_dma_helper j721e_csi2rx m_can_platform videobuf2_dma_contig m_can videobuf2_memops drm_kms_helper videobuf2_v4l2 videobuf2_common can_dev syscopyarea sysfillrect sysimgblt v4l2_async fb_sys_fops drm snd_soc_davinci_mcasp videodev cdns_dphy_rx drm_panel_orientation_quirks mcrc snd_soc_ti_udma sa2ul snd_soc_ti_edma mc snd_soc_ti_sdma pruss snd_soc_tlv320aic3x_i2c snd_soc_tlv320aic3x optee_rng rng_core ip_tables x_tables ipv6
    [   20.335896] [drm] Initialized tidss 1.0.0 20180215 for 30200000.dss on minor 0
    [   20.498160] tidss 30200000.dss: [drm] fb0: tidssdrmfb frame buffer device
    root@sbc7138:~# 
    root@sbc7138:~# dmesg | grep pwm
    [   10.454636] platform 23010000.pwm: Fixed dependency cycle(s) with /bus@f0000/pwm@23010000
    root@sbc7138:~# 
    root@sbc7138:~# lsmod | grep lvds
    root@sbc7138:~# 
    root@sbc7138:~# lsmod | grep pwm
    root@sbc7138:~# 

  • ADD log:

    root@sbc7138:~# lsmod | grep panel
    panel_simple           86016  0
    drm                   561152  5 drm_kms_helper,panel_simple,drm_dma_helper,tidss
    drm_panel_orientation_quirks    28672  1 drm
    root@sbc7138:~# 
    root@sbc7138:~# dmesg | grep panel
    [   10.464202] platform 30200000.dss: Fixed dependency cycle(s) with /panel_lvds
    [   10.471557] platform panel_lvds: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
    [   19.212795] Modules linked in: ti_k3_r5_remoteproc(+) rti_wdt(+) drm_dma_helper drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops j721e_csi2rx m_can_platform m_can videobuf2_dma_contig drm can_dev videobuf2_memops videobuf2_v4l2 ti_k3_m4_remoteproc(+) ti_k3_common videobuf2_common sa2ul v4l2_async drm_panel_orientation_quirks mcrc pruss snd_soc_davinci_mcasp snd_soc_ti_udma videodev snd_soc_ti_edma snd_soc_ti_sdma mc cdns_dphy_rx snd_soc_tlv320aic3x_i2c snd_soc_tlv320aic3x optee_rng rng_core ip_tables x_tables ipv6
    [   19.839848] panel-simple panel_lvds: supply power not found, using dummy regulator
    [   19.882062] WARNING: CPU: 1 PID: 189 at drivers/gpu/drm/panel/panel-simple.c:519 panel_simple_parse_panel_timing_node+0x1e4/0x1fc [panel_simple]
    [   19.895075] Modules linked in: panel_simple(+) phy_can_transceiver k3_j72xx_bandgap dwc3_am62 rtc_ti_k3 tidss ti_k3_r5_remoteproc rti_wdt(+) drm_dma_helper drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops j721e_csi2rx m_can_platform m_can videobuf2_dma_contig drm can_dev videobuf2_memops videobuf2_v4l2 ti_k3_m4_remoteproc ti_k3_common videobuf2_common sa2ul v4l2_async drm_panel_orientation_quirks mcrc pruss snd_soc_davinci_mcasp snd_soc_ti_udma videodev snd_soc_ti_edma snd_soc_ti_sdma mc cdns_dphy_rx snd_soc_tlv320aic3x_i2c snd_soc_tlv320aic3x optee_rng rng_core ip_tables x_tables ipv6
    [   19.976065] pc : panel_simple_parse_panel_timing_node+0x1e4/0x1fc [panel_simple]
    [   19.983495] lr : panel_simple_probe+0x2b8/0x3b0 [panel_simple]
    [   20.066315]  panel_simple_parse_panel_timing_node+0x1e4/0x1fc [panel_simple]
    [   20.073371]  panel_simple_probe+0x2b8/0x3b0 [panel_simple]
    [   20.078865]  panel_simple_platform_probe+0x34/0x4c [panel_simple]
    [   20.124275]  panel_simple_init+0x30/0x1000 [panel_simple]
    [   20.296907] panel-simple panel_lvds: Reject override mode: panel has a fixed mode
    root@sbc7138:~# 

  • I have revised it now ‘ compatible = "panel-lvds"; ’

    The LVDS driver has been changed to panel_lvds.ko, and the backlight brightness can now be controlled by command.

    However, LVDS still has no output, and neither has CLK

    log:

    [   24.156417] broken atomic modeset userspace detected, disabling atomic
    root@sbc7138:~# [   25.529282] broken atomic modeset userspace detected, disabling atomic
    
    root@sbc7138:~# lsmod | grep panel
    panel_lvds             16384  0
    drm                   561152  5 drm_kms_helper,drm_dma_helper,tidss,panel_lvds
    drm_panel_orientation_quirks    28672  1 drm
    root@sbc7138:~# 
    root@sbc7138:~# dmesg | grep panel
    [   10.464298] platform 30200000.dss: Fixed dependency cycle(s) with /panel_lvds
    [   10.471654] platform panel_lvds: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
    [   19.150838] Modules linked in: k3_j72xx_bandgap(+) ti_k3_r5_remoteproc(+) dwc3_am62(+) rtc_ti_k3(+) rti_wdt(+) tidss drm_dma_helper j721e_csi2rx videobuf2_dma_contig drm_kms_helper m_can_platform m_can videobuf2_memops syscopyarea sysfillrect videobuf2_v4l2 sysimgblt videobuf2_common fb_sys_fops v4l2_async ti_k3_m4_remoteproc ti_k3_common can_dev videodev drm snd_soc_davinci_mcasp mcrc snd_soc_ti_udma sa2ul drm_panel_orientation_quirks cdns_dphy_rx snd_soc_ti_edma mc pruss snd_soc_ti_sdma snd_soc_tlv320aic3x_i2c snd_soc_tlv320aic3x optee_rng rng_core ip_tables x_tables ipv6
    root@sbc7138:~# 
    root@sbc7138:~# echo "LVDS-1: 1280x720@60" > /sys/kernel/debug/dri/0/force_connector
    -bash: /sys/kernel/debug/dri/0/force_connector: limited authority
    root@sbc7138:~# 
    root@sbc7138:~# cat /sys/kernel/debug/dri/0/LVDS-1/status
    cat: /sys/kernel/debug/dri/0/LVDS-1/status: There is no such file or directory
    root@sbc7138:~# 
    root@sbc7138:~# ls /sys/kernel/debug/dri/0/LVDS-1/
    edid_override  force  output_bpc  vrr_range
    root@sbc7138:~# 
    root@sbc7138:~# cat /sys/class/backlight/backlight-lvds/max_brightness
    255
    root@sbc7138:~# cat /sys/class/backlight/backlight-lvds/brightness
    255
    root@sbc7138:~# 
    root@sbc7138:~# echo 128 > /sys/class/backlight/backlight-lvds/brightness
    root@sbc7138:~# 
    root@sbc7138:~# echo 1 > /sys/class/backlight/backlight-lvds/brightness
    root@sbc7138:~# 
    root@sbc7138:~# echo 255 > /sys/class/backlight/backlight-lvds/brightness
    root@sbc7138:~# 
    root@sbc7138:~# ls /sys/kernel/debug/dri/0/LVDS-1/
    edid_override  force  output_bpc  vrr_range

  • Since now you are trying to configure LVDS, I will ask you the same questions again:

    Which SDK are you using?
    Can you please take reference from this example in the SDK: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm64/boot/dts/ti/k3-am625-sk-microtips-mf101hie-panel.dtso?h=ti-linux-6.12.y and create you dts this way, with panel timings defined in panel-simple.c or equivalent.

    Are you using single-link or dual-link LVDS?
    Is it a custom board?
    Also share results of the following:

    kmsprint
    modetest -M tidss
    kmstest

    When you run kmstest, also share what you see on screen.

  • * OK,The version of SDK I'm using is : ti-processor-sdk-linux-am62xx-evm-09.02.01.10-Linux-x86-Install.bin

    * Yes,it's a custom board.

    * I'm using single-link LVDS.

    * I run the kmstest tool but didn't find it. I think it should be because I rebuilt a Debian system myself. Can these tools be found in the SDK? I didn't find them.

    rxw@PowerEdge-T440:~/sbc7138/board-support$ 
    rxw@PowerEdge-T440:~/sbc7138/board-support$ find -name kmsprint
    rxw@PowerEdge-T440:~/sbc7138/board-support$ 
    rxw@PowerEdge-T440:~/sbc7138/board-support$ find -name kmstest
    rxw@PowerEdge-T440:~/sbc7138/board-support$ 
    rxw@PowerEdge-T440:~/sbc7138/board-support$ find -name modetest
    rxw@PowerEdge-T440:~/sbc7138/board-support$ 
    

    root@sbc7138:~# kmsprint
    -bash: kmsprint:Command Not found
    root@sbc7138:~# 
    root@sbc7138:~# modetest -M tidss
    -bash: modetest:Command Not found
    root@sbc7138:~# 
    root@sbc7138:~# kmstest
    -bash: kmstest:Command Not found
    root@sbc7138:~# 
    root@sbc7138:~# lsmod | grep km
    drm_kms_helper        184320  4 drm_dma_helper,tidss
    syscopyarea            16384  1 drm_kms_helper
    sysfillrect            16384  1 drm_kms_helper
    sysimgblt              16384  1 drm_kms_helper
    fb_sys_fops            16384  1 drm_kms_helper
    drm                   561152  5 drm_kms_helper,drm_dma_helper,tidss,panel_lvds
    root@sbc7138:~# 

  • I attempt to refer to: git.ti.com/.../k3-am625-sk-microtips-mf101hie-pane L.tso?h=ti-linux-6.12.y, but there is a compilation exception. It does not have oldi0 and oldi1

  • Here is my latest log. According to the log, LVDS has been initialized normally. Currently, CLK and data signals have been measured, but they still haven't been displayed.

    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
    permitted by applicable law.
    [   24.425543] broken atomic modeset userspace detected, disabling atomic
    root@sbc7138:~# [   25.951321] broken atomic modeset userspace detected, disabling atomic
    
    root@sbc7138:~# 
    root@sbc7138:~# dmesg | grep lvds
    [   10.464313] platform 30200000.dss: Fixed dependency cycle(s) with /panel_lvds
    [   10.471669] platform panel_lvds: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
    root@sbc7138:~# 
    root@sbc7138:~# dmesg | grep panel
    [   10.464313] platform 30200000.dss: Fixed dependency cycle(s) with /panel_lvds
    [   10.471669] platform panel_lvds: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
    [   19.051048] Modules linked in: k3_j72xx_bandgap(+) rtc_ti_k3(+) rti_wdt(+) tidss ti_k3_m4_remoteproc(+) can_dev drm_dma_helper j721e_csi2rx drm_kms_helper videobuf2_dma_contig syscopyarea ti_k3_common videobuf2_memops videobuf2_v4l2 sysfillrect videobuf2_common sysimgblt v4l2_async fb_sys_fops mcrc snd_soc_davinci_mcasp drm videodev sa2ul snd_soc_ti_udma drm_panel_orientation_quirks cdns_dphy_rx snd_soc_ti_edma snd_soc_ti_sdma pruss mc snd_soc_tlv320aic3x_i2c snd_soc_tlv320aic3x optee_rng rng_core ip_tables x_tables ipv6
    root@sbc7138:~# 
    root@sbc7138:~# dmesg | grep drm
    [   19.051048] Modules linked in: k3_j72xx_bandgap(+) rtc_ti_k3(+) rti_wdt(+) tidss ti_k3_m4_remoteproc(+) can_dev drm_dma_helper j721e_csi2rx drm_kms_helper videobuf2_dma_contig syscopyarea ti_k3_common videobuf2_memops videobuf2_v4l2 sysfillrect videobuf2_common sysimgblt v4l2_async fb_sys_fops mcrc snd_soc_davinci_mcasp drm videodev sa2ul snd_soc_ti_udma drm_panel_orientation_quirks cdns_dphy_rx snd_soc_ti_edma snd_soc_ti_sdma pruss mc snd_soc_tlv320aic3x_i2c snd_soc_tlv320aic3x optee_rng rng_core ip_tables x_tables ipv6
    [   19.897052] [drm] Initialized tidss 1.0.0 20180215 for 30200000.dss on minor 0
    [   19.951426] tidss 30200000.dss: [drm] fb0: tidssdrmfb frame buffer device
    root@sbc7138:~# 
    root@sbc7138:~# dmesg | grep dss
    [   10.464313] platform 30200000.dss: Fixed dependency cycle(s) with /panel_lvds
    [   10.471669] platform panel_lvds: Fixed dependency cycle(s) with /bus@f0000/dss@30200000
    [   19.051048] Modules linked in: k3_j72xx_bandgap(+) rtc_ti_k3(+) rti_wdt(+) tidss ti_k3_m4_remoteproc(+) can_dev drm_dma_helper j721e_csi2rx drm_kms_helper videobuf2_dma_contig syscopyarea ti_k3_common videobuf2_memops videobuf2_v4l2 sysfillrect videobuf2_common sysimgblt v4l2_async fb_sys_fops mcrc snd_soc_davinci_mcasp drm videodev sa2ul snd_soc_ti_udma drm_panel_orientation_quirks cdns_dphy_rx snd_soc_ti_edma snd_soc_ti_sdma pruss mc snd_soc_tlv320aic3x_i2c snd_soc_tlv320aic3x optee_rng rng_core ip_tables x_tables ipv6
    [   19.897052] [drm] Initialized tidss 1.0.0 20180215 for 30200000.dss on minor 0
    [   19.951426] tidss 30200000.dss: [drm] fb0: tidssdrmfb frame buffer device
    root@sbc7138:~# 
    root@sbc7138:~# ls /sys/kernel/debug/dri/0
    clients  crtc-0  framebuffer  gem_names  internal_clients  LVDS-1  name  state
    root@sbc7138:~# 
    root@sbc7138:~# cat /sys/kernel/debug/dri/0/state
    plane[31]: plane-0
            crtc=crtc-0
            fb=48
                    allocated by = [fbcon]
                    refcount=2
                    format=XR24 little-endian (0x34325258)
                    modifier=0x0
                    size=1280x800
                    layers:
                            size[0]=1280x800
                            pitch[0]=5120
                            offset[0]=0
                            obj[0]:
                                    name=0
                                    refcount=3
                                    start=00100000
                                    size=4096000
                                    imported=no
                                    dma_addr=0x00000000f8200000
                                    vaddr=0000000016a01b1d
            crtc-pos=1280x800+0+0
            src-pos=1280.000000x800.000000+0.000000+0.000000
            rotation=1
            normalized-zpos=0
            color-encoding=ITU-R BT.601 YCbCr
            color-range=YCbCr full range
    plane[41]: plane-1
            crtc=(null)
            fb=0
            crtc-pos=0x0+0+0
            src-pos=0.000000x0.000000+0.000000+0.000000
            rotation=1
            normalized-zpos=1
            color-encoding=ITU-R BT.601 YCbCr
            color-range=YCbCr full range
    crtc[38]: crtc-0
            enable=1
            active=1
            self_refresh_active=0
            planes_changed=1
            mode_changed=0
            active_changed=0
            connectors_changed=0
            color_mgmt_changed=0
            plane_mask=1
            connector_mask=1
            encoder_mask=1
            mode: "1280x800": 59 71100 1280 1350 1354 1442 800 815 819 840 0x48 0xa
    connector[40]: LVDS-1
            crtc=crtc-0
            self_refresh_aware=0
            max_requested_bpc=0
    root@sbc7138:~# 
    root@sbc7138:~# 
    root@sbc7138:~# ls /sys/kernel/debug/dri/0/LVDS-1/
    edid_override  force  output_bpc  vrr_range
    root@sbc7138:~# 
    root@sbc7138:~# cat /sys/kernel/debug/dri/0/LVDS-1/force
    unspecified
    root@sbc7138:~# 
    root@sbc7138:~# echo on > /sys/kernel/debug/dri/0/LVDS-1/force
    root@sbc7138:~# 
    root@sbc7138:~# cat /sys/kernel/debug/dri/0/LVDS-1/force
    on
    root@sbc7138:~# 

  • I couldn't find the tool to download from here. I tried to use the file system in the SDK. When I replaced the file system of the SDK, LVDS could be displayed. It seems to be due to the file system. Because I'm dtb, the Image ko files are all the same as before.

  • Hi,

    Please use this "modetest" download button given at the link:


    Not sure from you comments, is your issue resolved?

  • Yes, my problem has been solved. I recompiled a file system and now LVDS can be displayed normally. Thank you very much for your reply