xref: /freebsd-src/sys/contrib/device-tree/Bindings/display/rockchip/rockchip-vop.yaml (revision 84943d6f38e936ac3b7a3947ca26eeb27a39f938)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/display/rockchip/rockchip-vop.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: Rockchip SoC display controller (VOP)
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotdescription:
10c66ec88fSEmmanuel Vadot  VOP (Video Output Processor) is the display controller for the Rockchip
11c66ec88fSEmmanuel Vadot  series of SoCs which transfers the image data from a video memory
12c66ec88fSEmmanuel Vadot  buffer to an external LCD interface.
13c66ec88fSEmmanuel Vadot
14c66ec88fSEmmanuel Vadotmaintainers:
15c66ec88fSEmmanuel Vadot  - Sandy Huang <hjc@rock-chips.com>
16c66ec88fSEmmanuel Vadot  - Heiko Stuebner <heiko@sntech.de>
17c66ec88fSEmmanuel Vadot
18c66ec88fSEmmanuel Vadotproperties:
19c66ec88fSEmmanuel Vadot  compatible:
20c66ec88fSEmmanuel Vadot    enum:
21c66ec88fSEmmanuel Vadot      - rockchip,px30-vop-big
22c66ec88fSEmmanuel Vadot      - rockchip,px30-vop-lit
23c66ec88fSEmmanuel Vadot      - rockchip,rk3036-vop
24c66ec88fSEmmanuel Vadot      - rockchip,rk3066-vop
25c66ec88fSEmmanuel Vadot      - rockchip,rk3126-vop
26c66ec88fSEmmanuel Vadot      - rockchip,rk3188-vop
27c66ec88fSEmmanuel Vadot      - rockchip,rk3228-vop
28c66ec88fSEmmanuel Vadot      - rockchip,rk3288-vop
29c66ec88fSEmmanuel Vadot      - rockchip,rk3328-vop
30c66ec88fSEmmanuel Vadot      - rockchip,rk3366-vop
31c66ec88fSEmmanuel Vadot      - rockchip,rk3368-vop
32c66ec88fSEmmanuel Vadot      - rockchip,rk3399-vop-big
33c66ec88fSEmmanuel Vadot      - rockchip,rk3399-vop-lit
34*84943d6fSEmmanuel Vadot      - rockchip,rv1126-vop
35c66ec88fSEmmanuel Vadot
36c66ec88fSEmmanuel Vadot  reg:
37c66ec88fSEmmanuel Vadot    minItems: 1
38c66ec88fSEmmanuel Vadot    items:
39c66ec88fSEmmanuel Vadot      - description:
40c66ec88fSEmmanuel Vadot          Must contain one entry corresponding to the base address and length
41c66ec88fSEmmanuel Vadot          of the register space.
42c66ec88fSEmmanuel Vadot      - description:
43c66ec88fSEmmanuel Vadot          Can optionally contain a second entry corresponding to
44c66ec88fSEmmanuel Vadot          the CRTC gamma LUT address.
45c66ec88fSEmmanuel Vadot
46c66ec88fSEmmanuel Vadot  interrupts:
47c66ec88fSEmmanuel Vadot    maxItems: 1
48c66ec88fSEmmanuel Vadot    description:
49c66ec88fSEmmanuel Vadot      The VOP interrupt is shared by several interrupt sources, such as
50c66ec88fSEmmanuel Vadot      frame start (VSYNC), line flag and other status interrupts.
51c66ec88fSEmmanuel Vadot
52c66ec88fSEmmanuel Vadot  clocks:
53c66ec88fSEmmanuel Vadot    items:
54c66ec88fSEmmanuel Vadot      - description: Clock for ddr buffer transfer.
55c66ec88fSEmmanuel Vadot      - description: Pixel clock.
56c66ec88fSEmmanuel Vadot      - description: Clock for the ahb bus to R/W the phy regs.
57c66ec88fSEmmanuel Vadot
58c66ec88fSEmmanuel Vadot  clock-names:
59c66ec88fSEmmanuel Vadot    items:
60c66ec88fSEmmanuel Vadot      - const: aclk_vop
61c66ec88fSEmmanuel Vadot      - const: dclk_vop
62c66ec88fSEmmanuel Vadot      - const: hclk_vop
63c66ec88fSEmmanuel Vadot
64c66ec88fSEmmanuel Vadot  resets:
65c66ec88fSEmmanuel Vadot    maxItems: 3
66c66ec88fSEmmanuel Vadot
67c66ec88fSEmmanuel Vadot  reset-names:
68c66ec88fSEmmanuel Vadot    items:
69c66ec88fSEmmanuel Vadot      - const: axi
70c66ec88fSEmmanuel Vadot      - const: ahb
71c66ec88fSEmmanuel Vadot      - const: dclk
72c66ec88fSEmmanuel Vadot
73c66ec88fSEmmanuel Vadot  port:
745def4c47SEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/port
75c66ec88fSEmmanuel Vadot
76c66ec88fSEmmanuel Vadot  assigned-clocks:
77c66ec88fSEmmanuel Vadot    maxItems: 2
78c66ec88fSEmmanuel Vadot
79c66ec88fSEmmanuel Vadot  assigned-clock-rates:
80c66ec88fSEmmanuel Vadot    maxItems: 2
81c66ec88fSEmmanuel Vadot
82c66ec88fSEmmanuel Vadot  iommus:
83c66ec88fSEmmanuel Vadot    maxItems: 1
84c66ec88fSEmmanuel Vadot
85c66ec88fSEmmanuel Vadot  power-domains:
86c66ec88fSEmmanuel Vadot    maxItems: 1
87c66ec88fSEmmanuel Vadot
88c66ec88fSEmmanuel Vadotrequired:
89c66ec88fSEmmanuel Vadot  - compatible
90c66ec88fSEmmanuel Vadot  - reg
91c66ec88fSEmmanuel Vadot  - interrupts
92c66ec88fSEmmanuel Vadot  - clocks
93c66ec88fSEmmanuel Vadot  - clock-names
94c66ec88fSEmmanuel Vadot  - resets
95c66ec88fSEmmanuel Vadot  - reset-names
96c66ec88fSEmmanuel Vadot  - port
97c66ec88fSEmmanuel Vadot
98c66ec88fSEmmanuel VadotadditionalProperties: false
99c66ec88fSEmmanuel Vadot
100c66ec88fSEmmanuel Vadotexamples:
101c66ec88fSEmmanuel Vadot  - |
102c66ec88fSEmmanuel Vadot    #include <dt-bindings/clock/rk3288-cru.h>
103c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
104c66ec88fSEmmanuel Vadot    #include <dt-bindings/power/rk3288-power.h>
105c66ec88fSEmmanuel Vadot    vopb: vopb@ff930000 {
106c66ec88fSEmmanuel Vadot      compatible = "rockchip,rk3288-vop";
107c66ec88fSEmmanuel Vadot      reg = <0xff930000 0x19c>,
108c66ec88fSEmmanuel Vadot            <0xff931000 0x1000>;
109c66ec88fSEmmanuel Vadot      interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
110c66ec88fSEmmanuel Vadot      clocks = <&cru ACLK_VOP0>,
111c66ec88fSEmmanuel Vadot               <&cru DCLK_VOP0>,
112c66ec88fSEmmanuel Vadot               <&cru HCLK_VOP0>;
113c66ec88fSEmmanuel Vadot      clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
114c66ec88fSEmmanuel Vadot      power-domains = <&power RK3288_PD_VIO>;
115c66ec88fSEmmanuel Vadot      resets = <&cru SRST_LCDC1_AXI>,
116c66ec88fSEmmanuel Vadot               <&cru SRST_LCDC1_AHB>,
117c66ec88fSEmmanuel Vadot               <&cru SRST_LCDC1_DCLK>;
118c66ec88fSEmmanuel Vadot      reset-names = "axi", "ahb", "dclk";
119c66ec88fSEmmanuel Vadot      iommus = <&vopb_mmu>;
120c66ec88fSEmmanuel Vadot      vopb_out: port {
121c66ec88fSEmmanuel Vadot        #address-cells = <1>;
122c66ec88fSEmmanuel Vadot        #size-cells = <0>;
123c66ec88fSEmmanuel Vadot        vopb_out_edp: endpoint@0 {
124c66ec88fSEmmanuel Vadot          reg = <0>;
125c66ec88fSEmmanuel Vadot          remote-endpoint = <&edp_in_vopb>;
126c66ec88fSEmmanuel Vadot        };
127c66ec88fSEmmanuel Vadot        vopb_out_hdmi: endpoint@1 {
128c66ec88fSEmmanuel Vadot          reg = <1>;
129c66ec88fSEmmanuel Vadot          remote-endpoint = <&hdmi_in_vopb>;
130c66ec88fSEmmanuel Vadot        };
131c66ec88fSEmmanuel Vadot      };
132c66ec88fSEmmanuel Vadot    };
133