rockchip中的vop

2024-06-23 07:18
文章标签 rockchip vop

本文主要是介绍rockchip中的vop,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.vop基本概念

rockchip平台的lcd controller成为vop(video output processor),芯片中一般集成了1-2个vop,只有支持两个vop的芯片,才能支持双屏异显RK3399有2个VOP:
Video Output Processor(VOP_BIG)Video Output Processor(VOP_LIT)支持的显示接口:
One or Two MIPI-DSI portOne eDP portOne DP portOne HDMI port

2.vop基本配置逻辑

//数据传递流程如下:
vop(相当于显示控制器) --> dis/vlds/edp/rgb(相当于encoder) --> panel(相当于显示器)
//分析2代的配置,数据流向
vopb_out_rgb -> rgb_in_vopb -> rgb_out_panel ->panel_in_rgb//配置vopb
&vopb {//1.这块使能了,相当于使能了lcd控制器status = "okay";};&display_subsystem {route_rgb: route-rgb {status = "disabled";logo,uboot = "logo.bmp";logo,kernel = "logo_kernel.bmp";logo,mode = "center";charge_logo,mode = "center";//2.vopb有多少输出点,这块相当于要连接vopb_out_rgb这个输出点connect = <&vopb_out_rgb>;};
}&route_rgb {/delete-property/ logo,uboot;//3.这块使能了,相当于使能了vopb_out_rgb输出status = "okay";
}总结:以上3项配置相当于配置了vop -> vopb -> vopb_out_rgb//配置encoder
&rgb {//1.这块使能相当于使能了encoderstatus = "okay";ports {port@1 {reg = <1>;rgb_out_panel: endpoint {//2.这块定义了连接的panel,即显示器remote-endpoint = <&panel_in_rgb>;};};};
};&rgb_in_vopb {//2.这块使能相当于使能了encoder的接收,即能够接收来自vopb_out_rgb的数据status = "okay";
};总结:以上2项配置相当于配置了encoder//配置panel,在panel中设置与液晶屏相关内容,例如分辨率、时钟,时序等各参数
panel: panel {port {panel_in_rgb: endpoint {//1.这块定义了连接的encoderremote-endpoint = <&rgb_out_panel>;};};
}	
//分析3代的配置
//定义vopb
&vopb {status = "okay";
};&display_subsystem {route_dsi: route-dsi {status = "disabled";logo,uboot = "logo.bmp";logo,kernel = "logo_kernel.bmp";logo,mode = "center";charge_logo,mode = "center";connect = <&vopb_out_dsi>;};
}&route_dsi {logo,uboot = "logo_kernel.bmp";connect = <&vopb_out_dsi>;status = "okay";
};//定义encoder
&dsi {status = "okay";//在该处直接定义了panelpanel@0 {}
}&dsi_in_vopb {status = "okay";
};

3.设备节点

在这里插入图片描述

display-subsystem:
配置 Rockchip 的 display engine;通过 route 表将各组件(plane / crct / encoder / connector) 关联在一起,以便对应的驱动构建出 display pipe;
vopl: vop@ff8f0000:
配置 VOP little;
子节点 port 里有 5 个 endpoint,名字分别为 vopl_out_dsi / vopl_out_edp 等,它们是数据输出端,即 output endpoint;
每个 endpoint 都会连接到某个 remote-endpoint,VOP 的 remote-endpoint 连接的就是各种显示 Encoder 的 endpoint,例如 vopl_out_dsi ---> dsi_in_vopl;
vopb: vop@ff900000:
省略
edp: edp@ff970000:
配置 edp 控制器,大致包括基地址、中断、时钟、子节点 port;
2 个 input endpoint,分别连接到 VOPL 和 VOPB;
1 个 output endpoint 连接到了 epd panel 上;
有 3 条连接:
vopb_out_edp ---> edp_in_vopbvopl_out_edp ---> edp_in_vopledp_out ---> edp_panel
panel: edp-panel:
配置某一款具体的 edp 屏;
有 1 条连接:
edp_out ---> edp_panel
hdmi: hdmi@ff940000:
配置 hdmi 控制器,大致包括引脚、基地址、中断、时钟、子节点 port;
有 2 条连接:
vopb_out_hdmi ---> hdmi_in_vopbvopl_out_hdmi ---> hdmi_in_vopl
dsi: dsi@ff960000  dsi1: dsi@ff968000:
配置 mipi dsi,类似 edp / hdmi;
mipi_dphy_tx1rx1: mipi-dphy-tx1rx1@ff968000:
配置 mipi dphy;

4.参考文档

RK3399 探索之旅 Display 子系统 基础概念

这篇关于rockchip中的vop的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1086489

相关文章

Rockchip RV1126上实现人脸检测------blazeface

目录 1 下载工程 2 编译 2.1 首先将CMakeLists.txt修改为如下的形式 2.2 添加opencv库文件和头文件 2.3 编写build.sh 3 运行 工程源自:https://github.com/zxcv1884/rv1126_rknn_blazeface 1 下载工程  首先下载工程:https://github.com/zxcv1884/rv1126

Rockchip开发系列 - 3.4.GPIO扩展芯片AW95016A和PCA953X(2)

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 概述熟悉PCA953X驱动添加aw95016设备节点添加aw95016设备驱动uboot调试GPIO扩展芯片uboot修改完整补丁 返回总目录:Rockchip开发

Rockchip开发系列 - 3.3.GPIO扩展芯片AW95016A和PCA953X(1)

By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 概述硬件信息AW95016A寄存器信息GPIO OUTPUT输出寄存器GPIO INPUT输入寄存器INTERRUPT寄存器 调试 返回总目录:Rockchip开发

RockChip Android12 Settings二级菜单

一:概述 本文将针对Android12 Settings的二级菜单System进行说明。 二:System 1、Activity packages/apps/Settings/AndroidManifest.xml <activityandroid:name=".Settings$SystemDashboardActivity"android:label="@string/

RK3588 VOP图层分配介绍

RK3588 VOP图层分配介绍 RK3588图层介绍 RK3588有8个图层,分别是Custer 0/1/2/3 和Esmart 0/1/2/3,两种图层的能力不一样,具体如下: Custer 分辨率:最大分辨率包括两种合并集群和单集群,分别为7680x4320和4096x4320。数据格式:支持多种数据格式,包括RGBA8888/RGB888/RGB565/RGBA1010102/YU

RockChip Android13 添加/删除ListPreference方法

概述: 本章将讲述在Android添加或删除ListPreference的几种方法,并以EthernetSettingsActivity为例,添加/删除一项ListPreference: 默认效果图: 添加后效果图: 方法一: 1、全部添加xml 在Activity类中使用addPreferencesFromResource()方法解析XML文件并添加Preference资

RockChip Android13 NFC SL6320移植

环境:RK3568 Android13 一:驱动移植 1、驱动 将SL6320驱动代码拷贝至kernel-5.10/drivers/misc/sl6320/ 特殊说明:勿将驱动代码放置于kernel-5.10/drivers/nfc/目录下,会导致sl6320驱动生成设备节点时因/dev/nfc节点以创建而加载失败。 2、DTS 本次硬件设计电路走I2C协议,根据DataSh

RK3588 - RKNN(Rockchip 神经处理单元)的逆向工程

本文翻译自https://jas-hacks.blogspot.com/2024/02/rk3588-reverse-engineering-rknn.html RK3588 NPU 的内部操作和功能主要隐藏在名为RKNPU2的闭源 SDK 中。由于对大型语言模型 (LLM) 的兴趣以及对transform模型最佳矩阵乘法的追求,想了解 RKNPU SDK 新引入的矩阵乘法 API (rknn_m

RockChip主板系统签名说明

简介 线下设备使用的都是RockChip芯片的主板,我们要求最终运行的App都有系统权限,因此最终签名都会使用系统签名。之前都是打包完成之后再手动签名,现改成打包的时候直接使用RockChip的签名。 操作 手动签名 先生成apk,然后使用 signapk.jar 签名: java -jar signapk.jar platform.x509.pem platform.pk8 in.ap

深入理解瑞芯微(Rockchip)VENDOR_STORAGE

序: 在嵌入式开发中,特别是在使用瑞芯微(Rockchip)系列ARM处理器时,经常会遇到需要在不更改系统固件(如Android固件)的情况下,存储设备特定的信息,如设备序列号、校准参数等。这时候,VENDOR_STORAGE的作用就显得尤为重要。 VENDOR_STORAGE是Rockchip平台提供的一种用户空间的非易失性存储解决方案。其设计初衷是为了让设备制造商能够在不触碰主操作系统的情