18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/display/rockchip/rockchip-vop.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: Rockchip SoC display controller (VOP)
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cidescription:
108c2ecf20Sopenharmony_ci  VOP (Video Output Processor) is the display controller for the Rockchip
118c2ecf20Sopenharmony_ci  series of SoCs which transfers the image data from a video memory
128c2ecf20Sopenharmony_ci  buffer to an external LCD interface.
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_cimaintainers:
158c2ecf20Sopenharmony_ci  - Sandy Huang <hjc@rock-chips.com>
168c2ecf20Sopenharmony_ci  - Heiko Stuebner <heiko@sntech.de>
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ciproperties:
198c2ecf20Sopenharmony_ci  compatible:
208c2ecf20Sopenharmony_ci    enum:
218c2ecf20Sopenharmony_ci      - rockchip,px30-vop-big
228c2ecf20Sopenharmony_ci      - rockchip,px30-vop-lit
238c2ecf20Sopenharmony_ci      - rockchip,rk3036-vop
248c2ecf20Sopenharmony_ci      - rockchip,rk3066-vop
258c2ecf20Sopenharmony_ci      - rockchip,rk3126-vop
268c2ecf20Sopenharmony_ci      - rockchip,rk3188-vop
278c2ecf20Sopenharmony_ci      - rockchip,rk3228-vop
288c2ecf20Sopenharmony_ci      - rockchip,rk3288-vop
298c2ecf20Sopenharmony_ci      - rockchip,rk3328-vop
308c2ecf20Sopenharmony_ci      - rockchip,rk3366-vop
318c2ecf20Sopenharmony_ci      - rockchip,rk3368-vop
328c2ecf20Sopenharmony_ci      - rockchip,rk3399-vop-big
338c2ecf20Sopenharmony_ci      - rockchip,rk3399-vop-lit
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci  reg:
368c2ecf20Sopenharmony_ci    minItems: 1
378c2ecf20Sopenharmony_ci    items:
388c2ecf20Sopenharmony_ci      - description:
398c2ecf20Sopenharmony_ci          Must contain one entry corresponding to the base address and length
408c2ecf20Sopenharmony_ci          of the register space.
418c2ecf20Sopenharmony_ci      - description:
428c2ecf20Sopenharmony_ci          Can optionally contain a second entry corresponding to
438c2ecf20Sopenharmony_ci          the CRTC gamma LUT address.
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci  interrupts:
468c2ecf20Sopenharmony_ci    maxItems: 1
478c2ecf20Sopenharmony_ci    description:
488c2ecf20Sopenharmony_ci      The VOP interrupt is shared by several interrupt sources, such as
498c2ecf20Sopenharmony_ci      frame start (VSYNC), line flag and other status interrupts.
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ci  clocks:
528c2ecf20Sopenharmony_ci    items:
538c2ecf20Sopenharmony_ci      - description: Clock for ddr buffer transfer.
548c2ecf20Sopenharmony_ci      - description: Pixel clock.
558c2ecf20Sopenharmony_ci      - description: Clock for the ahb bus to R/W the phy regs.
568c2ecf20Sopenharmony_ci
578c2ecf20Sopenharmony_ci  clock-names:
588c2ecf20Sopenharmony_ci    items:
598c2ecf20Sopenharmony_ci      - const: aclk_vop
608c2ecf20Sopenharmony_ci      - const: dclk_vop
618c2ecf20Sopenharmony_ci      - const: hclk_vop
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci  resets:
648c2ecf20Sopenharmony_ci    maxItems: 3
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ci  reset-names:
678c2ecf20Sopenharmony_ci    items:
688c2ecf20Sopenharmony_ci      - const: axi
698c2ecf20Sopenharmony_ci      - const: ahb
708c2ecf20Sopenharmony_ci      - const: dclk
718c2ecf20Sopenharmony_ci
728c2ecf20Sopenharmony_ci  port:
738c2ecf20Sopenharmony_ci    type: object
748c2ecf20Sopenharmony_ci    description:
758c2ecf20Sopenharmony_ci      A port node with endpoint definitions as defined in
768c2ecf20Sopenharmony_ci      Documentation/devicetree/bindings/media/video-interfaces.txt.
778c2ecf20Sopenharmony_ci
788c2ecf20Sopenharmony_ci  assigned-clocks:
798c2ecf20Sopenharmony_ci    maxItems: 2
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_ci  assigned-clock-rates:
828c2ecf20Sopenharmony_ci    maxItems: 2
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci  iommus:
858c2ecf20Sopenharmony_ci    maxItems: 1
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ci  power-domains:
888c2ecf20Sopenharmony_ci    maxItems: 1
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_cirequired:
918c2ecf20Sopenharmony_ci  - compatible
928c2ecf20Sopenharmony_ci  - reg
938c2ecf20Sopenharmony_ci  - interrupts
948c2ecf20Sopenharmony_ci  - clocks
958c2ecf20Sopenharmony_ci  - clock-names
968c2ecf20Sopenharmony_ci  - resets
978c2ecf20Sopenharmony_ci  - reset-names
988c2ecf20Sopenharmony_ci  - port
998c2ecf20Sopenharmony_ci
1008c2ecf20Sopenharmony_ciadditionalProperties: false
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ciexamples:
1038c2ecf20Sopenharmony_ci  - |
1048c2ecf20Sopenharmony_ci    #include <dt-bindings/clock/rk3288-cru.h>
1058c2ecf20Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
1068c2ecf20Sopenharmony_ci    #include <dt-bindings/power/rk3288-power.h>
1078c2ecf20Sopenharmony_ci    vopb: vopb@ff930000 {
1088c2ecf20Sopenharmony_ci      compatible = "rockchip,rk3288-vop";
1098c2ecf20Sopenharmony_ci      reg = <0xff930000 0x19c>,
1108c2ecf20Sopenharmony_ci            <0xff931000 0x1000>;
1118c2ecf20Sopenharmony_ci      interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
1128c2ecf20Sopenharmony_ci      clocks = <&cru ACLK_VOP0>,
1138c2ecf20Sopenharmony_ci               <&cru DCLK_VOP0>,
1148c2ecf20Sopenharmony_ci               <&cru HCLK_VOP0>;
1158c2ecf20Sopenharmony_ci      clock-names = "aclk_vop", "dclk_vop", "hclk_vop";
1168c2ecf20Sopenharmony_ci      power-domains = <&power RK3288_PD_VIO>;
1178c2ecf20Sopenharmony_ci      resets = <&cru SRST_LCDC1_AXI>,
1188c2ecf20Sopenharmony_ci               <&cru SRST_LCDC1_AHB>,
1198c2ecf20Sopenharmony_ci               <&cru SRST_LCDC1_DCLK>;
1208c2ecf20Sopenharmony_ci      reset-names = "axi", "ahb", "dclk";
1218c2ecf20Sopenharmony_ci      iommus = <&vopb_mmu>;
1228c2ecf20Sopenharmony_ci      vopb_out: port {
1238c2ecf20Sopenharmony_ci        #address-cells = <1>;
1248c2ecf20Sopenharmony_ci        #size-cells = <0>;
1258c2ecf20Sopenharmony_ci        vopb_out_edp: endpoint@0 {
1268c2ecf20Sopenharmony_ci          reg = <0>;
1278c2ecf20Sopenharmony_ci          remote-endpoint=<&edp_in_vopb>;
1288c2ecf20Sopenharmony_ci        };
1298c2ecf20Sopenharmony_ci        vopb_out_hdmi: endpoint@1 {
1308c2ecf20Sopenharmony_ci          reg = <1>;
1318c2ecf20Sopenharmony_ci          remote-endpoint=<&hdmi_in_vopb>;
1328c2ecf20Sopenharmony_ci        };
1338c2ecf20Sopenharmony_ci      };
1348c2ecf20Sopenharmony_ci    };
135