* [PATCH 0/5] arm64: dts: qcom: kaanapali: Enable DisplayPort
@ 2026-10-05 7:24 Balaji Kalkonda
2026-10-05 7:24 ` [PATCH 1/5] dt-bindings: display/msm: dp-controller: Add Kaanapali Balaji Kalkonda
` (4 more replies)
0 siblings, 5 replies; 15+ messages in thread
From: Balaji Kalkonda @ 2026-10-05 7:24 UTC (permalink / raw)
To: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
Sean Paul, Marijn Suijten, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Kuogee Hsieh, Yongxing Mou,
Yuanjie Yang, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Mahadevan P
Cc: linux-arm-msm, dri-devel, freedreno, devicetree, linux-kernel,
Balaji Kalkonda
This series adds DisplayPort support for the Qualcomm Kaanapali SoC and
enables it on the MTP board.
Kaanapali has a single DisplayPort controller reusing the SM8750 IP
revision, routed through the combo USB/DP QMP PHY. The series:
- Documents the new "qcom,kaanapali-dp" compatible in the DP controller
and Kaanapali MDSS bindings.
- Adds the Kaanapali descriptor to the DP driver.
- Describes the DisplayPort controller node in kaanapali.dtsi, including
its OPP table, clocks, and power domain, and wires it to the DPU and
the USB/DP QMP PHY.
- Enables USB-C audio support on the MTP board (WCD939x USBSS Type-C mux)
as a prerequisite for exercising DP alt mode over the same Type-C port.
- Enables the DisplayPort controller on MTP and advertises the supported
link frequencies for DisplayPort over USB-C.
Signed-off-by: Balaji Kalkonda <balaji.kalkonda@oss.qualcomm.com>
---
Balaji Kalkonda (5):
dt-bindings: display/msm: dp-controller: Add Kaanapali
drm/msm/dp: Add DisplayPort controller for Kaanapali
arm64: dts: qcom: kaanapali: Add DisplayPort controller
arm64: dts: qcom: kaanapali-mtp: Enable USB headset and Type-C accessory mode
arm64: dts: qcom: kaanapali-mtp: Enable DisplayPort over USB
.../bindings/display/msm/dp-controller.yaml | 1 +
.../bindings/display/msm/qcom,kaanapali-mdss.yaml | 6 ++
arch/arm64/boot/dts/qcom/kaanapali-mtp.dts | 59 +++++++++++++++
arch/arm64/boot/dts/qcom/kaanapali.dtsi | 87 +++++++++++++++++++++-
drivers/gpu/drm/msm/dp/dp_display.c | 6 ++
5 files changed, 157 insertions(+), 2 deletions(-)
---
base-commit: f0406245cb9855e6318335a8a223551354291a46
change-id: 20261005-kaanapali_dp-f6d6839731fb
Best regards,
--
Balaji Kalkonda <balaji.kalkonda@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 1/5] dt-bindings: display/msm: dp-controller: Add Kaanapali
2026-10-05 7:24 [PATCH 0/5] arm64: dts: qcom: kaanapali: Enable DisplayPort Balaji Kalkonda
@ 2026-10-05 7:24 ` Balaji Kalkonda
2026-10-05 7:30 ` sashiko-bot
2026-10-09 7:31 ` Krzysztof Kozlowski
2026-10-05 7:24 ` [PATCH 2/5] drm/msm/dp: Add DisplayPort controller for Kaanapali Balaji Kalkonda
` (3 subsequent siblings)
4 siblings, 2 replies; 15+ messages in thread
From: Balaji Kalkonda @ 2026-10-05 7:24 UTC (permalink / raw)
To: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
Sean Paul, Marijn Suijten, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Kuogee Hsieh, Yongxing Mou,
Yuanjie Yang, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Mahadevan P
Cc: linux-arm-msm, dri-devel, freedreno, devicetree, linux-kernel,
Balaji Kalkonda
Add DisplayPort controller for Qualcomm Kaanapali SoC which so far looks
fully compatible with earlier SM8650 variant.
Signed-off-by: Balaji Kalkonda <balaji.kalkonda@oss.qualcomm.com>
---
Documentation/devicetree/bindings/display/msm/dp-controller.yaml | 1 +
.../devicetree/bindings/display/msm/qcom,kaanapali-mdss.yaml | 6 ++++++
2 files changed, 7 insertions(+)
diff --git a/Documentation/devicetree/bindings/display/msm/dp-controller.yaml b/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
index 094a6383bb77..8bb0f6e15942 100644
--- a/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
+++ b/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
@@ -19,6 +19,7 @@ properties:
oneOf:
- enum:
- qcom,glymur-dp
+ - qcom,kaanapali-dp
- qcom,sa8775p-dp
- qcom,sc7180-dp
- qcom,sc7280-dp
diff --git a/Documentation/devicetree/bindings/display/msm/qcom,kaanapali-mdss.yaml b/Documentation/devicetree/bindings/display/msm/qcom,kaanapali-mdss.yaml
index 9f935defd6b1..83e3596ba0ed 100644
--- a/Documentation/devicetree/bindings/display/msm/qcom,kaanapali-mdss.yaml
+++ b/Documentation/devicetree/bindings/display/msm/qcom,kaanapali-mdss.yaml
@@ -48,6 +48,12 @@ patternProperties:
compatible:
const: qcom,kaanapali-dpu
+ "^displayport-controller@[0-9a-f]+$":
+ type: object
+ properties:
+ compatible:
+ const: qcom,kaanapali-dp
+
"^dsi@[0-9a-f]+$":
type: object
additionalProperties: true
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 2/5] drm/msm/dp: Add DisplayPort controller for Kaanapali
2026-10-05 7:24 [PATCH 0/5] arm64: dts: qcom: kaanapali: Enable DisplayPort Balaji Kalkonda
2026-10-05 7:24 ` [PATCH 1/5] dt-bindings: display/msm: dp-controller: Add Kaanapali Balaji Kalkonda
@ 2026-10-05 7:24 ` Balaji Kalkonda
2026-10-09 8:29 ` Dmitry Baryshkov
2026-10-05 7:24 ` [PATCH 3/5] arm64: dts: qcom: kaanapali: Add DisplayPort controller Balaji Kalkonda
` (2 subsequent siblings)
4 siblings, 1 reply; 15+ messages in thread
From: Balaji Kalkonda @ 2026-10-05 7:24 UTC (permalink / raw)
To: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
Sean Paul, Marijn Suijten, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Kuogee Hsieh, Yongxing Mou,
Yuanjie Yang, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Mahadevan P
Cc: linux-arm-msm, dri-devel, freedreno, devicetree, linux-kernel,
Balaji Kalkonda
The Qualcomm Kaanapali platform comes with a DisplayPort controller
with a different base offset than the previous SM8650 SoC, add support
for this in the DisplayPort driver.
Signed-off-by: Balaji Kalkonda <balaji.kalkonda@oss.qualcomm.com>
---
drivers/gpu/drm/msm/dp/dp_display.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/gpu/drm/msm/dp/dp_display.c b/drivers/gpu/drm/msm/dp/dp_display.c
index 9299ce616fdb..348eb6967abf 100644
--- a/drivers/gpu/drm/msm/dp/dp_display.c
+++ b/drivers/gpu/drm/msm/dp/dp_display.c
@@ -158,6 +158,11 @@ static const struct msm_dp_desc msm_dp_desc_sm8650[] = {
{}
};
+static const struct msm_dp_desc msm_dp_desc_kaanapali[] = {
+ { .io_start = 0x09ad2000, .id = MSM_DP_CONTROLLER_0, .wide_bus_supported = true },
+ {}
+};
+
static const struct msm_dp_desc msm_dp_desc_x1e80100[] = {
{ .io_start = 0x0ae90000, .id = MSM_DP_CONTROLLER_0, .wide_bus_supported = true },
{ .io_start = 0x0ae98000, .id = MSM_DP_CONTROLLER_1, .wide_bus_supported = true },
@@ -168,6 +173,7 @@ static const struct msm_dp_desc msm_dp_desc_x1e80100[] = {
static const struct of_device_id msm_dp_dt_match[] = {
{ .compatible = "qcom,glymur-dp", .data = &msm_dp_desc_glymur },
+ { .compatible = "qcom,kaanapali-dp", .data = &msm_dp_desc_kaanapali },
{ .compatible = "qcom,sa8775p-dp", .data = &msm_dp_desc_sa8775p },
{ .compatible = "qcom,sc7180-dp", .data = &msm_dp_desc_sc7180 },
{ .compatible = "qcom,sc7280-dp", .data = &msm_dp_desc_sc7280 },
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 3/5] arm64: dts: qcom: kaanapali: Add DisplayPort controller
2026-10-05 7:24 [PATCH 0/5] arm64: dts: qcom: kaanapali: Enable DisplayPort Balaji Kalkonda
2026-10-05 7:24 ` [PATCH 1/5] dt-bindings: display/msm: dp-controller: Add Kaanapali Balaji Kalkonda
2026-10-05 7:24 ` [PATCH 2/5] drm/msm/dp: Add DisplayPort controller for Kaanapali Balaji Kalkonda
@ 2026-10-05 7:24 ` Balaji Kalkonda
2026-10-05 7:35 ` sashiko-bot
2026-10-09 8:32 ` Dmitry Baryshkov
2026-10-05 7:24 ` [PATCH 4/5] arm64: dts: qcom: kaanapali-mtp: Enable USB headset and Type-C accessory mode Balaji Kalkonda
2026-10-05 7:24 ` [PATCH 5/5] arm64: dts: qcom: kaanapali-mtp: Enable DisplayPort over USB Balaji Kalkonda
4 siblings, 2 replies; 15+ messages in thread
From: Balaji Kalkonda @ 2026-10-05 7:24 UTC (permalink / raw)
To: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
Sean Paul, Marijn Suijten, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Kuogee Hsieh, Yongxing Mou,
Yuanjie Yang, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Mahadevan P
Cc: linux-arm-msm, dri-devel, freedreno, devicetree, linux-kernel,
Balaji Kalkonda
Add device node for the DisplayPort controller, its OPP table, clocks
and power domain, and connect it to the DPU and USB/DP QMP PHY.
Signed-off-by: Balaji Kalkonda <balaji.kalkonda@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/kaanapali.dtsi | 87 ++++++++++++++++++++++++++++++++-
1 file changed, 85 insertions(+), 2 deletions(-)
diff --git a/arch/arm64/boot/dts/qcom/kaanapali.dtsi b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
index e48a179d0722..155c590c8eb6 100644
--- a/arch/arm64/boot/dts/qcom/kaanapali.dtsi
+++ b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
@@ -3565,6 +3565,7 @@ usb_dp_qmpphy: phy@88e8000 {
#clock-cells = <1>;
#phy-cells = <1>;
+ mode-switch;
orientation-switch;
status = "disabled";
@@ -3592,6 +3593,7 @@ port@2 {
reg = <2>;
usb_dp_qmpphy_dp_in: endpoint {
+ remote-endpoint = <&mdss_dp0_out>;
};
};
};
@@ -3699,6 +3701,7 @@ port@2 {
reg = <2>;
dpu_intf0_out: endpoint {
+ remote-endpoint = <&mdss_dp0_in>;
};
};
};
@@ -3851,6 +3854,86 @@ mdss_dsi0_phy: phy@9ac1000 {
status = "disabled";
};
+
+ mdss_dp0: displayport-controller@9ad2000 {
+ compatible = "qcom,kaanapali-dp";
+ reg = <0x0 0x09ad2000 0x0 0x10c>,
+ <0x0 0x09ad2200 0x0 0xc8>,
+ <0x0 0x09ad3000 0x0 0x78>,
+ <0x0 0x09ad4000 0x0 0xa0>;
+
+ interrupts-extended = <&mdss 12>;
+
+ clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
+ <&dispcc DISP_CC_MDSS_DPTX0_AUX_CLK>,
+ <&dispcc DISP_CC_MDSS_DPTX0_LINK_CLK>,
+ <&dispcc DISP_CC_MDSS_DPTX0_LINK_INTF_CLK>,
+ <&dispcc DISP_CC_MDSS_DPTX0_PIXEL0_CLK>;
+
+ clock-names = "core_iface",
+ "core_aux",
+ "ctrl_link",
+ "ctrl_link_iface",
+ "stream_pixel";
+
+ assigned-clocks = <&dispcc DISP_CC_MDSS_DPTX0_LINK_CLK_SRC>,
+ <&dispcc DISP_CC_MDSS_DPTX0_PIXEL0_CLK_SRC>;
+ assigned-clock-parents =
+ <&usb_dp_qmpphy QMP_USB43DP_DP_LINK_CLK>,
+ <&usb_dp_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>;
+
+ operating-points-v2 = <&dp_opp_table>;
+
+ power-domains = <&rpmhpd RPMHPD_MX>;
+
+ phys = <&usb_dp_qmpphy QMP_USB43DP_DP_PHY>;
+ phy-names = "dp";
+
+ #sound-dai-cells = <0>;
+
+ status = "disabled";
+
+ dp_opp_table: opp-table {
+ compatible = "operating-points-v2";
+
+ opp-270000000 {
+ opp-hz = /bits/ 64 <270000000>;
+ required-opps = <&rpmhpd_opp_low_svs>;
+ };
+
+ opp-540000000 {
+ opp-hz = /bits/ 64 <540000000>;
+ required-opps = <&rpmhpd_opp_svs_l1>;
+ };
+
+ opp-810000000 {
+ opp-hz = /bits/ 64 <810000000>;
+ required-opps = <&rpmhpd_opp_nom>;
+ };
+ };
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ mdss_dp0_in: endpoint {
+ remote-endpoint = <&dpu_intf0_out>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ mdss_dp0_out: endpoint {
+ data-lanes = <0 1 2 3>;
+ remote-endpoint = <&usb_dp_qmpphy_dp_in>;
+ };
+ };
+ };
+ };
};
dispcc: clock-controller@9ba2000 {
@@ -3860,8 +3943,8 @@ dispcc: clock-controller@9ba2000 {
<&bi_tcxo_ao_div2>,
<&gcc GCC_DISP_AHB_CLK>,
<&sleep_clk>,
- <0>,
- <0>,
+ <&usb_dp_qmpphy QMP_USB43DP_DP_LINK_CLK>,
+ <&usb_dp_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>,
<0>,
<0>,
<0>,
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 4/5] arm64: dts: qcom: kaanapali-mtp: Enable USB headset and Type-C accessory mode
2026-10-05 7:24 [PATCH 0/5] arm64: dts: qcom: kaanapali: Enable DisplayPort Balaji Kalkonda
` (2 preceding siblings ...)
2026-10-05 7:24 ` [PATCH 3/5] arm64: dts: qcom: kaanapali: Add DisplayPort controller Balaji Kalkonda
@ 2026-10-05 7:24 ` Balaji Kalkonda
2026-10-09 8:34 ` Dmitry Baryshkov
2026-10-05 7:24 ` [PATCH 5/5] arm64: dts: qcom: kaanapali-mtp: Enable DisplayPort over USB Balaji Kalkonda
4 siblings, 1 reply; 15+ messages in thread
From: Balaji Kalkonda @ 2026-10-05 7:24 UTC (permalink / raw)
To: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
Sean Paul, Marijn Suijten, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Kuogee Hsieh, Yongxing Mou,
Yuanjie Yang, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Mahadevan P
Cc: linux-arm-msm, dri-devel, freedreno, devicetree, linux-kernel,
Balaji Kalkonda
MTP does not have audio jack connected and relies on USB mux (WCD9395).
Add necessary nodes for proper audio headset support along with USB
Type-C accessory mode and orientation.
Signed-off-by: Balaji Kalkonda <balaji.kalkonda@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/kaanapali-mtp.dts | 51 ++++++++++++++++++++++++++++++
1 file changed, 51 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/kaanapali-mtp.dts b/arch/arm64/boot/dts/qcom/kaanapali-mtp.dts
index 9eb02fd09dab..16f4dd041649 100644
--- a/arch/arm64/boot/dts/qcom/kaanapali-mtp.dts
+++ b/arch/arm64/boot/dts/qcom/kaanapali-mtp.dts
@@ -200,6 +200,7 @@ port@2 {
reg = <2>;
pmic_glink_sbu: endpoint {
+ remote-endpoint = <&wcd_usbss_sbu_mux>;
};
};
};
@@ -232,6 +233,15 @@ wcd939x: audio-codec {
vdd-px-supply = <&vreg_l1g_1p2>;
#sound-dai-cells = <1>;
+
+ mode-switch;
+ orientation-switch;
+
+ port {
+ wcd_codec_headset_in: endpoint {
+ remote-endpoint = <&wcd_usbss_headset_out>;
+ };
+ };
};
wcn7850-pmu {
@@ -916,6 +926,42 @@ &gpu_zap_shader {
firmware-name = "qcom/kaanapali/gen80200_zap.mbn";
};
+&i2c3 {
+ status = "okay";
+
+ wcd_usbss: typec-mux@e {
+ compatible = "qcom,wcd9395-usbss", "qcom,wcd9390-usbss";
+ reg = <0xe>;
+
+ vdd-supply = <&vreg_l15b_1p8>;
+ reset-gpios = <&tlmm 162 GPIO_ACTIVE_HIGH>;
+
+ mode-switch;
+ orientation-switch;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ wcd_usbss_sbu_mux: endpoint {
+ remote-endpoint = <&pmic_glink_sbu>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ wcd_usbss_headset_out: endpoint {
+ remote-endpoint = <&wcd_codec_headset_in>;
+ };
+ };
+ };
+ };
+};
+
&lpass_vamacro {
pinctrl-0 = <&dmic01_default>, <&dmic23_default>;
pinctrl-names = "default";
@@ -1113,6 +1159,11 @@ &pon_resin {
status = "okay";
};
+&qup_i2c3_data_clk {
+ /* Use internal I2C pull-up */
+ bias-pull-up = <2200>;
+};
+
&remoteproc_adsp {
firmware-name = "qcom/kaanapali/adsp.mbn",
"qcom/kaanapali/adsp_dtb.mbn";
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 5/5] arm64: dts: qcom: kaanapali-mtp: Enable DisplayPort over USB
2026-10-05 7:24 [PATCH 0/5] arm64: dts: qcom: kaanapali: Enable DisplayPort Balaji Kalkonda
` (3 preceding siblings ...)
2026-10-05 7:24 ` [PATCH 4/5] arm64: dts: qcom: kaanapali-mtp: Enable USB headset and Type-C accessory mode Balaji Kalkonda
@ 2026-10-05 7:24 ` Balaji Kalkonda
2026-10-09 8:34 ` Dmitry Baryshkov
4 siblings, 1 reply; 15+ messages in thread
From: Balaji Kalkonda @ 2026-10-05 7:24 UTC (permalink / raw)
To: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
Sean Paul, Marijn Suijten, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Kuogee Hsieh, Yongxing Mou,
Yuanjie Yang, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Mahadevan P
Cc: linux-arm-msm, dri-devel, freedreno, devicetree, linux-kernel,
Balaji Kalkonda
Hook up DisplayPort parts over Type-C USB on MTP.
Signed-off-by: Balaji Kalkonda <balaji.kalkonda@oss.qualcomm.com>
---
arch/arm64/boot/dts/qcom/kaanapali-mtp.dts | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/kaanapali-mtp.dts b/arch/arm64/boot/dts/qcom/kaanapali-mtp.dts
index 16f4dd041649..ff5d5c2fafba 100644
--- a/arch/arm64/boot/dts/qcom/kaanapali-mtp.dts
+++ b/arch/arm64/boot/dts/qcom/kaanapali-mtp.dts
@@ -1015,6 +1015,14 @@ &mdss_dsi0_phy {
status = "okay";
};
+&mdss_dp0 {
+ status = "okay";
+};
+
+&mdss_dp0_out {
+ link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
&pcie0 {
pinctrl-0 = <&pcie0_default_state>;
pinctrl-names = "default";
--
2.34.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH 1/5] dt-bindings: display/msm: dp-controller: Add Kaanapali
2026-10-05 7:24 ` [PATCH 1/5] dt-bindings: display/msm: dp-controller: Add Kaanapali Balaji Kalkonda
@ 2026-10-05 7:30 ` sashiko-bot
2026-10-09 7:31 ` Krzysztof Kozlowski
1 sibling, 0 replies; 15+ messages in thread
From: sashiko-bot @ 2026-10-05 7:30 UTC (permalink / raw)
To: Balaji Kalkonda; +Cc: conor+dt, robh, dri-devel, devicetree
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Low] dt-bindings: display/msm: dp-controller: missing conditional constraints for Kaanapali
--
commit 120c2a5db230d526e6a48bd35eae767dbf9663c7
Author: Balaji Kalkonda <balaji.kalkonda@oss.qualcomm.com>
dt-bindings: display/msm: dp-controller: Add Kaanapali
Add DisplayPort controller for Qualcomm Kaanapali SoC which so far looks
fully compatible with earlier SM8650 variant.
> diff --git a/Documentation/devicetree/bindings/display/msm/dp-controller.yaml b/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
> index 094a6383bb779..8bb0f6e15942f 100644
> --- a/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
> +++ b/Documentation/devicetree/bindings/display/msm/dp-controller.yaml
> @@ -19,6 +19,7 @@ properties:
> oneOf:
> - enum:
> - qcom,glymur-dp
> + - qcom,kaanapali-dp
> - qcom,sa8775p-dp
> - qcom,sc7180-dp
> - qcom,sc7280-dp
[Severity: Low]
Does this new compatible string cause a regression by bypassing the stricter
hardware constraints defined for the SM8650 variant?
The commit message states the Kaanapali SoC looks fully compatible with the
earlier SM8650 variant. However, qcom,kaanapali-dp is added as a standalone
enum item without being added to the existing conditional constraints.
Should qcom,kaanapali-dp also be included in the allOf conditional block for
qcom,sm8650-dp to enforce the reg property constraints:
- if:
properties:
compatible:
contains:
enum:
- qcom,sm8650-dp
then:
properties:
reg:
minItems: 5
Without being added to this enum array, running make dt_binding_check on a
device tree containing qcom,kaanapali-dp with fewer than the required 5 reg
items or 6 clocks could silently pass schema validation.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261005-kaanapali_dp-v1-0-6faeac3a6d59@oss.qualcomm.com?part=1
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 3/5] arm64: dts: qcom: kaanapali: Add DisplayPort controller
2026-10-05 7:24 ` [PATCH 3/5] arm64: dts: qcom: kaanapali: Add DisplayPort controller Balaji Kalkonda
@ 2026-10-05 7:35 ` sashiko-bot
2026-10-09 8:32 ` Dmitry Baryshkov
1 sibling, 0 replies; 15+ messages in thread
From: sashiko-bot @ 2026-10-05 7:35 UTC (permalink / raw)
To: Balaji Kalkonda; +Cc: conor+dt, devicetree, robh, dri-devel
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] dts: qcom: mdss_dp0 incorrectly uses MX power domain instead of MMCX
--
commit 553dc7a911ae71f6e7c738ff40500145e878f936
Author: Balaji Kalkonda <balaji.kalkonda@oss.qualcomm.com>
arm64: dts: qcom: kaanapali: Add DisplayPort controller
This commit adds the device node for the DisplayPort controller on the
kaanapali platform. It configures the OPP table, clocks, power domain,
and connects it to the DPU and USB/DP QMP PHY.
> diff --git a/arch/arm64/boot/dts/qcom/kaanapali.dtsi b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
> index e48a179d07220..155c590c8eb60 100644
> --- a/arch/arm64/boot/dts/qcom/kaanapali.dtsi
> +++ b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
[ ... ]
> @@ -3851,6 +3854,86 @@ mdss_dsi0_phy: phy@9ac1000 {
>
> status = "disabled";
> };
> +
> + mdss_dp0: displayport-controller@9ad2000 {
> + compatible = "qcom,kaanapali-dp";
[ ... ]
> + operating-points-v2 = <&dp_opp_table>;
> +
> + power-domains = <&rpmhpd RPMHPD_MX>;
[Severity: High]
Should this power domain be RPMHPD_MMCX instead of RPMHPD_MX?
When the mdss_dp0 DisplayPort controller is active and changes link rates,
its performance state votes will scale the MX (memory) voltage rail instead
of the MMCX (multimedia) rail.
Since the display hardware physically resides on the MMCX rail, could this
misrouting cause the MMCX rail to be starved of the required voltage? This
appears like it could lead to under-voltage, silent hardware hangs, and
display corruption, while unnecessarily elevating the memory domain voltage.
Sibling display subsystem components like mdss_mdp and mdss_dsi0 typically
use RPMHPD_MMCX.
> +
> + phys = <&usb_dp_qmpphy QMP_USB43DP_DP_PHY>;
> + phy-names = "dp";
> +
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261005-kaanapali_dp-v1-0-6faeac3a6d59@oss.qualcomm.com?part=3
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/5] dt-bindings: display/msm: dp-controller: Add Kaanapali
2026-10-05 7:24 ` [PATCH 1/5] dt-bindings: display/msm: dp-controller: Add Kaanapali Balaji Kalkonda
2026-10-05 7:30 ` sashiko-bot
@ 2026-10-09 7:31 ` Krzysztof Kozlowski
2026-10-09 10:28 ` Balaji Kalkonda
1 sibling, 1 reply; 15+ messages in thread
From: Krzysztof Kozlowski @ 2026-10-09 7:31 UTC (permalink / raw)
To: Balaji Kalkonda
Cc: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
Sean Paul, Marijn Suijten, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Kuogee Hsieh, Yongxing Mou,
Yuanjie Yang, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Mahadevan P, linux-arm-msm, dri-devel, freedreno, devicetree,
linux-kernel
On Mon, Oct 05, 2026 at 12:54:26PM +0530, Balaji Kalkonda wrote:
> Add DisplayPort controller for Qualcomm Kaanapali SoC which so far looks
> fully compatible with earlier SM8650 variant.
>
> Signed-off-by: Balaji Kalkonda <balaji.kalkonda@oss.qualcomm.com>
> ---
Dropping, unanswered comments.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/5] drm/msm/dp: Add DisplayPort controller for Kaanapali
2026-10-05 7:24 ` [PATCH 2/5] drm/msm/dp: Add DisplayPort controller for Kaanapali Balaji Kalkonda
@ 2026-10-09 8:29 ` Dmitry Baryshkov
0 siblings, 0 replies; 15+ messages in thread
From: Dmitry Baryshkov @ 2026-10-09 8:29 UTC (permalink / raw)
To: Balaji Kalkonda
Cc: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
Sean Paul, Marijn Suijten, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Kuogee Hsieh, Yongxing Mou,
Yuanjie Yang, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Mahadevan P, linux-arm-msm, dri-devel, freedreno, devicetree,
linux-kernel
On Mon, Oct 05, 2026 at 12:54:27PM +0530, Balaji Kalkonda wrote:
> The Qualcomm Kaanapali platform comes with a DisplayPort controller
> with a different base offset than the previous SM8650 SoC, add support
> for this in the DisplayPort driver.
>
> Signed-off-by: Balaji Kalkonda <balaji.kalkonda@oss.qualcomm.com>
> ---
> drivers/gpu/drm/msm/dp/dp_display.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 3/5] arm64: dts: qcom: kaanapali: Add DisplayPort controller
2026-10-05 7:24 ` [PATCH 3/5] arm64: dts: qcom: kaanapali: Add DisplayPort controller Balaji Kalkonda
2026-10-05 7:35 ` sashiko-bot
@ 2026-10-09 8:32 ` Dmitry Baryshkov
2026-10-09 10:48 ` Balaji Kalkonda
1 sibling, 1 reply; 15+ messages in thread
From: Dmitry Baryshkov @ 2026-10-09 8:32 UTC (permalink / raw)
To: Balaji Kalkonda
Cc: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
Sean Paul, Marijn Suijten, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Kuogee Hsieh, Yongxing Mou,
Yuanjie Yang, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Mahadevan P, linux-arm-msm, dri-devel, freedreno, devicetree,
linux-kernel
On Mon, Oct 05, 2026 at 12:54:28PM +0530, Balaji Kalkonda wrote:
> Add device node for the DisplayPort controller, its OPP table, clocks
> and power domain, and connect it to the DPU and USB/DP QMP PHY.
>
> Signed-off-by: Balaji Kalkonda <balaji.kalkonda@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/kaanapali.dtsi | 87 ++++++++++++++++++++++++++++++++-
> 1 file changed, 85 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/qcom/kaanapali.dtsi b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
> index e48a179d0722..155c590c8eb6 100644
> --- a/arch/arm64/boot/dts/qcom/kaanapali.dtsi
> +++ b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
> @@ -3565,6 +3565,7 @@ usb_dp_qmpphy: phy@88e8000 {
> #clock-cells = <1>;
> #phy-cells = <1>;
>
> + mode-switch;
Not mentioned in the commit message.
> orientation-switch;
>
> status = "disabled";
> @@ -3851,6 +3854,86 @@ mdss_dsi0_phy: phy@9ac1000 {
>
> status = "disabled";
> };
> +
> + mdss_dp0: displayport-controller@9ad2000 {
> + compatible = "qcom,kaanapali-dp";
> + reg = <0x0 0x09ad2000 0x0 0x10c>,
> + <0x0 0x09ad2200 0x0 0xc8>,
> + <0x0 0x09ad3000 0x0 0x78>,
> + <0x0 0x09ad4000 0x0 0xa0>;
> +
> + interrupts-extended = <&mdss 12>;
> +
> + clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
> + <&dispcc DISP_CC_MDSS_DPTX0_AUX_CLK>,
> + <&dispcc DISP_CC_MDSS_DPTX0_LINK_CLK>,
> + <&dispcc DISP_CC_MDSS_DPTX0_LINK_INTF_CLK>,
> + <&dispcc DISP_CC_MDSS_DPTX0_PIXEL0_CLK>;
> +
Please define all pixel clocks that are used by the DP controller. Is it
not MST-capable?
> + clock-names = "core_iface",
> + "core_aux",
> + "ctrl_link",
> + "ctrl_link_iface",
> + "stream_pixel";
> +
> + assigned-clocks = <&dispcc DISP_CC_MDSS_DPTX0_LINK_CLK_SRC>,
> + <&dispcc DISP_CC_MDSS_DPTX0_PIXEL0_CLK_SRC>;
> + assigned-clock-parents =
> + <&usb_dp_qmpphy QMP_USB43DP_DP_LINK_CLK>,
Don't break the line here.
> + <&usb_dp_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>;
> +
> + operating-points-v2 = <&dp_opp_table>;
> +
> + power-domains = <&rpmhpd RPMHPD_MX>;
MMCX. If you need to cast a vote on MX domain too, add second entry to
the power domains and handle it in the driver.
> +
> + phys = <&usb_dp_qmpphy QMP_USB43DP_DP_PHY>;
> + phy-names = "dp";
> +
> + #sound-dai-cells = <0>;
> +
> + status = "disabled";
> +
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 4/5] arm64: dts: qcom: kaanapali-mtp: Enable USB headset and Type-C accessory mode
2026-10-05 7:24 ` [PATCH 4/5] arm64: dts: qcom: kaanapali-mtp: Enable USB headset and Type-C accessory mode Balaji Kalkonda
@ 2026-10-09 8:34 ` Dmitry Baryshkov
0 siblings, 0 replies; 15+ messages in thread
From: Dmitry Baryshkov @ 2026-10-09 8:34 UTC (permalink / raw)
To: Balaji Kalkonda
Cc: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
Sean Paul, Marijn Suijten, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Kuogee Hsieh, Yongxing Mou,
Yuanjie Yang, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Mahadevan P, linux-arm-msm, dri-devel, freedreno, devicetree,
linux-kernel
On Mon, Oct 05, 2026 at 12:54:29PM +0530, Balaji Kalkonda wrote:
> MTP does not have audio jack connected and relies on USB mux (WCD9395).
> Add necessary nodes for proper audio headset support along with USB
> Type-C accessory mode and orientation.
>
> Signed-off-by: Balaji Kalkonda <balaji.kalkonda@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/kaanapali-mtp.dts | 51 ++++++++++++++++++++++++++++++
> 1 file changed, 51 insertions(+)
>
> @@ -916,6 +926,42 @@ &gpu_zap_shader {
> firmware-name = "qcom/kaanapali/gen80200_zap.mbn";
> };
>
> +&i2c3 {
No clock-frequency?
> + status = "okay";
> +
> + wcd_usbss: typec-mux@e {
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 5/5] arm64: dts: qcom: kaanapali-mtp: Enable DisplayPort over USB
2026-10-05 7:24 ` [PATCH 5/5] arm64: dts: qcom: kaanapali-mtp: Enable DisplayPort over USB Balaji Kalkonda
@ 2026-10-09 8:34 ` Dmitry Baryshkov
0 siblings, 0 replies; 15+ messages in thread
From: Dmitry Baryshkov @ 2026-10-09 8:34 UTC (permalink / raw)
To: Balaji Kalkonda
Cc: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
Sean Paul, Marijn Suijten, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Kuogee Hsieh, Yongxing Mou,
Yuanjie Yang, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Mahadevan P, linux-arm-msm, dri-devel, freedreno, devicetree,
linux-kernel
On Mon, Oct 05, 2026 at 12:54:30PM +0530, Balaji Kalkonda wrote:
> Hook up DisplayPort parts over Type-C USB on MTP.
>
> Signed-off-by: Balaji Kalkonda <balaji.kalkonda@oss.qualcomm.com>
> ---
> arch/arm64/boot/dts/qcom/kaanapali-mtp.dts | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/5] dt-bindings: display/msm: dp-controller: Add Kaanapali
2026-10-09 7:31 ` Krzysztof Kozlowski
@ 2026-10-09 10:28 ` Balaji Kalkonda
0 siblings, 0 replies; 15+ messages in thread
From: Balaji Kalkonda @ 2026-10-09 10:28 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
Sean Paul, Marijn Suijten, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Kuogee Hsieh, Yongxing Mou,
Yuanjie Yang, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Mahadevan P, linux-arm-msm, dri-devel, freedreno, devicetree,
linux-kernel
On 09-10-2026 01:01 pm, Krzysztof Kozlowski wrote:
> On Mon, Oct 05, 2026 at 12:54:26PM +0530, Balaji Kalkonda wrote:
>> Add DisplayPort controller for Qualcomm Kaanapali SoC which so far looks
>> fully compatible with earlier SM8650 variant.
>>
>> Signed-off-by: Balaji Kalkonda <balaji.kalkonda@oss.qualcomm.com>
>> ---
> Dropping, unanswered comments.
Hi krzysztof,
I will address the sashiko bot comments, and it will be part of v2 patchset.
Thanks and regards,
Balaji.
>
> Best regards,
> Krzysztof
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 3/5] arm64: dts: qcom: kaanapali: Add DisplayPort controller
2026-10-09 8:32 ` Dmitry Baryshkov
@ 2026-10-09 10:48 ` Balaji Kalkonda
0 siblings, 0 replies; 15+ messages in thread
From: Balaji Kalkonda @ 2026-10-09 10:48 UTC (permalink / raw)
To: Dmitry Baryshkov
Cc: Rob Clark, Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang,
Sean Paul, Marijn Suijten, Maarten Lankhorst, Maxime Ripard,
Thomas Zimmermann, David Airlie, Simona Vetter, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Kuogee Hsieh, Yongxing Mou,
Yuanjie Yang, Bjorn Andersson, Konrad Dybcio, Abel Vesa,
Mahadevan P, linux-arm-msm, dri-devel, freedreno, devicetree,
linux-kernel
On 09-10-2026 02:02 pm, Dmitry Baryshkov wrote:
> On Mon, Oct 05, 2026 at 12:54:28PM +0530, Balaji Kalkonda wrote:
>> Add device node for the DisplayPort controller, its OPP table, clocks
>> and power domain, and connect it to the DPU and USB/DP QMP PHY.
>>
>> Signed-off-by: Balaji Kalkonda <balaji.kalkonda@oss.qualcomm.com>
>> ---
>> arch/arm64/boot/dts/qcom/kaanapali.dtsi | 87 ++++++++++++++++++++++++++++++++-
>> 1 file changed, 85 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/arm64/boot/dts/qcom/kaanapali.dtsi b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
>> index e48a179d0722..155c590c8eb6 100644
>> --- a/arch/arm64/boot/dts/qcom/kaanapali.dtsi
>> +++ b/arch/arm64/boot/dts/qcom/kaanapali.dtsi
>> @@ -3565,6 +3565,7 @@ usb_dp_qmpphy: phy@88e8000 {
>> #clock-cells = <1>;
>> #phy-cells = <1>;
>>
>> + mode-switch;
> Not mentioned in the commit message.
>
>> orientation-switch;
>>
>> status = "disabled";
>> @@ -3851,6 +3854,86 @@ mdss_dsi0_phy: phy@9ac1000 {
>>
>> status = "disabled";
>> };
>> +
>> + mdss_dp0: displayport-controller@9ad2000 {
>> + compatible = "qcom,kaanapali-dp";
>> + reg = <0x0 0x09ad2000 0x0 0x10c>,
>> + <0x0 0x09ad2200 0x0 0xc8>,
>> + <0x0 0x09ad3000 0x0 0x78>,
>> + <0x0 0x09ad4000 0x0 0xa0>;
>> +
>> + interrupts-extended = <&mdss 12>;
>> +
>> + clocks = <&dispcc DISP_CC_MDSS_AHB_CLK>,
>> + <&dispcc DISP_CC_MDSS_DPTX0_AUX_CLK>,
>> + <&dispcc DISP_CC_MDSS_DPTX0_LINK_CLK>,
>> + <&dispcc DISP_CC_MDSS_DPTX0_LINK_INTF_CLK>,
>> + <&dispcc DISP_CC_MDSS_DPTX0_PIXEL0_CLK>;
>> +
> Please define all pixel clocks that are used by the DP controller. Is it
> not MST-capable?
>
>> + clock-names = "core_iface",
>> + "core_aux",
>> + "ctrl_link",
>> + "ctrl_link_iface",
>> + "stream_pixel";
>> +
>> + assigned-clocks = <&dispcc DISP_CC_MDSS_DPTX0_LINK_CLK_SRC>,
>> + <&dispcc DISP_CC_MDSS_DPTX0_PIXEL0_CLK_SRC>;
>> + assigned-clock-parents =
>> + <&usb_dp_qmpphy QMP_USB43DP_DP_LINK_CLK>,
> Don't break the line here.
>
>> + <&usb_dp_qmpphy QMP_USB43DP_DP_VCO_DIV_CLK>;
>> +
>> + operating-points-v2 = <&dp_opp_table>;
>> +
>> + power-domains = <&rpmhpd RPMHPD_MX>;
> MMCX. If you need to cast a vote on MX domain too, add second entry to
> the power domains and handle it in the driver.
>
>> +
>> + phys = <&usb_dp_qmpphy QMP_USB43DP_DP_PHY>;
>> + phy-names = "dp";
>> +
>> + #sound-dai-cells = <0>;
>> +
>> + status = "disabled";
>> +
Hi Dmitry,
Thanks for reviewing.
I'll address all these comments in v2.
Thanks,
Balaji
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2026-10-09 10:48 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-05 7:24 [PATCH 0/5] arm64: dts: qcom: kaanapali: Enable DisplayPort Balaji Kalkonda
2026-10-05 7:24 ` [PATCH 1/5] dt-bindings: display/msm: dp-controller: Add Kaanapali Balaji Kalkonda
2026-10-05 7:30 ` sashiko-bot
2026-10-09 7:31 ` Krzysztof Kozlowski
2026-10-09 10:28 ` Balaji Kalkonda
2026-10-05 7:24 ` [PATCH 2/5] drm/msm/dp: Add DisplayPort controller for Kaanapali Balaji Kalkonda
2026-10-09 8:29 ` Dmitry Baryshkov
2026-10-05 7:24 ` [PATCH 3/5] arm64: dts: qcom: kaanapali: Add DisplayPort controller Balaji Kalkonda
2026-10-05 7:35 ` sashiko-bot
2026-10-09 8:32 ` Dmitry Baryshkov
2026-10-09 10:48 ` Balaji Kalkonda
2026-10-05 7:24 ` [PATCH 4/5] arm64: dts: qcom: kaanapali-mtp: Enable USB headset and Type-C accessory mode Balaji Kalkonda
2026-10-09 8:34 ` Dmitry Baryshkov
2026-10-05 7:24 ` [PATCH 5/5] arm64: dts: qcom: kaanapali-mtp: Enable DisplayPort over USB Balaji Kalkonda
2026-10-09 8:34 ` Dmitry Baryshkov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox