1*4882a593Smuzhiyun# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2*4882a593Smuzhiyun# Copyright 2019 NXP 3*4882a593Smuzhiyun%YAML 1.2 4*4882a593Smuzhiyun--- 5*4882a593Smuzhiyun$id: "http://devicetree.org/schemas/display/imx/nxp,imx8mq-dcss.yaml#" 6*4882a593Smuzhiyun$schema: "http://devicetree.org/meta-schemas/core.yaml#" 7*4882a593Smuzhiyun 8*4882a593Smuzhiyuntitle: iMX8MQ Display Controller Subsystem (DCSS) 9*4882a593Smuzhiyun 10*4882a593Smuzhiyunmaintainers: 11*4882a593Smuzhiyun - Laurentiu Palcu <laurentiu.palcu@nxp.com> 12*4882a593Smuzhiyun 13*4882a593Smuzhiyundescription: 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun The DCSS (display controller sub system) is used to source up to three 16*4882a593Smuzhiyun display buffers, compose them, and drive a display using HDMI 2.0a(with HDCP 17*4882a593Smuzhiyun 2.2) or MIPI-DSI. The DCSS is intended to support up to 4kp60 displays. HDR10 18*4882a593Smuzhiyun image processing capabilities are included to provide a solution capable of 19*4882a593Smuzhiyun driving next generation high dynamic range displays. 20*4882a593Smuzhiyun 21*4882a593Smuzhiyunproperties: 22*4882a593Smuzhiyun compatible: 23*4882a593Smuzhiyun const: nxp,imx8mq-dcss 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun reg: 26*4882a593Smuzhiyun items: 27*4882a593Smuzhiyun - description: DCSS base address and size, up to IRQ steer start 28*4882a593Smuzhiyun - description: DCSS BLKCTL base address and size 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun interrupts: 31*4882a593Smuzhiyun items: 32*4882a593Smuzhiyun - description: Context loader completion and error interrupt 33*4882a593Smuzhiyun - description: DTG interrupt used to signal context loader trigger time 34*4882a593Smuzhiyun - description: DTG interrupt for Vblank 35*4882a593Smuzhiyun 36*4882a593Smuzhiyun interrupt-names: 37*4882a593Smuzhiyun items: 38*4882a593Smuzhiyun - const: ctxld 39*4882a593Smuzhiyun - const: ctxld_kick 40*4882a593Smuzhiyun - const: vblank 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun clocks: 43*4882a593Smuzhiyun items: 44*4882a593Smuzhiyun - description: Display APB clock for all peripheral PIO access interfaces 45*4882a593Smuzhiyun - description: Display AXI clock needed by DPR, Scaler, RTRAM_CTRL 46*4882a593Smuzhiyun - description: RTRAM clock 47*4882a593Smuzhiyun - description: Pixel clock, can be driven either by HDMI phy clock or MIPI 48*4882a593Smuzhiyun - description: DTRC clock, needed by video decompressor 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun clock-names: 51*4882a593Smuzhiyun items: 52*4882a593Smuzhiyun - const: apb 53*4882a593Smuzhiyun - const: axi 54*4882a593Smuzhiyun - const: rtrm 55*4882a593Smuzhiyun - const: pix 56*4882a593Smuzhiyun - const: dtrc 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun assigned-clocks: 59*4882a593Smuzhiyun items: 60*4882a593Smuzhiyun - description: Phandle and clock specifier of IMX8MQ_CLK_DISP_AXI_ROOT 61*4882a593Smuzhiyun - description: Phandle and clock specifier of IMX8MQ_CLK_DISP_RTRM 62*4882a593Smuzhiyun - description: Phandle and clock specifier of either IMX8MQ_VIDEO2_PLL1_REF_SEL or 63*4882a593Smuzhiyun IMX8MQ_VIDEO_PLL1_REF_SEL 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun assigned-clock-parents: 66*4882a593Smuzhiyun items: 67*4882a593Smuzhiyun - description: Phandle and clock specifier of IMX8MQ_SYS1_PLL_800M 68*4882a593Smuzhiyun - description: Phandle and clock specifier of IMX8MQ_SYS1_PLL_800M 69*4882a593Smuzhiyun - description: Phandle and clock specifier of IMX8MQ_CLK_27M 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun assigned-clock-rates: 72*4882a593Smuzhiyun items: 73*4882a593Smuzhiyun - description: Must be 800 MHz 74*4882a593Smuzhiyun - description: Must be 400 MHz 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun port: 77*4882a593Smuzhiyun type: object 78*4882a593Smuzhiyun description: 79*4882a593Smuzhiyun A port node pointing to the input port of a HDMI/DP or MIPI display bridge. 80*4882a593Smuzhiyun 81*4882a593SmuzhiyunadditionalProperties: false 82*4882a593Smuzhiyun 83*4882a593Smuzhiyunexamples: 84*4882a593Smuzhiyun - | 85*4882a593Smuzhiyun #include <dt-bindings/clock/imx8mq-clock.h> 86*4882a593Smuzhiyun dcss: display-controller@32e00000 { 87*4882a593Smuzhiyun compatible = "nxp,imx8mq-dcss"; 88*4882a593Smuzhiyun reg = <0x32e00000 0x2d000>, <0x32e2f000 0x1000>; 89*4882a593Smuzhiyun interrupts = <6>, <8>, <9>; 90*4882a593Smuzhiyun interrupt-names = "ctxld", "ctxld_kick", "vblank"; 91*4882a593Smuzhiyun interrupt-parent = <&irqsteer>; 92*4882a593Smuzhiyun clocks = <&clk IMX8MQ_CLK_DISP_APB_ROOT>, <&clk IMX8MQ_CLK_DISP_AXI_ROOT>, 93*4882a593Smuzhiyun <&clk IMX8MQ_CLK_DISP_RTRM_ROOT>, <&clk IMX8MQ_VIDEO2_PLL_OUT>, 94*4882a593Smuzhiyun <&clk IMX8MQ_CLK_DISP_DTRC>; 95*4882a593Smuzhiyun clock-names = "apb", "axi", "rtrm", "pix", "dtrc"; 96*4882a593Smuzhiyun assigned-clocks = <&clk IMX8MQ_CLK_DISP_AXI>, <&clk IMX8MQ_CLK_DISP_RTRM>, 97*4882a593Smuzhiyun <&clk IMX8MQ_VIDEO2_PLL1_REF_SEL>; 98*4882a593Smuzhiyun assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_800M>, <&clk IMX8MQ_SYS1_PLL_800M>, 99*4882a593Smuzhiyun <&clk IMX8MQ_CLK_27M>; 100*4882a593Smuzhiyun assigned-clock-rates = <800000000>, 101*4882a593Smuzhiyun <400000000>; 102*4882a593Smuzhiyun port { 103*4882a593Smuzhiyun dcss_out: endpoint { 104*4882a593Smuzhiyun remote-endpoint = <&hdmi_in>; 105*4882a593Smuzhiyun }; 106*4882a593Smuzhiyun }; 107*4882a593Smuzhiyun }; 108*4882a593Smuzhiyun 109