当前位置: 首页 > news >正文

RK3288 5.10内核无法点亮LVDS显示

调试RK3288 5.10版本内核发现,RK提供的代码dts中未定义lvds_panel,但却在其它地方进行引用修改,不晓得是不是官方提交代码时遗漏了。所以添加lvds_panel定义如下:

	lvds_panel: lvds-panel {status = "disabled";ports {#address-cells = <1>;#size-cells = <0>;port@0 {reg = <0>;panel_in_lvds: endpoint {remote-endpoint = <&lvds_out_panel>;};};};};

并修改lvds_panel内容如下:

&lvds_panel {status = "okay";compatible ="simple-panel";backlight = <&backlight>;power-supply = <&vcc_lvds>;
//     enable-gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>;enable-delay-ms = <20>;prepare-delay-ms = <20>;unprepare-delay-ms = <20>;disable-delay-ms = <20>;/** MEDIA_BUS_FMT_RGB666_1X7X3_SPWG  - "jeida-18"* MEDIA_BUS_FMT_RGB888_1X7X4_JEIDA - "jeida-24"* MEDIA_BUS_FMT_RGB888_1X7X4_SPWG  - "vesa-24"*/bus-format = <MEDIA_BUS_FMT_RGB888_1X7X4_SPWG>;width-mm = <217>;height-mm = <136>;display-timings {native-mode = <&timing0>;timing0: timing0 {clock-frequency = <74250000>;hactive = <1920>;vactive = <1080>;hback-porch = <80>;hfront-porch = <40>;vback-porch = <25>;vfront-porch = <10>;hsync-len = <20>;vsync-len = <10>;hsync-active = <0>;vsync-active = <0>;de-active = <0>;pixelclk-active = <0>;};};
};

其它相关DTS配置按正常套路使能即可。但是重新编译内核烧写后,发现仅在启动时uboot logo可正常显示,后面就在无法点亮屏幕。出现该问题的原因是内核中关闭了"drivers/phy/rockchip/phy-rockchip-inno-video-phy.c"驱动,需要将其编译到内核即可,需要添加如下patch:

diff --git a/drivers/phy/rockchip/Kconfig b/drivers/phy/rockchip/Kconfig
index 0a41b89d82fc..2695ec30ed42 100644
--- a/drivers/phy/rockchip/Kconfig
+++ b/drivers/phy/rockchip/Kconfig
@@ -91,6 +91,14 @@ config PHY_ROCKCHIP_MIPI_RXhelpEnable this to support the Rockchip MIPI D-PHY with Synopsys or Innosilicon IP block.+config PHY_ROCKCHIP_INNO_VIDEO_PHY
+       tristate "Rockchip INNO LVDS/TTL PHY driver"
+       depends on ARCH_ROCKCHIP && OF
+       select GENERIC_PHY
+       help
+        Enable this to support the Rockchip LVDS/TTL PHY with
+        Innosilicon IP block.
+config PHY_ROCKCHIP_NANENG_COMBO_PHYtristate "Rockchip NANENG COMBO PHY Driver"depends on ARCH_ROCKCHIP && OF
diff --git a/drivers/phy/rockchip/Kconfig b/drivers/phy/rockchip/Kconfig
index 0a41b89d82fc..2695ec30ed42 100644
--- a/drivers/phy/rockchip/Kconfig
+++ b/drivers/phy/rockchip/Kconfig
@@ -91,6 +91,14 @@ config PHY_ROCKCHIP_MIPI_RXhelpEnable this to support the Rockchip MIPI D-PHY with Synopsys or Innosilicon IP block.+config PHY_ROCKCHIP_INNO_VIDEO_PHY
+       tristate "Rockchip INNO LVDS/TTL PHY driver"
+       depends on ARCH_ROCKCHIP && OF
+       select GENERIC_PHY
+       help
+        Enable this to support the Rockchip LVDS/TTL PHY with
+        Innosilicon IP block.
+config PHY_ROCKCHIP_NANENG_COMBO_PHYtristate "Rockchip NANENG COMBO PHY Driver"depends on ARCH_ROCKCHIP && OF
liujie@rocktech-OMEN-by-HP-Desktop-PC-880-p1xx:~/projects/Linux/tmp/rk3288_linux5.10_release_v1.2.0_20240620-SDK/kernel$ git diff drivers/phy/rockchip/Makefile
diff --git a/drivers/phy/rockchip/Makefile b/drivers/phy/rockchip/Makefile
index 9858a3730828..e60dc45c9e89 100644
--- a/drivers/phy/rockchip/Makefile
+++ b/drivers/phy/rockchip/Makefile
@@ -10,6 +10,7 @@ obj-$(CONFIG_PHY_ROCKCHIP_INNO_HDMI)  += phy-rockchip-inno-hdmi-phy.oobj-$(CONFIG_PHY_ROCKCHIP_INNO_USB2)   += phy-rockchip-inno-usb2.oobj-$(CONFIG_PHY_ROCKCHIP_INNO_USB3)   += phy-rockchip-inno-usb3.oobj-$(CONFIG_PHY_ROCKCHIP_MIPI_RX)     += phy-rockchip-mipi-rx.o
+obj-$(CONFIG_PHY_ROCKCHIP_INNO_VIDEO_PHY)       +=  phy-rockchip-inno-video-phy.oobj-$(CONFIG_PHY_ROCKCHIP_NANENG_COMBO_PHY)    += phy-rockchip-naneng-combphy.oobj-$(CONFIG_PHY_ROCKCHIP_NANENG_EDP)  += phy-rockchip-naneng-edp.oobj-$(CONFIG_PHY_ROCKCHIP_NANENG_USB2) += phy-rockchip-naneng-usb2.o

下面patch解决编译报错。

diff --git a/drivers/phy/rockchip/phy-rockchip-inno-video-phy.c b/drivers/phy/rockchip/phy-rockchip-inno-video-phy.c
index 22d26f1413d9..061fd7df5e5e 100644
--- a/drivers/phy/rockchip/phy-rockchip-inno-video-phy.c
+++ b/drivers/phy/rockchip/phy-rockchip-inno-video-phy.c
@@ -136,7 +136,7 @@ static int inno_video_phy_power_off(struct phy *phy)return 0;}-static int inno_video_phy_set_mode(struct phy *phy, enum phy_mode mode)
+static int inno_video_phy_set_mode(struct phy *phy, enum phy_mode mode, int submode){return 0;}

最后’make menuconfig’中勾选’CONFIG_PHY_ROCKCHIP_INNO_VIDEO_PHY’,重新编译烧写后lvds显示正常。

相关文章:

  • Chrmo手动同步数据
  • 【软件工程】TCP三次握手中的SYN与ACK:核心机制详解
  • Vue3 上传后的文件智能预览(实战体会)
  • 如何申请游戏支付平台通道接口?
  • (六)机器学习---聚类与K-means
  • Python CT图像预处理——基于ITK-SNAP
  • 【DRAM存储器五十一】LPDDR5介绍--DFE与Pre-Emphasis
  • ⭐Unity_Demolition Media Hap (播放Hap格式视频 超16K大分辨率视频 流畅播放以及帧同步解决方案)
  • Spring-Cache替换Keys为Scan—负优化?
  • HTMLCSS模板实现水滴动画效果
  • 再谈String
  • Python的库
  • 【25软考网工】第三章(4)生成树协议、广播风暴和MAC地址表震荡
  • MySQL表达式之公用表表达式(CTE)的使用示例
  • Windows与CasaOS跨平台文件同步:SyncThing本地部署与同步配置流程
  • springboot2.x升级到3.x 惨痛经验总结
  • 告别 “幻觉” 回答:RAG 中知识库与生成模型的 7 种对齐策略
  • 力扣-hot100(找到字符串中的所有字母异位词)
  • Chromium 134 编译指南 Ubuntu篇:依赖同步与Hooks配置(六)
  • python打印颜色(python颜色、python print颜色、python打印彩色文字、python print彩色、python彩色文字)
  • 内蒙古纪检干部刘占波履新呼和浩特,曾参与涉煤腐败倒查20年工作
  • 商务部就海外社交平台上发布从所谓中国“代工厂”低价购买国际知名品牌事答问
  • 朝中社发表评论文章,谴责美军部署B1-B轰炸机至日本
  • 证券时报:落实“非禁即入” ,让创新活力充分涌流
  • 大理洱源4.8级地震致442户房屋受损,无人员伤亡
  • 土耳其发生6.2级地震,震源深度10千米