RK3566 多Mipi屏的兼容

news2025/5/26 9:52:21

需求:项目需求需要同一个固件兼容两款不同IC的mipi屏。以便有一个IC停产之后使用不受影响。由于是同一个模组厂商,所以设计初就要求硬件接口一样或者兼容。
方法:一开始的想法很简单和网上以及同行提供的方法一样在uboot阶段去读屏的ID,然后再把对应屏ID放到cmdline里面去传到kernel.在kernel里面做判断屏ID,来使用不同的panel-init-sequence 和timing。这种方法也可行。把屏的ID放到cmdline的方法是我也没找到,有大佬解答一下吗?
然后询问RK,RK提供了另一种方案不依靠cmdline传参。dts中dsi节点下面添加不同的panel节点。开机uboot阶段,通过mipi dsi读取每个屏的id寄存器与dts中设置的目标寄存器值进行比较。如果不是完全一致,就会将对应的panel节点的status设置成“disabled”。
最后会留下来唯一一个是status是“okay”的panel。kernel在加载panel的时候找到这个status是okay的panel,其他的不会加载。okay我们按照这个做法来实现我们的需求。

首先对DTB做一个深入了解。要不然怎么理解在uboot阶段把dts里面的status掉呢。在系统启动过程中,由bootloader将dtb文件加载到内存,并告知linux内核dtb在内存中的首地址(中途可能会对某些节点进行创建或者修改)。内核在start_kernel中会对dtb文件进行解析,并形成对应的device_node和property结构体;至此,dtb文件便完成任务了大佬做的详细解答可点
dtb的组成

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/334901.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Parasoft全面发布最广泛的MISRA规则覆盖

Parasoft通过其经过市场验证的自动化软件测试工具集成套件,帮助企业持续交付高质量的软件。Parasoft的技术支持嵌入式、企业和物联网市场,通过将静态代码分析和单元测试、Web UI和API测试等所有内容集成到交付管道中,再加上服务虚拟化和完整的…

Python 数据库开发实战 - Python与Redis交互篇- 综合案例 - 新闻管理系统 - 缓存新闻数据至redis

接下来这个章节将继续来完成 《新闻管理系统》 这个项目,上一章节我们完成了 “发表新闻” 这个功能,在发表新闻后,什么时候才会缓存该条新闻记录呢?并不是说在发表新闻成功之后就立刻被缓存,而是该新闻被管理员审批通…

基于Verilog HDL的状态机描述方法

⭐本专栏针对FPGA进行入门学习,从数电中常见的逻辑代数讲起,结合Verilog HDL语言学习与仿真,主要对组合逻辑电路与时序逻辑电路进行分析与设计,对状态机FSM进行剖析与建模。 🔥文章和代码已归档至【Github仓库&#xf…

配置类的几种写法

需求 通过java配置类实现一个数据库连接池。 以前xml中是这样写的&#xff1a; <!--配置德鲁伊数据库连接池--><bean id"ds" class"com.alibaba.druid.pool.DruidDataSource"><property name"driverClassName" value"${jdbc…

Selenium常用API详解(从入门到进阶)

目录 1、打开页面 2、查找页面元素 3、输入文本 4、点击操作 5、提交操作 6、清除文本 7、获取文本、属性 8、获取页面的标题和URL 9、窗口 9.1、设置窗口大小 9.2、窗口切换 9.2.1、为什么需要窗口切换&#xff1f; 9.2.2、获取句柄的方式 9.2.3、切换句柄 10、…

PHP环境配置和验证

很多文章都把php和apache环境混合在一起讲&#xff0c;美其名曰PHP环境配置并提供验证是编写phpinfo命令。概念都搞不清后继的学习也好频频失误。 1、获取PHP。这个有说法网上有讲的总结的很到位。 windos服务器&#xff1a; 1、如果你是PHPIIS&#xff1b;请选择&#xff1…

VBA提高篇_ 20 括号的使用 _值/引用传递

文章目录1. 决定函数调用是否使用括号的三种情境:2. VBA对象的默认属性3.过程/函数的传递方式 :1. 决定函数调用是否使用括号的三种情境: 没有参数: 不写有参数: 调用语句处于一行代码中间: 写有参数: 调用语句独占一行代码: 不写 括号的特殊含义: Evaluation(求职运算) 2. VB…

开发必看!三分钟读懂Salesforce SOQL查询和限制

SOQL是支持我们与Salesforce数据库交互的查询语言。开发人员在编写Apex时通常会使用到SOQL&#xff0c;此外&#xff0c;它还允许管理员和开发人员从组织内部检索数据并在导出结果时生成强大的数据报告。 SOQL 查询对于编写代码的开发人员&#xff0c;以及通过使用子句扩展查询…

CK-GW208-EC与汇川PLC配置走EtherCAT通讯指南

CK-GW208-EC这款产品是晨控智能一款工业级 IO-LINK 主站网关&#xff0c;支持 EtherCat 工业协议。可通过以太网接口&#xff0c;对 IO-LINK 从站设备进行控制。CK-GW208-EC 是一款支持标准工业 Ethercat协议的 IO-LINK主站网关&#xff0c;方便用户快速便捷的集成到 PLC 等控制…

GLP-1类药物研发进展-销售数据-上市药品前景分析

据一项2021 年的报告发现&#xff0c;当 GLP-1 类似物用于治疗 2 型糖尿病时&#xff0c;全因死亡率降低了 12%&#xff0c;它们不仅降糖效果显著&#xff0c;同时还兼具减重、降压、改善血脂谱等作用。近几年&#xff0c;随着GLP-1R激动剂类药物市场规模不断增长&#xff0c;美…

Disruptor实战和笔记之二:Disruptor类分析

1 本篇概览通过前文的实战&#xff0c;咱们对Disruptor有了初步认识&#xff0c;借助com.lmax.disruptor.dsl.Disruptor类可以轻松完成以下操作&#xff1a;环形队列初始化指定事件消费者启动消费者线程接下来要面对两个问题&#xff1a;深入了解Disruptor类是如何完成上述操作…

第十四期 | ETC车主收到的诈骗短信原来是黑灰产在搞鬼?

目录 互联网时代&#xff0c;车企的安全挑战 黑灰产的两种攻击方式&#xff1a;撞库攻击&密码爆破攻击 1、撞库攻击&#xff1a; 2、密码爆破攻击 黑灰产变现方式 1、贩卖数据 2、直接变现 3、电信诈骗 防控建议 1、终端加固/H5混淆 2、通信传输安全保障 3、行…

Java知识点细节简易汇总——(7)面向对象编程(高级部分)

一、类变量、静态变量static static访问方式&#xff1a; public class VisitStatic {public static void main(String[] args) {//方法一://类名.类变量名//说明&#xff1a;类变量是随着类的加载而创建&#xff0c;所以即使没有创建对象实例也可以访问System.out.println(A.…

代码随想录NO38 |动态规划——leetcode 343. 整数拆分 96.不同的二叉搜索树

动态规划—leetcode 343. 整数拆分 96.不同的二叉搜索树今天是动态规划第三天的题&#xff0c;动态规划这块儿题目比较多&#xff01; 343. 整数拆分 给定一个正整数 n &#xff0c;将其拆分为 k 个 正整数 的和&#xff08; k > 2 &#xff09;&#xff0c;并使这些整数的…

拼经济促发展,雨花区脚踏实地将“民生愿景”变为“幸福实景”

2022年&#xff0c;面对国内外复杂的经济形势&#xff0c;我国经济发展依旧保持稳中向好态势。经济增长总体平稳且后续动力强劲&#xff0c;物价涨幅持续可控&#xff0c;结构调整积极推进。经济增长由政策刺激向自主增长有序转变&#xff0c;继续朝着宏观调控的预期方向发展&a…

Linux环境下Redis单机、集群升级部署

目录 前言 一、Redis安装环境准备 二、安装升级Redis 1.Redis升级前准备&#xff08;首次安装忽略&#xff09; 2.Redis安装 总结 前言 Redis&#xff08;Remote Dictionary Server )&#xff0c;即远程字典服务&#xff0c;是一个开源的使用ANSI C语言编写、支持网络、可…

回顾 | .NET MAUI 跨平台应用开发 - 用 .NET MAUI 开发一个无人机应用(下)

点击蓝字关注我们编辑&#xff1a;Alan Wang排版&#xff1a;Rani Sun微软 Reactor 为帮助广开发者&#xff0c;技术爱好者&#xff0c;更好的学习 .NET Core, C#, Python&#xff0c;数据科学&#xff0c;机器学习&#xff0c;AI&#xff0c;区块链, IoT 等技术&#xff0c;将…

七、Linux文件 - main函数参数讲解、代码实现cp指令

目录 1、main函数参数 2.cp指令的使用 3、实现cp指令 3.1实现cp指令-入门版 3.2实现cp指令-进阶版 1、main函数参数 int main(int argc,char *argv[]) {return 0; } C语言规定了main函数的参数只能由2个&#xff0c;一个是argc,一个是argv,并且argc只能是整数&#xff0c…

[Leetcode] 打开转盘锁(BFS求最短路径)

题目链接&#xff1a;https://leetcode.cn/problems/open-the-lock/你有一个带有四个圆形拨轮的转盘锁。每个拨轮都有10个数字&#xff1a; 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 。每个拨轮可以自由旋转&#xff1a;例如把 9 变为 0&#xff0c;0 变为 9 。每次旋转都只能旋转一个拨轮…

你不会还不知道arrify的内部到底是怎么执行的吧?

作为一个前端工程师&#xff0c;经常会遇见转换成数组的需求&#xff0c;被转换的对象有可能是String、Set()、null、Map()、undefined、或者是数组本身。我们最经常的做法就是写一个arrify函数帮我去进行转换。久而久之因为经常会做不同的项目中遇到同样的需求所以我们通常会把…