xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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