* [PATCH] arm64: dts: qcom: sm8350-hdk: Add display card overlay
@ 2026-11-01 21:36 Vladimir Zapolskiy
0 siblings, 0 replies; only message in thread
From: Vladimir Zapolskiy @ 2026-11-01 21:36 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio
Cc: Abel Vesa, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-arm-msm, devicetree
Add an overlay for the SM8350-HDK display card kit with the 1080x2340
Visionox R66451 AMOLED DSI panel and the FocalTech FT3518 touchscreen.
The panel is connected to DSI0, which is alternatively routed to the
LT9611UXC HDMI bridge, so disable the bridge and its supplies to enable
the panel.
The panel OLED_VDDIO supply is PM8350C L12C at 1.8V, and the OLED_VCI
supply is PM8350C L13C at 3.0V, the ELVDD and ELVSS supplies come from
the PM8350B AMOLED regulators, which are controlled by the panel over
SWIRE and need no software control.
Signed-off-by: Vladimir Zapolskiy <vz@kernel.org>
---
Two small fixes can be helpful to test the SM8350-HDK display card:
* https://lore.kernel.org/dri-devel/20261101212458.2431191-1-vz@kernel.org
arch/arm64/boot/dts/qcom/Makefile | 4 +
.../dts/qcom/sm8350-hdk-display-card.dtso | 157 ++++++++++++++++++
2 files changed, 161 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/sm8350-hdk-display-card.dtso
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 88230c4e00ea..5eea5c5d6121 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -417,6 +417,10 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8250-sony-xperia-edo-pdx206.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8250-xiaomi-elish-boe.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8250-xiaomi-elish-csot.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8250-xiaomi-pipa.dtb
+
+sm8350-hdk-display-card-dtbs := sm8350-hdk.dtb sm8350-hdk-display-card.dtbo
+
+dtb-$(CONFIG_ARCH_QCOM) += sm8350-hdk-display-card.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8350-hdk.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8350-microsoft-surface-duo2.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm8350-mtp.dtb
diff --git a/arch/arm64/boot/dts/qcom/sm8350-hdk-display-card.dtso b/arch/arm64/boot/dts/qcom/sm8350-hdk-display-card.dtso
new file mode 100644
index 000000000000..0538b63e4160
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/sm8350-hdk-display-card.dtso
@@ -0,0 +1,157 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) Linaro Limited
+ * Copyright (c) Vladimir Zapolskiy <vz@kernel.org>
+ */
+
+/*
+ * Display Card kit overlay for the SM8350-HDK and Visionox R66451 AMOLED panel.
+ * S5702 switch 7 to be turned to OFF to route DSI0 to the display panel.
+ *
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+
+/dts-v1/;
+/plugin/;
+
+/* Disable HDMI bridge related nodes (mutually exclusive with the display card) */
+
+&i2c15 {
+ status = "disabled";
+};
+
+<9611_1v2 {
+ status = "disabled";
+};
+
+<9611_3v3 {
+ status = "disabled";
+};
+
+<9611_codec {
+ status = "disabled";
+};
+
+&apps_rsc {
+ regulators-1 {
+ vreg_l3c_3p0: ldo3 {
+ regulator-name = "vreg_l3c_3p0";
+ regulator-min-microvolt = <3008000>;
+ regulator-max-microvolt = <3008000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l12c_1p8: ldo12 {
+ regulator-name = "vreg_l12c_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l13c_3p0: ldo13 {
+ regulator-name = "vreg_l13c_3p0";
+ regulator-min-microvolt = <3000000>;
+ regulator-max-microvolt = <3000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+};
+
+&gpi_dma0 {
+ status = "okay";
+};
+
+&i2c4 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ clock-frequency = <400000>;
+
+ status = "okay";
+
+ touchscreen@38 {
+ compatible = "focaltech,ft3518";
+ reg = <0x38>;
+
+ interrupts-extended = <&tlmm 23 IRQ_TYPE_LEVEL_LOW>;
+
+ reset-gpios = <&tlmm 22 GPIO_ACTIVE_LOW>;
+
+ vcc-supply = <&vreg_l3c_3p0>;
+
+ pinctrl-0 = <&ts_irq>, <&ts_reset>;
+ pinctrl-names = "default";
+
+ touchscreen-size-x = <1080>;
+ touchscreen-size-y = <2340>;
+ };
+};
+
+&mdss_dsi0 {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ panel@0 {
+ compatible = "visionox,r66451";
+ reg = <0>;
+
+ reset-gpios = <&tlmm 24 GPIO_ACTIVE_LOW>;
+
+ vddio-supply = <&vreg_l12c_1p8>;
+ vdd-supply = <&vreg_l13c_3p0>;
+
+ pinctrl-0 = <&disp0_reset_n_active>, <&mdp_vsync>;
+ pinctrl-1 = <&disp0_reset_n_suspend>, <&mdp_vsync>;
+ pinctrl-names = "default", "sleep";
+
+ port {
+ panel0_in: endpoint {
+ remote-endpoint = <&mdss_dsi0_out>;
+ };
+ };
+ };
+};
+
+&mdss_dsi0_out {
+ remote-endpoint = <&panel0_in>;
+};
+
+&tlmm {
+ ts_reset: ts-reset-state {
+ pins = "gpio22";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-pull-up;
+ };
+
+ ts_irq: ts-irq-state {
+ pins = "gpio23";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-pull-up;
+ };
+
+ disp0_reset_n_active: disp0-reset-n-active-state {
+ pins = "gpio24";
+ function = "gpio";
+ drive-strength = <8>;
+ bias-disable;
+ };
+
+ disp0_reset_n_suspend: disp0-reset-n-suspend-state {
+ pins = "gpio24";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+
+ mdp_vsync: mdp-vsync-state {
+ pins = "gpio82";
+ function = "mdp_vsync";
+ drive-strength = <2>;
+ bias-pull-down;
+ };
+};
--
2.51.0
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2026-11-01 21:36 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-01 21:36 [PATCH] arm64: dts: qcom: sm8350-hdk: Add display card overlay Vladimir Zapolskiy
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.