• 周五. 5月 2nd, 2025

rockchip — VOP dts 配置

3月 22, 2020

关键词:rk3399; rockchip,rk3036-vop;rk3066-vop;rk3126-vop;px30-vop-big;px30-vop-lit;rk3308-vop;rk3288-vop-lit;rk3288-vop-big;rk3368-vop;rk3366-vop;rk3366-vop-lit;rk3399-vop-big;rk3399-vop-lit;rk322x-vop;rk3328-vop;

rockchip — VOP dts 配置

1、VOP简介

VOP (Visual Output Processor) 是一个显示控制器, 作用用于将一块图像数据从视频内存传输到外部LCD显示接口。

2、属性值配置:

- compatible: 可以配置成以下值:
		"rockchip,rk3036-vop";
		"rockchip,rk3066-vop";
		"rockchip,rk3126-vop";
		"rockchip,px30-vop-big";
		"rockchip,px30-vop-lit";
		"rockchip,rk3308-vop";
		"rockchip,rk3288-vop-lit";
		"rockchip,rk3288-vop-big";
		"rockchip,rk3368-vop";
		"rockchip,rk3366-vop";
		"rockchip,rk3366-vop-lit";
		"rockchip,rk3399-vop-big";
		"rockchip,rk3399-vop-lit";
		"rockchip,rk322x-vop";
		"rockchip,rk3328-vop";

- reg: VOP控制器寄存器,cabc/gamma 的物理基地址,以及寄存器占用的空间大小。VOP使用多个寄存器地址段,具体与reg-names 一一对应;
- reg-names: 寄存器有以下三种:
  - "regs" : VOP控制器的寄存器名称,必须配置。
  - "cabc_lut" : 该寄存器是可选配置,这里代表cabc的参数表;
  - "gamma_lut" : 该寄存器是可选配置,这里代表gamma的参数表;

- interrupts: 配置 VOP 的中断.
- clocks: 配置VOP的clock, 与clock-names 一一对应;
- clock-names: clock的名称,包括以下值:
		aclk_vop: for ddr buffer transfer.
		hclk_vop: for ahb bus to R/W the phy regs.
		dclk_vop: pixel clock.
		dclk_source: optinal, dclk sources from display plls.

- resets: 配置VOP的复位模块,与reset-names 一一对应;
- reset-names: 复位模块的名称为以下值:
  - axi
  - ahb
  - dclk

- iommus: 配置iommu节点;
- port: 配置输出显示接口;

3、以rk3288为例:

Example:
SoC specific DT entry:
	vopb: vopb@ff930000 {
		compatible = "rockchip,rk3288-vop";
		reg = <0xff930000 0x19c>, <0xff931000 0x1000>;
		reg-names = "regs", "gamma_lut";
		interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&cru ACLK_VOP0>, <&cru DCLK_VOP0>, <&cru HCLK_VOP0>;
		clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
		resets = <&cru SRST_LCDC1_AXI>, <&cru SRST_LCDC1_AHB>, <&cru SRST_LCDC1_DCLK>;
		reset-names = "axi", "ahb", "dclk";
		iommus = <&vopb_mmu>;
		vopb_out: port {
			#address-cells = <1>;
			#size-cells = <0>;
			vopb_out_edp: endpoint@0 {
				reg = <0>;
				remote-endpoint=<&edp_in_vopb>;
			};
			vopb_out_hdmi: endpoint@1 {
				reg = <1>;
				remote-endpoint=<&hdmi_in_vopb>;
			};
		};
	};