1c9ccf3a3SEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause 2c9ccf3a3SEmmanuel Vadot%YAML 1.2 3c9ccf3a3SEmmanuel Vadot--- 4c9ccf3a3SEmmanuel Vadot$id: http://devicetree.org/schemas/display/msm/dpu-msm8998.yaml# 5c9ccf3a3SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6c9ccf3a3SEmmanuel Vadot 7c9ccf3a3SEmmanuel Vadottitle: Qualcomm Display DPU dt properties for MSM8998 target 8c9ccf3a3SEmmanuel Vadot 9c9ccf3a3SEmmanuel Vadotmaintainers: 10c9ccf3a3SEmmanuel Vadot - AngeloGioacchino Del Regno <angelogioacchino.delregno@somainline.org> 11c9ccf3a3SEmmanuel Vadot 12c9ccf3a3SEmmanuel Vadotdescription: | 13c9ccf3a3SEmmanuel Vadot Device tree bindings for MSM Mobile Display Subsystem(MDSS) that encapsulates 14c9ccf3a3SEmmanuel Vadot sub-blocks like DPU display controller, DSI and DP interfaces etc. Device tree 15c9ccf3a3SEmmanuel Vadot bindings of MDSS and DPU are mentioned for MSM8998 target. 16c9ccf3a3SEmmanuel Vadot 17c9ccf3a3SEmmanuel Vadotproperties: 18c9ccf3a3SEmmanuel Vadot compatible: 19c9ccf3a3SEmmanuel Vadot items: 20c9ccf3a3SEmmanuel Vadot - const: qcom,msm8998-mdss 21c9ccf3a3SEmmanuel Vadot 22c9ccf3a3SEmmanuel Vadot reg: 23c9ccf3a3SEmmanuel Vadot maxItems: 1 24c9ccf3a3SEmmanuel Vadot 25c9ccf3a3SEmmanuel Vadot reg-names: 26c9ccf3a3SEmmanuel Vadot const: mdss 27c9ccf3a3SEmmanuel Vadot 28c9ccf3a3SEmmanuel Vadot power-domains: 29c9ccf3a3SEmmanuel Vadot maxItems: 1 30c9ccf3a3SEmmanuel Vadot 31c9ccf3a3SEmmanuel Vadot clocks: 32c9ccf3a3SEmmanuel Vadot items: 33c9ccf3a3SEmmanuel Vadot - description: Display AHB clock 34c9ccf3a3SEmmanuel Vadot - description: Display AXI clock 35c9ccf3a3SEmmanuel Vadot - description: Display core clock 36c9ccf3a3SEmmanuel Vadot 37c9ccf3a3SEmmanuel Vadot clock-names: 38c9ccf3a3SEmmanuel Vadot items: 39c9ccf3a3SEmmanuel Vadot - const: iface 40c9ccf3a3SEmmanuel Vadot - const: bus 41c9ccf3a3SEmmanuel Vadot - const: core 42c9ccf3a3SEmmanuel Vadot 43c9ccf3a3SEmmanuel Vadot interrupts: 44c9ccf3a3SEmmanuel Vadot maxItems: 1 45c9ccf3a3SEmmanuel Vadot 46c9ccf3a3SEmmanuel Vadot interrupt-controller: true 47c9ccf3a3SEmmanuel Vadot 48c9ccf3a3SEmmanuel Vadot "#address-cells": true 49c9ccf3a3SEmmanuel Vadot 50c9ccf3a3SEmmanuel Vadot "#size-cells": true 51c9ccf3a3SEmmanuel Vadot 52c9ccf3a3SEmmanuel Vadot "#interrupt-cells": 53c9ccf3a3SEmmanuel Vadot const: 1 54c9ccf3a3SEmmanuel Vadot 55c9ccf3a3SEmmanuel Vadot iommus: 56c9ccf3a3SEmmanuel Vadot items: 57c9ccf3a3SEmmanuel Vadot - description: Phandle to apps_smmu node with SID mask for Hard-Fail port0 58c9ccf3a3SEmmanuel Vadot 59c9ccf3a3SEmmanuel Vadot ranges: true 60c9ccf3a3SEmmanuel Vadot 61c9ccf3a3SEmmanuel VadotpatternProperties: 62c9ccf3a3SEmmanuel Vadot "^display-controller@[0-9a-f]+$": 63c9ccf3a3SEmmanuel Vadot type: object 64c9ccf3a3SEmmanuel Vadot description: Node containing the properties of DPU. 65*7ef62cebSEmmanuel Vadot additionalProperties: false 66c9ccf3a3SEmmanuel Vadot 67c9ccf3a3SEmmanuel Vadot properties: 68c9ccf3a3SEmmanuel Vadot compatible: 69c9ccf3a3SEmmanuel Vadot items: 70c9ccf3a3SEmmanuel Vadot - const: qcom,msm8998-dpu 71c9ccf3a3SEmmanuel Vadot 72c9ccf3a3SEmmanuel Vadot reg: 73c9ccf3a3SEmmanuel Vadot items: 74c9ccf3a3SEmmanuel Vadot - description: Address offset and size for mdp register set 75c9ccf3a3SEmmanuel Vadot - description: Address offset and size for regdma register set 76c9ccf3a3SEmmanuel Vadot - description: Address offset and size for vbif register set 77c9ccf3a3SEmmanuel Vadot - description: Address offset and size for non-realtime vbif register set 78c9ccf3a3SEmmanuel Vadot 79c9ccf3a3SEmmanuel Vadot reg-names: 80c9ccf3a3SEmmanuel Vadot items: 81c9ccf3a3SEmmanuel Vadot - const: mdp 82c9ccf3a3SEmmanuel Vadot - const: regdma 83c9ccf3a3SEmmanuel Vadot - const: vbif 84c9ccf3a3SEmmanuel Vadot - const: vbif_nrt 85c9ccf3a3SEmmanuel Vadot 86c9ccf3a3SEmmanuel Vadot clocks: 87c9ccf3a3SEmmanuel Vadot items: 88c9ccf3a3SEmmanuel Vadot - description: Display ahb clock 89c9ccf3a3SEmmanuel Vadot - description: Display axi clock 90c9ccf3a3SEmmanuel Vadot - description: Display mem-noc clock 91c9ccf3a3SEmmanuel Vadot - description: Display core clock 92c9ccf3a3SEmmanuel Vadot - description: Display vsync clock 93c9ccf3a3SEmmanuel Vadot 94c9ccf3a3SEmmanuel Vadot clock-names: 95c9ccf3a3SEmmanuel Vadot items: 96c9ccf3a3SEmmanuel Vadot - const: iface 97c9ccf3a3SEmmanuel Vadot - const: bus 98c9ccf3a3SEmmanuel Vadot - const: mnoc 99c9ccf3a3SEmmanuel Vadot - const: core 100c9ccf3a3SEmmanuel Vadot - const: vsync 101c9ccf3a3SEmmanuel Vadot 102c9ccf3a3SEmmanuel Vadot interrupts: 103c9ccf3a3SEmmanuel Vadot maxItems: 1 104c9ccf3a3SEmmanuel Vadot 105c9ccf3a3SEmmanuel Vadot power-domains: 106c9ccf3a3SEmmanuel Vadot maxItems: 1 107c9ccf3a3SEmmanuel Vadot 108c9ccf3a3SEmmanuel Vadot operating-points-v2: true 109*7ef62cebSEmmanuel Vadot opp-table: 110*7ef62cebSEmmanuel Vadot type: object 111*7ef62cebSEmmanuel Vadot 112c9ccf3a3SEmmanuel Vadot ports: 113c9ccf3a3SEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/ports 114c9ccf3a3SEmmanuel Vadot description: | 115c9ccf3a3SEmmanuel Vadot Contains the list of output ports from DPU device. These ports 116c9ccf3a3SEmmanuel Vadot connect to interfaces that are external to the DPU hardware, 117c9ccf3a3SEmmanuel Vadot such as DSI, DP etc. Each output port contains an endpoint that 118c9ccf3a3SEmmanuel Vadot describes how it is connected to an external interface. 119c9ccf3a3SEmmanuel Vadot 120c9ccf3a3SEmmanuel Vadot properties: 121c9ccf3a3SEmmanuel Vadot port@0: 122c9ccf3a3SEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/port 123c9ccf3a3SEmmanuel Vadot description: DPU_INTF1 (DSI1) 124c9ccf3a3SEmmanuel Vadot 125c9ccf3a3SEmmanuel Vadot port@1: 126c9ccf3a3SEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/port 127c9ccf3a3SEmmanuel Vadot description: DPU_INTF2 (DSI2) 128c9ccf3a3SEmmanuel Vadot 129c9ccf3a3SEmmanuel Vadot required: 130c9ccf3a3SEmmanuel Vadot - port@0 131c9ccf3a3SEmmanuel Vadot - port@1 132c9ccf3a3SEmmanuel Vadot 133c9ccf3a3SEmmanuel Vadot required: 134c9ccf3a3SEmmanuel Vadot - compatible 135c9ccf3a3SEmmanuel Vadot - reg 136c9ccf3a3SEmmanuel Vadot - reg-names 137c9ccf3a3SEmmanuel Vadot - clocks 138c9ccf3a3SEmmanuel Vadot - interrupts 139c9ccf3a3SEmmanuel Vadot - power-domains 140c9ccf3a3SEmmanuel Vadot - operating-points-v2 141c9ccf3a3SEmmanuel Vadot - ports 142c9ccf3a3SEmmanuel Vadot 143c9ccf3a3SEmmanuel Vadotrequired: 144c9ccf3a3SEmmanuel Vadot - compatible 145c9ccf3a3SEmmanuel Vadot - reg 146c9ccf3a3SEmmanuel Vadot - reg-names 147c9ccf3a3SEmmanuel Vadot - power-domains 148c9ccf3a3SEmmanuel Vadot - clocks 149c9ccf3a3SEmmanuel Vadot - interrupts 150c9ccf3a3SEmmanuel Vadot - interrupt-controller 151c9ccf3a3SEmmanuel Vadot - iommus 152c9ccf3a3SEmmanuel Vadot - ranges 153c9ccf3a3SEmmanuel Vadot 154c9ccf3a3SEmmanuel VadotadditionalProperties: false 155c9ccf3a3SEmmanuel Vadot 156c9ccf3a3SEmmanuel Vadotexamples: 157c9ccf3a3SEmmanuel Vadot - | 158c9ccf3a3SEmmanuel Vadot #include <dt-bindings/clock/qcom,mmcc-msm8998.h> 159c9ccf3a3SEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 160c9ccf3a3SEmmanuel Vadot #include <dt-bindings/power/qcom-rpmpd.h> 161c9ccf3a3SEmmanuel Vadot 162c9ccf3a3SEmmanuel Vadot mdss: display-subsystem@c900000 { 163c9ccf3a3SEmmanuel Vadot compatible = "qcom,msm8998-mdss"; 164c9ccf3a3SEmmanuel Vadot reg = <0x0c900000 0x1000>; 165c9ccf3a3SEmmanuel Vadot reg-names = "mdss"; 166c9ccf3a3SEmmanuel Vadot 167c9ccf3a3SEmmanuel Vadot clocks = <&mmcc MDSS_AHB_CLK>, 168c9ccf3a3SEmmanuel Vadot <&mmcc MDSS_AXI_CLK>, 169c9ccf3a3SEmmanuel Vadot <&mmcc MDSS_MDP_CLK>; 170c9ccf3a3SEmmanuel Vadot clock-names = "iface", "bus", "core"; 171c9ccf3a3SEmmanuel Vadot 172c9ccf3a3SEmmanuel Vadot #address-cells = <1>; 173c9ccf3a3SEmmanuel Vadot #interrupt-cells = <1>; 174c9ccf3a3SEmmanuel Vadot #size-cells = <1>; 175c9ccf3a3SEmmanuel Vadot 176c9ccf3a3SEmmanuel Vadot interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>; 177c9ccf3a3SEmmanuel Vadot interrupt-controller; 178c9ccf3a3SEmmanuel Vadot iommus = <&mmss_smmu 0>; 179c9ccf3a3SEmmanuel Vadot 180c9ccf3a3SEmmanuel Vadot power-domains = <&mmcc MDSS_GDSC>; 181c9ccf3a3SEmmanuel Vadot ranges; 182c9ccf3a3SEmmanuel Vadot 183c9ccf3a3SEmmanuel Vadot display-controller@c901000 { 184c9ccf3a3SEmmanuel Vadot compatible = "qcom,msm8998-dpu"; 185c9ccf3a3SEmmanuel Vadot reg = <0x0c901000 0x8f000>, 186c9ccf3a3SEmmanuel Vadot <0x0c9a8e00 0xf0>, 187c9ccf3a3SEmmanuel Vadot <0x0c9b0000 0x2008>, 188c9ccf3a3SEmmanuel Vadot <0x0c9b8000 0x1040>; 189c9ccf3a3SEmmanuel Vadot reg-names = "mdp", "regdma", "vbif", "vbif_nrt"; 190c9ccf3a3SEmmanuel Vadot 191c9ccf3a3SEmmanuel Vadot clocks = <&mmcc MDSS_AHB_CLK>, 192c9ccf3a3SEmmanuel Vadot <&mmcc MDSS_AXI_CLK>, 193c9ccf3a3SEmmanuel Vadot <&mmcc MNOC_AHB_CLK>, 194c9ccf3a3SEmmanuel Vadot <&mmcc MDSS_MDP_CLK>, 195c9ccf3a3SEmmanuel Vadot <&mmcc MDSS_VSYNC_CLK>; 196c9ccf3a3SEmmanuel Vadot clock-names = "iface", "bus", "mnoc", "core", "vsync"; 197c9ccf3a3SEmmanuel Vadot 198c9ccf3a3SEmmanuel Vadot interrupt-parent = <&mdss>; 199c9ccf3a3SEmmanuel Vadot interrupts = <0>; 200c9ccf3a3SEmmanuel Vadot operating-points-v2 = <&mdp_opp_table>; 201c9ccf3a3SEmmanuel Vadot power-domains = <&rpmpd MSM8998_VDDMX>; 202c9ccf3a3SEmmanuel Vadot 203c9ccf3a3SEmmanuel Vadot ports { 204c9ccf3a3SEmmanuel Vadot #address-cells = <1>; 205c9ccf3a3SEmmanuel Vadot #size-cells = <0>; 206c9ccf3a3SEmmanuel Vadot 207c9ccf3a3SEmmanuel Vadot port@0 { 208c9ccf3a3SEmmanuel Vadot reg = <0>; 209c9ccf3a3SEmmanuel Vadot dpu_intf1_out: endpoint { 210c9ccf3a3SEmmanuel Vadot remote-endpoint = <&dsi0_in>; 211c9ccf3a3SEmmanuel Vadot }; 212c9ccf3a3SEmmanuel Vadot }; 213c9ccf3a3SEmmanuel Vadot 214c9ccf3a3SEmmanuel Vadot port@1 { 215c9ccf3a3SEmmanuel Vadot reg = <1>; 216c9ccf3a3SEmmanuel Vadot dpu_intf2_out: endpoint { 217c9ccf3a3SEmmanuel Vadot remote-endpoint = <&dsi1_in>; 218c9ccf3a3SEmmanuel Vadot }; 219c9ccf3a3SEmmanuel Vadot }; 220c9ccf3a3SEmmanuel Vadot }; 221c9ccf3a3SEmmanuel Vadot }; 222c9ccf3a3SEmmanuel Vadot }; 223c9ccf3a3SEmmanuel Vadot... 224