mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 14:53:58 -04:00
On a vast majority of Qualcomm chipsets DisplayPort controller can support several MST streams (up to 4x). To support MST these chipsets use up to 4 stream pixel clocks for the DisplayPort controller and several extra register regions. Expand corresponding region and clock bindings for these platforms and fix example schema files to follow updated bindings. Note: On chipsets that support MST, the number of streams supported can vary between controllers. For example, SA8775P supports 4 MST streams on mdss_dp0 but only 2 streams on mdss_dp1. Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com> Signed-off-by: Jessica Zhang <jessica.zhang@oss.qualcomm.com> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Patchwork: https://patchwork.freedesktop.org/patch/672585/ Link: https://lore.kernel.org/r/20250903-dp_mst_bindings-v8-7-7526f0311eaa@oss.qualcomm.com
358 lines
8.4 KiB
YAML
358 lines
8.4 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/display/msm/dp-controller.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: MSM Display Port Controller
|
|
|
|
maintainers:
|
|
- Kuogee Hsieh <quic_khsieh@quicinc.com>
|
|
- Abhinav Kumar <quic_abhinavk@quicinc.com>
|
|
|
|
description: |
|
|
Device tree bindings for DisplayPort host controller for MSM targets
|
|
that are compatible with VESA DisplayPort interface specification.
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- enum:
|
|
- qcom,sa8775p-dp
|
|
- qcom,sc7180-dp
|
|
- qcom,sc7280-dp
|
|
- qcom,sc7280-edp
|
|
- qcom,sc8180x-dp
|
|
- qcom,sc8180x-edp
|
|
- qcom,sc8280xp-dp
|
|
- qcom,sc8280xp-edp
|
|
- qcom,sdm845-dp
|
|
- qcom,sm8350-dp
|
|
- qcom,sm8650-dp
|
|
- qcom,x1e80100-dp
|
|
|
|
- items:
|
|
- enum:
|
|
- qcom,sm6350-dp
|
|
- const: qcom,sc7180-dp
|
|
|
|
# deprecated entry for compatibility with old DT
|
|
- items:
|
|
- enum:
|
|
- qcom,sm6350-dp
|
|
- const: qcom,sm8350-dp
|
|
deprecated: true
|
|
|
|
- items:
|
|
- enum:
|
|
- qcom,sar2130p-dp
|
|
- qcom,sm7150-dp
|
|
- qcom,sm8150-dp
|
|
- qcom,sm8250-dp
|
|
- qcom,sm8450-dp
|
|
- qcom,sm8550-dp
|
|
- const: qcom,sm8350-dp
|
|
|
|
- items:
|
|
- enum:
|
|
- qcom,sm8750-dp
|
|
- const: qcom,sm8650-dp
|
|
|
|
reg:
|
|
minItems: 4
|
|
items:
|
|
- description: ahb register block
|
|
- description: aux register block
|
|
- description: link register block
|
|
- description: p0 register block
|
|
- description: p1 register block
|
|
- description: p2 register block
|
|
- description: p3 register block
|
|
- description: mst2link register block
|
|
- description: mst3link register block
|
|
|
|
interrupts:
|
|
maxItems: 1
|
|
|
|
clocks:
|
|
minItems: 5
|
|
items:
|
|
- description: AHB clock to enable register access
|
|
- description: Display Port AUX clock
|
|
- description: Display Port Link clock
|
|
- description: Link interface clock between DP and PHY
|
|
- description: Display Port stream 0 Pixel clock
|
|
- description: Display Port stream 1 Pixel clock
|
|
- description: Display Port stream 2 Pixel clock
|
|
- description: Display Port stream 3 Pixel clock
|
|
|
|
clock-names:
|
|
minItems: 5
|
|
items:
|
|
- const: core_iface
|
|
- const: core_aux
|
|
- const: ctrl_link
|
|
- const: ctrl_link_iface
|
|
- const: stream_pixel
|
|
- const: stream_1_pixel
|
|
- const: stream_2_pixel
|
|
- const: stream_3_pixel
|
|
|
|
phys:
|
|
maxItems: 1
|
|
|
|
phy-names:
|
|
items:
|
|
- const: dp
|
|
|
|
operating-points-v2: true
|
|
|
|
opp-table:
|
|
type: object
|
|
|
|
power-domains:
|
|
maxItems: 1
|
|
|
|
aux-bus:
|
|
$ref: /schemas/display/dp-aux-bus.yaml#
|
|
|
|
data-lanes:
|
|
$ref: /schemas/types.yaml#/definitions/uint32-array
|
|
deprecated: true
|
|
minItems: 1
|
|
maxItems: 4
|
|
items:
|
|
maximum: 3
|
|
|
|
"#sound-dai-cells":
|
|
const: 0
|
|
|
|
vdda-0p9-supply:
|
|
deprecated: true
|
|
vdda-1p2-supply:
|
|
deprecated: true
|
|
|
|
ports:
|
|
$ref: /schemas/graph.yaml#/properties/ports
|
|
properties:
|
|
port@0:
|
|
$ref: /schemas/graph.yaml#/properties/port
|
|
description: Input endpoint of the controller
|
|
|
|
port@1:
|
|
$ref: /schemas/graph.yaml#/$defs/port-base
|
|
unevaluatedProperties: false
|
|
description: Output endpoint of the controller
|
|
properties:
|
|
endpoint:
|
|
$ref: /schemas/media/video-interfaces.yaml#
|
|
unevaluatedProperties: false
|
|
properties:
|
|
data-lanes:
|
|
minItems: 1
|
|
maxItems: 4
|
|
items:
|
|
enum: [ 0, 1, 2, 3 ]
|
|
|
|
link-frequencies:
|
|
minItems: 1
|
|
maxItems: 4
|
|
items:
|
|
enum: [ 1620000000, 2700000000, 5400000000, 8100000000 ]
|
|
|
|
required:
|
|
- port@0
|
|
- port@1
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- interrupts
|
|
- clocks
|
|
- clock-names
|
|
- phys
|
|
- phy-names
|
|
- power-domains
|
|
- ports
|
|
|
|
allOf:
|
|
# AUX BUS does not exist on DP controllers
|
|
# Audio output also is present only on DP output
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- qcom,sc7280-edp
|
|
- qcom,sc8180x-edp
|
|
- qcom,sc8280xp-edp
|
|
then:
|
|
properties:
|
|
"#sound-dai-cells": false
|
|
else:
|
|
if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
- qcom,sa8775p-dp
|
|
- qcom,x1e80100-dp
|
|
then:
|
|
oneOf:
|
|
- required:
|
|
- aux-bus
|
|
- required:
|
|
- "#sound-dai-cells"
|
|
else:
|
|
properties:
|
|
aux-bus: false
|
|
required:
|
|
- "#sound-dai-cells"
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
# these platforms support SST only
|
|
- qcom,sc7180-dp
|
|
- qcom,sc7280-dp
|
|
- qcom,sc7280-edp
|
|
- qcom,sc8180x-edp
|
|
- qcom,sc8280xp-edp
|
|
then:
|
|
properties:
|
|
reg:
|
|
minItems: 5
|
|
maxItems: 5
|
|
clocks:
|
|
minItems: 5
|
|
maxItems: 5
|
|
clocks-names:
|
|
minItems: 5
|
|
maxItems: 5
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
# these platforms support 2 streams MST on some interfaces,
|
|
# others are SST only
|
|
- qcom,sc8280xp-dp
|
|
- qcom,x1e80100-dp
|
|
then:
|
|
properties:
|
|
reg:
|
|
minItems: 5
|
|
maxItems: 5
|
|
clocks:
|
|
minItems: 5
|
|
maxItems: 6
|
|
clocks-names:
|
|
minItems: 5
|
|
maxItems: 6
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
# 2 streams MST
|
|
enum:
|
|
- qcom,sc8180x-dp
|
|
- qcom,sdm845-dp
|
|
- qcom,sm8350-dp
|
|
- qcom,sm8650-dp
|
|
then:
|
|
properties:
|
|
reg:
|
|
minItems: 5
|
|
maxItems: 5
|
|
clocks:
|
|
minItems: 6
|
|
maxItems: 6
|
|
clocks-names:
|
|
minItems: 6
|
|
maxItems: 6
|
|
|
|
- if:
|
|
properties:
|
|
compatible:
|
|
contains:
|
|
enum:
|
|
# these platforms support 4 stream MST on first DP,
|
|
# 2 streams MST on the second one.
|
|
- qcom,sa8775p-dp
|
|
then:
|
|
properties:
|
|
reg:
|
|
minItems: 9
|
|
maxItems: 9
|
|
clocks:
|
|
minItems: 6
|
|
maxItems: 8
|
|
clocks-names:
|
|
minItems: 6
|
|
maxItems: 8
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
#include <dt-bindings/clock/qcom,dispcc-sc7180.h>
|
|
#include <dt-bindings/power/qcom-rpmpd.h>
|
|
|
|
displayport-controller@ae90000 {
|
|
compatible = "qcom,sc7180-dp";
|
|
reg = <0xae90000 0x200>,
|
|
<0xae90200 0x200>,
|
|
<0xae90400 0xc00>,
|
|
<0xae91000 0x400>,
|
|
<0xae91400 0x400>;
|
|
interrupt-parent = <&mdss>;
|
|
interrupts = <12>;
|
|
clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
|
|
<&dispcc DISP_CC_MDSS_DP_AUX_CLK>,
|
|
<&dispcc DISP_CC_MDSS_DP_LINK_CLK>,
|
|
<&dispcc DISP_CC_MDSS_DP_LINK_INTF_CLK>,
|
|
<&dispcc DISP_CC_MDSS_DP_PIXEL_CLK>;
|
|
clock-names = "core_iface", "core_aux",
|
|
"ctrl_link",
|
|
"ctrl_link_iface", "stream_pixel";
|
|
|
|
assigned-clocks = <&dispcc DISP_CC_MDSS_DP_LINK_CLK_SRC>,
|
|
<&dispcc DISP_CC_MDSS_DP_PIXEL_CLK_SRC>;
|
|
|
|
assigned-clock-parents = <&dp_phy 0>, <&dp_phy 1>;
|
|
|
|
phys = <&dp_phy>;
|
|
phy-names = "dp";
|
|
|
|
#sound-dai-cells = <0>;
|
|
|
|
power-domains = <&rpmhpd SC7180_CX>;
|
|
|
|
ports {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
port@0 {
|
|
reg = <0>;
|
|
endpoint {
|
|
remote-endpoint = <&dpu_intf0_out>;
|
|
};
|
|
};
|
|
|
|
port@1 {
|
|
reg = <1>;
|
|
endpoint {
|
|
remote-endpoint = <&typec>;
|
|
data-lanes = <0 1>;
|
|
link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
...
|