1440b075bSKrzysztof Kozlowski# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 274015e26SSascha Hauer%YAML 1.2 374015e26SSascha Hauer--- 474015e26SSascha Hauer$id: http://devicetree.org/schemas/display/rockchip/rockchip-vop2.yaml# 574015e26SSascha Hauer$schema: http://devicetree.org/meta-schemas/core.yaml# 674015e26SSascha Hauer 774015e26SSascha Hauertitle: Rockchip SoC display controller (VOP2) 874015e26SSascha Hauer 974015e26SSascha Hauerdescription: 1074015e26SSascha Hauer VOP2 (Video Output Processor v2) is the display controller for the Rockchip 11*4ccdc92cSAndy Yan series of SoCs which transfers the image data from a video memory buffer to 12*4ccdc92cSAndy Yan an external LCD interface. 1374015e26SSascha Hauer 1474015e26SSascha Hauermaintainers: 1574015e26SSascha Hauer - Sandy Huang <hjc@rock-chips.com> 1674015e26SSascha Hauer - Heiko Stuebner <heiko@sntech.de> 1774015e26SSascha Hauer 1874015e26SSascha Hauerproperties: 1974015e26SSascha Hauer compatible: 2074015e26SSascha Hauer enum: 2174015e26SSascha Hauer - rockchip,rk3566-vop 2274015e26SSascha Hauer - rockchip,rk3568-vop 23*4ccdc92cSAndy Yan - rockchip,rk3588-vop 2474015e26SSascha Hauer 2574015e26SSascha Hauer reg: 2674015e26SSascha Hauer items: 2774015e26SSascha Hauer - description: 2874015e26SSascha Hauer Must contain one entry corresponding to the base address and length 2974015e26SSascha Hauer of the register space. 3074015e26SSascha Hauer - description: 31*4ccdc92cSAndy Yan Can optionally contain a second entry corresponding to the CRTC gamma 32*4ccdc92cSAndy Yan LUT address. 3374015e26SSascha Hauer 3454eb8d44SSascha Hauer reg-names: 3554eb8d44SSascha Hauer items: 3654eb8d44SSascha Hauer - const: vop 3754eb8d44SSascha Hauer - const: gamma-lut 3854eb8d44SSascha Hauer 3974015e26SSascha Hauer interrupts: 4074015e26SSascha Hauer maxItems: 1 4174015e26SSascha Hauer description: 4274015e26SSascha Hauer The VOP interrupt is shared by several interrupt sources, such as 4374015e26SSascha Hauer frame start (VSYNC), line flag and other status interrupts. 4474015e26SSascha Hauer 45*4ccdc92cSAndy Yan # See compatible-specific constraints below. 4674015e26SSascha Hauer clocks: 47*4ccdc92cSAndy Yan minItems: 5 4874015e26SSascha Hauer items: 49*4ccdc92cSAndy Yan - description: Clock for ddr buffer transfer via axi. 50*4ccdc92cSAndy Yan - description: Clock for the ahb bus to R/W the regs. 5174015e26SSascha Hauer - description: Pixel clock for video port 0. 5274015e26SSascha Hauer - description: Pixel clock for video port 1. 5374015e26SSascha Hauer - description: Pixel clock for video port 2. 54*4ccdc92cSAndy Yan - description: Pixel clock for video port 3. 55*4ccdc92cSAndy Yan - description: Peripheral(vop grf/dsi) clock. 5674015e26SSascha Hauer 5774015e26SSascha Hauer clock-names: 58*4ccdc92cSAndy Yan minItems: 5 5974015e26SSascha Hauer items: 6074015e26SSascha Hauer - const: aclk 6174015e26SSascha Hauer - const: hclk 6274015e26SSascha Hauer - const: dclk_vp0 6374015e26SSascha Hauer - const: dclk_vp1 6474015e26SSascha Hauer - const: dclk_vp2 65*4ccdc92cSAndy Yan - const: dclk_vp3 66*4ccdc92cSAndy Yan - const: pclk_vop 6774015e26SSascha Hauer 6874015e26SSascha Hauer rockchip,grf: 6974015e26SSascha Hauer $ref: /schemas/types.yaml#/definitions/phandle 7074015e26SSascha Hauer description: 71*4ccdc92cSAndy Yan Phandle to GRF regs used for control the polarity of dclk/hsync/vsync of DPI, 72*4ccdc92cSAndy Yan also used for query vop memory bisr enable status, etc. 73*4ccdc92cSAndy Yan 74*4ccdc92cSAndy Yan rockchip,vo1-grf: 75*4ccdc92cSAndy Yan $ref: /schemas/types.yaml#/definitions/phandle 76*4ccdc92cSAndy Yan description: 77*4ccdc92cSAndy Yan Phandle to VO GRF regs used for control the polarity of dclk/hsync/vsync of hdmi 78*4ccdc92cSAndy Yan on rk3588. 79*4ccdc92cSAndy Yan 80*4ccdc92cSAndy Yan rockchip,vop-grf: 81*4ccdc92cSAndy Yan $ref: /schemas/types.yaml#/definitions/phandle 82*4ccdc92cSAndy Yan description: 83*4ccdc92cSAndy Yan Phandle to VOP GRF regs used for control data path between vopr and hdmi/edp. 84*4ccdc92cSAndy Yan 85*4ccdc92cSAndy Yan rockchip,pmu: 86*4ccdc92cSAndy Yan $ref: /schemas/types.yaml#/definitions/phandle 87*4ccdc92cSAndy Yan description: 88*4ccdc92cSAndy Yan Phandle to PMU GRF used for query vop memory bisr status on rk3588. 8974015e26SSascha Hauer 9074015e26SSascha Hauer ports: 9174015e26SSascha Hauer $ref: /schemas/graph.yaml#/properties/ports 9274015e26SSascha Hauer 93*4ccdc92cSAndy Yan patternProperties: 94*4ccdc92cSAndy Yan "^port@[0-3]$": 9574015e26SSascha Hauer $ref: /schemas/graph.yaml#/properties/port 96*4ccdc92cSAndy Yan description: Output endpoint of VP0/1/2/3. 9774015e26SSascha Hauer 98*4ccdc92cSAndy Yan required: 99*4ccdc92cSAndy Yan - port@0 10074015e26SSascha Hauer 101*4ccdc92cSAndy Yan unevaluatedProperties: false 10274015e26SSascha Hauer 10374015e26SSascha Hauer iommus: 10474015e26SSascha Hauer maxItems: 1 10574015e26SSascha Hauer 10674015e26SSascha Hauer power-domains: 10774015e26SSascha Hauer maxItems: 1 10874015e26SSascha Hauer 10974015e26SSascha Hauerrequired: 11074015e26SSascha Hauer - compatible 11174015e26SSascha Hauer - reg 11254eb8d44SSascha Hauer - reg-names 11374015e26SSascha Hauer - interrupts 11474015e26SSascha Hauer - clocks 11574015e26SSascha Hauer - clock-names 11674015e26SSascha Hauer - ports 11774015e26SSascha Hauer 118*4ccdc92cSAndy YanallOf: 119*4ccdc92cSAndy Yan - if: 120*4ccdc92cSAndy Yan properties: 121*4ccdc92cSAndy Yan compatible: 122*4ccdc92cSAndy Yan contains: 123*4ccdc92cSAndy Yan const: rockchip,rk3588-vop 124*4ccdc92cSAndy Yan then: 125*4ccdc92cSAndy Yan properties: 126*4ccdc92cSAndy Yan clocks: 127*4ccdc92cSAndy Yan minItems: 7 128*4ccdc92cSAndy Yan clock-names: 129*4ccdc92cSAndy Yan minItems: 7 130*4ccdc92cSAndy Yan 131*4ccdc92cSAndy Yan ports: 132*4ccdc92cSAndy Yan required: 133*4ccdc92cSAndy Yan - port@0 134*4ccdc92cSAndy Yan - port@1 135*4ccdc92cSAndy Yan - port@2 136*4ccdc92cSAndy Yan - port@3 137*4ccdc92cSAndy Yan 138*4ccdc92cSAndy Yan required: 139*4ccdc92cSAndy Yan - rockchip,grf 140*4ccdc92cSAndy Yan - rockchip,vo1-grf 141*4ccdc92cSAndy Yan - rockchip,vop-grf 142*4ccdc92cSAndy Yan - rockchip,pmu 143*4ccdc92cSAndy Yan 144*4ccdc92cSAndy Yan else: 145*4ccdc92cSAndy Yan properties: 146*4ccdc92cSAndy Yan rockchip,vo1-grf: false 147*4ccdc92cSAndy Yan rockchip,vop-grf: false 148*4ccdc92cSAndy Yan rockchip,pmu: false 149*4ccdc92cSAndy Yan 150*4ccdc92cSAndy Yan clocks: 151*4ccdc92cSAndy Yan maxItems: 5 152*4ccdc92cSAndy Yan clock-names: 153*4ccdc92cSAndy Yan maxItems: 5 154*4ccdc92cSAndy Yan 155*4ccdc92cSAndy Yan ports: 156*4ccdc92cSAndy Yan required: 157*4ccdc92cSAndy Yan - port@0 158*4ccdc92cSAndy Yan - port@1 159*4ccdc92cSAndy Yan - port@2 160*4ccdc92cSAndy Yan 16174015e26SSascha HaueradditionalProperties: false 16274015e26SSascha Hauer 16374015e26SSascha Hauerexamples: 16474015e26SSascha Hauer - | 16574015e26SSascha Hauer #include <dt-bindings/clock/rk3568-cru.h> 16674015e26SSascha Hauer #include <dt-bindings/interrupt-controller/arm-gic.h> 16774015e26SSascha Hauer #include <dt-bindings/power/rk3568-power.h> 16874015e26SSascha Hauer bus { 16974015e26SSascha Hauer #address-cells = <2>; 17074015e26SSascha Hauer #size-cells = <2>; 17174015e26SSascha Hauer vop: vop@fe040000 { 17274015e26SSascha Hauer compatible = "rockchip,rk3568-vop"; 17374015e26SSascha Hauer reg = <0x0 0xfe040000 0x0 0x3000>, <0x0 0xfe044000 0x0 0x1000>; 17454eb8d44SSascha Hauer reg-names = "vop", "gamma-lut"; 17574015e26SSascha Hauer interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; 17674015e26SSascha Hauer clocks = <&cru ACLK_VOP>, 17774015e26SSascha Hauer <&cru HCLK_VOP>, 17874015e26SSascha Hauer <&cru DCLK_VOP0>, 17974015e26SSascha Hauer <&cru DCLK_VOP1>, 18074015e26SSascha Hauer <&cru DCLK_VOP2>; 18174015e26SSascha Hauer clock-names = "aclk", 18274015e26SSascha Hauer "hclk", 18374015e26SSascha Hauer "dclk_vp0", 18474015e26SSascha Hauer "dclk_vp1", 18574015e26SSascha Hauer "dclk_vp2"; 18674015e26SSascha Hauer power-domains = <&power RK3568_PD_VO>; 18774015e26SSascha Hauer iommus = <&vop_mmu>; 18874015e26SSascha Hauer vop_out: ports { 18974015e26SSascha Hauer #address-cells = <1>; 19074015e26SSascha Hauer #size-cells = <0>; 19174015e26SSascha Hauer vp0: port@0 { 19274015e26SSascha Hauer reg = <0>; 19374015e26SSascha Hauer #address-cells = <1>; 19474015e26SSascha Hauer #size-cells = <0>; 19574015e26SSascha Hauer }; 19674015e26SSascha Hauer vp1: port@1 { 19774015e26SSascha Hauer reg = <1>; 19874015e26SSascha Hauer #address-cells = <1>; 19974015e26SSascha Hauer #size-cells = <0>; 20074015e26SSascha Hauer }; 20174015e26SSascha Hauer vp2: port@2 { 20274015e26SSascha Hauer reg = <2>; 20374015e26SSascha Hauer #address-cells = <1>; 20474015e26SSascha Hauer #size-cells = <0>; 20574015e26SSascha Hauer }; 20674015e26SSascha Hauer }; 20774015e26SSascha Hauer }; 20874015e26SSascha Hauer }; 209