* [PATCH v1 0/3] X1E Dell XPS 9345 support
@ 2024-09-19 16:59 Aleksandrs Vinarskis
2024-09-19 16:59 ` [PATCH v1 1/3] dt-bindings: arm: qcom: Add Dell XPS 13 9345 Aleksandrs Vinarskis
` (3 more replies)
0 siblings, 4 replies; 12+ messages in thread
From: Aleksandrs Vinarskis @ 2024-09-19 16:59 UTC (permalink / raw)
To: Bjorn Andersson, Krzysztof Kozlowski, Dmitry Baryshkov,
linux-arm-msm, devicetree, linux-kernel
Cc: Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Aleksandrs Vinarskis
Introduce support for the mentioned laptop.
Very similar to other X1E laptops, device tree was derived by analyzing dtsi of
existing models and ACPI tables of this laptop [1]. Most notable difference were
* TZ protected SPI19.
* Keyboard only working after suspend/resume sequence, will do a follow up patch
to i2c-hid.
* Lots of small deviations in LDOs voltages.
Successfully tested with Debian 12 and Gnome, although this required additional
patches, namely harcode GPU chipid, apply [2] and _revert_ [3] - same as in Abel
Vesa's branches. Without last two the boot process is terminated by TZ. Firmware
for GPU/aDSP/cDSP was extracted from Windows, WiFi firmware from upstream
linux-firmware.
Quite a few things alraedy work, details in patches, quite a few still in WIP or
TODOs. Since fixing these may take me a while due to lack of documentation,
sending current progress as its very much usable.
[1] https://github.com/aarch64-laptops/build/blob/master/misc/dell-xps-9345/acpi/DSDT.dsl
[2] https://lore.kernel.org/all/20240830-x1e80100-bypass-pdc-v1-1-d4c00be0c3e3@linaro.org/
[3] https://lore.kernel.org/all/20240708-x1e80100-pd-mapper-v1-1-854386af4cf5@linaro.org/
Aleksandrs Vinarskis (3):
dt-bindings: arm: qcom: Add Dell XPS 13 9345
firmware: qcom: scm: Allow QSEECOM on Dell XPS 13 9345
arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
.../devicetree/bindings/arm/qcom.yaml | 1 +
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../dts/qcom/x1e80100-dell-tributo-13.dts | 860 ++++++++++++++++++
drivers/firmware/qcom/qcom_scm.c | 1 +
4 files changed, 863 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts
--
2.43.0
^ permalink raw reply [flat|nested] 12+ messages in thread
* [PATCH v1 1/3] dt-bindings: arm: qcom: Add Dell XPS 13 9345
2024-09-19 16:59 [PATCH v1 0/3] X1E Dell XPS 9345 support Aleksandrs Vinarskis
@ 2024-09-19 16:59 ` Aleksandrs Vinarskis
2024-09-20 12:53 ` Krzysztof Kozlowski
2024-09-19 16:59 ` [PATCH v1 2/3] firmware: qcom: scm: Allow QSEECOM on " Aleksandrs Vinarskis
` (2 subsequent siblings)
3 siblings, 1 reply; 12+ messages in thread
From: Aleksandrs Vinarskis @ 2024-09-19 16:59 UTC (permalink / raw)
To: Bjorn Andersson, Krzysztof Kozlowski, Dmitry Baryshkov,
linux-arm-msm, devicetree, linux-kernel
Cc: Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Aleksandrs Vinarskis
Document the X1E80100-based Dell XPS laptop.
Signed-off-by: Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
---
Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/arm/qcom.yaml b/Documentation/devicetree/bindings/arm/qcom.yaml
index 5cb54d69af0b..a1ae01a9d581 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -1058,6 +1058,7 @@ properties:
- items:
- enum:
- asus,vivobook-s15
+ - dell,tributo-13
- lenovo,yoga-slim7x
- microsoft,romulus13
- microsoft,romulus15
--
2.43.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v1 2/3] firmware: qcom: scm: Allow QSEECOM on Dell XPS 13 9345
2024-09-19 16:59 [PATCH v1 0/3] X1E Dell XPS 9345 support Aleksandrs Vinarskis
2024-09-19 16:59 ` [PATCH v1 1/3] dt-bindings: arm: qcom: Add Dell XPS 13 9345 Aleksandrs Vinarskis
@ 2024-09-19 16:59 ` Aleksandrs Vinarskis
2024-09-19 19:58 ` Dmitry Baryshkov
2024-09-20 12:49 ` Krzysztof Kozlowski
2024-09-19 16:59 ` [PATCH v1 3/3] arm64: dts: qcom: Add support for X1-based " Aleksandrs Vinarskis
2024-09-19 18:18 ` [PATCH v1 0/3] X1E Dell XPS 9345 support Rob Herring (Arm)
3 siblings, 2 replies; 12+ messages in thread
From: Aleksandrs Vinarskis @ 2024-09-19 16:59 UTC (permalink / raw)
To: Bjorn Andersson, Krzysztof Kozlowski, Dmitry Baryshkov,
linux-arm-msm, devicetree, linux-kernel
Cc: Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Aleksandrs Vinarskis
Signed-off-by: Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
---
drivers/firmware/qcom/qcom_scm.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/firmware/qcom/qcom_scm.c b/drivers/firmware/qcom/qcom_scm.c
index 10986cb11ec0..5d8afdb3b6c9 100644
--- a/drivers/firmware/qcom/qcom_scm.c
+++ b/drivers/firmware/qcom/qcom_scm.c
@@ -1731,6 +1731,7 @@ EXPORT_SYMBOL_GPL(qcom_scm_qseecom_app_send);
+ any potential issues with this, only allow validated machines for now.
*/
static const struct of_device_id qcom_scm_qseecom_allowlist[] __maybe_unused = {
+ { .compatible = "dell,tributo-13" },
{ .compatible = "lenovo,flex-5g" },
{ .compatible = "lenovo,thinkpad-t14s" },
{ .compatible = "lenovo,thinkpad-x13s", },
--
2.43.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [PATCH v1 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
2024-09-19 16:59 [PATCH v1 0/3] X1E Dell XPS 9345 support Aleksandrs Vinarskis
2024-09-19 16:59 ` [PATCH v1 1/3] dt-bindings: arm: qcom: Add Dell XPS 13 9345 Aleksandrs Vinarskis
2024-09-19 16:59 ` [PATCH v1 2/3] firmware: qcom: scm: Allow QSEECOM on " Aleksandrs Vinarskis
@ 2024-09-19 16:59 ` Aleksandrs Vinarskis
2024-09-20 12:52 ` Krzysztof Kozlowski
2024-09-20 17:25 ` Rob Clark
2024-09-19 18:18 ` [PATCH v1 0/3] X1E Dell XPS 9345 support Rob Herring (Arm)
3 siblings, 2 replies; 12+ messages in thread
From: Aleksandrs Vinarskis @ 2024-09-19 16:59 UTC (permalink / raw)
To: Bjorn Andersson, Krzysztof Kozlowski, Dmitry Baryshkov,
linux-arm-msm, devicetree, linux-kernel
Cc: Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
Aleksandrs Vinarskis
Initial support for Dell XPS 9345 13" 2024 (Tributo) based on X1E80100.
Working:
* Touchpad
* Keyboard (only post suspend&resume, i2c-hid patch WIP)
* eDP, with brightness control
* NVME
* USB Type-C ports in USB2/USB3 (one orientation)
* WiFi
* GPU/aDSP/cDSP firmware loading (requires binaries from Windows)
* Lid switch
* Sleep/suspend, nothing visibly broken on resume
Not working:
* Speakers (WIP, pin guessing, x4 WSA8845)
* Microphones (WIP, pin guessing)
* Fingerprint Reader (WIP, USB MP with ptn3222)
* USB as DP/USB3 (WIP, PS8830 based)
* Camera
* Battery Info
Should be working, but cannot be tested due to lack of hw:
* Higher res OLED, higher res IPS panels
* Touchscreen
Signed-off-by: Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
---
arch/arm64/boot/dts/qcom/Makefile | 1 +
.../dts/qcom/x1e80100-dell-tributo-13.dts | 860 ++++++++++++++++++
2 files changed, 861 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index ae002c7cf126..111c589d6bae 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -271,6 +271,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8650-qrd.dtb
dtb-$(CONFIG_ARCH_QCOM) += x1e78100-lenovo-thinkpad-t14s.dtb
dtb-$(CONFIG_ARCH_QCOM) += x1e80100-asus-vivobook-s15.dtb
dtb-$(CONFIG_ARCH_QCOM) += x1e80100-crd.dtb
+dtb-$(CONFIG_ARCH_QCOM) += x1e80100-dell-tributo-13.dtb
dtb-$(CONFIG_ARCH_QCOM) += x1e80100-lenovo-yoga-slim7x.dtb
dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-romulus13.dtb
dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-romulus15.dtb
diff --git a/arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts b/arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts
new file mode 100644
index 000000000000..d387f133c398
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts
@@ -0,0 +1,860 @@
+// SPDX-License-Identifier: BSD-3-Clause
+/*
+ * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
+ * Copyright (c) 2024 Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/gpio-keys.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
+
+#include "x1e80100.dtsi"
+#include "x1e80100-pmics.dtsi"
+
+/ {
+ model = "Dell XPS 13 9345";
+ compatible = "dell,tributo-13", "qcom,x1e80100";
+ chassis-type = "laptop";
+
+ gpio-keys {
+ compatible = "gpio-keys";
+
+ pinctrl-0 = <&hall_int_n_default>;
+ pinctrl-names = "default";
+
+ switch-lid {
+ gpios = <&tlmm 92 GPIO_ACTIVE_LOW>;
+ linux,input-type = <EV_SW>;
+ linux,code = <SW_LID>;
+ wakeup-source;
+ wakeup-event-action = <EV_ACT_DEASSERTED>;
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ pinctrl-names = "default";
+ pinctrl-0 = <&cam_indicator_en>;
+
+ led-camera-indicator {
+ label = "white:camera-indicator";
+ function = LED_FUNCTION_INDICATOR;
+ color = <LED_COLOR_ID_WHITE>;
+ gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
+ linux,default-trigger = "none";
+ default-state = "off";
+ /* Reuse as a panic indicator until we get a "camera on" trigger */
+ panic-indicator;
+ };
+ };
+
+ pmic-glink {
+ compatible = "qcom,x1e80100-pmic-glink",
+ "qcom,sm8550-pmic-glink",
+ "qcom,pmic-glink";
+ orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>,
+ <&tlmm 123 GPIO_ACTIVE_HIGH>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ /* Right-side USB Type-C port */
+ connector@0 {
+ compatible = "usb-c-connector";
+ reg = <0>;
+ power-role = "dual";
+ data-role = "dual";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ pmic_glink_ss0_hs_in: endpoint {
+ remote-endpoint = <&usb_1_ss0_dwc3_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ pmic_glink_ss0_ss_in: endpoint {
+ remote-endpoint = <&usb_1_ss0_qmpphy_out>;
+ };
+ };
+ };
+ };
+
+ /* Left-side USB Type-C port */
+ connector@1 {
+ compatible = "usb-c-connector";
+ reg = <1>;
+ power-role = "dual";
+ data-role = "dual";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ pmic_glink_ss1_hs_in: endpoint {
+ remote-endpoint = <&usb_1_ss1_dwc3_hs>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ pmic_glink_ss1_ss_in: endpoint {
+ remote-endpoint = <&usb_1_ss1_qmpphy_out>;
+ };
+ };
+ };
+ };
+ };
+
+ reserved-memory {
+ linux,cma {
+ compatible = "shared-dma-pool";
+ size = <0x0 0x8000000>;
+ reusable;
+ linux,cma-default;
+ };
+ };
+
+ vph_pwr: vph-pwr-regulator {
+ compatible = "regulator-fixed";
+
+ regulator-name = "vph_pwr";
+ regulator-min-microvolt = <3700000>;
+ regulator-max-microvolt = <3700000>;
+
+ regulator-always-on;
+ regulator-boot-on;
+ };
+
+ vreg_edp_3p3: regulator-edp-3p3 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_EDP_3P3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&tlmm 70 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&edp_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vreg_nvme: regulator-nvme {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_NVME_3P3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&tlmm 18 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&nvme_reg_en>;
+ pinctrl-names = "default";
+ };
+};
+
+&apps_rsc {
+ regulators-0 {
+ compatible = "qcom,pm8550-rpmh-regulators";
+ qcom,pmic-id = "b";
+ vdd-bob1-supply = <&vph_pwr>;
+ vdd-bob2-supply = <&vph_pwr>;
+ vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>;
+ vdd-l2-l13-l14-supply = <&vreg_bob1>;
+ vdd-l5-l16-supply = <&vreg_bob1>;
+ vdd-l6-l7-supply = <&vreg_bob2>;
+ vdd-l8-l9-supply = <&vreg_bob1>;
+ vdd-l12-supply = <&vreg_s5j_1p2>;
+ vdd-l15-supply = <&vreg_s4c_1p8>;
+ vdd-l17-supply = <&vreg_bob2>;
+
+ vreg_bob1: bob1 {
+ regulator-name = "vreg_bob1";
+ regulator-min-microvolt = <3008000>;
+ regulator-max-microvolt = <3960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_bob2: bob2 {
+ regulator-name = "vreg_bob2";
+ regulator-min-microvolt = <2504000>;
+ regulator-max-microvolt = <3008000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2b_3p0: ldo2 {
+ regulator-name = "vreg_l2b_3p0";
+ regulator-min-microvolt = <3072000>;
+ regulator-max-microvolt = <3072000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l4b_1p8: ldo4 {
+ regulator-name = "vreg_l4b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l6b_1p8: ldo6 {
+ regulator-name = "vreg_l6b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <2960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l8b_3p0: ldo8 {
+ regulator-name = "vreg_l8b_3p0";
+ regulator-min-microvolt = <3072000>;
+ regulator-max-microvolt = <3072000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l9b_2p9: ldo9 {
+ regulator-name = "vreg_l9b_2p9";
+ regulator-min-microvolt = <2960000>;
+ regulator-max-microvolt = <2960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l12b_1p2: ldo12 {
+ regulator-name = "vreg_l12b_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l13b_3p0: ldo13 {
+ regulator-name = "vreg_l13b_3p0";
+ regulator-min-microvolt = <3072000>;
+ regulator-max-microvolt = <3072000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l14b_3p0: ldo14 {
+ regulator-name = "vreg_l14b_3p0";
+ regulator-min-microvolt = <3072000>;
+ regulator-max-microvolt = <3072000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l15b_1p8: ldo15 {
+ regulator-name = "vreg_l15b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l17b_2p5: ldo17 {
+ regulator-name = "vreg_l17b_2p5";
+ regulator-min-microvolt = <2504000>;
+ regulator-max-microvolt = <2504000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-1 {
+ compatible = "qcom,pm8550ve-rpmh-regulators";
+ qcom,pmic-id = "c";
+ vdd-l1-supply = <&vreg_s5j_1p2>;
+ vdd-l2-supply = <&vreg_s1f_0p7>;
+ vdd-l3-supply = <&vreg_s1f_0p7>;
+
+ vreg_s4c_1p8: smps4 {
+ regulator-name = "vreg_s4c_1p8";
+ regulator-min-microvolt = <1856000>;
+ regulator-max-microvolt = <2000000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1c_1p2: ldo1 {
+ regulator-name = "vreg_l1c_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2c_0p8: ldo2 {
+ regulator-name = "vreg_l2c_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3c_0p9: ldo3 {
+ regulator-name = "vreg_l3c_0p9";
+ regulator-min-microvolt = <920000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-2 {
+ compatible = "qcom,pmc8380-rpmh-regulators";
+ qcom,pmic-id = "d";
+ vdd-l1-supply = <&vreg_s1f_0p7>;
+ vdd-l2-supply = <&vreg_s1f_0p7>;
+ vdd-l3-supply = <&vreg_s4c_1p8>;
+ vdd-s1-supply = <&vph_pwr>;
+
+ vreg_l1d_0p8: ldo1 {
+ regulator-name = "vreg_l1d_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2d_0p9: ldo2 {
+ regulator-name = "vreg_l2d_0p9";
+ regulator-min-microvolt = <912000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3d_1p8: ldo3 {
+ regulator-name = "vreg_l3d_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-3 {
+ compatible = "qcom,pmc8380-rpmh-regulators";
+ qcom,pmic-id = "e";
+ vdd-l2-supply = <&vreg_s1f_0p7>;
+ vdd-l3-supply = <&vreg_s5j_1p2>;
+
+ vreg_l2e_0p8: ldo2 {
+ regulator-name = "vreg_l2e_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3e_1p2: ldo3 {
+ regulator-name = "vreg_l3e_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-4 {
+ compatible = "qcom,pmc8380-rpmh-regulators";
+ qcom,pmic-id = "f";
+ vdd-l1-supply = <&vreg_s5j_1p2>;
+ vdd-l2-supply = <&vreg_s5j_1p2>;
+ vdd-l3-supply = <&vreg_s5j_1p2>;
+ vdd-s1-supply = <&vph_pwr>;
+
+ vreg_s1f_0p7: smps1 {
+ regulator-name = "vreg_s1f_0p7";
+ regulator-min-microvolt = <700000>;
+ regulator-max-microvolt = <1100000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-6 {
+ compatible = "qcom,pm8550ve-rpmh-regulators";
+ qcom,pmic-id = "i";
+ vdd-l1-supply = <&vreg_s4c_1p8>;
+ vdd-l2-supply = <&vreg_s5j_1p2>;
+ vdd-l3-supply = <&vreg_s1f_0p7>;
+ vdd-s1-supply = <&vph_pwr>;
+ vdd-s2-supply = <&vph_pwr>;
+
+ vreg_s1i_0p9: smps1 {
+ regulator-name = "vreg_s1i_0p9";
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_s2i_1p0: smps2 {
+ regulator-name = "vreg_s2i_1p0";
+ regulator-min-microvolt = <1000000>;
+ regulator-max-microvolt = <1100000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1i_1p8: ldo1 {
+ regulator-name = "vreg_l1i_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2i_1p2: ldo2 {
+ regulator-name = "vreg_l2i_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3i_0p8: ldo3 {
+ regulator-name = "vreg_l3i_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-7 {
+ compatible = "qcom,pm8550ve-rpmh-regulators";
+ qcom,pmic-id = "j";
+ vdd-l1-supply = <&vreg_s1f_0p7>;
+ vdd-l2-supply = <&vreg_s5j_1p2>;
+ vdd-l3-supply = <&vreg_s1f_0p7>;
+ vdd-s5-supply = <&vph_pwr>;
+
+ vreg_s5j_1p2: smps5 {
+ regulator-name = "vreg_s5j_1p2";
+ regulator-min-microvolt = <1256000>;
+ regulator-max-microvolt = <1304000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1j_0p9: ldo1 {
+ regulator-name = "vreg_l1j_0p9";
+ regulator-min-microvolt = <912000>;
+ regulator-max-microvolt = <912000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2j_1p2: ldo2 {
+ regulator-name = "vreg_l2j_1p2";
+ regulator-min-microvolt = <1256000>;
+ regulator-max-microvolt = <1256000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3j_0p8: ldo3 {
+ regulator-name = "vreg_l3j_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <880000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+};
+
+&pcie4 {
+ perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
+
+ pinctrl-0 = <&pcie4_default>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcie4_phy {
+ vdda-phy-supply = <&vreg_l3i_0p8>;
+ vdda-pll-supply = <&vreg_l3e_1p2>;
+
+ status = "okay";
+};
+
+&pcie6a {
+ perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
+ wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
+
+ vddpe-3v3-supply = <&vreg_nvme>;
+
+ pinctrl-0 = <&pcie6a_default>;
+ pinctrl-names = "default";
+
+ status = "okay";
+};
+
+&pcie6a_phy {
+ vdda-phy-supply = <&vreg_l1d_0p8>;
+ vdda-pll-supply = <&vreg_l2j_1p2>;
+
+ status = "okay";
+};
+
+&qupv3_0 {
+ status = "okay";
+};
+
+&qupv3_1 {
+ status = "okay";
+};
+
+&qupv3_2 {
+ status = "okay";
+};
+
+&remoteproc_adsp {
+ firmware-name = "qcom/x1e80100/dell/tributo/qcadsp8380.mbn",
+ "qcom/x1e80100/dell/tributo/adsp_dtbs.elf";
+
+ status = "okay";
+};
+
+&remoteproc_cdsp {
+ firmware-name = "qcom/x1e80100/dell/tributo/qccdsp8380.mbn",
+ "qcom/x1e80100/dell/tributo/cdsp_dtbs.elf";
+
+ status = "okay";
+};
+
+&gpu {
+ status = "okay";
+
+ zap-shader {
+ firmware-name = "qcom/x1e80100/dell/tributo/qcdxkmsuc8380.mbn";
+ };
+};
+
+&mdss {
+ status = "okay";
+};
+
+&mdss_dp3 {
+ compatible = "qcom,x1e80100-dp";
+ /delete-property/ #sound-dai-cells;
+
+ status = "okay";
+
+ aux-bus {
+ panel {
+ /* 1920x1200 IPS panel is SHP1593, PNP09FF compatible */
+ compatible = "edp-panel";
+ power-supply = <&vreg_edp_3p3>;
+
+ port {
+ edp_panel_in: endpoint {
+ remote-endpoint = <&mdss_dp3_out>;
+ };
+ };
+ };
+ };
+
+ ports {
+ port@1 {
+ reg = <1>;
+
+ mdss_dp3_out: endpoint {
+ data-lanes = <0 1 2 3>;
+ link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+
+ remote-endpoint = <&edp_panel_in>;
+ };
+ };
+ };
+};
+
+&mdss_dp3_phy {
+ vdda-phy-supply = <&vreg_l3j_0p8>;
+ vdda-pll-supply = <&vreg_l2j_1p2>;
+
+ status = "okay";
+};
+
+&i2c0 {
+ clock-frequency = <400000>;
+ status = "okay";
+
+ keyboard@5 {
+ compatible = "hid-over-i2c";
+ reg = <0x5>;
+
+ hid-descr-addr = <0x20>;
+ interrupts-extended = <&tlmm 67 IRQ_TYPE_LEVEL_LOW>;
+
+ pinctrl-0 = <&kybd_default>;
+ pinctrl-names = "default";
+
+ wakeup-source;
+ };
+};
+
+&i2c3 {
+ clock-frequency = <400000>;
+ status = "disabled";
+ /* PS8830 Retimer @0x8 */
+ /* Unknown device @0x9 */
+};
+
+&i2c5 {
+ clock-frequency = <100000>;
+ status = "disabled";
+ /* Unknown device @0x3b */
+};
+
+&i2c7 {
+ clock-frequency = <400000>;
+ status = "disabled";
+ /* PS8830 Retimer @0x8 */
+ /* Unknown device @0x9 */
+};
+
+&i2c8 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+
+ touchscreen@0 {
+ compatible = "hid-over-i2c";
+ reg = <0x0>;
+
+ hid-descr-addr = <0x1>;
+ interrupts-extended = <&tlmm 51 IRQ_TYPE_LEVEL_LOW>;
+
+ pinctrl-0 = <&ts0_default>;
+ pinctrl-names = "default";
+ };
+};
+
+&i2c9 {
+ clock-frequency = <400000>;
+ status = "disabled";
+ /* USB3 retimer device @0x4f */
+};
+
+&i2c17 {
+ clock-frequency = <400000>;
+ status = "okay";
+
+ touchpad@2c {
+ compatible = "hid-over-i2c";
+ reg = <0x2c>;
+
+ hid-descr-addr = <0x20>;
+ interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>;
+
+ pinctrl-0 = <&tpad_default>;
+ pinctrl-names = "default";
+
+ wakeup-source;
+ };
+};
+
+&smb2360_0_eusb2_repeater {
+ vdd18-supply = <&vreg_l3d_1p8>;
+ vdd3-supply = <&vreg_l2b_3p0>;
+};
+
+&smb2360_1_eusb2_repeater {
+ vdd18-supply = <&vreg_l3d_1p8>;
+ vdd3-supply = <&vreg_l14b_3p0>;
+};
+
+&tlmm {
+ gpio-reserved-ranges = <44 4>, /* SPI11 (TPM) */
+ <76 4>, /* SPI19 (TZ Protected) */
+ <238 1>; /* UFS Reset */
+
+ edp_reg_en: edp-reg-en-state {
+ pins = "gpio70";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ };
+
+ kybd_default: kybd-default-state {
+ pins = "gpio67";
+ function = "gpio";
+ bias-pull-up;
+ };
+
+ nvme_reg_en: nvme-reg-en-state {
+ pins = "gpio18";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ tpad_default: tpad-default-state {
+ disable-pins {
+ pins = "gpio38";
+ function = "gpio";
+ output-high;
+ };
+
+ int-n-pins {
+ pins = "gpio3";
+ function = "gpio";
+ bias-pull-up;
+ };
+
+ reset-n-pins {
+ pins = "gpio52";
+ function = "gpio";
+ bias-disable;
+ };
+ };
+
+ ts0_default: ts0-default-state {
+ disable-pins {
+ pins = "gpio75";
+ function = "gpio";
+ output-high;
+ };
+
+ int-n-pins {
+ pins = "gpio51";
+ function = "gpio";
+ bias-pull-up;
+ };
+
+ reset-n-pins {
+ /* Technically should be High-Z input */
+ pins = "gpio48";
+ function = "gpio";
+ output-low;
+ drive-strength = <2>;
+ };
+ };
+
+ hall_int_n_default: hall-int-n-state {
+ pins = "gpio92";
+ function = "gpio";
+
+ bias-disable;
+ };
+
+ pcie4_default: pcie4-default-state {
+ clkreq-n-pins {
+ pins = "gpio147";
+ function = "pcie4_clk";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ perst-n-pins {
+ pins = "gpio146";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ wake-n-pins {
+ pins = "gpio148";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
+ pcie6a_default: pcie6a-default-state {
+ clkreq-n-pins {
+ pins = "gpio153";
+ function = "pcie6a_clk";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+
+ perst-n-pins {
+ pins = "gpio152";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ wake-n-pins {
+ pins = "gpio154";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
+
+ cam_indicator_en: cam-indicator-en-state {
+ pins = "gpio110";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+};
+
+&uart21 {
+ compatible = "qcom,geni-debug-uart";
+ status = "okay";
+};
+
+&usb_1_ss0_hsphy {
+ vdd-supply = <&vreg_l3j_0p8>;
+ vdda12-supply = <&vreg_l2j_1p2>;
+
+ phys = <&smb2360_0_eusb2_repeater>;
+
+ status = "okay";
+};
+
+&usb_1_ss0_qmpphy {
+ vdda-phy-supply = <&vreg_l3e_1p2>;
+ vdda-pll-supply = <&vreg_l1j_0p9>;
+
+ status = "okay";
+};
+
+&usb_1_ss0 {
+ status = "okay";
+};
+
+&usb_1_ss0_dwc3 {
+ dr_mode = "host";
+};
+
+&usb_1_ss0_dwc3_hs {
+ remote-endpoint = <&pmic_glink_ss0_hs_in>;
+};
+
+&usb_1_ss0_qmpphy_out {
+ remote-endpoint = <&pmic_glink_ss0_ss_in>;
+};
+
+&usb_1_ss1_hsphy {
+ vdd-supply = <&vreg_l3j_0p8>;
+ vdda12-supply = <&vreg_l2j_1p2>;
+
+ phys = <&smb2360_1_eusb2_repeater>;
+
+ status = "okay";
+};
+
+&usb_1_ss1_qmpphy {
+ vdda-phy-supply = <&vreg_l3e_1p2>;
+ vdda-pll-supply = <&vreg_l2d_0p9>;
+
+ status = "okay";
+};
+
+&usb_1_ss1 {
+ status = "okay";
+};
+
+&usb_1_ss1_dwc3 {
+ dr_mode = "host";
+};
+
+&usb_1_ss1_dwc3_hs {
+ remote-endpoint = <&pmic_glink_ss1_hs_in>;
+};
+
+&usb_1_ss1_qmpphy_out {
+ remote-endpoint = <&pmic_glink_ss1_ss_in>;
+};
--
2.43.0
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [PATCH v1 0/3] X1E Dell XPS 9345 support
2024-09-19 16:59 [PATCH v1 0/3] X1E Dell XPS 9345 support Aleksandrs Vinarskis
` (2 preceding siblings ...)
2024-09-19 16:59 ` [PATCH v1 3/3] arm64: dts: qcom: Add support for X1-based " Aleksandrs Vinarskis
@ 2024-09-19 18:18 ` Rob Herring (Arm)
3 siblings, 0 replies; 12+ messages in thread
From: Rob Herring (Arm) @ 2024-09-19 18:18 UTC (permalink / raw)
To: Aleksandrs Vinarskis
Cc: Krzysztof Kozlowski, Krzysztof Kozlowski, Conor Dooley,
Dmitry Baryshkov, Bjorn Andersson, linux-arm-msm, Konrad Dybcio,
linux-kernel, devicetree
On Thu, 19 Sep 2024 18:59:31 +0200, Aleksandrs Vinarskis wrote:
> Introduce support for the mentioned laptop.
>
> Very similar to other X1E laptops, device tree was derived by analyzing dtsi of
> existing models and ACPI tables of this laptop [1]. Most notable difference were
> * TZ protected SPI19.
> * Keyboard only working after suspend/resume sequence, will do a follow up patch
> to i2c-hid.
> * Lots of small deviations in LDOs voltages.
>
> Successfully tested with Debian 12 and Gnome, although this required additional
> patches, namely harcode GPU chipid, apply [2] and _revert_ [3] - same as in Abel
> Vesa's branches. Without last two the boot process is terminated by TZ. Firmware
> for GPU/aDSP/cDSP was extracted from Windows, WiFi firmware from upstream
> linux-firmware.
>
> Quite a few things alraedy work, details in patches, quite a few still in WIP or
> TODOs. Since fixing these may take me a while due to lack of documentation,
> sending current progress as its very much usable.
>
> [1] https://github.com/aarch64-laptops/build/blob/master/misc/dell-xps-9345/acpi/DSDT.dsl
> [2] https://lore.kernel.org/all/20240830-x1e80100-bypass-pdc-v1-1-d4c00be0c3e3@linaro.org/
> [3] https://lore.kernel.org/all/20240708-x1e80100-pd-mapper-v1-1-854386af4cf5@linaro.org/
>
> Aleksandrs Vinarskis (3):
> dt-bindings: arm: qcom: Add Dell XPS 13 9345
> firmware: qcom: scm: Allow QSEECOM on Dell XPS 13 9345
> arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
>
> .../devicetree/bindings/arm/qcom.yaml | 1 +
> arch/arm64/boot/dts/qcom/Makefile | 1 +
> .../dts/qcom/x1e80100-dell-tributo-13.dts | 860 ++++++++++++++++++
> drivers/firmware/qcom/qcom_scm.c | 1 +
> 4 files changed, 863 insertions(+)
> create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts
>
> --
> 2.43.0
>
>
>
My bot found new DTB warnings on the .dts files added or changed in this
series.
Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings
are fixed by another series. Ultimately, it is up to the platform
maintainer whether these warnings are acceptable or not. No need to reply
unless the platform maintainer has comments.
If you already ran DT checks and didn't see these error(s), then
make sure dt-schema is up to date:
pip3 install dtschema --upgrade
New warnings running 'make CHECK_DTBS=y qcom/x1e80100-dell-tributo-13.dtb' for 20240919170018.13672-1-alex.vinarskis@gmail.com:
arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dtb: domain-idle-states: cluster-sleep-0: 'idle-state-name' does not match any of the regexes: 'pinctrl-[0-9]+'
from schema $id: http://devicetree.org/schemas/power/domain-idle-state.yaml#
arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dtb: domain-idle-states: cluster-sleep-1: 'idle-state-name' does not match any of the regexes: 'pinctrl-[0-9]+'
from schema $id: http://devicetree.org/schemas/power/domain-idle-state.yaml#
arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dtb: usb@a2f8800: interrupt-names: ['pwr_event', 'dp_hs_phy_irq', 'dm_hs_phy_irq'] is too short
from schema $id: http://devicetree.org/schemas/usb/qcom,dwc3.yaml#
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v1 2/3] firmware: qcom: scm: Allow QSEECOM on Dell XPS 13 9345
2024-09-19 16:59 ` [PATCH v1 2/3] firmware: qcom: scm: Allow QSEECOM on " Aleksandrs Vinarskis
@ 2024-09-19 19:58 ` Dmitry Baryshkov
2024-09-20 12:49 ` Krzysztof Kozlowski
1 sibling, 0 replies; 12+ messages in thread
From: Dmitry Baryshkov @ 2024-09-19 19:58 UTC (permalink / raw)
To: Aleksandrs Vinarskis
Cc: Bjorn Andersson, Krzysztof Kozlowski, linux-arm-msm, devicetree,
linux-kernel, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
On Thu, Sep 19, 2024 at 06:59:33PM GMT, Aleksandrs Vinarskis wrote:
> Signed-off-by: Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
> ---
> drivers/firmware/qcom/qcom_scm.c | 1 +
> 1 file changed, 1 insertion(+)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v1 2/3] firmware: qcom: scm: Allow QSEECOM on Dell XPS 13 9345
2024-09-19 16:59 ` [PATCH v1 2/3] firmware: qcom: scm: Allow QSEECOM on " Aleksandrs Vinarskis
2024-09-19 19:58 ` Dmitry Baryshkov
@ 2024-09-20 12:49 ` Krzysztof Kozlowski
1 sibling, 0 replies; 12+ messages in thread
From: Krzysztof Kozlowski @ 2024-09-20 12:49 UTC (permalink / raw)
To: Aleksandrs Vinarskis, Bjorn Andersson, Dmitry Baryshkov,
linux-arm-msm, devicetree, linux-kernel
Cc: Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley
On 19/09/2024 18:59, Aleksandrs Vinarskis wrote:
> Signed-off-by: Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
Please run scripts/checkpatch.pl and fix reported warnings. Then please
run `scripts/checkpatch.pl --strict` and (probably) fix more warnings.
Some warnings can be ignored, especially from --strict run, but the code
here looks like it needs a fix. Feel free to get in touch if the warning
is not clear.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v1 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
2024-09-19 16:59 ` [PATCH v1 3/3] arm64: dts: qcom: Add support for X1-based " Aleksandrs Vinarskis
@ 2024-09-20 12:52 ` Krzysztof Kozlowski
2024-09-20 17:25 ` Rob Clark
1 sibling, 0 replies; 12+ messages in thread
From: Krzysztof Kozlowski @ 2024-09-20 12:52 UTC (permalink / raw)
To: Aleksandrs Vinarskis, Bjorn Andersson, Dmitry Baryshkov,
linux-arm-msm, devicetree, linux-kernel
Cc: Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley
On 19/09/2024 18:59, Aleksandrs Vinarskis wrote:
> + panic-indicator;
> + };
> + };
> +
> + pmic-glink {
> + compatible = "qcom,x1e80100-pmic-glink",
> + "qcom,sm8550-pmic-glink",
> + "qcom,pmic-glink";
Misaligned. These start with previous ".
> + orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>,
> + <&tlmm 123 GPIO_ACTIVE_HIGH>;
Even more misaligned. I guess this comment applies to multiple places.
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + /* Right-side USB Type-C port */
> + connector@0 {
> + compatible = "usb-c-connector";
> + reg = <0>;
> + power-role = "dual";
> + data-role = "dual";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> +
> + pmic_glink_ss0_hs_in: endpoint {
> + remote-endpoint = <&usb_1_ss0_dwc3_hs>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> +
> + pmic_glink_ss0_ss_in: endpoint {
> + remote-endpoint = <&usb_1_ss0_qmpphy_out>;
> + };
> + };
> + };
> + };
> +
> + /* Left-side USB Type-C port */
> + connector@1 {
> + compatible = "usb-c-connector";
> + reg = <1>;
> + power-role = "dual";
> + data-role = "dual";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> +
> + pmic_glink_ss1_hs_in: endpoint {
> + remote-endpoint = <&usb_1_ss1_dwc3_hs>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> +
> + pmic_glink_ss1_ss_in: endpoint {
> + remote-endpoint = <&usb_1_ss1_qmpphy_out>;
> + };
> + };
> + };
> + };
> + };
> +
> + reserved-memory {
> + linux,cma {
> + compatible = "shared-dma-pool";
> + size = <0x0 0x8000000>;
> + reusable;
> + linux,cma-default;
> + };
> + };
> +
> + vph_pwr: vph-pwr-regulator {
regulator-foo-bar (so regulator-vph-pwr), which will also point to the
need of reordering the nods. They are sorted alphabetically.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v1 1/3] dt-bindings: arm: qcom: Add Dell XPS 13 9345
2024-09-19 16:59 ` [PATCH v1 1/3] dt-bindings: arm: qcom: Add Dell XPS 13 9345 Aleksandrs Vinarskis
@ 2024-09-20 12:53 ` Krzysztof Kozlowski
0 siblings, 0 replies; 12+ messages in thread
From: Krzysztof Kozlowski @ 2024-09-20 12:53 UTC (permalink / raw)
To: Aleksandrs Vinarskis, Bjorn Andersson, Dmitry Baryshkov,
linux-arm-msm, devicetree, linux-kernel
Cc: Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley
On 19/09/2024 18:59, Aleksandrs Vinarskis wrote:
> Document the X1E80100-based Dell XPS laptop.
XPS 13 9435, codenamed (?) Tributo 13? Otherwise I don't get the
connection between compatible and above.
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v1 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
2024-09-19 16:59 ` [PATCH v1 3/3] arm64: dts: qcom: Add support for X1-based " Aleksandrs Vinarskis
2024-09-20 12:52 ` Krzysztof Kozlowski
@ 2024-09-20 17:25 ` Rob Clark
2024-09-21 12:16 ` alex vinarskis
1 sibling, 1 reply; 12+ messages in thread
From: Rob Clark @ 2024-09-20 17:25 UTC (permalink / raw)
To: Aleksandrs Vinarskis
Cc: Bjorn Andersson, Krzysztof Kozlowski, Dmitry Baryshkov,
linux-arm-msm, devicetree, linux-kernel, Konrad Dybcio,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Rob Clark
On Thu, Sep 19, 2024 at 10:01 AM Aleksandrs Vinarskis
<alex.vinarskis@gmail.com> wrote:
>
> Initial support for Dell XPS 9345 13" 2024 (Tributo) based on X1E80100.
>
> Working:
> * Touchpad
> * Keyboard (only post suspend&resume, i2c-hid patch WIP)
> * eDP, with brightness control
> * NVME
> * USB Type-C ports in USB2/USB3 (one orientation)
> * WiFi
> * GPU/aDSP/cDSP firmware loading (requires binaries from Windows)
> * Lid switch
> * Sleep/suspend, nothing visibly broken on resume
>
> Not working:
> * Speakers (WIP, pin guessing, x4 WSA8845)
> * Microphones (WIP, pin guessing)
> * Fingerprint Reader (WIP, USB MP with ptn3222)
> * USB as DP/USB3 (WIP, PS8830 based)
> * Camera
> * Battery Info
>
> Should be working, but cannot be tested due to lack of hw:
> * Higher res OLED, higher res IPS panels
My suspicion is that OLED vs IPS will require different dtb. I'm
expecting the OLED to use samsung,atna33xc20 panel driver (see "arm64:
dts: qcom: x1e80100-yoga: Update panel bindings"), but IPS can
probably use edp-panel. I'm not sure if anyone has gotten both panels
working on any other device that has both IPS and OLED variants, so
this remains a theory. The t14s, which also has both IPS and OLED,
has different DMI/CHID values for the different SKUs, so DtbLoader
should be able to pick the correct dtb, once it exists.
BR,
-R
> * Touchscreen
>
> Signed-off-by: Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
> ---
> arch/arm64/boot/dts/qcom/Makefile | 1 +
> .../dts/qcom/x1e80100-dell-tributo-13.dts | 860 ++++++++++++++++++
> 2 files changed, 861 insertions(+)
> create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts
>
> diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> index ae002c7cf126..111c589d6bae 100644
> --- a/arch/arm64/boot/dts/qcom/Makefile
> +++ b/arch/arm64/boot/dts/qcom/Makefile
> @@ -271,6 +271,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8650-qrd.dtb
> dtb-$(CONFIG_ARCH_QCOM) += x1e78100-lenovo-thinkpad-t14s.dtb
> dtb-$(CONFIG_ARCH_QCOM) += x1e80100-asus-vivobook-s15.dtb
> dtb-$(CONFIG_ARCH_QCOM) += x1e80100-crd.dtb
> +dtb-$(CONFIG_ARCH_QCOM) += x1e80100-dell-tributo-13.dtb
> dtb-$(CONFIG_ARCH_QCOM) += x1e80100-lenovo-yoga-slim7x.dtb
> dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-romulus13.dtb
> dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-romulus15.dtb
> diff --git a/arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts b/arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts
> new file mode 100644
> index 000000000000..d387f133c398
> --- /dev/null
> +++ b/arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts
> @@ -0,0 +1,860 @@
> +// SPDX-License-Identifier: BSD-3-Clause
> +/*
> + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
> + * Copyright (c) 2024 Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
> + */
> +
> +/dts-v1/;
> +
> +#include <dt-bindings/gpio/gpio.h>
> +#include <dt-bindings/input/gpio-keys.h>
> +#include <dt-bindings/input/input.h>
> +#include <dt-bindings/leds/common.h>
> +#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
> +
> +#include "x1e80100.dtsi"
> +#include "x1e80100-pmics.dtsi"
> +
> +/ {
> + model = "Dell XPS 13 9345";
> + compatible = "dell,tributo-13", "qcom,x1e80100";
> + chassis-type = "laptop";
> +
> + gpio-keys {
> + compatible = "gpio-keys";
> +
> + pinctrl-0 = <&hall_int_n_default>;
> + pinctrl-names = "default";
> +
> + switch-lid {
> + gpios = <&tlmm 92 GPIO_ACTIVE_LOW>;
> + linux,input-type = <EV_SW>;
> + linux,code = <SW_LID>;
> + wakeup-source;
> + wakeup-event-action = <EV_ACT_DEASSERTED>;
> + };
> + };
> +
> + leds {
> + compatible = "gpio-leds";
> +
> + pinctrl-names = "default";
> + pinctrl-0 = <&cam_indicator_en>;
> +
> + led-camera-indicator {
> + label = "white:camera-indicator";
> + function = LED_FUNCTION_INDICATOR;
> + color = <LED_COLOR_ID_WHITE>;
> + gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
> + linux,default-trigger = "none";
> + default-state = "off";
> + /* Reuse as a panic indicator until we get a "camera on" trigger */
> + panic-indicator;
> + };
> + };
> +
> + pmic-glink {
> + compatible = "qcom,x1e80100-pmic-glink",
> + "qcom,sm8550-pmic-glink",
> + "qcom,pmic-glink";
> + orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>,
> + <&tlmm 123 GPIO_ACTIVE_HIGH>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + /* Right-side USB Type-C port */
> + connector@0 {
> + compatible = "usb-c-connector";
> + reg = <0>;
> + power-role = "dual";
> + data-role = "dual";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> +
> + pmic_glink_ss0_hs_in: endpoint {
> + remote-endpoint = <&usb_1_ss0_dwc3_hs>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> +
> + pmic_glink_ss0_ss_in: endpoint {
> + remote-endpoint = <&usb_1_ss0_qmpphy_out>;
> + };
> + };
> + };
> + };
> +
> + /* Left-side USB Type-C port */
> + connector@1 {
> + compatible = "usb-c-connector";
> + reg = <1>;
> + power-role = "dual";
> + data-role = "dual";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> +
> + pmic_glink_ss1_hs_in: endpoint {
> + remote-endpoint = <&usb_1_ss1_dwc3_hs>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> +
> + pmic_glink_ss1_ss_in: endpoint {
> + remote-endpoint = <&usb_1_ss1_qmpphy_out>;
> + };
> + };
> + };
> + };
> + };
> +
> + reserved-memory {
> + linux,cma {
> + compatible = "shared-dma-pool";
> + size = <0x0 0x8000000>;
> + reusable;
> + linux,cma-default;
> + };
> + };
> +
> + vph_pwr: vph-pwr-regulator {
> + compatible = "regulator-fixed";
> +
> + regulator-name = "vph_pwr";
> + regulator-min-microvolt = <3700000>;
> + regulator-max-microvolt = <3700000>;
> +
> + regulator-always-on;
> + regulator-boot-on;
> + };
> +
> + vreg_edp_3p3: regulator-edp-3p3 {
> + compatible = "regulator-fixed";
> +
> + regulator-name = "VREG_EDP_3P3";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> +
> + gpio = <&tlmm 70 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> +
> + pinctrl-0 = <&edp_reg_en>;
> + pinctrl-names = "default";
> +
> + regulator-boot-on;
> + };
> +
> + vreg_nvme: regulator-nvme {
> + compatible = "regulator-fixed";
> +
> + regulator-name = "VREG_NVME_3P3";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> +
> + gpio = <&tlmm 18 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> +
> + pinctrl-0 = <&nvme_reg_en>;
> + pinctrl-names = "default";
> + };
> +};
> +
> +&apps_rsc {
> + regulators-0 {
> + compatible = "qcom,pm8550-rpmh-regulators";
> + qcom,pmic-id = "b";
> + vdd-bob1-supply = <&vph_pwr>;
> + vdd-bob2-supply = <&vph_pwr>;
> + vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>;
> + vdd-l2-l13-l14-supply = <&vreg_bob1>;
> + vdd-l5-l16-supply = <&vreg_bob1>;
> + vdd-l6-l7-supply = <&vreg_bob2>;
> + vdd-l8-l9-supply = <&vreg_bob1>;
> + vdd-l12-supply = <&vreg_s5j_1p2>;
> + vdd-l15-supply = <&vreg_s4c_1p8>;
> + vdd-l17-supply = <&vreg_bob2>;
> +
> + vreg_bob1: bob1 {
> + regulator-name = "vreg_bob1";
> + regulator-min-microvolt = <3008000>;
> + regulator-max-microvolt = <3960000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_bob2: bob2 {
> + regulator-name = "vreg_bob2";
> + regulator-min-microvolt = <2504000>;
> + regulator-max-microvolt = <3008000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l2b_3p0: ldo2 {
> + regulator-name = "vreg_l2b_3p0";
> + regulator-min-microvolt = <3072000>;
> + regulator-max-microvolt = <3072000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l4b_1p8: ldo4 {
> + regulator-name = "vreg_l4b_1p8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l6b_1p8: ldo6 {
> + regulator-name = "vreg_l6b_1p8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <2960000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l8b_3p0: ldo8 {
> + regulator-name = "vreg_l8b_3p0";
> + regulator-min-microvolt = <3072000>;
> + regulator-max-microvolt = <3072000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l9b_2p9: ldo9 {
> + regulator-name = "vreg_l9b_2p9";
> + regulator-min-microvolt = <2960000>;
> + regulator-max-microvolt = <2960000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l12b_1p2: ldo12 {
> + regulator-name = "vreg_l12b_1p2";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l13b_3p0: ldo13 {
> + regulator-name = "vreg_l13b_3p0";
> + regulator-min-microvolt = <3072000>;
> + regulator-max-microvolt = <3072000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l14b_3p0: ldo14 {
> + regulator-name = "vreg_l14b_3p0";
> + regulator-min-microvolt = <3072000>;
> + regulator-max-microvolt = <3072000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l15b_1p8: ldo15 {
> + regulator-name = "vreg_l15b_1p8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l17b_2p5: ldo17 {
> + regulator-name = "vreg_l17b_2p5";
> + regulator-min-microvolt = <2504000>;
> + regulator-max-microvolt = <2504000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +
> + regulators-1 {
> + compatible = "qcom,pm8550ve-rpmh-regulators";
> + qcom,pmic-id = "c";
> + vdd-l1-supply = <&vreg_s5j_1p2>;
> + vdd-l2-supply = <&vreg_s1f_0p7>;
> + vdd-l3-supply = <&vreg_s1f_0p7>;
> +
> + vreg_s4c_1p8: smps4 {
> + regulator-name = "vreg_s4c_1p8";
> + regulator-min-microvolt = <1856000>;
> + regulator-max-microvolt = <2000000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l1c_1p2: ldo1 {
> + regulator-name = "vreg_l1c_1p2";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l2c_0p8: ldo2 {
> + regulator-name = "vreg_l2c_0p8";
> + regulator-min-microvolt = <880000>;
> + regulator-max-microvolt = <880000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l3c_0p9: ldo3 {
> + regulator-name = "vreg_l3c_0p9";
> + regulator-min-microvolt = <920000>;
> + regulator-max-microvolt = <920000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +
> + regulators-2 {
> + compatible = "qcom,pmc8380-rpmh-regulators";
> + qcom,pmic-id = "d";
> + vdd-l1-supply = <&vreg_s1f_0p7>;
> + vdd-l2-supply = <&vreg_s1f_0p7>;
> + vdd-l3-supply = <&vreg_s4c_1p8>;
> + vdd-s1-supply = <&vph_pwr>;
> +
> + vreg_l1d_0p8: ldo1 {
> + regulator-name = "vreg_l1d_0p8";
> + regulator-min-microvolt = <880000>;
> + regulator-max-microvolt = <880000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l2d_0p9: ldo2 {
> + regulator-name = "vreg_l2d_0p9";
> + regulator-min-microvolt = <912000>;
> + regulator-max-microvolt = <912000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l3d_1p8: ldo3 {
> + regulator-name = "vreg_l3d_1p8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +
> + regulators-3 {
> + compatible = "qcom,pmc8380-rpmh-regulators";
> + qcom,pmic-id = "e";
> + vdd-l2-supply = <&vreg_s1f_0p7>;
> + vdd-l3-supply = <&vreg_s5j_1p2>;
> +
> + vreg_l2e_0p8: ldo2 {
> + regulator-name = "vreg_l2e_0p8";
> + regulator-min-microvolt = <880000>;
> + regulator-max-microvolt = <880000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l3e_1p2: ldo3 {
> + regulator-name = "vreg_l3e_1p2";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +
> + regulators-4 {
> + compatible = "qcom,pmc8380-rpmh-regulators";
> + qcom,pmic-id = "f";
> + vdd-l1-supply = <&vreg_s5j_1p2>;
> + vdd-l2-supply = <&vreg_s5j_1p2>;
> + vdd-l3-supply = <&vreg_s5j_1p2>;
> + vdd-s1-supply = <&vph_pwr>;
> +
> + vreg_s1f_0p7: smps1 {
> + regulator-name = "vreg_s1f_0p7";
> + regulator-min-microvolt = <700000>;
> + regulator-max-microvolt = <1100000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +
> + regulators-6 {
> + compatible = "qcom,pm8550ve-rpmh-regulators";
> + qcom,pmic-id = "i";
> + vdd-l1-supply = <&vreg_s4c_1p8>;
> + vdd-l2-supply = <&vreg_s5j_1p2>;
> + vdd-l3-supply = <&vreg_s1f_0p7>;
> + vdd-s1-supply = <&vph_pwr>;
> + vdd-s2-supply = <&vph_pwr>;
> +
> + vreg_s1i_0p9: smps1 {
> + regulator-name = "vreg_s1i_0p9";
> + regulator-min-microvolt = <900000>;
> + regulator-max-microvolt = <920000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_s2i_1p0: smps2 {
> + regulator-name = "vreg_s2i_1p0";
> + regulator-min-microvolt = <1000000>;
> + regulator-max-microvolt = <1100000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l1i_1p8: ldo1 {
> + regulator-name = "vreg_l1i_1p8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l2i_1p2: ldo2 {
> + regulator-name = "vreg_l2i_1p2";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l3i_0p8: ldo3 {
> + regulator-name = "vreg_l3i_0p8";
> + regulator-min-microvolt = <880000>;
> + regulator-max-microvolt = <880000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +
> + regulators-7 {
> + compatible = "qcom,pm8550ve-rpmh-regulators";
> + qcom,pmic-id = "j";
> + vdd-l1-supply = <&vreg_s1f_0p7>;
> + vdd-l2-supply = <&vreg_s5j_1p2>;
> + vdd-l3-supply = <&vreg_s1f_0p7>;
> + vdd-s5-supply = <&vph_pwr>;
> +
> + vreg_s5j_1p2: smps5 {
> + regulator-name = "vreg_s5j_1p2";
> + regulator-min-microvolt = <1256000>;
> + regulator-max-microvolt = <1304000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l1j_0p9: ldo1 {
> + regulator-name = "vreg_l1j_0p9";
> + regulator-min-microvolt = <912000>;
> + regulator-max-microvolt = <912000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l2j_1p2: ldo2 {
> + regulator-name = "vreg_l2j_1p2";
> + regulator-min-microvolt = <1256000>;
> + regulator-max-microvolt = <1256000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l3j_0p8: ldo3 {
> + regulator-name = "vreg_l3j_0p8";
> + regulator-min-microvolt = <880000>;
> + regulator-max-microvolt = <880000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +};
> +
> +&pcie4 {
> + perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
> + wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
> +
> + pinctrl-0 = <&pcie4_default>;
> + pinctrl-names = "default";
> +
> + status = "okay";
> +};
> +
> +&pcie4_phy {
> + vdda-phy-supply = <&vreg_l3i_0p8>;
> + vdda-pll-supply = <&vreg_l3e_1p2>;
> +
> + status = "okay";
> +};
> +
> +&pcie6a {
> + perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
> + wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
> +
> + vddpe-3v3-supply = <&vreg_nvme>;
> +
> + pinctrl-0 = <&pcie6a_default>;
> + pinctrl-names = "default";
> +
> + status = "okay";
> +};
> +
> +&pcie6a_phy {
> + vdda-phy-supply = <&vreg_l1d_0p8>;
> + vdda-pll-supply = <&vreg_l2j_1p2>;
> +
> + status = "okay";
> +};
> +
> +&qupv3_0 {
> + status = "okay";
> +};
> +
> +&qupv3_1 {
> + status = "okay";
> +};
> +
> +&qupv3_2 {
> + status = "okay";
> +};
> +
> +&remoteproc_adsp {
> + firmware-name = "qcom/x1e80100/dell/tributo/qcadsp8380.mbn",
> + "qcom/x1e80100/dell/tributo/adsp_dtbs.elf";
> +
> + status = "okay";
> +};
> +
> +&remoteproc_cdsp {
> + firmware-name = "qcom/x1e80100/dell/tributo/qccdsp8380.mbn",
> + "qcom/x1e80100/dell/tributo/cdsp_dtbs.elf";
> +
> + status = "okay";
> +};
> +
> +&gpu {
> + status = "okay";
> +
> + zap-shader {
> + firmware-name = "qcom/x1e80100/dell/tributo/qcdxkmsuc8380.mbn";
> + };
> +};
> +
> +&mdss {
> + status = "okay";
> +};
> +
> +&mdss_dp3 {
> + compatible = "qcom,x1e80100-dp";
> + /delete-property/ #sound-dai-cells;
> +
> + status = "okay";
> +
> + aux-bus {
> + panel {
> + /* 1920x1200 IPS panel is SHP1593, PNP09FF compatible */
> + compatible = "edp-panel";
> + power-supply = <&vreg_edp_3p3>;
> +
> + port {
> + edp_panel_in: endpoint {
> + remote-endpoint = <&mdss_dp3_out>;
> + };
> + };
> + };
> + };
> +
> + ports {
> + port@1 {
> + reg = <1>;
> +
> + mdss_dp3_out: endpoint {
> + data-lanes = <0 1 2 3>;
> + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
> +
> + remote-endpoint = <&edp_panel_in>;
> + };
> + };
> + };
> +};
> +
> +&mdss_dp3_phy {
> + vdda-phy-supply = <&vreg_l3j_0p8>;
> + vdda-pll-supply = <&vreg_l2j_1p2>;
> +
> + status = "okay";
> +};
> +
> +&i2c0 {
> + clock-frequency = <400000>;
> + status = "okay";
> +
> + keyboard@5 {
> + compatible = "hid-over-i2c";
> + reg = <0x5>;
> +
> + hid-descr-addr = <0x20>;
> + interrupts-extended = <&tlmm 67 IRQ_TYPE_LEVEL_LOW>;
> +
> + pinctrl-0 = <&kybd_default>;
> + pinctrl-names = "default";
> +
> + wakeup-source;
> + };
> +};
> +
> +&i2c3 {
> + clock-frequency = <400000>;
> + status = "disabled";
> + /* PS8830 Retimer @0x8 */
> + /* Unknown device @0x9 */
> +};
> +
> +&i2c5 {
> + clock-frequency = <100000>;
> + status = "disabled";
> + /* Unknown device @0x3b */
> +};
> +
> +&i2c7 {
> + clock-frequency = <400000>;
> + status = "disabled";
> + /* PS8830 Retimer @0x8 */
> + /* Unknown device @0x9 */
> +};
> +
> +&i2c8 {
> + clock-frequency = <400000>;
> +
> + status = "okay";
> +
> + touchscreen@0 {
> + compatible = "hid-over-i2c";
> + reg = <0x0>;
> +
> + hid-descr-addr = <0x1>;
> + interrupts-extended = <&tlmm 51 IRQ_TYPE_LEVEL_LOW>;
> +
> + pinctrl-0 = <&ts0_default>;
> + pinctrl-names = "default";
> + };
> +};
> +
> +&i2c9 {
> + clock-frequency = <400000>;
> + status = "disabled";
> + /* USB3 retimer device @0x4f */
> +};
> +
> +&i2c17 {
> + clock-frequency = <400000>;
> + status = "okay";
> +
> + touchpad@2c {
> + compatible = "hid-over-i2c";
> + reg = <0x2c>;
> +
> + hid-descr-addr = <0x20>;
> + interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>;
> +
> + pinctrl-0 = <&tpad_default>;
> + pinctrl-names = "default";
> +
> + wakeup-source;
> + };
> +};
> +
> +&smb2360_0_eusb2_repeater {
> + vdd18-supply = <&vreg_l3d_1p8>;
> + vdd3-supply = <&vreg_l2b_3p0>;
> +};
> +
> +&smb2360_1_eusb2_repeater {
> + vdd18-supply = <&vreg_l3d_1p8>;
> + vdd3-supply = <&vreg_l14b_3p0>;
> +};
> +
> +&tlmm {
> + gpio-reserved-ranges = <44 4>, /* SPI11 (TPM) */
> + <76 4>, /* SPI19 (TZ Protected) */
> + <238 1>; /* UFS Reset */
> +
> + edp_reg_en: edp-reg-en-state {
> + pins = "gpio70";
> + function = "gpio";
> + drive-strength = <16>;
> + bias-disable;
> + };
> +
> + kybd_default: kybd-default-state {
> + pins = "gpio67";
> + function = "gpio";
> + bias-pull-up;
> + };
> +
> + nvme_reg_en: nvme-reg-en-state {
> + pins = "gpio18";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + tpad_default: tpad-default-state {
> + disable-pins {
> + pins = "gpio38";
> + function = "gpio";
> + output-high;
> + };
> +
> + int-n-pins {
> + pins = "gpio3";
> + function = "gpio";
> + bias-pull-up;
> + };
> +
> + reset-n-pins {
> + pins = "gpio52";
> + function = "gpio";
> + bias-disable;
> + };
> + };
> +
> + ts0_default: ts0-default-state {
> + disable-pins {
> + pins = "gpio75";
> + function = "gpio";
> + output-high;
> + };
> +
> + int-n-pins {
> + pins = "gpio51";
> + function = "gpio";
> + bias-pull-up;
> + };
> +
> + reset-n-pins {
> + /* Technically should be High-Z input */
> + pins = "gpio48";
> + function = "gpio";
> + output-low;
> + drive-strength = <2>;
> + };
> + };
> +
> + hall_int_n_default: hall-int-n-state {
> + pins = "gpio92";
> + function = "gpio";
> +
> + bias-disable;
> + };
> +
> + pcie4_default: pcie4-default-state {
> + clkreq-n-pins {
> + pins = "gpio147";
> + function = "pcie4_clk";
> + drive-strength = <2>;
> + bias-pull-up;
> + };
> +
> + perst-n-pins {
> + pins = "gpio146";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + wake-n-pins {
> + pins = "gpio148";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-pull-up;
> + };
> + };
> +
> + pcie6a_default: pcie6a-default-state {
> + clkreq-n-pins {
> + pins = "gpio153";
> + function = "pcie6a_clk";
> + drive-strength = <2>;
> + bias-pull-up;
> + };
> +
> + perst-n-pins {
> + pins = "gpio152";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + wake-n-pins {
> + pins = "gpio154";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-pull-up;
> + };
> + };
> +
> + cam_indicator_en: cam-indicator-en-state {
> + pins = "gpio110";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +};
> +
> +&uart21 {
> + compatible = "qcom,geni-debug-uart";
> + status = "okay";
> +};
> +
> +&usb_1_ss0_hsphy {
> + vdd-supply = <&vreg_l3j_0p8>;
> + vdda12-supply = <&vreg_l2j_1p2>;
> +
> + phys = <&smb2360_0_eusb2_repeater>;
> +
> + status = "okay";
> +};
> +
> +&usb_1_ss0_qmpphy {
> + vdda-phy-supply = <&vreg_l3e_1p2>;
> + vdda-pll-supply = <&vreg_l1j_0p9>;
> +
> + status = "okay";
> +};
> +
> +&usb_1_ss0 {
> + status = "okay";
> +};
> +
> +&usb_1_ss0_dwc3 {
> + dr_mode = "host";
> +};
> +
> +&usb_1_ss0_dwc3_hs {
> + remote-endpoint = <&pmic_glink_ss0_hs_in>;
> +};
> +
> +&usb_1_ss0_qmpphy_out {
> + remote-endpoint = <&pmic_glink_ss0_ss_in>;
> +};
> +
> +&usb_1_ss1_hsphy {
> + vdd-supply = <&vreg_l3j_0p8>;
> + vdda12-supply = <&vreg_l2j_1p2>;
> +
> + phys = <&smb2360_1_eusb2_repeater>;
> +
> + status = "okay";
> +};
> +
> +&usb_1_ss1_qmpphy {
> + vdda-phy-supply = <&vreg_l3e_1p2>;
> + vdda-pll-supply = <&vreg_l2d_0p9>;
> +
> + status = "okay";
> +};
> +
> +&usb_1_ss1 {
> + status = "okay";
> +};
> +
> +&usb_1_ss1_dwc3 {
> + dr_mode = "host";
> +};
> +
> +&usb_1_ss1_dwc3_hs {
> + remote-endpoint = <&pmic_glink_ss1_hs_in>;
> +};
> +
> +&usb_1_ss1_qmpphy_out {
> + remote-endpoint = <&pmic_glink_ss1_ss_in>;
> +};
> --
> 2.43.0
>
>
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v1 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
2024-09-20 17:25 ` Rob Clark
@ 2024-09-21 12:16 ` alex vinarskis
2024-09-21 15:07 ` Rob Clark
0 siblings, 1 reply; 12+ messages in thread
From: alex vinarskis @ 2024-09-21 12:16 UTC (permalink / raw)
To: Rob Clark
Cc: Bjorn Andersson, Krzysztof Kozlowski, Dmitry Baryshkov,
linux-arm-msm, devicetree, linux-kernel, Konrad Dybcio,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Rob Clark,
Peter de Kraker
On Sat, 21 Sept 2024 at 00:25, Rob Clark <robdclark@gmail.com> wrote:
>
> On Thu, Sep 19, 2024 at 10:01 AM Aleksandrs Vinarskis
> <alex.vinarskis@gmail.com> wrote:
> >
> > Initial support for Dell XPS 9345 13" 2024 (Tributo) based on X1E80100.
> >
> > Working:
> > * Touchpad
> > * Keyboard (only post suspend&resume, i2c-hid patch WIP)
> > * eDP, with brightness control
> > * NVME
> > * USB Type-C ports in USB2/USB3 (one orientation)
> > * WiFi
> > * GPU/aDSP/cDSP firmware loading (requires binaries from Windows)
> > * Lid switch
> > * Sleep/suspend, nothing visibly broken on resume
> >
> > Not working:
> > * Speakers (WIP, pin guessing, x4 WSA8845)
> > * Microphones (WIP, pin guessing)
> > * Fingerprint Reader (WIP, USB MP with ptn3222)
> > * USB as DP/USB3 (WIP, PS8830 based)
> > * Camera
> > * Battery Info
> >
> > Should be working, but cannot be tested due to lack of hw:
> > * Higher res OLED, higher res IPS panels
>
> My suspicion is that OLED vs IPS will require different dtb. I'm
> expecting the OLED to use samsung,atna33xc20 panel driver (see "arm64:
> dts: qcom: x1e80100-yoga: Update panel bindings"), but IPS can
> probably use edp-panel. I'm not sure if anyone has gotten both panels
> working on any other device that has both IPS and OLED variants, so
> this remains a theory. The t14s, which also has both IPS and OLED,
> has different DMI/CHID values for the different SKUs, so DtbLoader
> should be able to pick the correct dtb, once it exists.
Thanks for the input.
Will take a look at that driver. I have briefly looked into .inf from
Dell's Windows driver trying to identify them - all three panels have
dell-specific model naming, which unfortunately does not help much. As
far as I found from unofficial sources (1), the particular OLED is LG
made, not Samsung.
Luckily, Peter de Kraker (CCed) has reached out to me yesterday as he
got an OLED variant - will test on his machine in the following weeks,
as well as record CHIDs once he is able to boot with a working
display. Sounds rather unscalable though if each variant of laptop
would need a separate dtb? Eg. Dell's Inspiron model supports both
x1e80 and x1e78 (luckily no OLEDs though). If some OEM would release a
model with both displays and SoCs customizable, the number of variants
would grow pretty fast...
[1] https://www.thelec.net/news/articleView.html?idxno=4858
Alex
>
> BR,
> -R
>
> > * Touchscreen
> >
> > Signed-off-by: Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
> > ---
> > arch/arm64/boot/dts/qcom/Makefile | 1 +
> > .../dts/qcom/x1e80100-dell-tributo-13.dts | 860 ++++++++++++++++++
> > 2 files changed, 861 insertions(+)
> > create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts
> >
> > diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> > index ae002c7cf126..111c589d6bae 100644
> > --- a/arch/arm64/boot/dts/qcom/Makefile
> > +++ b/arch/arm64/boot/dts/qcom/Makefile
> > @@ -271,6 +271,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8650-qrd.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += x1e78100-lenovo-thinkpad-t14s.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += x1e80100-asus-vivobook-s15.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += x1e80100-crd.dtb
> > +dtb-$(CONFIG_ARCH_QCOM) += x1e80100-dell-tributo-13.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += x1e80100-lenovo-yoga-slim7x.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-romulus13.dtb
> > dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-romulus15.dtb
> > diff --git a/arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts b/arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts
> > new file mode 100644
> > index 000000000000..d387f133c398
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts
> > @@ -0,0 +1,860 @@
> > +// SPDX-License-Identifier: BSD-3-Clause
> > +/*
> > + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
> > + * Copyright (c) 2024 Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
> > + */
> > +
> > +/dts-v1/;
> > +
> > +#include <dt-bindings/gpio/gpio.h>
> > +#include <dt-bindings/input/gpio-keys.h>
> > +#include <dt-bindings/input/input.h>
> > +#include <dt-bindings/leds/common.h>
> > +#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
> > +
> > +#include "x1e80100.dtsi"
> > +#include "x1e80100-pmics.dtsi"
> > +
> > +/ {
> > + model = "Dell XPS 13 9345";
> > + compatible = "dell,tributo-13", "qcom,x1e80100";
> > + chassis-type = "laptop";
> > +
> > + gpio-keys {
> > + compatible = "gpio-keys";
> > +
> > + pinctrl-0 = <&hall_int_n_default>;
> > + pinctrl-names = "default";
> > +
> > + switch-lid {
> > + gpios = <&tlmm 92 GPIO_ACTIVE_LOW>;
> > + linux,input-type = <EV_SW>;
> > + linux,code = <SW_LID>;
> > + wakeup-source;
> > + wakeup-event-action = <EV_ACT_DEASSERTED>;
> > + };
> > + };
> > +
> > + leds {
> > + compatible = "gpio-leds";
> > +
> > + pinctrl-names = "default";
> > + pinctrl-0 = <&cam_indicator_en>;
> > +
> > + led-camera-indicator {
> > + label = "white:camera-indicator";
> > + function = LED_FUNCTION_INDICATOR;
> > + color = <LED_COLOR_ID_WHITE>;
> > + gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
> > + linux,default-trigger = "none";
> > + default-state = "off";
> > + /* Reuse as a panic indicator until we get a "camera on" trigger */
> > + panic-indicator;
> > + };
> > + };
> > +
> > + pmic-glink {
> > + compatible = "qcom,x1e80100-pmic-glink",
> > + "qcom,sm8550-pmic-glink",
> > + "qcom,pmic-glink";
> > + orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>,
> > + <&tlmm 123 GPIO_ACTIVE_HIGH>;
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + /* Right-side USB Type-C port */
> > + connector@0 {
> > + compatible = "usb-c-connector";
> > + reg = <0>;
> > + power-role = "dual";
> > + data-role = "dual";
> > +
> > + ports {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + port@0 {
> > + reg = <0>;
> > +
> > + pmic_glink_ss0_hs_in: endpoint {
> > + remote-endpoint = <&usb_1_ss0_dwc3_hs>;
> > + };
> > + };
> > +
> > + port@1 {
> > + reg = <1>;
> > +
> > + pmic_glink_ss0_ss_in: endpoint {
> > + remote-endpoint = <&usb_1_ss0_qmpphy_out>;
> > + };
> > + };
> > + };
> > + };
> > +
> > + /* Left-side USB Type-C port */
> > + connector@1 {
> > + compatible = "usb-c-connector";
> > + reg = <1>;
> > + power-role = "dual";
> > + data-role = "dual";
> > +
> > + ports {
> > + #address-cells = <1>;
> > + #size-cells = <0>;
> > +
> > + port@0 {
> > + reg = <0>;
> > +
> > + pmic_glink_ss1_hs_in: endpoint {
> > + remote-endpoint = <&usb_1_ss1_dwc3_hs>;
> > + };
> > + };
> > +
> > + port@1 {
> > + reg = <1>;
> > +
> > + pmic_glink_ss1_ss_in: endpoint {
> > + remote-endpoint = <&usb_1_ss1_qmpphy_out>;
> > + };
> > + };
> > + };
> > + };
> > + };
> > +
> > + reserved-memory {
> > + linux,cma {
> > + compatible = "shared-dma-pool";
> > + size = <0x0 0x8000000>;
> > + reusable;
> > + linux,cma-default;
> > + };
> > + };
> > +
> > + vph_pwr: vph-pwr-regulator {
> > + compatible = "regulator-fixed";
> > +
> > + regulator-name = "vph_pwr";
> > + regulator-min-microvolt = <3700000>;
> > + regulator-max-microvolt = <3700000>;
> > +
> > + regulator-always-on;
> > + regulator-boot-on;
> > + };
> > +
> > + vreg_edp_3p3: regulator-edp-3p3 {
> > + compatible = "regulator-fixed";
> > +
> > + regulator-name = "VREG_EDP_3P3";
> > + regulator-min-microvolt = <3300000>;
> > + regulator-max-microvolt = <3300000>;
> > +
> > + gpio = <&tlmm 70 GPIO_ACTIVE_HIGH>;
> > + enable-active-high;
> > +
> > + pinctrl-0 = <&edp_reg_en>;
> > + pinctrl-names = "default";
> > +
> > + regulator-boot-on;
> > + };
> > +
> > + vreg_nvme: regulator-nvme {
> > + compatible = "regulator-fixed";
> > +
> > + regulator-name = "VREG_NVME_3P3";
> > + regulator-min-microvolt = <3300000>;
> > + regulator-max-microvolt = <3300000>;
> > +
> > + gpio = <&tlmm 18 GPIO_ACTIVE_HIGH>;
> > + enable-active-high;
> > +
> > + pinctrl-0 = <&nvme_reg_en>;
> > + pinctrl-names = "default";
> > + };
> > +};
> > +
> > +&apps_rsc {
> > + regulators-0 {
> > + compatible = "qcom,pm8550-rpmh-regulators";
> > + qcom,pmic-id = "b";
> > + vdd-bob1-supply = <&vph_pwr>;
> > + vdd-bob2-supply = <&vph_pwr>;
> > + vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>;
> > + vdd-l2-l13-l14-supply = <&vreg_bob1>;
> > + vdd-l5-l16-supply = <&vreg_bob1>;
> > + vdd-l6-l7-supply = <&vreg_bob2>;
> > + vdd-l8-l9-supply = <&vreg_bob1>;
> > + vdd-l12-supply = <&vreg_s5j_1p2>;
> > + vdd-l15-supply = <&vreg_s4c_1p8>;
> > + vdd-l17-supply = <&vreg_bob2>;
> > +
> > + vreg_bob1: bob1 {
> > + regulator-name = "vreg_bob1";
> > + regulator-min-microvolt = <3008000>;
> > + regulator-max-microvolt = <3960000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > +
> > + vreg_bob2: bob2 {
> > + regulator-name = "vreg_bob2";
> > + regulator-min-microvolt = <2504000>;
> > + regulator-max-microvolt = <3008000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > +
> > + vreg_l2b_3p0: ldo2 {
> > + regulator-name = "vreg_l2b_3p0";
> > + regulator-min-microvolt = <3072000>;
> > + regulator-max-microvolt = <3072000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > +
> > + vreg_l4b_1p8: ldo4 {
> > + regulator-name = "vreg_l4b_1p8";
> > + regulator-min-microvolt = <1800000>;
> > + regulator-max-microvolt = <1800000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > +
> > + vreg_l6b_1p8: ldo6 {
> > + regulator-name = "vreg_l6b_1p8";
> > + regulator-min-microvolt = <1800000>;
> > + regulator-max-microvolt = <2960000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > +
> > + vreg_l8b_3p0: ldo8 {
> > + regulator-name = "vreg_l8b_3p0";
> > + regulator-min-microvolt = <3072000>;
> > + regulator-max-microvolt = <3072000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > +
> > + vreg_l9b_2p9: ldo9 {
> > + regulator-name = "vreg_l9b_2p9";
> > + regulator-min-microvolt = <2960000>;
> > + regulator-max-microvolt = <2960000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > +
> > + vreg_l12b_1p2: ldo12 {
> > + regulator-name = "vreg_l12b_1p2";
> > + regulator-min-microvolt = <1200000>;
> > + regulator-max-microvolt = <1200000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > +
> > + vreg_l13b_3p0: ldo13 {
> > + regulator-name = "vreg_l13b_3p0";
> > + regulator-min-microvolt = <3072000>;
> > + regulator-max-microvolt = <3072000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > +
> > + vreg_l14b_3p0: ldo14 {
> > + regulator-name = "vreg_l14b_3p0";
> > + regulator-min-microvolt = <3072000>;
> > + regulator-max-microvolt = <3072000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > +
> > + vreg_l15b_1p8: ldo15 {
> > + regulator-name = "vreg_l15b_1p8";
> > + regulator-min-microvolt = <1800000>;
> > + regulator-max-microvolt = <1800000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > +
> > + vreg_l17b_2p5: ldo17 {
> > + regulator-name = "vreg_l17b_2p5";
> > + regulator-min-microvolt = <2504000>;
> > + regulator-max-microvolt = <2504000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > + };
> > +
> > + regulators-1 {
> > + compatible = "qcom,pm8550ve-rpmh-regulators";
> > + qcom,pmic-id = "c";
> > + vdd-l1-supply = <&vreg_s5j_1p2>;
> > + vdd-l2-supply = <&vreg_s1f_0p7>;
> > + vdd-l3-supply = <&vreg_s1f_0p7>;
> > +
> > + vreg_s4c_1p8: smps4 {
> > + regulator-name = "vreg_s4c_1p8";
> > + regulator-min-microvolt = <1856000>;
> > + regulator-max-microvolt = <2000000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > +
> > + vreg_l1c_1p2: ldo1 {
> > + regulator-name = "vreg_l1c_1p2";
> > + regulator-min-microvolt = <1200000>;
> > + regulator-max-microvolt = <1200000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > +
> > + vreg_l2c_0p8: ldo2 {
> > + regulator-name = "vreg_l2c_0p8";
> > + regulator-min-microvolt = <880000>;
> > + regulator-max-microvolt = <880000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > +
> > + vreg_l3c_0p9: ldo3 {
> > + regulator-name = "vreg_l3c_0p9";
> > + regulator-min-microvolt = <920000>;
> > + regulator-max-microvolt = <920000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > + };
> > +
> > + regulators-2 {
> > + compatible = "qcom,pmc8380-rpmh-regulators";
> > + qcom,pmic-id = "d";
> > + vdd-l1-supply = <&vreg_s1f_0p7>;
> > + vdd-l2-supply = <&vreg_s1f_0p7>;
> > + vdd-l3-supply = <&vreg_s4c_1p8>;
> > + vdd-s1-supply = <&vph_pwr>;
> > +
> > + vreg_l1d_0p8: ldo1 {
> > + regulator-name = "vreg_l1d_0p8";
> > + regulator-min-microvolt = <880000>;
> > + regulator-max-microvolt = <880000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > +
> > + vreg_l2d_0p9: ldo2 {
> > + regulator-name = "vreg_l2d_0p9";
> > + regulator-min-microvolt = <912000>;
> > + regulator-max-microvolt = <912000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > +
> > + vreg_l3d_1p8: ldo3 {
> > + regulator-name = "vreg_l3d_1p8";
> > + regulator-min-microvolt = <1800000>;
> > + regulator-max-microvolt = <1800000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > + };
> > +
> > + regulators-3 {
> > + compatible = "qcom,pmc8380-rpmh-regulators";
> > + qcom,pmic-id = "e";
> > + vdd-l2-supply = <&vreg_s1f_0p7>;
> > + vdd-l3-supply = <&vreg_s5j_1p2>;
> > +
> > + vreg_l2e_0p8: ldo2 {
> > + regulator-name = "vreg_l2e_0p8";
> > + regulator-min-microvolt = <880000>;
> > + regulator-max-microvolt = <880000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > +
> > + vreg_l3e_1p2: ldo3 {
> > + regulator-name = "vreg_l3e_1p2";
> > + regulator-min-microvolt = <1200000>;
> > + regulator-max-microvolt = <1200000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > + };
> > +
> > + regulators-4 {
> > + compatible = "qcom,pmc8380-rpmh-regulators";
> > + qcom,pmic-id = "f";
> > + vdd-l1-supply = <&vreg_s5j_1p2>;
> > + vdd-l2-supply = <&vreg_s5j_1p2>;
> > + vdd-l3-supply = <&vreg_s5j_1p2>;
> > + vdd-s1-supply = <&vph_pwr>;
> > +
> > + vreg_s1f_0p7: smps1 {
> > + regulator-name = "vreg_s1f_0p7";
> > + regulator-min-microvolt = <700000>;
> > + regulator-max-microvolt = <1100000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > + };
> > +
> > + regulators-6 {
> > + compatible = "qcom,pm8550ve-rpmh-regulators";
> > + qcom,pmic-id = "i";
> > + vdd-l1-supply = <&vreg_s4c_1p8>;
> > + vdd-l2-supply = <&vreg_s5j_1p2>;
> > + vdd-l3-supply = <&vreg_s1f_0p7>;
> > + vdd-s1-supply = <&vph_pwr>;
> > + vdd-s2-supply = <&vph_pwr>;
> > +
> > + vreg_s1i_0p9: smps1 {
> > + regulator-name = "vreg_s1i_0p9";
> > + regulator-min-microvolt = <900000>;
> > + regulator-max-microvolt = <920000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > +
> > + vreg_s2i_1p0: smps2 {
> > + regulator-name = "vreg_s2i_1p0";
> > + regulator-min-microvolt = <1000000>;
> > + regulator-max-microvolt = <1100000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > +
> > + vreg_l1i_1p8: ldo1 {
> > + regulator-name = "vreg_l1i_1p8";
> > + regulator-min-microvolt = <1800000>;
> > + regulator-max-microvolt = <1800000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > +
> > + vreg_l2i_1p2: ldo2 {
> > + regulator-name = "vreg_l2i_1p2";
> > + regulator-min-microvolt = <1200000>;
> > + regulator-max-microvolt = <1200000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > +
> > + vreg_l3i_0p8: ldo3 {
> > + regulator-name = "vreg_l3i_0p8";
> > + regulator-min-microvolt = <880000>;
> > + regulator-max-microvolt = <880000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > + };
> > +
> > + regulators-7 {
> > + compatible = "qcom,pm8550ve-rpmh-regulators";
> > + qcom,pmic-id = "j";
> > + vdd-l1-supply = <&vreg_s1f_0p7>;
> > + vdd-l2-supply = <&vreg_s5j_1p2>;
> > + vdd-l3-supply = <&vreg_s1f_0p7>;
> > + vdd-s5-supply = <&vph_pwr>;
> > +
> > + vreg_s5j_1p2: smps5 {
> > + regulator-name = "vreg_s5j_1p2";
> > + regulator-min-microvolt = <1256000>;
> > + regulator-max-microvolt = <1304000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > +
> > + vreg_l1j_0p9: ldo1 {
> > + regulator-name = "vreg_l1j_0p9";
> > + regulator-min-microvolt = <912000>;
> > + regulator-max-microvolt = <912000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > +
> > + vreg_l2j_1p2: ldo2 {
> > + regulator-name = "vreg_l2j_1p2";
> > + regulator-min-microvolt = <1256000>;
> > + regulator-max-microvolt = <1256000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > +
> > + vreg_l3j_0p8: ldo3 {
> > + regulator-name = "vreg_l3j_0p8";
> > + regulator-min-microvolt = <880000>;
> > + regulator-max-microvolt = <880000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + };
> > + };
> > +};
> > +
> > +&pcie4 {
> > + perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
> > + wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
> > +
> > + pinctrl-0 = <&pcie4_default>;
> > + pinctrl-names = "default";
> > +
> > + status = "okay";
> > +};
> > +
> > +&pcie4_phy {
> > + vdda-phy-supply = <&vreg_l3i_0p8>;
> > + vdda-pll-supply = <&vreg_l3e_1p2>;
> > +
> > + status = "okay";
> > +};
> > +
> > +&pcie6a {
> > + perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
> > + wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
> > +
> > + vddpe-3v3-supply = <&vreg_nvme>;
> > +
> > + pinctrl-0 = <&pcie6a_default>;
> > + pinctrl-names = "default";
> > +
> > + status = "okay";
> > +};
> > +
> > +&pcie6a_phy {
> > + vdda-phy-supply = <&vreg_l1d_0p8>;
> > + vdda-pll-supply = <&vreg_l2j_1p2>;
> > +
> > + status = "okay";
> > +};
> > +
> > +&qupv3_0 {
> > + status = "okay";
> > +};
> > +
> > +&qupv3_1 {
> > + status = "okay";
> > +};
> > +
> > +&qupv3_2 {
> > + status = "okay";
> > +};
> > +
> > +&remoteproc_adsp {
> > + firmware-name = "qcom/x1e80100/dell/tributo/qcadsp8380.mbn",
> > + "qcom/x1e80100/dell/tributo/adsp_dtbs.elf";
> > +
> > + status = "okay";
> > +};
> > +
> > +&remoteproc_cdsp {
> > + firmware-name = "qcom/x1e80100/dell/tributo/qccdsp8380.mbn",
> > + "qcom/x1e80100/dell/tributo/cdsp_dtbs.elf";
> > +
> > + status = "okay";
> > +};
> > +
> > +&gpu {
> > + status = "okay";
> > +
> > + zap-shader {
> > + firmware-name = "qcom/x1e80100/dell/tributo/qcdxkmsuc8380.mbn";
> > + };
> > +};
> > +
> > +&mdss {
> > + status = "okay";
> > +};
> > +
> > +&mdss_dp3 {
> > + compatible = "qcom,x1e80100-dp";
> > + /delete-property/ #sound-dai-cells;
> > +
> > + status = "okay";
> > +
> > + aux-bus {
> > + panel {
> > + /* 1920x1200 IPS panel is SHP1593, PNP09FF compatible */
> > + compatible = "edp-panel";
> > + power-supply = <&vreg_edp_3p3>;
> > +
> > + port {
> > + edp_panel_in: endpoint {
> > + remote-endpoint = <&mdss_dp3_out>;
> > + };
> > + };
> > + };
> > + };
> > +
> > + ports {
> > + port@1 {
> > + reg = <1>;
> > +
> > + mdss_dp3_out: endpoint {
> > + data-lanes = <0 1 2 3>;
> > + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
> > +
> > + remote-endpoint = <&edp_panel_in>;
> > + };
> > + };
> > + };
> > +};
> > +
> > +&mdss_dp3_phy {
> > + vdda-phy-supply = <&vreg_l3j_0p8>;
> > + vdda-pll-supply = <&vreg_l2j_1p2>;
> > +
> > + status = "okay";
> > +};
> > +
> > +&i2c0 {
> > + clock-frequency = <400000>;
> > + status = "okay";
> > +
> > + keyboard@5 {
> > + compatible = "hid-over-i2c";
> > + reg = <0x5>;
> > +
> > + hid-descr-addr = <0x20>;
> > + interrupts-extended = <&tlmm 67 IRQ_TYPE_LEVEL_LOW>;
> > +
> > + pinctrl-0 = <&kybd_default>;
> > + pinctrl-names = "default";
> > +
> > + wakeup-source;
> > + };
> > +};
> > +
> > +&i2c3 {
> > + clock-frequency = <400000>;
> > + status = "disabled";
> > + /* PS8830 Retimer @0x8 */
> > + /* Unknown device @0x9 */
> > +};
> > +
> > +&i2c5 {
> > + clock-frequency = <100000>;
> > + status = "disabled";
> > + /* Unknown device @0x3b */
> > +};
> > +
> > +&i2c7 {
> > + clock-frequency = <400000>;
> > + status = "disabled";
> > + /* PS8830 Retimer @0x8 */
> > + /* Unknown device @0x9 */
> > +};
> > +
> > +&i2c8 {
> > + clock-frequency = <400000>;
> > +
> > + status = "okay";
> > +
> > + touchscreen@0 {
> > + compatible = "hid-over-i2c";
> > + reg = <0x0>;
> > +
> > + hid-descr-addr = <0x1>;
> > + interrupts-extended = <&tlmm 51 IRQ_TYPE_LEVEL_LOW>;
> > +
> > + pinctrl-0 = <&ts0_default>;
> > + pinctrl-names = "default";
> > + };
> > +};
> > +
> > +&i2c9 {
> > + clock-frequency = <400000>;
> > + status = "disabled";
> > + /* USB3 retimer device @0x4f */
> > +};
> > +
> > +&i2c17 {
> > + clock-frequency = <400000>;
> > + status = "okay";
> > +
> > + touchpad@2c {
> > + compatible = "hid-over-i2c";
> > + reg = <0x2c>;
> > +
> > + hid-descr-addr = <0x20>;
> > + interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>;
> > +
> > + pinctrl-0 = <&tpad_default>;
> > + pinctrl-names = "default";
> > +
> > + wakeup-source;
> > + };
> > +};
> > +
> > +&smb2360_0_eusb2_repeater {
> > + vdd18-supply = <&vreg_l3d_1p8>;
> > + vdd3-supply = <&vreg_l2b_3p0>;
> > +};
> > +
> > +&smb2360_1_eusb2_repeater {
> > + vdd18-supply = <&vreg_l3d_1p8>;
> > + vdd3-supply = <&vreg_l14b_3p0>;
> > +};
> > +
> > +&tlmm {
> > + gpio-reserved-ranges = <44 4>, /* SPI11 (TPM) */
> > + <76 4>, /* SPI19 (TZ Protected) */
> > + <238 1>; /* UFS Reset */
> > +
> > + edp_reg_en: edp-reg-en-state {
> > + pins = "gpio70";
> > + function = "gpio";
> > + drive-strength = <16>;
> > + bias-disable;
> > + };
> > +
> > + kybd_default: kybd-default-state {
> > + pins = "gpio67";
> > + function = "gpio";
> > + bias-pull-up;
> > + };
> > +
> > + nvme_reg_en: nvme-reg-en-state {
> > + pins = "gpio18";
> > + function = "gpio";
> > + drive-strength = <2>;
> > + bias-disable;
> > + };
> > +
> > + tpad_default: tpad-default-state {
> > + disable-pins {
> > + pins = "gpio38";
> > + function = "gpio";
> > + output-high;
> > + };
> > +
> > + int-n-pins {
> > + pins = "gpio3";
> > + function = "gpio";
> > + bias-pull-up;
> > + };
> > +
> > + reset-n-pins {
> > + pins = "gpio52";
> > + function = "gpio";
> > + bias-disable;
> > + };
> > + };
> > +
> > + ts0_default: ts0-default-state {
> > + disable-pins {
> > + pins = "gpio75";
> > + function = "gpio";
> > + output-high;
> > + };
> > +
> > + int-n-pins {
> > + pins = "gpio51";
> > + function = "gpio";
> > + bias-pull-up;
> > + };
> > +
> > + reset-n-pins {
> > + /* Technically should be High-Z input */
> > + pins = "gpio48";
> > + function = "gpio";
> > + output-low;
> > + drive-strength = <2>;
> > + };
> > + };
> > +
> > + hall_int_n_default: hall-int-n-state {
> > + pins = "gpio92";
> > + function = "gpio";
> > +
> > + bias-disable;
> > + };
> > +
> > + pcie4_default: pcie4-default-state {
> > + clkreq-n-pins {
> > + pins = "gpio147";
> > + function = "pcie4_clk";
> > + drive-strength = <2>;
> > + bias-pull-up;
> > + };
> > +
> > + perst-n-pins {
> > + pins = "gpio146";
> > + function = "gpio";
> > + drive-strength = <2>;
> > + bias-disable;
> > + };
> > +
> > + wake-n-pins {
> > + pins = "gpio148";
> > + function = "gpio";
> > + drive-strength = <2>;
> > + bias-pull-up;
> > + };
> > + };
> > +
> > + pcie6a_default: pcie6a-default-state {
> > + clkreq-n-pins {
> > + pins = "gpio153";
> > + function = "pcie6a_clk";
> > + drive-strength = <2>;
> > + bias-pull-up;
> > + };
> > +
> > + perst-n-pins {
> > + pins = "gpio152";
> > + function = "gpio";
> > + drive-strength = <2>;
> > + bias-disable;
> > + };
> > +
> > + wake-n-pins {
> > + pins = "gpio154";
> > + function = "gpio";
> > + drive-strength = <2>;
> > + bias-pull-up;
> > + };
> > + };
> > +
> > + cam_indicator_en: cam-indicator-en-state {
> > + pins = "gpio110";
> > + function = "gpio";
> > + drive-strength = <2>;
> > + bias-disable;
> > + };
> > +};
> > +
> > +&uart21 {
> > + compatible = "qcom,geni-debug-uart";
> > + status = "okay";
> > +};
> > +
> > +&usb_1_ss0_hsphy {
> > + vdd-supply = <&vreg_l3j_0p8>;
> > + vdda12-supply = <&vreg_l2j_1p2>;
> > +
> > + phys = <&smb2360_0_eusb2_repeater>;
> > +
> > + status = "okay";
> > +};
> > +
> > +&usb_1_ss0_qmpphy {
> > + vdda-phy-supply = <&vreg_l3e_1p2>;
> > + vdda-pll-supply = <&vreg_l1j_0p9>;
> > +
> > + status = "okay";
> > +};
> > +
> > +&usb_1_ss0 {
> > + status = "okay";
> > +};
> > +
> > +&usb_1_ss0_dwc3 {
> > + dr_mode = "host";
> > +};
> > +
> > +&usb_1_ss0_dwc3_hs {
> > + remote-endpoint = <&pmic_glink_ss0_hs_in>;
> > +};
> > +
> > +&usb_1_ss0_qmpphy_out {
> > + remote-endpoint = <&pmic_glink_ss0_ss_in>;
> > +};
> > +
> > +&usb_1_ss1_hsphy {
> > + vdd-supply = <&vreg_l3j_0p8>;
> > + vdda12-supply = <&vreg_l2j_1p2>;
> > +
> > + phys = <&smb2360_1_eusb2_repeater>;
> > +
> > + status = "okay";
> > +};
> > +
> > +&usb_1_ss1_qmpphy {
> > + vdda-phy-supply = <&vreg_l3e_1p2>;
> > + vdda-pll-supply = <&vreg_l2d_0p9>;
> > +
> > + status = "okay";
> > +};
> > +
> > +&usb_1_ss1 {
> > + status = "okay";
> > +};
> > +
> > +&usb_1_ss1_dwc3 {
> > + dr_mode = "host";
> > +};
> > +
> > +&usb_1_ss1_dwc3_hs {
> > + remote-endpoint = <&pmic_glink_ss1_hs_in>;
> > +};
> > +
> > +&usb_1_ss1_qmpphy_out {
> > + remote-endpoint = <&pmic_glink_ss1_ss_in>;
> > +};
> > --
> > 2.43.0
> >
> >
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [PATCH v1 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
2024-09-21 12:16 ` alex vinarskis
@ 2024-09-21 15:07 ` Rob Clark
0 siblings, 0 replies; 12+ messages in thread
From: Rob Clark @ 2024-09-21 15:07 UTC (permalink / raw)
To: alex vinarskis
Cc: Bjorn Andersson, Krzysztof Kozlowski, Dmitry Baryshkov,
linux-arm-msm, devicetree, linux-kernel, Konrad Dybcio,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, Rob Clark,
Peter de Kraker
On Sat, Sep 21, 2024 at 5:16 AM alex vinarskis <alex.vinarskis@gmail.com> wrote:
>
> On Sat, 21 Sept 2024 at 00:25, Rob Clark <robdclark@gmail.com> wrote:
> >
> > On Thu, Sep 19, 2024 at 10:01 AM Aleksandrs Vinarskis
> > <alex.vinarskis@gmail.com> wrote:
> > >
> > > Initial support for Dell XPS 9345 13" 2024 (Tributo) based on X1E80100.
> > >
> > > Working:
> > > * Touchpad
> > > * Keyboard (only post suspend&resume, i2c-hid patch WIP)
> > > * eDP, with brightness control
> > > * NVME
> > > * USB Type-C ports in USB2/USB3 (one orientation)
> > > * WiFi
> > > * GPU/aDSP/cDSP firmware loading (requires binaries from Windows)
> > > * Lid switch
> > > * Sleep/suspend, nothing visibly broken on resume
> > >
> > > Not working:
> > > * Speakers (WIP, pin guessing, x4 WSA8845)
> > > * Microphones (WIP, pin guessing)
> > > * Fingerprint Reader (WIP, USB MP with ptn3222)
> > > * USB as DP/USB3 (WIP, PS8830 based)
> > > * Camera
> > > * Battery Info
> > >
> > > Should be working, but cannot be tested due to lack of hw:
> > > * Higher res OLED, higher res IPS panels
> >
> > My suspicion is that OLED vs IPS will require different dtb. I'm
> > expecting the OLED to use samsung,atna33xc20 panel driver (see "arm64:
> > dts: qcom: x1e80100-yoga: Update panel bindings"), but IPS can
> > probably use edp-panel. I'm not sure if anyone has gotten both panels
> > working on any other device that has both IPS and OLED variants, so
> > this remains a theory. The t14s, which also has both IPS and OLED,
> > has different DMI/CHID values for the different SKUs, so DtbLoader
> > should be able to pick the correct dtb, once it exists.
>
> Thanks for the input.
>
> Will take a look at that driver. I have briefly looked into .inf from
> Dell's Windows driver trying to identify them - all three panels have
> dell-specific model naming, which unfortunately does not help much. As
> far as I found from unofficial sources (1), the particular OLED is LG
> made, not Samsung.
Ok, if it is not a samsung panel, then maybe panel-edp will work. So
far all the OLEDs I've seen are samsung, and they have a different
power sequence (hence needing different panel driver)
> Luckily, Peter de Kraker (CCed) has reached out to me yesterday as he
> got an OLED variant - will test on his machine in the following weeks,
> as well as record CHIDs once he is able to boot with a working
> display. Sounds rather unscalable though if each variant of laptop
> would need a separate dtb? Eg. Dell's Inspiron model supports both
> x1e80 and x1e78 (luckily no OLEDs though). If some OEM would release a
> model with both displays and SoCs customizable, the number of variants
> would grow pretty fast...
So far, it is just the samsung panel vs everyone else, where we would
need different dtb. Maybe we come up with other variants, we'll see
as time goes on, but it shouldn't need to be for _every_ variant.
For the panel, edid-decode will tell us the panel name/vendor, ie.
something like:
cat /sys/devices/platform/soc@0/ae00000.display-subsystem/ae01000.display-controller/drm/card0/card0-eDP-1/edid
| edid-decode
BR,
-R
> [1] https://www.thelec.net/news/articleView.html?idxno=4858
>
> Alex
>
> >
> > BR,
> > -R
> >
> > > * Touchscreen
> > >
> > > Signed-off-by: Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
> > > ---
> > > arch/arm64/boot/dts/qcom/Makefile | 1 +
> > > .../dts/qcom/x1e80100-dell-tributo-13.dts | 860 ++++++++++++++++++
> > > 2 files changed, 861 insertions(+)
> > > create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts
> > >
> > > diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
> > > index ae002c7cf126..111c589d6bae 100644
> > > --- a/arch/arm64/boot/dts/qcom/Makefile
> > > +++ b/arch/arm64/boot/dts/qcom/Makefile
> > > @@ -271,6 +271,7 @@ dtb-$(CONFIG_ARCH_QCOM) += sm8650-qrd.dtb
> > > dtb-$(CONFIG_ARCH_QCOM) += x1e78100-lenovo-thinkpad-t14s.dtb
> > > dtb-$(CONFIG_ARCH_QCOM) += x1e80100-asus-vivobook-s15.dtb
> > > dtb-$(CONFIG_ARCH_QCOM) += x1e80100-crd.dtb
> > > +dtb-$(CONFIG_ARCH_QCOM) += x1e80100-dell-tributo-13.dtb
> > > dtb-$(CONFIG_ARCH_QCOM) += x1e80100-lenovo-yoga-slim7x.dtb
> > > dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-romulus13.dtb
> > > dtb-$(CONFIG_ARCH_QCOM) += x1e80100-microsoft-romulus15.dtb
> > > diff --git a/arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts b/arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts
> > > new file mode 100644
> > > index 000000000000..d387f133c398
> > > --- /dev/null
> > > +++ b/arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts
> > > @@ -0,0 +1,860 @@
> > > +// SPDX-License-Identifier: BSD-3-Clause
> > > +/*
> > > + * Copyright (c) 2024 Qualcomm Innovation Center, Inc. All rights reserved.
> > > + * Copyright (c) 2024 Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
> > > + */
> > > +
> > > +/dts-v1/;
> > > +
> > > +#include <dt-bindings/gpio/gpio.h>
> > > +#include <dt-bindings/input/gpio-keys.h>
> > > +#include <dt-bindings/input/input.h>
> > > +#include <dt-bindings/leds/common.h>
> > > +#include <dt-bindings/regulator/qcom,rpmh-regulator.h>
> > > +
> > > +#include "x1e80100.dtsi"
> > > +#include "x1e80100-pmics.dtsi"
> > > +
> > > +/ {
> > > + model = "Dell XPS 13 9345";
> > > + compatible = "dell,tributo-13", "qcom,x1e80100";
> > > + chassis-type = "laptop";
> > > +
> > > + gpio-keys {
> > > + compatible = "gpio-keys";
> > > +
> > > + pinctrl-0 = <&hall_int_n_default>;
> > > + pinctrl-names = "default";
> > > +
> > > + switch-lid {
> > > + gpios = <&tlmm 92 GPIO_ACTIVE_LOW>;
> > > + linux,input-type = <EV_SW>;
> > > + linux,code = <SW_LID>;
> > > + wakeup-source;
> > > + wakeup-event-action = <EV_ACT_DEASSERTED>;
> > > + };
> > > + };
> > > +
> > > + leds {
> > > + compatible = "gpio-leds";
> > > +
> > > + pinctrl-names = "default";
> > > + pinctrl-0 = <&cam_indicator_en>;
> > > +
> > > + led-camera-indicator {
> > > + label = "white:camera-indicator";
> > > + function = LED_FUNCTION_INDICATOR;
> > > + color = <LED_COLOR_ID_WHITE>;
> > > + gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
> > > + linux,default-trigger = "none";
> > > + default-state = "off";
> > > + /* Reuse as a panic indicator until we get a "camera on" trigger */
> > > + panic-indicator;
> > > + };
> > > + };
> > > +
> > > + pmic-glink {
> > > + compatible = "qcom,x1e80100-pmic-glink",
> > > + "qcom,sm8550-pmic-glink",
> > > + "qcom,pmic-glink";
> > > + orientation-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>,
> > > + <&tlmm 123 GPIO_ACTIVE_HIGH>;
> > > + #address-cells = <1>;
> > > + #size-cells = <0>;
> > > +
> > > + /* Right-side USB Type-C port */
> > > + connector@0 {
> > > + compatible = "usb-c-connector";
> > > + reg = <0>;
> > > + power-role = "dual";
> > > + data-role = "dual";
> > > +
> > > + ports {
> > > + #address-cells = <1>;
> > > + #size-cells = <0>;
> > > +
> > > + port@0 {
> > > + reg = <0>;
> > > +
> > > + pmic_glink_ss0_hs_in: endpoint {
> > > + remote-endpoint = <&usb_1_ss0_dwc3_hs>;
> > > + };
> > > + };
> > > +
> > > + port@1 {
> > > + reg = <1>;
> > > +
> > > + pmic_glink_ss0_ss_in: endpoint {
> > > + remote-endpoint = <&usb_1_ss0_qmpphy_out>;
> > > + };
> > > + };
> > > + };
> > > + };
> > > +
> > > + /* Left-side USB Type-C port */
> > > + connector@1 {
> > > + compatible = "usb-c-connector";
> > > + reg = <1>;
> > > + power-role = "dual";
> > > + data-role = "dual";
> > > +
> > > + ports {
> > > + #address-cells = <1>;
> > > + #size-cells = <0>;
> > > +
> > > + port@0 {
> > > + reg = <0>;
> > > +
> > > + pmic_glink_ss1_hs_in: endpoint {
> > > + remote-endpoint = <&usb_1_ss1_dwc3_hs>;
> > > + };
> > > + };
> > > +
> > > + port@1 {
> > > + reg = <1>;
> > > +
> > > + pmic_glink_ss1_ss_in: endpoint {
> > > + remote-endpoint = <&usb_1_ss1_qmpphy_out>;
> > > + };
> > > + };
> > > + };
> > > + };
> > > + };
> > > +
> > > + reserved-memory {
> > > + linux,cma {
> > > + compatible = "shared-dma-pool";
> > > + size = <0x0 0x8000000>;
> > > + reusable;
> > > + linux,cma-default;
> > > + };
> > > + };
> > > +
> > > + vph_pwr: vph-pwr-regulator {
> > > + compatible = "regulator-fixed";
> > > +
> > > + regulator-name = "vph_pwr";
> > > + regulator-min-microvolt = <3700000>;
> > > + regulator-max-microvolt = <3700000>;
> > > +
> > > + regulator-always-on;
> > > + regulator-boot-on;
> > > + };
> > > +
> > > + vreg_edp_3p3: regulator-edp-3p3 {
> > > + compatible = "regulator-fixed";
> > > +
> > > + regulator-name = "VREG_EDP_3P3";
> > > + regulator-min-microvolt = <3300000>;
> > > + regulator-max-microvolt = <3300000>;
> > > +
> > > + gpio = <&tlmm 70 GPIO_ACTIVE_HIGH>;
> > > + enable-active-high;
> > > +
> > > + pinctrl-0 = <&edp_reg_en>;
> > > + pinctrl-names = "default";
> > > +
> > > + regulator-boot-on;
> > > + };
> > > +
> > > + vreg_nvme: regulator-nvme {
> > > + compatible = "regulator-fixed";
> > > +
> > > + regulator-name = "VREG_NVME_3P3";
> > > + regulator-min-microvolt = <3300000>;
> > > + regulator-max-microvolt = <3300000>;
> > > +
> > > + gpio = <&tlmm 18 GPIO_ACTIVE_HIGH>;
> > > + enable-active-high;
> > > +
> > > + pinctrl-0 = <&nvme_reg_en>;
> > > + pinctrl-names = "default";
> > > + };
> > > +};
> > > +
> > > +&apps_rsc {
> > > + regulators-0 {
> > > + compatible = "qcom,pm8550-rpmh-regulators";
> > > + qcom,pmic-id = "b";
> > > + vdd-bob1-supply = <&vph_pwr>;
> > > + vdd-bob2-supply = <&vph_pwr>;
> > > + vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>;
> > > + vdd-l2-l13-l14-supply = <&vreg_bob1>;
> > > + vdd-l5-l16-supply = <&vreg_bob1>;
> > > + vdd-l6-l7-supply = <&vreg_bob2>;
> > > + vdd-l8-l9-supply = <&vreg_bob1>;
> > > + vdd-l12-supply = <&vreg_s5j_1p2>;
> > > + vdd-l15-supply = <&vreg_s4c_1p8>;
> > > + vdd-l17-supply = <&vreg_bob2>;
> > > +
> > > + vreg_bob1: bob1 {
> > > + regulator-name = "vreg_bob1";
> > > + regulator-min-microvolt = <3008000>;
> > > + regulator-max-microvolt = <3960000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > +
> > > + vreg_bob2: bob2 {
> > > + regulator-name = "vreg_bob2";
> > > + regulator-min-microvolt = <2504000>;
> > > + regulator-max-microvolt = <3008000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > +
> > > + vreg_l2b_3p0: ldo2 {
> > > + regulator-name = "vreg_l2b_3p0";
> > > + regulator-min-microvolt = <3072000>;
> > > + regulator-max-microvolt = <3072000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > +
> > > + vreg_l4b_1p8: ldo4 {
> > > + regulator-name = "vreg_l4b_1p8";
> > > + regulator-min-microvolt = <1800000>;
> > > + regulator-max-microvolt = <1800000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > +
> > > + vreg_l6b_1p8: ldo6 {
> > > + regulator-name = "vreg_l6b_1p8";
> > > + regulator-min-microvolt = <1800000>;
> > > + regulator-max-microvolt = <2960000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > +
> > > + vreg_l8b_3p0: ldo8 {
> > > + regulator-name = "vreg_l8b_3p0";
> > > + regulator-min-microvolt = <3072000>;
> > > + regulator-max-microvolt = <3072000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > +
> > > + vreg_l9b_2p9: ldo9 {
> > > + regulator-name = "vreg_l9b_2p9";
> > > + regulator-min-microvolt = <2960000>;
> > > + regulator-max-microvolt = <2960000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > +
> > > + vreg_l12b_1p2: ldo12 {
> > > + regulator-name = "vreg_l12b_1p2";
> > > + regulator-min-microvolt = <1200000>;
> > > + regulator-max-microvolt = <1200000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > +
> > > + vreg_l13b_3p0: ldo13 {
> > > + regulator-name = "vreg_l13b_3p0";
> > > + regulator-min-microvolt = <3072000>;
> > > + regulator-max-microvolt = <3072000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > +
> > > + vreg_l14b_3p0: ldo14 {
> > > + regulator-name = "vreg_l14b_3p0";
> > > + regulator-min-microvolt = <3072000>;
> > > + regulator-max-microvolt = <3072000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > +
> > > + vreg_l15b_1p8: ldo15 {
> > > + regulator-name = "vreg_l15b_1p8";
> > > + regulator-min-microvolt = <1800000>;
> > > + regulator-max-microvolt = <1800000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > +
> > > + vreg_l17b_2p5: ldo17 {
> > > + regulator-name = "vreg_l17b_2p5";
> > > + regulator-min-microvolt = <2504000>;
> > > + regulator-max-microvolt = <2504000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > + };
> > > +
> > > + regulators-1 {
> > > + compatible = "qcom,pm8550ve-rpmh-regulators";
> > > + qcom,pmic-id = "c";
> > > + vdd-l1-supply = <&vreg_s5j_1p2>;
> > > + vdd-l2-supply = <&vreg_s1f_0p7>;
> > > + vdd-l3-supply = <&vreg_s1f_0p7>;
> > > +
> > > + vreg_s4c_1p8: smps4 {
> > > + regulator-name = "vreg_s4c_1p8";
> > > + regulator-min-microvolt = <1856000>;
> > > + regulator-max-microvolt = <2000000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > +
> > > + vreg_l1c_1p2: ldo1 {
> > > + regulator-name = "vreg_l1c_1p2";
> > > + regulator-min-microvolt = <1200000>;
> > > + regulator-max-microvolt = <1200000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > +
> > > + vreg_l2c_0p8: ldo2 {
> > > + regulator-name = "vreg_l2c_0p8";
> > > + regulator-min-microvolt = <880000>;
> > > + regulator-max-microvolt = <880000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > +
> > > + vreg_l3c_0p9: ldo3 {
> > > + regulator-name = "vreg_l3c_0p9";
> > > + regulator-min-microvolt = <920000>;
> > > + regulator-max-microvolt = <920000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > + };
> > > +
> > > + regulators-2 {
> > > + compatible = "qcom,pmc8380-rpmh-regulators";
> > > + qcom,pmic-id = "d";
> > > + vdd-l1-supply = <&vreg_s1f_0p7>;
> > > + vdd-l2-supply = <&vreg_s1f_0p7>;
> > > + vdd-l3-supply = <&vreg_s4c_1p8>;
> > > + vdd-s1-supply = <&vph_pwr>;
> > > +
> > > + vreg_l1d_0p8: ldo1 {
> > > + regulator-name = "vreg_l1d_0p8";
> > > + regulator-min-microvolt = <880000>;
> > > + regulator-max-microvolt = <880000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > +
> > > + vreg_l2d_0p9: ldo2 {
> > > + regulator-name = "vreg_l2d_0p9";
> > > + regulator-min-microvolt = <912000>;
> > > + regulator-max-microvolt = <912000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > +
> > > + vreg_l3d_1p8: ldo3 {
> > > + regulator-name = "vreg_l3d_1p8";
> > > + regulator-min-microvolt = <1800000>;
> > > + regulator-max-microvolt = <1800000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > + };
> > > +
> > > + regulators-3 {
> > > + compatible = "qcom,pmc8380-rpmh-regulators";
> > > + qcom,pmic-id = "e";
> > > + vdd-l2-supply = <&vreg_s1f_0p7>;
> > > + vdd-l3-supply = <&vreg_s5j_1p2>;
> > > +
> > > + vreg_l2e_0p8: ldo2 {
> > > + regulator-name = "vreg_l2e_0p8";
> > > + regulator-min-microvolt = <880000>;
> > > + regulator-max-microvolt = <880000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > +
> > > + vreg_l3e_1p2: ldo3 {
> > > + regulator-name = "vreg_l3e_1p2";
> > > + regulator-min-microvolt = <1200000>;
> > > + regulator-max-microvolt = <1200000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > + };
> > > +
> > > + regulators-4 {
> > > + compatible = "qcom,pmc8380-rpmh-regulators";
> > > + qcom,pmic-id = "f";
> > > + vdd-l1-supply = <&vreg_s5j_1p2>;
> > > + vdd-l2-supply = <&vreg_s5j_1p2>;
> > > + vdd-l3-supply = <&vreg_s5j_1p2>;
> > > + vdd-s1-supply = <&vph_pwr>;
> > > +
> > > + vreg_s1f_0p7: smps1 {
> > > + regulator-name = "vreg_s1f_0p7";
> > > + regulator-min-microvolt = <700000>;
> > > + regulator-max-microvolt = <1100000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > + };
> > > +
> > > + regulators-6 {
> > > + compatible = "qcom,pm8550ve-rpmh-regulators";
> > > + qcom,pmic-id = "i";
> > > + vdd-l1-supply = <&vreg_s4c_1p8>;
> > > + vdd-l2-supply = <&vreg_s5j_1p2>;
> > > + vdd-l3-supply = <&vreg_s1f_0p7>;
> > > + vdd-s1-supply = <&vph_pwr>;
> > > + vdd-s2-supply = <&vph_pwr>;
> > > +
> > > + vreg_s1i_0p9: smps1 {
> > > + regulator-name = "vreg_s1i_0p9";
> > > + regulator-min-microvolt = <900000>;
> > > + regulator-max-microvolt = <920000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > +
> > > + vreg_s2i_1p0: smps2 {
> > > + regulator-name = "vreg_s2i_1p0";
> > > + regulator-min-microvolt = <1000000>;
> > > + regulator-max-microvolt = <1100000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > +
> > > + vreg_l1i_1p8: ldo1 {
> > > + regulator-name = "vreg_l1i_1p8";
> > > + regulator-min-microvolt = <1800000>;
> > > + regulator-max-microvolt = <1800000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > +
> > > + vreg_l2i_1p2: ldo2 {
> > > + regulator-name = "vreg_l2i_1p2";
> > > + regulator-min-microvolt = <1200000>;
> > > + regulator-max-microvolt = <1200000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > +
> > > + vreg_l3i_0p8: ldo3 {
> > > + regulator-name = "vreg_l3i_0p8";
> > > + regulator-min-microvolt = <880000>;
> > > + regulator-max-microvolt = <880000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > + };
> > > +
> > > + regulators-7 {
> > > + compatible = "qcom,pm8550ve-rpmh-regulators";
> > > + qcom,pmic-id = "j";
> > > + vdd-l1-supply = <&vreg_s1f_0p7>;
> > > + vdd-l2-supply = <&vreg_s5j_1p2>;
> > > + vdd-l3-supply = <&vreg_s1f_0p7>;
> > > + vdd-s5-supply = <&vph_pwr>;
> > > +
> > > + vreg_s5j_1p2: smps5 {
> > > + regulator-name = "vreg_s5j_1p2";
> > > + regulator-min-microvolt = <1256000>;
> > > + regulator-max-microvolt = <1304000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > +
> > > + vreg_l1j_0p9: ldo1 {
> > > + regulator-name = "vreg_l1j_0p9";
> > > + regulator-min-microvolt = <912000>;
> > > + regulator-max-microvolt = <912000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > +
> > > + vreg_l2j_1p2: ldo2 {
> > > + regulator-name = "vreg_l2j_1p2";
> > > + regulator-min-microvolt = <1256000>;
> > > + regulator-max-microvolt = <1256000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > +
> > > + vreg_l3j_0p8: ldo3 {
> > > + regulator-name = "vreg_l3j_0p8";
> > > + regulator-min-microvolt = <880000>;
> > > + regulator-max-microvolt = <880000>;
> > > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > > + };
> > > + };
> > > +};
> > > +
> > > +&pcie4 {
> > > + perst-gpios = <&tlmm 146 GPIO_ACTIVE_LOW>;
> > > + wake-gpios = <&tlmm 148 GPIO_ACTIVE_LOW>;
> > > +
> > > + pinctrl-0 = <&pcie4_default>;
> > > + pinctrl-names = "default";
> > > +
> > > + status = "okay";
> > > +};
> > > +
> > > +&pcie4_phy {
> > > + vdda-phy-supply = <&vreg_l3i_0p8>;
> > > + vdda-pll-supply = <&vreg_l3e_1p2>;
> > > +
> > > + status = "okay";
> > > +};
> > > +
> > > +&pcie6a {
> > > + perst-gpios = <&tlmm 152 GPIO_ACTIVE_LOW>;
> > > + wake-gpios = <&tlmm 154 GPIO_ACTIVE_LOW>;
> > > +
> > > + vddpe-3v3-supply = <&vreg_nvme>;
> > > +
> > > + pinctrl-0 = <&pcie6a_default>;
> > > + pinctrl-names = "default";
> > > +
> > > + status = "okay";
> > > +};
> > > +
> > > +&pcie6a_phy {
> > > + vdda-phy-supply = <&vreg_l1d_0p8>;
> > > + vdda-pll-supply = <&vreg_l2j_1p2>;
> > > +
> > > + status = "okay";
> > > +};
> > > +
> > > +&qupv3_0 {
> > > + status = "okay";
> > > +};
> > > +
> > > +&qupv3_1 {
> > > + status = "okay";
> > > +};
> > > +
> > > +&qupv3_2 {
> > > + status = "okay";
> > > +};
> > > +
> > > +&remoteproc_adsp {
> > > + firmware-name = "qcom/x1e80100/dell/tributo/qcadsp8380.mbn",
> > > + "qcom/x1e80100/dell/tributo/adsp_dtbs.elf";
> > > +
> > > + status = "okay";
> > > +};
> > > +
> > > +&remoteproc_cdsp {
> > > + firmware-name = "qcom/x1e80100/dell/tributo/qccdsp8380.mbn",
> > > + "qcom/x1e80100/dell/tributo/cdsp_dtbs.elf";
> > > +
> > > + status = "okay";
> > > +};
> > > +
> > > +&gpu {
> > > + status = "okay";
> > > +
> > > + zap-shader {
> > > + firmware-name = "qcom/x1e80100/dell/tributo/qcdxkmsuc8380.mbn";
> > > + };
> > > +};
> > > +
> > > +&mdss {
> > > + status = "okay";
> > > +};
> > > +
> > > +&mdss_dp3 {
> > > + compatible = "qcom,x1e80100-dp";
> > > + /delete-property/ #sound-dai-cells;
> > > +
> > > + status = "okay";
> > > +
> > > + aux-bus {
> > > + panel {
> > > + /* 1920x1200 IPS panel is SHP1593, PNP09FF compatible */
> > > + compatible = "edp-panel";
> > > + power-supply = <&vreg_edp_3p3>;
> > > +
> > > + port {
> > > + edp_panel_in: endpoint {
> > > + remote-endpoint = <&mdss_dp3_out>;
> > > + };
> > > + };
> > > + };
> > > + };
> > > +
> > > + ports {
> > > + port@1 {
> > > + reg = <1>;
> > > +
> > > + mdss_dp3_out: endpoint {
> > > + data-lanes = <0 1 2 3>;
> > > + link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
> > > +
> > > + remote-endpoint = <&edp_panel_in>;
> > > + };
> > > + };
> > > + };
> > > +};
> > > +
> > > +&mdss_dp3_phy {
> > > + vdda-phy-supply = <&vreg_l3j_0p8>;
> > > + vdda-pll-supply = <&vreg_l2j_1p2>;
> > > +
> > > + status = "okay";
> > > +};
> > > +
> > > +&i2c0 {
> > > + clock-frequency = <400000>;
> > > + status = "okay";
> > > +
> > > + keyboard@5 {
> > > + compatible = "hid-over-i2c";
> > > + reg = <0x5>;
> > > +
> > > + hid-descr-addr = <0x20>;
> > > + interrupts-extended = <&tlmm 67 IRQ_TYPE_LEVEL_LOW>;
> > > +
> > > + pinctrl-0 = <&kybd_default>;
> > > + pinctrl-names = "default";
> > > +
> > > + wakeup-source;
> > > + };
> > > +};
> > > +
> > > +&i2c3 {
> > > + clock-frequency = <400000>;
> > > + status = "disabled";
> > > + /* PS8830 Retimer @0x8 */
> > > + /* Unknown device @0x9 */
> > > +};
> > > +
> > > +&i2c5 {
> > > + clock-frequency = <100000>;
> > > + status = "disabled";
> > > + /* Unknown device @0x3b */
> > > +};
> > > +
> > > +&i2c7 {
> > > + clock-frequency = <400000>;
> > > + status = "disabled";
> > > + /* PS8830 Retimer @0x8 */
> > > + /* Unknown device @0x9 */
> > > +};
> > > +
> > > +&i2c8 {
> > > + clock-frequency = <400000>;
> > > +
> > > + status = "okay";
> > > +
> > > + touchscreen@0 {
> > > + compatible = "hid-over-i2c";
> > > + reg = <0x0>;
> > > +
> > > + hid-descr-addr = <0x1>;
> > > + interrupts-extended = <&tlmm 51 IRQ_TYPE_LEVEL_LOW>;
> > > +
> > > + pinctrl-0 = <&ts0_default>;
> > > + pinctrl-names = "default";
> > > + };
> > > +};
> > > +
> > > +&i2c9 {
> > > + clock-frequency = <400000>;
> > > + status = "disabled";
> > > + /* USB3 retimer device @0x4f */
> > > +};
> > > +
> > > +&i2c17 {
> > > + clock-frequency = <400000>;
> > > + status = "okay";
> > > +
> > > + touchpad@2c {
> > > + compatible = "hid-over-i2c";
> > > + reg = <0x2c>;
> > > +
> > > + hid-descr-addr = <0x20>;
> > > + interrupts-extended = <&tlmm 3 IRQ_TYPE_LEVEL_LOW>;
> > > +
> > > + pinctrl-0 = <&tpad_default>;
> > > + pinctrl-names = "default";
> > > +
> > > + wakeup-source;
> > > + };
> > > +};
> > > +
> > > +&smb2360_0_eusb2_repeater {
> > > + vdd18-supply = <&vreg_l3d_1p8>;
> > > + vdd3-supply = <&vreg_l2b_3p0>;
> > > +};
> > > +
> > > +&smb2360_1_eusb2_repeater {
> > > + vdd18-supply = <&vreg_l3d_1p8>;
> > > + vdd3-supply = <&vreg_l14b_3p0>;
> > > +};
> > > +
> > > +&tlmm {
> > > + gpio-reserved-ranges = <44 4>, /* SPI11 (TPM) */
> > > + <76 4>, /* SPI19 (TZ Protected) */
> > > + <238 1>; /* UFS Reset */
> > > +
> > > + edp_reg_en: edp-reg-en-state {
> > > + pins = "gpio70";
> > > + function = "gpio";
> > > + drive-strength = <16>;
> > > + bias-disable;
> > > + };
> > > +
> > > + kybd_default: kybd-default-state {
> > > + pins = "gpio67";
> > > + function = "gpio";
> > > + bias-pull-up;
> > > + };
> > > +
> > > + nvme_reg_en: nvme-reg-en-state {
> > > + pins = "gpio18";
> > > + function = "gpio";
> > > + drive-strength = <2>;
> > > + bias-disable;
> > > + };
> > > +
> > > + tpad_default: tpad-default-state {
> > > + disable-pins {
> > > + pins = "gpio38";
> > > + function = "gpio";
> > > + output-high;
> > > + };
> > > +
> > > + int-n-pins {
> > > + pins = "gpio3";
> > > + function = "gpio";
> > > + bias-pull-up;
> > > + };
> > > +
> > > + reset-n-pins {
> > > + pins = "gpio52";
> > > + function = "gpio";
> > > + bias-disable;
> > > + };
> > > + };
> > > +
> > > + ts0_default: ts0-default-state {
> > > + disable-pins {
> > > + pins = "gpio75";
> > > + function = "gpio";
> > > + output-high;
> > > + };
> > > +
> > > + int-n-pins {
> > > + pins = "gpio51";
> > > + function = "gpio";
> > > + bias-pull-up;
> > > + };
> > > +
> > > + reset-n-pins {
> > > + /* Technically should be High-Z input */
> > > + pins = "gpio48";
> > > + function = "gpio";
> > > + output-low;
> > > + drive-strength = <2>;
> > > + };
> > > + };
> > > +
> > > + hall_int_n_default: hall-int-n-state {
> > > + pins = "gpio92";
> > > + function = "gpio";
> > > +
> > > + bias-disable;
> > > + };
> > > +
> > > + pcie4_default: pcie4-default-state {
> > > + clkreq-n-pins {
> > > + pins = "gpio147";
> > > + function = "pcie4_clk";
> > > + drive-strength = <2>;
> > > + bias-pull-up;
> > > + };
> > > +
> > > + perst-n-pins {
> > > + pins = "gpio146";
> > > + function = "gpio";
> > > + drive-strength = <2>;
> > > + bias-disable;
> > > + };
> > > +
> > > + wake-n-pins {
> > > + pins = "gpio148";
> > > + function = "gpio";
> > > + drive-strength = <2>;
> > > + bias-pull-up;
> > > + };
> > > + };
> > > +
> > > + pcie6a_default: pcie6a-default-state {
> > > + clkreq-n-pins {
> > > + pins = "gpio153";
> > > + function = "pcie6a_clk";
> > > + drive-strength = <2>;
> > > + bias-pull-up;
> > > + };
> > > +
> > > + perst-n-pins {
> > > + pins = "gpio152";
> > > + function = "gpio";
> > > + drive-strength = <2>;
> > > + bias-disable;
> > > + };
> > > +
> > > + wake-n-pins {
> > > + pins = "gpio154";
> > > + function = "gpio";
> > > + drive-strength = <2>;
> > > + bias-pull-up;
> > > + };
> > > + };
> > > +
> > > + cam_indicator_en: cam-indicator-en-state {
> > > + pins = "gpio110";
> > > + function = "gpio";
> > > + drive-strength = <2>;
> > > + bias-disable;
> > > + };
> > > +};
> > > +
> > > +&uart21 {
> > > + compatible = "qcom,geni-debug-uart";
> > > + status = "okay";
> > > +};
> > > +
> > > +&usb_1_ss0_hsphy {
> > > + vdd-supply = <&vreg_l3j_0p8>;
> > > + vdda12-supply = <&vreg_l2j_1p2>;
> > > +
> > > + phys = <&smb2360_0_eusb2_repeater>;
> > > +
> > > + status = "okay";
> > > +};
> > > +
> > > +&usb_1_ss0_qmpphy {
> > > + vdda-phy-supply = <&vreg_l3e_1p2>;
> > > + vdda-pll-supply = <&vreg_l1j_0p9>;
> > > +
> > > + status = "okay";
> > > +};
> > > +
> > > +&usb_1_ss0 {
> > > + status = "okay";
> > > +};
> > > +
> > > +&usb_1_ss0_dwc3 {
> > > + dr_mode = "host";
> > > +};
> > > +
> > > +&usb_1_ss0_dwc3_hs {
> > > + remote-endpoint = <&pmic_glink_ss0_hs_in>;
> > > +};
> > > +
> > > +&usb_1_ss0_qmpphy_out {
> > > + remote-endpoint = <&pmic_glink_ss0_ss_in>;
> > > +};
> > > +
> > > +&usb_1_ss1_hsphy {
> > > + vdd-supply = <&vreg_l3j_0p8>;
> > > + vdda12-supply = <&vreg_l2j_1p2>;
> > > +
> > > + phys = <&smb2360_1_eusb2_repeater>;
> > > +
> > > + status = "okay";
> > > +};
> > > +
> > > +&usb_1_ss1_qmpphy {
> > > + vdda-phy-supply = <&vreg_l3e_1p2>;
> > > + vdda-pll-supply = <&vreg_l2d_0p9>;
> > > +
> > > + status = "okay";
> > > +};
> > > +
> > > +&usb_1_ss1 {
> > > + status = "okay";
> > > +};
> > > +
> > > +&usb_1_ss1_dwc3 {
> > > + dr_mode = "host";
> > > +};
> > > +
> > > +&usb_1_ss1_dwc3_hs {
> > > + remote-endpoint = <&pmic_glink_ss1_hs_in>;
> > > +};
> > > +
> > > +&usb_1_ss1_qmpphy_out {
> > > + remote-endpoint = <&pmic_glink_ss1_ss_in>;
> > > +};
> > > --
> > > 2.43.0
> > >
> > >
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2024-09-21 15:07 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-19 16:59 [PATCH v1 0/3] X1E Dell XPS 9345 support Aleksandrs Vinarskis
2024-09-19 16:59 ` [PATCH v1 1/3] dt-bindings: arm: qcom: Add Dell XPS 13 9345 Aleksandrs Vinarskis
2024-09-20 12:53 ` Krzysztof Kozlowski
2024-09-19 16:59 ` [PATCH v1 2/3] firmware: qcom: scm: Allow QSEECOM on " Aleksandrs Vinarskis
2024-09-19 19:58 ` Dmitry Baryshkov
2024-09-20 12:49 ` Krzysztof Kozlowski
2024-09-19 16:59 ` [PATCH v1 3/3] arm64: dts: qcom: Add support for X1-based " Aleksandrs Vinarskis
2024-09-20 12:52 ` Krzysztof Kozlowski
2024-09-20 17:25 ` Rob Clark
2024-09-21 12:16 ` alex vinarskis
2024-09-21 15:07 ` Rob Clark
2024-09-19 18:18 ` [PATCH v1 0/3] X1E Dell XPS 9345 support Rob Herring (Arm)
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox