1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/display/msm/dp-controller.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: MSM Display Port Controller 8 9maintainers: 10 - Kuogee Hsieh <quic_khsieh@quicinc.com> 11 - Abhinav Kumar <quic_abhinavk@quicinc.com> 12 13description: | 14 Device tree bindings for DisplayPort host controller for MSM targets 15 that are compatible with VESA DisplayPort interface specification. 16 17properties: 18 compatible: 19 oneOf: 20 - enum: 21 - qcom,sa8775p-dp 22 - qcom,sc7180-dp 23 - qcom,sc7280-dp 24 - qcom,sc7280-edp 25 - qcom,sc8180x-dp 26 - qcom,sc8180x-edp 27 - qcom,sc8280xp-dp 28 - qcom,sc8280xp-edp 29 - qcom,sdm845-dp 30 - qcom,sm8350-dp 31 - qcom,sm8650-dp 32 - items: 33 - enum: 34 - qcom,sar2130p-dp 35 - qcom,sm6350-dp 36 - qcom,sm8150-dp 37 - qcom,sm8250-dp 38 - qcom,sm8450-dp 39 - qcom,sm8550-dp 40 - const: qcom,sm8350-dp 41 - items: 42 - enum: 43 - qcom,sm8750-dp 44 - const: qcom,sm8650-dp 45 46 reg: 47 minItems: 4 48 items: 49 - description: ahb register block 50 - description: aux register block 51 - description: link register block 52 - description: p0 register block 53 - description: p1 register block 54 55 interrupts: 56 maxItems: 1 57 58 clocks: 59 items: 60 - description: AHB clock to enable register access 61 - description: Display Port AUX clock 62 - description: Display Port Link clock 63 - description: Link interface clock between DP and PHY 64 - description: Display Port Pixel clock 65 66 clock-names: 67 items: 68 - const: core_iface 69 - const: core_aux 70 - const: ctrl_link 71 - const: ctrl_link_iface 72 - const: stream_pixel 73 74 assigned-clocks: 75 items: 76 - description: link clock source 77 - description: pixel clock source 78 79 assigned-clock-parents: 80 items: 81 - description: phy 0 parent 82 - description: phy 1 parent 83 84 phys: 85 maxItems: 1 86 87 phy-names: 88 items: 89 - const: dp 90 91 operating-points-v2: true 92 93 opp-table: 94 type: object 95 96 power-domains: 97 maxItems: 1 98 99 aux-bus: 100 $ref: /schemas/display/dp-aux-bus.yaml# 101 102 data-lanes: 103 $ref: /schemas/types.yaml#/definitions/uint32-array 104 deprecated: true 105 minItems: 1 106 maxItems: 4 107 items: 108 maximum: 3 109 110 "#sound-dai-cells": 111 const: 0 112 113 vdda-0p9-supply: 114 deprecated: true 115 vdda-1p2-supply: 116 deprecated: true 117 118 ports: 119 $ref: /schemas/graph.yaml#/properties/ports 120 properties: 121 port@0: 122 $ref: /schemas/graph.yaml#/properties/port 123 description: Input endpoint of the controller 124 125 port@1: 126 $ref: /schemas/graph.yaml#/$defs/port-base 127 unevaluatedProperties: false 128 description: Output endpoint of the controller 129 properties: 130 endpoint: 131 $ref: /schemas/media/video-interfaces.yaml# 132 unevaluatedProperties: false 133 properties: 134 data-lanes: 135 minItems: 1 136 maxItems: 4 137 items: 138 enum: [ 0, 1, 2, 3 ] 139 140 link-frequencies: 141 minItems: 1 142 maxItems: 4 143 items: 144 enum: [ 1620000000, 2700000000, 5400000000, 8100000000 ] 145 146 required: 147 - port@0 148 - port@1 149 150required: 151 - compatible 152 - reg 153 - interrupts 154 - clocks 155 - clock-names 156 - phys 157 - phy-names 158 - power-domains 159 - ports 160 161allOf: 162 # AUX BUS does not exist on DP controllers 163 # Audio output also is present only on DP output 164 # p1 regions is present on DP, but not on eDP 165 - if: 166 properties: 167 compatible: 168 contains: 169 enum: 170 - qcom,sc7280-edp 171 - qcom,sc8180x-edp 172 - qcom,sc8280xp-edp 173 then: 174 properties: 175 "#sound-dai-cells": false 176 else: 177 properties: 178 aux-bus: false 179 reg: 180 minItems: 5 181 required: 182 - "#sound-dai-cells" 183 184additionalProperties: false 185 186examples: 187 - | 188 #include <dt-bindings/interrupt-controller/arm-gic.h> 189 #include <dt-bindings/clock/qcom,dispcc-sc7180.h> 190 #include <dt-bindings/power/qcom-rpmpd.h> 191 192 displayport-controller@ae90000 { 193 compatible = "qcom,sc7180-dp"; 194 reg = <0xae90000 0x200>, 195 <0xae90200 0x200>, 196 <0xae90400 0xc00>, 197 <0xae91000 0x400>, 198 <0xae91400 0x400>; 199 interrupt-parent = <&mdss>; 200 interrupts = <12>; 201 clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>, 202 <&dispcc DISP_CC_MDSS_DP_AUX_CLK>, 203 <&dispcc DISP_CC_MDSS_DP_LINK_CLK>, 204 <&dispcc DISP_CC_MDSS_DP_LINK_INTF_CLK>, 205 <&dispcc DISP_CC_MDSS_DP_PIXEL_CLK>; 206 clock-names = "core_iface", "core_aux", 207 "ctrl_link", 208 "ctrl_link_iface", "stream_pixel"; 209 210 assigned-clocks = <&dispcc DISP_CC_MDSS_DP_LINK_CLK_SRC>, 211 <&dispcc DISP_CC_MDSS_DP_PIXEL_CLK_SRC>; 212 213 assigned-clock-parents = <&dp_phy 0>, <&dp_phy 1>; 214 215 phys = <&dp_phy>; 216 phy-names = "dp"; 217 218 #sound-dai-cells = <0>; 219 220 power-domains = <&rpmhpd SC7180_CX>; 221 222 ports { 223 #address-cells = <1>; 224 #size-cells = <0>; 225 226 port@0 { 227 reg = <0>; 228 endpoint { 229 remote-endpoint = <&dpu_intf0_out>; 230 }; 231 }; 232 233 port@1 { 234 reg = <1>; 235 endpoint { 236 remote-endpoint = <&typec>; 237 data-lanes = <0 1>; 238 link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>; 239 }; 240 }; 241 }; 242 }; 243... 244