xref: /linux/Documentation/devicetree/bindings/display/rockchip/rockchip-vop2.yaml (revision 41c177cf354126a22443b5c80cec9fdd313e67e1)
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