18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/display/xlnx/xlnx,zynqmp-dpsub.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: Xilinx ZynqMP DisplayPort Subsystem 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cidescription: | 108c2ecf20Sopenharmony_ci The DisplayPort subsystem of Xilinx ZynqMP (Zynq UltraScale+ MPSoC) 118c2ecf20Sopenharmony_ci implements the display and audio pipelines based on the DisplayPort v1.2 128c2ecf20Sopenharmony_ci standard. The subsystem includes multiple functional blocks as below: 138c2ecf20Sopenharmony_ci 148c2ecf20Sopenharmony_ci +------------------------------------------------------------+ 158c2ecf20Sopenharmony_ci +--------+ | +----------------+ +-----------+ | 168c2ecf20Sopenharmony_ci | DPDMA | --->| | --> | Video | Video +-------------+ | 178c2ecf20Sopenharmony_ci | 4x vid | | | | | Rendering | -+--> | | | +------+ 188c2ecf20Sopenharmony_ci | 2x aud | | | Audio/Video | --> | Pipeline | | | DisplayPort |---> | PHY0 | 198c2ecf20Sopenharmony_ci +--------+ | | Buffer Manager | +-----------+ | | Source | | +------+ 208c2ecf20Sopenharmony_ci | | and STC | +-----------+ | | Controller | | +------+ 218c2ecf20Sopenharmony_ci Live Video --->| | --> | Audio | Audio | |---> | PHY1 | 228c2ecf20Sopenharmony_ci | | | | Mixer | --+-> | | | +------+ 238c2ecf20Sopenharmony_ci Live Audio --->| | --> | | || +-------------+ | 248c2ecf20Sopenharmony_ci | +----------------+ +-----------+ || | 258c2ecf20Sopenharmony_ci +---------------------------------------||-------------------+ 268c2ecf20Sopenharmony_ci vv 278c2ecf20Sopenharmony_ci Blended Video and 288c2ecf20Sopenharmony_ci Mixed Audio to PL 298c2ecf20Sopenharmony_ci 308c2ecf20Sopenharmony_ci The Buffer Manager interacts with external interface such as DMA engines or 318c2ecf20Sopenharmony_ci live audio/video streams from the programmable logic. The Video Rendering 328c2ecf20Sopenharmony_ci Pipeline blends the video and graphics layers and performs colorspace 338c2ecf20Sopenharmony_ci conversion. The Audio Mixer mixes the incoming audio streams. The DisplayPort 348c2ecf20Sopenharmony_ci Source Controller handles the DisplayPort protocol and connects to external 358c2ecf20Sopenharmony_ci PHYs. 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci The subsystem supports 2 video and 2 audio streams, and various pixel formats 388c2ecf20Sopenharmony_ci and depths up to 4K@30 resolution. 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci Please refer to "Zynq UltraScale+ Device Technical Reference Manual" 418c2ecf20Sopenharmony_ci (https://www.xilinx.com/support/documentation/user_guides/ug1085-zynq-ultrascale-trm.pdf) 428c2ecf20Sopenharmony_ci for more details. 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_cimaintainers: 458c2ecf20Sopenharmony_ci - Laurent Pinchart <laurent.pinchart@ideasonboard.com> 468c2ecf20Sopenharmony_ci 478c2ecf20Sopenharmony_ciproperties: 488c2ecf20Sopenharmony_ci compatible: 498c2ecf20Sopenharmony_ci const: xlnx,zynqmp-dpsub-1.7 508c2ecf20Sopenharmony_ci 518c2ecf20Sopenharmony_ci reg: 528c2ecf20Sopenharmony_ci maxItems: 4 538c2ecf20Sopenharmony_ci reg-names: 548c2ecf20Sopenharmony_ci items: 558c2ecf20Sopenharmony_ci - const: dp 568c2ecf20Sopenharmony_ci - const: blend 578c2ecf20Sopenharmony_ci - const: av_buf 588c2ecf20Sopenharmony_ci - const: aud 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ci interrupts: 618c2ecf20Sopenharmony_ci maxItems: 1 628c2ecf20Sopenharmony_ci 638c2ecf20Sopenharmony_ci clocks: 648c2ecf20Sopenharmony_ci description: 658c2ecf20Sopenharmony_ci The APB clock and at least one video clock are mandatory, the audio clock 668c2ecf20Sopenharmony_ci is optional. 678c2ecf20Sopenharmony_ci minItems: 2 688c2ecf20Sopenharmony_ci maxItems: 4 698c2ecf20Sopenharmony_ci items: 708c2ecf20Sopenharmony_ci - description: dp_apb_clk is the APB clock 718c2ecf20Sopenharmony_ci - description: dp_aud_clk is the Audio clock 728c2ecf20Sopenharmony_ci - description: 738c2ecf20Sopenharmony_ci dp_vtc_pixel_clk_in is the non-live video clock (from Processing 748c2ecf20Sopenharmony_ci System) 758c2ecf20Sopenharmony_ci - description: 768c2ecf20Sopenharmony_ci dp_live_video_in_clk is the live video clock (from Programmable 778c2ecf20Sopenharmony_ci Logic) 788c2ecf20Sopenharmony_ci clock-names: 798c2ecf20Sopenharmony_ci oneOf: 808c2ecf20Sopenharmony_ci - minItems: 2 818c2ecf20Sopenharmony_ci maxItems: 3 828c2ecf20Sopenharmony_ci items: 838c2ecf20Sopenharmony_ci - const: dp_apb_clk 848c2ecf20Sopenharmony_ci - enum: [ dp_vtc_pixel_clk_in, dp_live_video_in_clk ] 858c2ecf20Sopenharmony_ci - enum: [ dp_vtc_pixel_clk_in, dp_live_video_in_clk ] 868c2ecf20Sopenharmony_ci - minItems: 3 878c2ecf20Sopenharmony_ci maxItems: 4 888c2ecf20Sopenharmony_ci items: 898c2ecf20Sopenharmony_ci - const: dp_apb_clk 908c2ecf20Sopenharmony_ci - const: dp_aud_clk 918c2ecf20Sopenharmony_ci - enum: [ dp_vtc_pixel_clk_in, dp_live_video_in_clk ] 928c2ecf20Sopenharmony_ci - enum: [ dp_vtc_pixel_clk_in, dp_live_video_in_clk ] 938c2ecf20Sopenharmony_ci 948c2ecf20Sopenharmony_ci power-domains: 958c2ecf20Sopenharmony_ci maxItems: 1 968c2ecf20Sopenharmony_ci 978c2ecf20Sopenharmony_ci resets: 988c2ecf20Sopenharmony_ci maxItems: 1 998c2ecf20Sopenharmony_ci 1008c2ecf20Sopenharmony_ci dmas: 1018c2ecf20Sopenharmony_ci maxItems: 4 1028c2ecf20Sopenharmony_ci items: 1038c2ecf20Sopenharmony_ci - description: Video layer, plane 0 (RGB or luma) 1048c2ecf20Sopenharmony_ci - description: Video layer, plane 1 (U/V or U) 1058c2ecf20Sopenharmony_ci - description: Video layer, plane 2 (V) 1068c2ecf20Sopenharmony_ci - description: Graphics layer 1078c2ecf20Sopenharmony_ci dma-names: 1088c2ecf20Sopenharmony_ci items: 1098c2ecf20Sopenharmony_ci - const: vid0 1108c2ecf20Sopenharmony_ci - const: vid1 1118c2ecf20Sopenharmony_ci - const: vid2 1128c2ecf20Sopenharmony_ci - const: gfx0 1138c2ecf20Sopenharmony_ci 1148c2ecf20Sopenharmony_ci phys: 1158c2ecf20Sopenharmony_ci description: PHYs for the DP data lanes 1168c2ecf20Sopenharmony_ci minItems: 1 1178c2ecf20Sopenharmony_ci maxItems: 2 1188c2ecf20Sopenharmony_ci phy-names: 1198c2ecf20Sopenharmony_ci minItems: 1 1208c2ecf20Sopenharmony_ci maxItems: 2 1218c2ecf20Sopenharmony_ci items: 1228c2ecf20Sopenharmony_ci - const: dp-phy0 1238c2ecf20Sopenharmony_ci - const: dp-phy1 1248c2ecf20Sopenharmony_ci 1258c2ecf20Sopenharmony_cirequired: 1268c2ecf20Sopenharmony_ci - compatible 1278c2ecf20Sopenharmony_ci - reg 1288c2ecf20Sopenharmony_ci - reg-names 1298c2ecf20Sopenharmony_ci - interrupts 1308c2ecf20Sopenharmony_ci - clocks 1318c2ecf20Sopenharmony_ci - clock-names 1328c2ecf20Sopenharmony_ci - power-domains 1338c2ecf20Sopenharmony_ci - resets 1348c2ecf20Sopenharmony_ci - dmas 1358c2ecf20Sopenharmony_ci - dma-names 1368c2ecf20Sopenharmony_ci - phys 1378c2ecf20Sopenharmony_ci - phy-names 1388c2ecf20Sopenharmony_ci 1398c2ecf20Sopenharmony_ciadditionalProperties: false 1408c2ecf20Sopenharmony_ci 1418c2ecf20Sopenharmony_ciexamples: 1428c2ecf20Sopenharmony_ci - | 1438c2ecf20Sopenharmony_ci #include <dt-bindings/phy/phy.h> 1448c2ecf20Sopenharmony_ci #include <dt-bindings/reset/xlnx-zynqmp-resets.h> 1458c2ecf20Sopenharmony_ci 1468c2ecf20Sopenharmony_ci display@fd4a0000 { 1478c2ecf20Sopenharmony_ci compatible = "xlnx,zynqmp-dpsub-1.7"; 1488c2ecf20Sopenharmony_ci reg = <0xfd4a0000 0x1000>, 1498c2ecf20Sopenharmony_ci <0xfd4aa000 0x1000>, 1508c2ecf20Sopenharmony_ci <0xfd4ab000 0x1000>, 1518c2ecf20Sopenharmony_ci <0xfd4ac000 0x1000>; 1528c2ecf20Sopenharmony_ci reg-names = "dp", "blend", "av_buf", "aud"; 1538c2ecf20Sopenharmony_ci interrupts = <0 119 4>; 1548c2ecf20Sopenharmony_ci interrupt-parent = <&gic>; 1558c2ecf20Sopenharmony_ci 1568c2ecf20Sopenharmony_ci clock-names = "dp_apb_clk", "dp_aud_clk", "dp_live_video_in_clk"; 1578c2ecf20Sopenharmony_ci clocks = <&dp_aclk>, <&clkc 17>, <&si570_1>; 1588c2ecf20Sopenharmony_ci 1598c2ecf20Sopenharmony_ci power-domains = <&pd_dp>; 1608c2ecf20Sopenharmony_ci resets = <&reset ZYNQMP_RESET_DP>; 1618c2ecf20Sopenharmony_ci 1628c2ecf20Sopenharmony_ci dma-names = "vid0", "vid1", "vid2", "gfx0"; 1638c2ecf20Sopenharmony_ci dmas = <&xlnx_dpdma 0>, 1648c2ecf20Sopenharmony_ci <&xlnx_dpdma 1>, 1658c2ecf20Sopenharmony_ci <&xlnx_dpdma 2>, 1668c2ecf20Sopenharmony_ci <&xlnx_dpdma 3>; 1678c2ecf20Sopenharmony_ci 1688c2ecf20Sopenharmony_ci phys = <&psgtr 1 PHY_TYPE_DP 0 3 27000000>, 1698c2ecf20Sopenharmony_ci <&psgtr 0 PHY_TYPE_DP 1 3 27000000>; 1708c2ecf20Sopenharmony_ci 1718c2ecf20Sopenharmony_ci phy-names = "dp-phy0", "dp-phy1"; 1728c2ecf20Sopenharmony_ci }; 1738c2ecf20Sopenharmony_ci 1748c2ecf20Sopenharmony_ci... 175