xref: /linux/Documentation/devicetree/bindings/display/imx/nxp,imx8mq-dcss.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
1708ba111SLaurentiu Palcu# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2708ba111SLaurentiu Palcu# Copyright 2019 NXP
3708ba111SLaurentiu Palcu%YAML 1.2
4708ba111SLaurentiu Palcu---
5*4334aec0SRob Herring$id: http://devicetree.org/schemas/display/imx/nxp,imx8mq-dcss.yaml#
6*4334aec0SRob Herring$schema: http://devicetree.org/meta-schemas/core.yaml#
7708ba111SLaurentiu Palcu
8708ba111SLaurentiu Palcutitle: iMX8MQ Display Controller Subsystem (DCSS)
9708ba111SLaurentiu Palcu
10708ba111SLaurentiu Palcumaintainers:
11708ba111SLaurentiu Palcu  - Laurentiu Palcu <laurentiu.palcu@nxp.com>
12708ba111SLaurentiu Palcu
13708ba111SLaurentiu Palcudescription:
14708ba111SLaurentiu Palcu
15708ba111SLaurentiu Palcu  The DCSS (display controller sub system) is used to source up to three
16708ba111SLaurentiu Palcu  display buffers, compose them, and drive a display using HDMI 2.0a(with HDCP
17708ba111SLaurentiu Palcu  2.2) or MIPI-DSI. The DCSS is intended to support up to 4kp60 displays. HDR10
18708ba111SLaurentiu Palcu  image processing capabilities are included to provide a solution capable of
19708ba111SLaurentiu Palcu  driving next generation high dynamic range displays.
20708ba111SLaurentiu Palcu
21708ba111SLaurentiu Palcuproperties:
22708ba111SLaurentiu Palcu  compatible:
23708ba111SLaurentiu Palcu    const: nxp,imx8mq-dcss
24708ba111SLaurentiu Palcu
25708ba111SLaurentiu Palcu  reg:
26708ba111SLaurentiu Palcu    items:
27708ba111SLaurentiu Palcu      - description: DCSS base address and size, up to IRQ steer start
28708ba111SLaurentiu Palcu      - description: DCSS BLKCTL base address and size
29708ba111SLaurentiu Palcu
30708ba111SLaurentiu Palcu  interrupts:
31708ba111SLaurentiu Palcu    items:
32708ba111SLaurentiu Palcu      - description: Context loader completion and error interrupt
33708ba111SLaurentiu Palcu      - description: DTG interrupt used to signal context loader trigger time
34708ba111SLaurentiu Palcu      - description: DTG interrupt for Vblank
35708ba111SLaurentiu Palcu
36708ba111SLaurentiu Palcu  interrupt-names:
37708ba111SLaurentiu Palcu    items:
38708ba111SLaurentiu Palcu      - const: ctxld
39708ba111SLaurentiu Palcu      - const: ctxld_kick
40708ba111SLaurentiu Palcu      - const: vblank
41708ba111SLaurentiu Palcu
42708ba111SLaurentiu Palcu  clocks:
43708ba111SLaurentiu Palcu    items:
44708ba111SLaurentiu Palcu      - description: Display APB clock for all peripheral PIO access interfaces
45708ba111SLaurentiu Palcu      - description: Display AXI clock needed by DPR, Scaler, RTRAM_CTRL
46708ba111SLaurentiu Palcu      - description: RTRAM clock
47708ba111SLaurentiu Palcu      - description: Pixel clock, can be driven either by HDMI phy clock or MIPI
48708ba111SLaurentiu Palcu      - description: DTRC clock, needed by video decompressor
49708ba111SLaurentiu Palcu
50708ba111SLaurentiu Palcu  clock-names:
51708ba111SLaurentiu Palcu    items:
52708ba111SLaurentiu Palcu      - const: apb
53708ba111SLaurentiu Palcu      - const: axi
54708ba111SLaurentiu Palcu      - const: rtrm
55708ba111SLaurentiu Palcu      - const: pix
56708ba111SLaurentiu Palcu      - const: dtrc
57708ba111SLaurentiu Palcu
58708ba111SLaurentiu Palcu  assigned-clocks:
59708ba111SLaurentiu Palcu    items:
60708ba111SLaurentiu Palcu      - description: Phandle and clock specifier of IMX8MQ_CLK_DISP_AXI_ROOT
61708ba111SLaurentiu Palcu      - description: Phandle and clock specifier of IMX8MQ_CLK_DISP_RTRM
62708ba111SLaurentiu Palcu      - description: Phandle and clock specifier of either IMX8MQ_VIDEO2_PLL1_REF_SEL or
63708ba111SLaurentiu Palcu                     IMX8MQ_VIDEO_PLL1_REF_SEL
64708ba111SLaurentiu Palcu
65708ba111SLaurentiu Palcu  assigned-clock-parents:
66708ba111SLaurentiu Palcu    items:
67708ba111SLaurentiu Palcu      - description: Phandle and clock specifier of IMX8MQ_SYS1_PLL_800M
68708ba111SLaurentiu Palcu      - description: Phandle and clock specifier of IMX8MQ_SYS1_PLL_800M
69708ba111SLaurentiu Palcu      - description: Phandle and clock specifier of IMX8MQ_CLK_27M
70708ba111SLaurentiu Palcu
71708ba111SLaurentiu Palcu  assigned-clock-rates:
72708ba111SLaurentiu Palcu    items:
73708ba111SLaurentiu Palcu      - description: Must be 800 MHz
74708ba111SLaurentiu Palcu      - description: Must be 400 MHz
75708ba111SLaurentiu Palcu
76708ba111SLaurentiu Palcu  port:
77b6755423SRob Herring    $ref: /schemas/graph.yaml#/properties/port
78708ba111SLaurentiu Palcu    description:
79708ba111SLaurentiu Palcu      A port node pointing to the input port of a HDMI/DP or MIPI display bridge.
80708ba111SLaurentiu Palcu
81708ba111SLaurentiu PalcuadditionalProperties: false
82708ba111SLaurentiu Palcu
83708ba111SLaurentiu Palcuexamples:
84708ba111SLaurentiu Palcu  - |
85708ba111SLaurentiu Palcu    #include <dt-bindings/clock/imx8mq-clock.h>
86708ba111SLaurentiu Palcu    dcss: display-controller@32e00000 {
87708ba111SLaurentiu Palcu        compatible = "nxp,imx8mq-dcss";
88708ba111SLaurentiu Palcu        reg = <0x32e00000 0x2d000>, <0x32e2f000 0x1000>;
89708ba111SLaurentiu Palcu        interrupts = <6>, <8>, <9>;
90708ba111SLaurentiu Palcu        interrupt-names = "ctxld", "ctxld_kick", "vblank";
91708ba111SLaurentiu Palcu        interrupt-parent = <&irqsteer>;
92708ba111SLaurentiu Palcu        clocks = <&clk IMX8MQ_CLK_DISP_APB_ROOT>, <&clk IMX8MQ_CLK_DISP_AXI_ROOT>,
93708ba111SLaurentiu Palcu                 <&clk IMX8MQ_CLK_DISP_RTRM_ROOT>, <&clk IMX8MQ_VIDEO2_PLL_OUT>,
94708ba111SLaurentiu Palcu                 <&clk IMX8MQ_CLK_DISP_DTRC>;
95708ba111SLaurentiu Palcu        clock-names = "apb", "axi", "rtrm", "pix", "dtrc";
96708ba111SLaurentiu Palcu        assigned-clocks = <&clk IMX8MQ_CLK_DISP_AXI>, <&clk IMX8MQ_CLK_DISP_RTRM>,
97708ba111SLaurentiu Palcu                          <&clk IMX8MQ_VIDEO2_PLL1_REF_SEL>;
98708ba111SLaurentiu Palcu        assigned-clock-parents = <&clk IMX8MQ_SYS1_PLL_800M>, <&clk IMX8MQ_SYS1_PLL_800M>,
99708ba111SLaurentiu Palcu                                 <&clk IMX8MQ_CLK_27M>;
100708ba111SLaurentiu Palcu        assigned-clock-rates = <800000000>,
101708ba111SLaurentiu Palcu                               <400000000>;
102708ba111SLaurentiu Palcu        port {
103708ba111SLaurentiu Palcu            dcss_out: endpoint {
104708ba111SLaurentiu Palcu                remote-endpoint = <&hdmi_in>;
105708ba111SLaurentiu Palcu            };
106708ba111SLaurentiu Palcu        };
107708ba111SLaurentiu Palcu    };
108