You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Yocto从Hardknott升级到Mickledore后,ti_sn65dsi86与backlight设备链路创建失败

Yocto升级到Mickledore后SN65DSI86与背光设备链接失败问题排查

将Yocto从Hardknott(内核5.10系列)升级到Mickledore(内核6.1系列)后,修改设备树时遇到SN65DSI86无法与背光设备创建链接的问题。已在pwm-bl驱动中添加调试打印,dmesg输出如下:

[    0.527574] pwm-backlight backlight: registered pwm-backlight
[    0.533359] ti_sn65dsi86 2-002d: Failed to create device link (0x180) with backlight

相关设备树节点配置

/ {
    reg_1v8_adapter: regulator-1v8-adapter {
        compatible = "regulator-fixed";
        regulator-name = "1v8-adapter";
        regulator-min-microvolt = <1800000>;
        regulator-max-microvolt = <1800000>;
        regulator-always-on;
    };
    
    reg_1v2_adapter: regulator-1v2-adapter {
        compatible = "regulator-fixed";
        regulator-name = "1v2-adapter";
        regulator-min-microvolt = <1200000>;
        regulator-max-microvolt = <1200000>;
        regulator-always-on;
    };
    
    reg_12v_backlight: regulator-12v-backlight {
        compatible = "regulator-fixed";
        regulator-name = "12v-backlight";
        regulator-min-microvolt = <12000000>;
        regulator-max-microvolt = <12000000>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_12v_backlight>;
        gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>;
        enable-active-high;
    };
    
    dsi86_clk: dsi86-clk {
        compatible = "fixed-clock";
        #clock-cells = <0>;
        clock-frequency = <27000000>;
    };
    
    backlight: backlight {
        compatible = "pwm-backlight";
        pwms = <&pwm1 0 100000 0>;
        
        brightness-levels = < 0  1  2  3  4  5  6  7  8  9
        10 11 12 13 14 15 16 17 18 19
        20 21 22 23 24 25 26 27 28 29
        30 31 32 33 34 35 36 37 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>;
        default-brightness-level = <80>;
        
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pwm_backlight>;
        power-supply = <&reg_12v_backlight>;
        enable-gpios = <&gpio1 4 GPIO_ACTIVE_HIGH>;//154
    };
    
    // panel: panel {
    //  compatible = "hkc,pc156cs01";
    //  // compatible = "panel-edp";
    //  backlight = <&backlight>;
    //  power-supply = <&reg_3v3>;
    //  no-hdp;
    //  ports {
    //      panel_in: port {
    //          panel_in_edp: endpoint {
    //              remote-endpoint = <&edp_bridge_out>;
    //          };
    //      };
    //  };
    // };
};

&pwm1 {
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_pwm1>;
    status = "okay";
};

&i2c4 {
    sn65dsi86: bridge@2d {
        compatible = "ti,sn65dsi86";
        reg = <0x2d>;
        
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_edp_en &pinctrl_edp_int>;
        
        enable-gpios = <&gpio4 14 GPIO_ACTIVE_HIGH>;//113
        
        interrupt-parent = <&gpio5>;
        interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;//146
        
        vccio-supply = <&reg_1v8_adapter>;
        vcca-supply = <&reg_1v2_adapter>;
        vpll-supply = <&reg_1v8_adapter>;
        vcc-supply = <&reg_1v2_adapter>;
        
        clocks = <&dsi86_clk>;
        clock-names = "refclk";
        
        no-hdp;
        
        ports {
            #address-cells = <1>;
            #size-cells = <0>;
            
            port@0 {
                reg = <0>;
                
                edp_bridge_in: endpoint {
                    remote-endpoint = <&mipi_dsi_out>;
                };
            };
            
            port@1 {
                reg = <1>;
                
                edp_bridge_out: endpoint {
                    // data-lanes = <0 1>;
                    remote-endpoint = <&panel_in_edp>;
                };
            };
        };
        
        aux-bus {
            panel {
                compatible = "hkc,pc156cs01";
                // compatible = "edp-panel";
                backlight = <&backlight>;
                power-supply = <&reg_3v3>;
                no-hdp;
                port {
                    panel_in_edp: endpoint {
                        remote-endpoint = <&edp_bridge_out>;
                    };
                };
            };
        };
    };
};

&lcdif1 {
    status = "okay";
};

&mipi_dsi {
    status = "okay";
    port@1 {
        mipi_dsi_out: endpoint {
            remote-endpoint = <&edp_bridge_in>;
            data-lanes = <0 1 2 3>;
            attach-bridge;
        };
    };
};

&iomuxc {
    pinctrl_12v_backlight: 12v-backlightgrp {
        fsl,pins = <
        MX8MP_IOMUXC_GPIO1_IO09__GPIO1_IO09         0x142 /* COM pin 159 boost converter enable */
        >;
    };
    
    pinctrl_pwm_backlight: pwm-backlightgrp {
        fsl,pins = <
        MX8MP_IOMUXC_GPIO1_IO04__GPIO1_IO04     0x156   /* Enable backlight COM pin 154 */
        >;
    };
    
    pinctrl_pwm1: pwm1grp {
        fsl,pins = <
        MX8MP_IOMUXC_GPIO1_IO01__PWM1_OUT           0x06 /* COM pin 42 PWM1_OUT */
        >;
    };
    
    pinctrl_edp_en: edp_en {
        fsl,pins = <
        MX8MP_IOMUXC_SAI1_TXD2__GPIO4_IO14          0x140 /*113*/
        >;
    };
    
    pinctrl_edp_int: edp_int{
        fsl,pins = <
        MX8MP_IOMUXC_SPDIF_EXT_CLK__GPIO5_IO05      0x140 /*146*/
        >;
    };
};

内核代码修改

已将原panel-simple.c中的显示时序迁移到panel-edp.c,代码如下:

static const struct drm_display_mode hkc_pc156cs01_mode = {
    .clock = 148500,
    .hdisplay = 1920,
    .hsync_start = 1920 + 88,
    .hsync_end = 1920 + 88 + 44,
    .htotal = 1920 + 280,
    .vdisplay = 1080,
    .vsync_start = 1080 + 4,
    .vsync_end = 1080 + 4 + 5,
    .vtotal = 1080 + 45,
    .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
};

static const struct panel_desc hkc_pc156cs01 = {
    .modes = &hkc_pc156cs01_mode,
    .num_modes = 1,
    .bpc = 8,
    .size = {
        .width = 340,
        .height = 190,
    },
    .delay = {
        .hpd_absent = 200,
        .unprepare = 500,
    },
};

已参考多个使用相同组件的设备树配置,仍未定位问题,请求帮忙排查解决。

内容的提问来源于stack exchange,提问作者owndampu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 21:10:53