devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/3] X1E Dell XPS 9345 support
@ 2024-09-21 16:33 Aleksandrs Vinarskis
  2024-09-21 16:33 ` [PATCH v2 1/3] dt-bindings: arm: qcom: Add Dell XPS 13 9345 Aleksandrs Vinarskis
                   ` (2 more replies)
  0 siblings, 3 replies; 18+ messages in thread
From: Aleksandrs Vinarskis @ 2024-09-21 16:33 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,
	Rob Clark, Peter de Kraker, 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/

--------

Changes to V1:
* Fix misalignments due to wrong tab/space conversion
* Fix regulator namings
* Fix reasonable warnings from `scripts/checkpatch.pl`
* Restructure all (sub)nodes alphabetically


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] 18+ messages in thread

* [PATCH v2 1/3] dt-bindings: arm: qcom: Add Dell XPS 13 9345
  2024-09-21 16:33 [PATCH v2 0/3] X1E Dell XPS 9345 support Aleksandrs Vinarskis
@ 2024-09-21 16:33 ` Aleksandrs Vinarskis
  2024-09-21 17:59   ` Krzysztof Kozlowski
  2024-09-21 16:33 ` [PATCH v2 2/3] firmware: qcom: scm: Allow QSEECOM on " Aleksandrs Vinarskis
  2024-09-21 16:33 ` [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based " Aleksandrs Vinarskis
  2 siblings, 1 reply; 18+ messages in thread
From: Aleksandrs Vinarskis @ 2024-09-21 16:33 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,
	Rob Clark, Peter de Kraker, Aleksandrs Vinarskis

Document the X1E80100-based Dell XPS 9345 laptop, platform
codenamed 'Tributo'/'Tributo R'.

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] 18+ messages in thread

* [PATCH v2 2/3] firmware: qcom: scm: Allow QSEECOM on Dell XPS 13 9345
  2024-09-21 16:33 [PATCH v2 0/3] X1E Dell XPS 9345 support Aleksandrs Vinarskis
  2024-09-21 16:33 ` [PATCH v2 1/3] dt-bindings: arm: qcom: Add Dell XPS 13 9345 Aleksandrs Vinarskis
@ 2024-09-21 16:33 ` Aleksandrs Vinarskis
  2024-09-21 16:33 ` [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based " Aleksandrs Vinarskis
  2 siblings, 0 replies; 18+ messages in thread
From: Aleksandrs Vinarskis @ 2024-09-21 16:33 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,
	Rob Clark, Peter de Kraker, Aleksandrs Vinarskis

Allow particular machine accessing eg. efivars.

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] 18+ messages in thread

* [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
  2024-09-21 16:33 [PATCH v2 0/3] X1E Dell XPS 9345 support Aleksandrs Vinarskis
  2024-09-21 16:33 ` [PATCH v2 1/3] dt-bindings: arm: qcom: Add Dell XPS 13 9345 Aleksandrs Vinarskis
  2024-09-21 16:33 ` [PATCH v2 2/3] firmware: qcom: scm: Allow QSEECOM on " Aleksandrs Vinarskis
@ 2024-09-21 16:33 ` Aleksandrs Vinarskis
  2024-09-24 22:15   ` Bjorn Andersson
                     ` (2 more replies)
  2 siblings, 3 replies; 18+ messages in thread
From: Aleksandrs Vinarskis @ 2024-09-21 16:33 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,
	Rob Clark, Peter de Kraker, 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..ec04b64f9558
--- /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;
+		};
+	};
+
+	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";
+	};
+
+	vreg_vph_pwr: regulator-vph-pwr {
+		compatible = "regulator-fixed";
+
+		regulator-name = "vph_pwr";
+		regulator-min-microvolt = <3700000>;
+		regulator-max-microvolt = <3700000>;
+
+		regulator-always-on;
+		regulator-boot-on;
+	};
+};
+
+&apps_rsc {
+	regulators-0 {
+		compatible = "qcom,pm8550-rpmh-regulators";
+		qcom,pmic-id = "b";
+		vdd-bob1-supply = <&vreg_vph_pwr>;
+		vdd-bob2-supply = <&vreg_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 = <&vreg_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 = <&vreg_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 = <&vreg_vph_pwr>;
+		vdd-s2-supply = <&vreg_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 = <&vreg_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>;
+		};
+	};
+};
+
+&gpu {
+	status = "okay";
+
+	zap-shader {
+		firmware-name = "qcom/x1e80100/dell/tributo/qcdxkmsuc8380.mbn";
+	};
+};
+
+&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;
+	};
+};
+
+&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";
+};
+
+&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";
+};
+
+&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 */
+
+	cam_indicator_en: cam-indicator-en-state {
+		pins = "gpio110";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	edp_reg_en: edp-reg-en-state {
+		pins = "gpio70";
+		function = "gpio";
+		drive-strength = <16>;
+		bias-disable;
+	};
+
+	hall_int_n_default: hall-int-n-state {
+		pins = "gpio92";
+		function = "gpio";
+
+		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;
+	};
+
+	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;
+		};
+	};
+
+	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>;
+		};
+	};
+};
+
+&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] 18+ messages in thread

* Re: [PATCH v2 1/3] dt-bindings: arm: qcom: Add Dell XPS 13 9345
  2024-09-21 16:33 ` [PATCH v2 1/3] dt-bindings: arm: qcom: Add Dell XPS 13 9345 Aleksandrs Vinarskis
@ 2024-09-21 17:59   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 18+ messages in thread
From: Krzysztof Kozlowski @ 2024-09-21 17:59 UTC (permalink / raw)
  To: Aleksandrs Vinarskis, Bjorn Andersson, Krzysztof Kozlowski,
	Dmitry Baryshkov, linux-arm-msm, devicetree, linux-kernel
  Cc: Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Rob Clark, Peter de Kraker

On 21/09/2024 18:33, Aleksandrs Vinarskis wrote:
> Document the X1E80100-based Dell XPS 9345 laptop, platform
> codenamed 'Tributo'/'Tributo R'.
> 
> Signed-off-by: Aleksandrs Vinarskis <alex.vinarskis@gmail.com>

<form letter>
This is a friendly reminder during the review process.

It looks like you received a tag and forgot to add it.

If you do not know the process, here is a short explanation:
Please add Acked-by/Reviewed-by/Tested-by tags when posting new
versions, under or above your Signed-off-by tag. Tag is "received", when
provided in a message replied to you on the mailing list. Tools like b4
can help here. However, there's no need to repost patches *only* to add
the tags. The upstream maintainer will do that for tags received on the
version they apply.

https://elixir.bootlin.com/linux/v6.5-rc3/source/Documentation/process/submitting-patches.rst#L577

If a tag was not added on purpose, please state why and what changed.
</form letter>


Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
  2024-09-21 16:33 ` [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based " Aleksandrs Vinarskis
@ 2024-09-24 22:15   ` Bjorn Andersson
  2024-09-25 10:05     ` Aleksandrs Vinarskis
  2024-09-25 18:18   ` Aleksandrs Vinarskis
  2024-09-30 18:26   ` Laurentiu Tudor
  2 siblings, 1 reply; 18+ messages in thread
From: Bjorn Andersson @ 2024-09-24 22:15 UTC (permalink / raw)
  To: Aleksandrs Vinarskis
  Cc: 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 06:33:33PM GMT, Aleksandrs Vinarskis wrote:
> Initial support for Dell XPS 9345 13" 2024 (Tributo) based on X1E80100.

Very nice.

> 
> Working:
> * Touchpad
> * Keyboard (only post suspend&resume, i2c-hid patch WIP)

Hitting scroll lock/unlock on a USB keyboard once fixes this issue for
me as well. Looking forward to your WIP patch.

> * 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

Adding the ADSP firmware gave me both battery status and info, but
perhaps you're hitting the previously reported issue in pmic_glink?

> 
> Should be working, but cannot be tested due to lack of hw:
> * Higher res OLED, higher res IPS panels

I tried closing the lid and opening it again (which I believe is what
was reported to not work on the other devices), and that seems to work
fine.

> * Touchscreen

See below

> 
[..]
> diff --git a/arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts b/arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts
[..]
> +&i2c8 {
> +	clock-frequency = <400000>;
> +
> +	status = "okay";
> +
> +	touchscreen@0 {
> +		compatible = "hid-over-i2c";
> +		reg = <0x0>;

Make this 0x10 (and update the unit address accordingly) and we have
touchscreen.
> +
> +		hid-descr-addr = <0x1>;
> +		interrupts-extended = <&tlmm 51 IRQ_TYPE_LEVEL_LOW>;
> +
> +		pinctrl-0 = <&ts0_default>;
> +		pinctrl-names = "default";
> +	};
> +};
[..]
> +&mdss_dp3 {
> +	compatible = "qcom,x1e80100-dp";

This isn't needed, right?

[..]
> +&uart21 {

This fails to probe, because we don't have an alias for it, which in
turn prevents sync_state on interconnects...

> +	compatible = "qcom,geni-debug-uart";
> +	status = "okay";
> +};
> +

Regards,
Bjorn

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
  2024-09-24 22:15   ` Bjorn Andersson
@ 2024-09-25 10:05     ` Aleksandrs Vinarskis
  2024-09-26  3:33       ` Bjorn Andersson
  0 siblings, 1 reply; 18+ messages in thread
From: Aleksandrs Vinarskis @ 2024-09-25 10:05 UTC (permalink / raw)
  To: Bjorn Andersson
  Cc: Krzysztof Kozlowski, Dmitry Baryshkov, linux-arm-msm, devicetree,
	linux-kernel, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Rob Clark, Peter de Kraker

On Wed, 25 Sept 2024 at 00:15, Bjorn Andersson <andersson@kernel.org> wrote:
>
> On Sat, Sep 21, 2024 at 06:33:33PM GMT, Aleksandrs Vinarskis wrote:
> > Initial support for Dell XPS 9345 13" 2024 (Tributo) based on X1E80100.
>
> Very nice.
>
> >
> > Working:
> > * Touchpad
> > * Keyboard (only post suspend&resume, i2c-hid patch WIP)
>
> Hitting scroll lock/unlock on a USB keyboard once fixes this issue for
> me as well. Looking forward to your WIP patch.

Thanks for your review.
Just submitted the series [3].

>
> > * 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
>
> Adding the ADSP firmware gave me both battery status and info, but
> perhaps you're hitting the previously reported issue in pmic_glink?
>

Could you please share a bug report for the mentioned issue?

Were you running with [2] patch reverted or not?
Without reverting it, I cannot boot Ubuntu at all - it is spamming
qcom_battmngr errors and holding services back.
With patch reverted I do not get any battery related info, which I
guess makes sense.  I tried applying [1], however it did help.

There are a few pmic_glink related errors in dmesg, so perhaps its related.

> >
> > Should be working, but cannot be tested due to lack of hw:
> > * Higher res OLED, higher res IPS panels
>
> I tried closing the lid and opening it again (which I believe is what
> was reported to not work on the other devices), and that seems to work
> fine.
>
> > * Touchscreen
>
> See below
>
> >
> [..]
> > diff --git a/arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts b/arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts
> [..]
> > +&i2c8 {
> > +     clock-frequency = <400000>;
> > +
> > +     status = "okay";
> > +
> > +     touchscreen@0 {
> > +             compatible = "hid-over-i2c";
> > +             reg = <0x0>;
>
> Make this 0x10 (and update the unit address accordingly) and we have
> touchscreen.

Awesome, thanks for testing. Will add it.
Do you have an OLED variant, or high-res IPS? Will update description
when respinning to include it.

Thinking about it, perhaps depending on the OLED/IPS variant they have
different touchscreen models with different addresses? I find it weird
that the address was 0 as per ACPI.

> > +
> > +             hid-descr-addr = <0x1>;
> > +             interrupts-extended = <&tlmm 51 IRQ_TYPE_LEVEL_LOW>;
> > +
> > +             pinctrl-0 = <&ts0_default>;
> > +             pinctrl-names = "default";
> > +     };
> > +};
> [..]
> > +&mdss_dp3 {
> > +     compatible = "qcom,x1e80100-dp";
>
> This isn't needed, right?

Indeed. Will fix it.

>
> [..]
> > +&uart21 {
>
> This fails to probe, because we don't have an alias for it, which in
> turn prevents sync_state on interconnects...
>

Indeed. Will fix it.

Thanks,
Alex

[1] https://lore.kernel.org/all/20240918-x1e-fix-pdm-pdr-v1-1-cefc79bb33d1@linaro.org/
[2] https://lore.kernel.org/all/20240708-x1e80100-pd-mapper-v1-1-854386af4cf5@linaro.org/
[3] https://lore.kernel.org/all/20240925100303.9112-1-alex.vinarskis@gmail.com/


> > +     compatible = "qcom,geni-debug-uart";
> > +     status = "okay";
> > +};
> > +
>
> Regards,
> Bjorn

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
  2024-09-21 16:33 ` [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based " Aleksandrs Vinarskis
  2024-09-24 22:15   ` Bjorn Andersson
@ 2024-09-25 18:18   ` Aleksandrs Vinarskis
  2024-09-30 18:26   ` Laurentiu Tudor
  2 siblings, 0 replies; 18+ messages in thread
From: Aleksandrs Vinarskis @ 2024-09-25 18:18 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,
	Rob Clark, Peter de Kraker

On Sat, 21 Sept 2024 at 18:35, 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
> * Touchscreen

A follow up to the display discussion thread [1] - Peter de Kraker has
tested these changes on his OLED setup, a few findings:
* OLED panel works out of the box, with `edp-panel`  compatible. Turns
on, turns Off on suspend, turns On on resume. Will update description
when respinning to reflect this.
* As per Bjorn Andersson's correction, the touchscreen was tested and
confirmed to be working with 0x10 address. No other i2c devices are
detected on that bus. Will update description when respinning to
reflect this.
* SKU/HWIDs of OLED and non-touch IPS models are 1:1 the same
* For reference, non-touch IPS panel is 'LQ134N1' according to EDID

Regards,
Alex

[1] https://lore.kernel.org/all/CAF6AEGtrQzcMFsWCd-JzVFmF1sRk3vgy=L1q4Lzp+K1a4fuRnw@mail.gmail.com/

[...]

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
  2024-09-25 10:05     ` Aleksandrs Vinarskis
@ 2024-09-26  3:33       ` Bjorn Andersson
  0 siblings, 0 replies; 18+ messages in thread
From: Bjorn Andersson @ 2024-09-26  3:33 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,
	Peter de Kraker

On Wed, Sep 25, 2024 at 12:05:22PM +0200, Aleksandrs Vinarskis wrote:
> On Wed, 25 Sept 2024 at 00:15, Bjorn Andersson <andersson@kernel.org> wrote:
> >
> > On Sat, Sep 21, 2024 at 06:33:33PM GMT, Aleksandrs Vinarskis wrote:
> > > Initial support for Dell XPS 9345 13" 2024 (Tributo) based on X1E80100.
> >
> > Very nice.
> >
> > >
> > > Working:
> > > * Touchpad
> > > * Keyboard (only post suspend&resume, i2c-hid patch WIP)
> >
> > Hitting scroll lock/unlock on a USB keyboard once fixes this issue for
> > me as well. Looking forward to your WIP patch.
> 
> Thanks for your review.
> Just submitted the series [3].
> 

Thank you.

> >
> > > * 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
> >
> > Adding the ADSP firmware gave me both battery status and info, but
> > perhaps you're hitting the previously reported issue in pmic_glink?
> >
> 
> Could you please share a bug report for the mentioned issue?
> 

I'm referring to https://lore.kernel.org/all/ZsbomSG6DXTfYxXZ@hovoldconsulting.com/
although I'm not sure where it was first reported.

Chris Lew has been debugging this and the problem relates to intent
allocation in the underlying GLINK driver. We're discussing how to fix
this.

Hoping to conclude the discussion within the coming days.

> Were you running with [2] patch reverted or not?

I applied your patches on next-20240924, no other changes.

> Without reverting it, I cannot boot Ubuntu at all - it is spamming
> qcom_battmngr errors and holding services back.
> With patch reverted I do not get any battery related info, which I
> guess makes sense.  I tried applying [1], however it did help.
> 

I think we want [1], but with a better argumentation. It's however
unrelated to the problem you're seeing.

> There are a few pmic_glink related errors in dmesg, so perhaps its related.
> 

I do have a few messages about "unknown notification", but it works
fine. I expect this is just luck...

> > >
> > > Should be working, but cannot be tested due to lack of hw:
> > > * Higher res OLED, higher res IPS panels
> >
> > I tried closing the lid and opening it again (which I believe is what
> > was reported to not work on the other devices), and that seems to work
> > fine.
> >
> > > * Touchscreen
> >
> > See below
> >
> > >
> > [..]
> > > diff --git a/arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts b/arch/arm64/boot/dts/qcom/x1e80100-dell-tributo-13.dts
> > [..]
> > > +&i2c8 {
> > > +     clock-frequency = <400000>;
> > > +
> > > +     status = "okay";
> > > +
> > > +     touchscreen@0 {
> > > +             compatible = "hid-over-i2c";
> > > +             reg = <0x0>;
> >
> > Make this 0x10 (and update the unit address accordingly) and we have
> > touchscreen.
> 
> Awesome, thanks for testing. Will add it.
> Do you have an OLED variant, or high-res IPS? Will update description
> when respinning to include it.

I have the OLED screen.

> 
> Thinking about it, perhaps depending on the OLED/IPS variant they have
> different touchscreen models with different addresses? I find it weird
> that the address was 0 as per ACPI.
> 

The 0 is indeed weird, I don't know what's up with that.

I'd suggest that we start with 0x10 and then change things from there if
necessary.

Regards,
Bjorn

> > > +
> > > +             hid-descr-addr = <0x1>;
> > > +             interrupts-extended = <&tlmm 51 IRQ_TYPE_LEVEL_LOW>;
> > > +
> > > +             pinctrl-0 = <&ts0_default>;
> > > +             pinctrl-names = "default";
> > > +     };
> > > +};
> > [..]
> > > +&mdss_dp3 {
> > > +     compatible = "qcom,x1e80100-dp";
> >
> > This isn't needed, right?
> 
> Indeed. Will fix it.
> 
> >
> > [..]
> > > +&uart21 {
> >
> > This fails to probe, because we don't have an alias for it, which in
> > turn prevents sync_state on interconnects...
> >
> 
> Indeed. Will fix it.
> 
> Thanks,
> Alex
> 
> [1] https://lore.kernel.org/all/20240918-x1e-fix-pdm-pdr-v1-1-cefc79bb33d1@linaro.org/
> [2] https://lore.kernel.org/all/20240708-x1e80100-pd-mapper-v1-1-854386af4cf5@linaro.org/
> [3] https://lore.kernel.org/all/20240925100303.9112-1-alex.vinarskis@gmail.com/
> 
> 
> > > +     compatible = "qcom,geni-debug-uart";
> > > +     status = "okay";
> > > +};
> > > +
> >
> > Regards,
> > Bjorn

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
  2024-09-21 16:33 ` [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based " Aleksandrs Vinarskis
  2024-09-24 22:15   ` Bjorn Andersson
  2024-09-25 18:18   ` Aleksandrs Vinarskis
@ 2024-09-30 18:26   ` Laurentiu Tudor
  2024-09-30 19:23     ` Aleksandrs Vinarskis
  2 siblings, 1 reply; 18+ messages in thread
From: Laurentiu Tudor @ 2024-09-30 18:26 UTC (permalink / raw)
  To: Aleksandrs Vinarskis, Bjorn Andersson, Krzysztof Kozlowski,
	Dmitry Baryshkov, linux-arm-msm, devicetree, linux-kernel,
	Laurentiu.Tudor1
  Cc: Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Rob Clark, Peter de Kraker, bryan_kemp

Hi Alex,

Thanks for this! Comment inline.

On 9/21/24 19:33, Aleksandrs Vinarskis 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
> * 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 ++++++++++++++++++


Could you please use the marketing name for the device tree file name & 
machine compatible, e.g. "x1e80100-dell-xps13-9345.dts" for the dts file 
and "dell,xps13-9345" for the compat? I'm thinking that this will help 
people to identify it more easily.

---
Thanks & Best Regards, Laurentiu

>   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..ec04b64f9558
> --- /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;
> +		};
> +	};
> +
> +	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";
> +	};
> +
> +	vreg_vph_pwr: regulator-vph-pwr {
> +		compatible = "regulator-fixed";
> +
> +		regulator-name = "vph_pwr";
> +		regulator-min-microvolt = <3700000>;
> +		regulator-max-microvolt = <3700000>;
> +
> +		regulator-always-on;
> +		regulator-boot-on;
> +	};
> +};
> +
> +&apps_rsc {
> +	regulators-0 {
> +		compatible = "qcom,pm8550-rpmh-regulators";
> +		qcom,pmic-id = "b";
> +		vdd-bob1-supply = <&vreg_vph_pwr>;
> +		vdd-bob2-supply = <&vreg_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 = <&vreg_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 = <&vreg_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 = <&vreg_vph_pwr>;
> +		vdd-s2-supply = <&vreg_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 = <&vreg_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>;
> +		};
> +	};
> +};
> +
> +&gpu {
> +	status = "okay";
> +
> +	zap-shader {
> +		firmware-name = "qcom/x1e80100/dell/tributo/qcdxkmsuc8380.mbn";
> +	};
> +};
> +
> +&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;
> +	};
> +};
> +
> +&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";
> +};
> +
> +&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";
> +};
> +
> +&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 */
> +
> +	cam_indicator_en: cam-indicator-en-state {
> +		pins = "gpio110";
> +		function = "gpio";
> +		drive-strength = <2>;
> +		bias-disable;
> +	};
> +
> +	edp_reg_en: edp-reg-en-state {
> +		pins = "gpio70";
> +		function = "gpio";
> +		drive-strength = <16>;
> +		bias-disable;
> +	};
> +
> +	hall_int_n_default: hall-int-n-state {
> +		pins = "gpio92";
> +		function = "gpio";
> +
> +		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;
> +	};
> +
> +	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;
> +		};
> +	};
> +
> +	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>;
> +		};
> +	};
> +};
> +
> +&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>;
> +};


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
  2024-09-30 18:26   ` Laurentiu Tudor
@ 2024-09-30 19:23     ` Aleksandrs Vinarskis
  2024-10-01  0:47       ` Kemp, Bryan
  0 siblings, 1 reply; 18+ messages in thread
From: Aleksandrs Vinarskis @ 2024-09-30 19:23 UTC (permalink / raw)
  To: Laurentiu Tudor
  Cc: Bjorn Andersson, Krzysztof Kozlowski, Dmitry Baryshkov,
	linux-arm-msm, devicetree, linux-kernel, Laurentiu.Tudor1,
	Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Rob Clark, Peter de Kraker, bryan_kemp

On Mon, 30 Sept 2024 at 20:26, Laurentiu Tudor
<tudor.laurentiu.oss@gmail.com> wrote:
>
> Hi Alex,
>
> Thanks for this! Comment inline.
>
> On 9/21/24 19:33, Aleksandrs Vinarskis 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
> > * 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 ++++++++++++++++++
>
>
> Could you please use the marketing name for the device tree file name &
> machine compatible, e.g. "x1e80100-dell-xps13-9345.dts" for the dts file
> and "dell,xps13-9345" for the compat? I'm thinking that this will help
> people to identify it more easily.

Hi,

Even though I agree that it may be easier to identify for a
non-developer, I am a bit skeptical as Dell has a pretty weird naming
convention which sometimes results in the name being non-unique.
In particular case - 9345 - 9 stands for XPS series, 3 stands for 13",
and 45 would typically be the last digit of year + 0 (so 40), but with
the introduction of last year's ''13 Plus"series they added a 5. At
present, this is unique, however in 10 years it may not be.

I have recently hit this issue when working on Dell XPS 15" 2024
(9530), which has the same model number as Dell XPS 15" 2013 and led
to huge confusions. Only way to distinguish them is by codename
('fiorano' for the newer one), or using a complete name including the
year... The codename on the other hand is easily searchable both in
the source code and online.

I tried to browse the source code for existing notation, but didn't
find anything strongly supporting one or another way, so decided to
follow Microsoft Surface's example with codenames ('romulus').
Codenaming is also imperfect though, as in Dell's case it typically
refers to chassis, rather than _the_ particular device, which
typically lasts several years. Typically throughout chassis generation
internals stay +/- the same, but we can't know if any of the changes
would be breaking. Perhaps then, `x1e80100-dell-tributo-9345` and
`dell,tributo-9345` respectively, as this would be the shortest yet
most complete description? 'Tributo' already implies its XPS 13" and
chassis variation (touchar, hidden trackpad etc etc), '9345' implies
XPS 13" of 2024 (?) and in combination with chassis variant pinpoints
the model.
Otherwise, if it's strongly desired to use marketing names it can be
reduced down to `x1e80100-dell-9345.dts` and `dell,9345` altogether as
9345 implies it being both 'XPS' series and 13", and we can hope that
by 2034 Dell won't repeat the same mistake with naming. Curious to
hear maintainers' opinions as well.

P.S. I've sent the V3 version of the series, it probably makes sense
to move this conversation there for visibility.

Alex

>
> ---
> Thanks & Best Regards, Laurentiu
>
> >   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..ec04b64f9558
> > --- /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;
> > +             };
> > +     };
> > +
> > +     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";
> > +     };
> > +
> > +     vreg_vph_pwr: regulator-vph-pwr {
> > +             compatible = "regulator-fixed";
> > +
> > +             regulator-name = "vph_pwr";
> > +             regulator-min-microvolt = <3700000>;
> > +             regulator-max-microvolt = <3700000>;
> > +
> > +             regulator-always-on;
> > +             regulator-boot-on;
> > +     };
> > +};
> > +
> > +&apps_rsc {
> > +     regulators-0 {
> > +             compatible = "qcom,pm8550-rpmh-regulators";
> > +             qcom,pmic-id = "b";
> > +             vdd-bob1-supply = <&vreg_vph_pwr>;
> > +             vdd-bob2-supply = <&vreg_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 = <&vreg_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 = <&vreg_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 = <&vreg_vph_pwr>;
> > +             vdd-s2-supply = <&vreg_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 = <&vreg_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>;
> > +             };
> > +     };
> > +};
> > +
> > +&gpu {
> > +     status = "okay";
> > +
> > +     zap-shader {
> > +             firmware-name = "qcom/x1e80100/dell/tributo/qcdxkmsuc8380.mbn";
> > +     };
> > +};
> > +
> > +&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;
> > +     };
> > +};
> > +
> > +&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";
> > +};
> > +
> > +&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";
> > +};
> > +
> > +&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 */
> > +
> > +     cam_indicator_en: cam-indicator-en-state {
> > +             pins = "gpio110";
> > +             function = "gpio";
> > +             drive-strength = <2>;
> > +             bias-disable;
> > +     };
> > +
> > +     edp_reg_en: edp-reg-en-state {
> > +             pins = "gpio70";
> > +             function = "gpio";
> > +             drive-strength = <16>;
> > +             bias-disable;
> > +     };
> > +
> > +     hall_int_n_default: hall-int-n-state {
> > +             pins = "gpio92";
> > +             function = "gpio";
> > +
> > +             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;
> > +     };
> > +
> > +     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;
> > +             };
> > +     };
> > +
> > +     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>;
> > +             };
> > +     };
> > +};
> > +
> > +&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>;
> > +};
>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* RE: [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
  2024-09-30 19:23     ` Aleksandrs Vinarskis
@ 2024-10-01  0:47       ` Kemp, Bryan
  2024-10-01 16:09         ` Aleksandrs Vinarskis
  0 siblings, 1 reply; 18+ messages in thread
From: Kemp, Bryan @ 2024-10-01  0:47 UTC (permalink / raw)
  To: Aleksandrs Vinarskis, Laurentiu Tudor
  Cc: Bjorn Andersson, Krzysztof Kozlowski, Dmitry Baryshkov,
	linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, Tudor, Laurentiu, Konrad Dybcio,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Rob Clark,
	Peter de Kraker

Fascinating topic. First of all, thank you Alex for the explanation of your logic, and thank you as well for the work on the device tree for the XPS 13. I understand completely how the Dell naming/numbering scheme is confusing. The shortened version down to just the model number could also be confusing. For example, there is an XPS 9520 as well as a Latitude 9520. The 9 basically translates to "premium" not a specific line of business. For what it is worth, I would prefer the dell-xps13-9345 naming and I think we can have to be mindful to avoid a naming collision in a decade.


Thanks again for the support.

Bryan Kemp
Architect - Linux OS Engineering


Internal Use - Confidential
-----Original Message-----
From: Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
Sent: Monday, September 30, 2024 2:24 PM
To: Laurentiu Tudor <tudor.laurentiu.oss@gmail.com>
Cc: Bjorn Andersson <andersson@kernel.org>; Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>; Dmitry Baryshkov <dmitry.baryshkov@linaro.org>; linux-arm-msm@vger.kernel.org; devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; Tudor, Laurentiu <Laurentiu.Tudor1@dell.com>; Konrad Dybcio <konradybcio@kernel.org>; Rob Herring <robh@kernel.org>; Krzysztof Kozlowski <krzk+dt@kernel.org>; Conor Dooley <conor+dt@kernel.org>; Rob Clark <robdclark@gmail.com>; Peter de Kraker <peterdekraker@umito.nl>; Kemp, Bryan <Bryan_Kemp@Dell.com>
Subject: Re: [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345


[EXTERNAL EMAIL]

On Mon, 30 Sept 2024 at 20:26, Laurentiu Tudor <tudor.laurentiu.oss@gmail.com> wrote:
>
> Hi Alex,
>
> Thanks for this! Comment inline.
>
> On 9/21/24 19:33, Aleksandrs Vinarskis 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
> > * 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 ++++++++++++++++++
>
>
> Could you please use the marketing name for the device tree file name
> & machine compatible, e.g. "x1e80100-dell-xps13-9345.dts" for the dts
> file and "dell,xps13-9345" for the compat? I'm thinking that this will
> help people to identify it more easily.

Hi,

Even though I agree that it may be easier to identify for a non-developer, I am a bit skeptical as Dell has a pretty weird naming convention which sometimes results in the name being non-unique.
In particular case - 9345 - 9 stands for XPS series, 3 stands for 13", and 45 would typically be the last digit of year + 0 (so 40), but with the introduction of last year's ''13 Plus"series they added a 5. At present, this is unique, however in 10 years it may not be.

I have recently hit this issue when working on Dell XPS 15" 2024 (9530), which has the same model number as Dell XPS 15" 2013 and led to huge confusions. Only way to distinguish them is by codename ('fiorano' for the newer one), or using a complete name including the year... The codename on the other hand is easily searchable both in the source code and online.

I tried to browse the source code for existing notation, but didn't find anything strongly supporting one or another way, so decided to follow Microsoft Surface's example with codenames ('romulus').
Codenaming is also imperfect though, as in Dell's case it typically refers to chassis, rather than _the_ particular device, which typically lasts several years. Typically throughout chassis generation internals stay +/- the same, but we can't know if any of the changes would be breaking. Perhaps then, `x1e80100-dell-tributo-9345` and `dell,tributo-9345` respectively, as this would be the shortest yet most complete description? 'Tributo' already implies its XPS 13" and chassis variation (touchar, hidden trackpad etc etc), '9345' implies XPS 13" of 2024 (?) and in combination with chassis variant pinpoints the model.
Otherwise, if it's strongly desired to use marketing names it can be reduced down to `x1e80100-dell-9345.dts` and `dell,9345` altogether as
9345 implies it being both 'XPS' series and 13", and we can hope that by 2034 Dell won't repeat the same mistake with naming. Curious to hear maintainers' opinions as well.

P.S. I've sent the V3 version of the series, it probably makes sense to move this conversation there for visibility.

Alex

>
> ---
> Thanks & Best Regards, Laurentiu
>
> >   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..ec04b64f9558
> > --- /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;
> > +             };
> > +     };
> > +
> > +     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";
> > +     };
> > +
> > +     vreg_vph_pwr: regulator-vph-pwr {
> > +             compatible = "regulator-fixed";
> > +
> > +             regulator-name = "vph_pwr";
> > +             regulator-min-microvolt = <3700000>;
> > +             regulator-max-microvolt = <3700000>;
> > +
> > +             regulator-always-on;
> > +             regulator-boot-on;
> > +     };
> > +};
> > +
> > +&apps_rsc {
> > +     regulators-0 {
> > +             compatible = "qcom,pm8550-rpmh-regulators";
> > +             qcom,pmic-id = "b";
> > +             vdd-bob1-supply = <&vreg_vph_pwr>;
> > +             vdd-bob2-supply = <&vreg_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 = <&vreg_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 = <&vreg_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 = <&vreg_vph_pwr>;
> > +             vdd-s2-supply = <&vreg_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 = <&vreg_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>;
> > +             };
> > +     };
> > +};
> > +
> > +&gpu {
> > +     status = "okay";
> > +
> > +     zap-shader {
> > +             firmware-name = "qcom/x1e80100/dell/tributo/qcdxkmsuc8380.mbn";
> > +     };
> > +};
> > +
> > +&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;
> > +     };
> > +};
> > +
> > +&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";
> > +};
> > +
> > +&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";
> > +};
> > +
> > +&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 */
> > +
> > +     cam_indicator_en: cam-indicator-en-state {
> > +             pins = "gpio110";
> > +             function = "gpio";
> > +             drive-strength = <2>;
> > +             bias-disable;
> > +     };
> > +
> > +     edp_reg_en: edp-reg-en-state {
> > +             pins = "gpio70";
> > +             function = "gpio";
> > +             drive-strength = <16>;
> > +             bias-disable;
> > +     };
> > +
> > +     hall_int_n_default: hall-int-n-state {
> > +             pins = "gpio92";
> > +             function = "gpio";
> > +
> > +             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;
> > +     };
> > +
> > +     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;
> > +             };
> > +     };
> > +
> > +     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>;
> > +             };
> > +     };
> > +};
> > +
> > +&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>; };
>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
  2024-10-01  0:47       ` Kemp, Bryan
@ 2024-10-01 16:09         ` Aleksandrs Vinarskis
  2024-10-01 16:23           ` Laurentiu Tudor
  0 siblings, 1 reply; 18+ messages in thread
From: Aleksandrs Vinarskis @ 2024-10-01 16:09 UTC (permalink / raw)
  To: Kemp, Bryan
  Cc: Laurentiu Tudor, Bjorn Andersson, Krzysztof Kozlowski,
	Dmitry Baryshkov, linux-arm-msm@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	Tudor, Laurentiu, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Rob Clark, Peter de Kraker

On Tue, 1 Oct 2024 at 02:47, Kemp, Bryan <Bryan.Kemp@dell.com> wrote:
>
> Fascinating topic. First of all, thank you Alex for the explanation of your logic, and thank you as well for the work on the device tree for the XPS 13. I understand completely how the Dell naming/numbering scheme is confusing. The shortened version down to just the model number could also be confusing. For example, there is an XPS 9520 as well as a Latitude 9520. The 9 basically translates to "premium" not a specific line of business. For what it is worth, I would prefer the dell-xps13-9345 naming and I think we can have to be mindful to avoid a naming collision in a decade.
>

Hi,

Thanks for the input, it's really nice to have Dell's perspective as well.
That's a good point with latitude, I was only aware of 5XXX/7XXX
naming for that one... which I guess further highlights the confusing
naming scheme.

I will re-spin with `dell-xps13-9345` and `dell,xps13-9345`
respectively as proposed then, unless there will be any other feedback
on the V3 series before tomorrow.

Thanks,
Alex

>
> Thanks again for the support.
>
> Bryan Kemp
> Architect - Linux OS Engineering
>
>
> Internal Use - Confidential
> -----Original Message-----
> From: Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
> Sent: Monday, September 30, 2024 2:24 PM
> To: Laurentiu Tudor <tudor.laurentiu.oss@gmail.com>
> Cc: Bjorn Andersson <andersson@kernel.org>; Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>; Dmitry Baryshkov <dmitry.baryshkov@linaro.org>; linux-arm-msm@vger.kernel.org; devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; Tudor, Laurentiu <Laurentiu.Tudor1@dell.com>; Konrad Dybcio <konradybcio@kernel.org>; Rob Herring <robh@kernel.org>; Krzysztof Kozlowski <krzk+dt@kernel.org>; Conor Dooley <conor+dt@kernel.org>; Rob Clark <robdclark@gmail.com>; Peter de Kraker <peterdekraker@umito.nl>; Kemp, Bryan <Bryan_Kemp@Dell.com>
> Subject: Re: [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
>
>
> [EXTERNAL EMAIL]
>
> On Mon, 30 Sept 2024 at 20:26, Laurentiu Tudor <tudor.laurentiu.oss@gmail.com> wrote:
> >
> > Hi Alex,
> >
> > Thanks for this! Comment inline.
> >
> > On 9/21/24 19:33, Aleksandrs Vinarskis 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
> > > * 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 ++++++++++++++++++
> >
> >
> > Could you please use the marketing name for the device tree file name
> > & machine compatible, e.g. "x1e80100-dell-xps13-9345.dts" for the dts
> > file and "dell,xps13-9345" for the compat? I'm thinking that this will
> > help people to identify it more easily.
>
> Hi,
>
> Even though I agree that it may be easier to identify for a non-developer, I am a bit skeptical as Dell has a pretty weird naming convention which sometimes results in the name being non-unique.
> In particular case - 9345 - 9 stands for XPS series, 3 stands for 13", and 45 would typically be the last digit of year + 0 (so 40), but with the introduction of last year's ''13 Plus"series they added a 5. At present, this is unique, however in 10 years it may not be.
>
> I have recently hit this issue when working on Dell XPS 15" 2024 (9530), which has the same model number as Dell XPS 15" 2013 and led to huge confusions. Only way to distinguish them is by codename ('fiorano' for the newer one), or using a complete name including the year... The codename on the other hand is easily searchable both in the source code and online.
>
> I tried to browse the source code for existing notation, but didn't find anything strongly supporting one or another way, so decided to follow Microsoft Surface's example with codenames ('romulus').
> Codenaming is also imperfect though, as in Dell's case it typically refers to chassis, rather than _the_ particular device, which typically lasts several years. Typically throughout chassis generation internals stay +/- the same, but we can't know if any of the changes would be breaking. Perhaps then, `x1e80100-dell-tributo-9345` and `dell,tributo-9345` respectively, as this would be the shortest yet most complete description? 'Tributo' already implies its XPS 13" and chassis variation (touchar, hidden trackpad etc etc), '9345' implies XPS 13" of 2024 (?) and in combination with chassis variant pinpoints the model.
> Otherwise, if it's strongly desired to use marketing names it can be reduced down to `x1e80100-dell-9345.dts` and `dell,9345` altogether as
> 9345 implies it being both 'XPS' series and 13", and we can hope that by 2034 Dell won't repeat the same mistake with naming. Curious to hear maintainers' opinions as well.
>
> P.S. I've sent the V3 version of the series, it probably makes sense to move this conversation there for visibility.
>
> Alex
>
> >
> > ---
> > Thanks & Best Regards, Laurentiu
> >
> > >   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..ec04b64f9558
> > > --- /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;
> > > +             };
> > > +     };
> > > +
> > > +     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";
> > > +     };
> > > +
> > > +     vreg_vph_pwr: regulator-vph-pwr {
> > > +             compatible = "regulator-fixed";
> > > +
> > > +             regulator-name = "vph_pwr";
> > > +             regulator-min-microvolt = <3700000>;
> > > +             regulator-max-microvolt = <3700000>;
> > > +
> > > +             regulator-always-on;
> > > +             regulator-boot-on;
> > > +     };
> > > +};
> > > +
> > > +&apps_rsc {
> > > +     regulators-0 {
> > > +             compatible = "qcom,pm8550-rpmh-regulators";
> > > +             qcom,pmic-id = "b";
> > > +             vdd-bob1-supply = <&vreg_vph_pwr>;
> > > +             vdd-bob2-supply = <&vreg_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 = <&vreg_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 = <&vreg_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 = <&vreg_vph_pwr>;
> > > +             vdd-s2-supply = <&vreg_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 = <&vreg_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>;
> > > +             };
> > > +     };
> > > +};
> > > +
> > > +&gpu {
> > > +     status = "okay";
> > > +
> > > +     zap-shader {
> > > +             firmware-name = "qcom/x1e80100/dell/tributo/qcdxkmsuc8380.mbn";
> > > +     };
> > > +};
> > > +
> > > +&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;
> > > +     };
> > > +};
> > > +
> > > +&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";
> > > +};
> > > +
> > > +&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";
> > > +};
> > > +
> > > +&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 */
> > > +
> > > +     cam_indicator_en: cam-indicator-en-state {
> > > +             pins = "gpio110";
> > > +             function = "gpio";
> > > +             drive-strength = <2>;
> > > +             bias-disable;
> > > +     };
> > > +
> > > +     edp_reg_en: edp-reg-en-state {
> > > +             pins = "gpio70";
> > > +             function = "gpio";
> > > +             drive-strength = <16>;
> > > +             bias-disable;
> > > +     };
> > > +
> > > +     hall_int_n_default: hall-int-n-state {
> > > +             pins = "gpio92";
> > > +             function = "gpio";
> > > +
> > > +             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;
> > > +     };
> > > +
> > > +     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;
> > > +             };
> > > +     };
> > > +
> > > +     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>;
> > > +             };
> > > +     };
> > > +};
> > > +
> > > +&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>; };
> >

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
  2024-10-01 16:09         ` Aleksandrs Vinarskis
@ 2024-10-01 16:23           ` Laurentiu Tudor
  2024-10-01 17:57             ` Aleksandrs Vinarskis
  2024-10-01 18:09             ` Dmitry Baryshkov
  0 siblings, 2 replies; 18+ messages in thread
From: Laurentiu Tudor @ 2024-10-01 16:23 UTC (permalink / raw)
  To: Aleksandrs Vinarskis, Kemp, Bryan
  Cc: Bjorn Andersson, Krzysztof Kozlowski, Dmitry Baryshkov,
	linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, Tudor, Laurentiu, Konrad Dybcio,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Rob Clark,
	Peter de Kraker

Hi Alex,

On 10/1/24 19:09, Aleksandrs Vinarskis wrote:
> On Tue, 1 Oct 2024 at 02:47, Kemp, Bryan <Bryan.Kemp@dell.com> wrote:
>>
>> Fascinating topic. First of all, thank you Alex for the explanation of your logic, and thank you as well for the work on the device tree for the XPS 13. I understand completely how the Dell naming/numbering scheme is confusing. The shortened version down to just the model number could also be confusing. For example, there is an XPS 9520 as well as a Latitude 9520. The 9 basically translates to "premium" not a specific line of business. For what it is worth, I would prefer the dell-xps13-9345 naming and I think we can have to be mindful to avoid a naming collision in a decade.
>>
> 
> Hi,
> 
> Thanks for the input, it's really nice to have Dell's perspective as well.
> That's a good point with latitude, I was only aware of 5XXX/7XXX
> naming for that one... which I guess further highlights the confusing
> naming scheme.

Yeah, completely agree. We will raise this internally so that in the 
future we'll do a better job at naming platforms.

> I will re-spin with `dell-xps13-9345` and `dell,xps13-9345`
> respectively as proposed then, unless there will be any other feedback
> on the V3 series before tomorrow.

Great, thanks!

Couple of points:
  - i'm thinking that maybe at a later point, as more dell platforms are 
getting added, we can re-organize the device trees, e.g. have a common 
'dell-xps.dtsi' which gets inherited by specific platforms
  - just noticed that the firmware paths point to something like 
".../dell/tributo/...". Should we reconsider these too? Maybe something 
like ".../dell/xps/..." would be better?

---
Thanks & Best Regards, Laurentiu

> Thanks,
> Alex
> 
>>
>> Thanks again for the support.
>>
>> Bryan Kemp
>> Architect - Linux OS Engineering
>>
>>
>> Internal Use - Confidential
>> -----Original Message-----
>> From: Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
>> Sent: Monday, September 30, 2024 2:24 PM
>> To: Laurentiu Tudor <tudor.laurentiu.oss@gmail.com>
>> Cc: Bjorn Andersson <andersson@kernel.org>; Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>; Dmitry Baryshkov <dmitry.baryshkov@linaro.org>; linux-arm-msm@vger.kernel.org; devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; Tudor, Laurentiu <Laurentiu.Tudor1@dell.com>; Konrad Dybcio <konradybcio@kernel.org>; Rob Herring <robh@kernel.org>; Krzysztof Kozlowski <krzk+dt@kernel.org>; Conor Dooley <conor+dt@kernel.org>; Rob Clark <robdclark@gmail.com>; Peter de Kraker <peterdekraker@umito.nl>; Kemp, Bryan <Bryan_Kemp@Dell.com>
>> Subject: Re: [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
>>
>>
>> [EXTERNAL EMAIL]
>>
>> On Mon, 30 Sept 2024 at 20:26, Laurentiu Tudor <tudor.laurentiu.oss@gmail.com> wrote:
>>>
>>> Hi Alex,
>>>
>>> Thanks for this! Comment inline.
>>>
>>> On 9/21/24 19:33, Aleksandrs Vinarskis 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
>>>> * 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 ++++++++++++++++++
>>>
>>>
>>> Could you please use the marketing name for the device tree file name
>>> & machine compatible, e.g. "x1e80100-dell-xps13-9345.dts" for the dts
>>> file and "dell,xps13-9345" for the compat? I'm thinking that this will
>>> help people to identify it more easily.
>>
>> Hi,
>>
>> Even though I agree that it may be easier to identify for a non-developer, I am a bit skeptical as Dell has a pretty weird naming convention which sometimes results in the name being non-unique.
>> In particular case - 9345 - 9 stands for XPS series, 3 stands for 13", and 45 would typically be the last digit of year + 0 (so 40), but with the introduction of last year's ''13 Plus"series they added a 5. At present, this is unique, however in 10 years it may not be.
>>
>> I have recently hit this issue when working on Dell XPS 15" 2024 (9530), which has the same model number as Dell XPS 15" 2013 and led to huge confusions. Only way to distinguish them is by codename ('fiorano' for the newer one), or using a complete name including the year... The codename on the other hand is easily searchable both in the source code and online.
>>
>> I tried to browse the source code for existing notation, but didn't find anything strongly supporting one or another way, so decided to follow Microsoft Surface's example with codenames ('romulus').
>> Codenaming is also imperfect though, as in Dell's case it typically refers to chassis, rather than _the_ particular device, which typically lasts several years. Typically throughout chassis generation internals stay +/- the same, but we can't know if any of the changes would be breaking. Perhaps then, `x1e80100-dell-tributo-9345` and `dell,tributo-9345` respectively, as this would be the shortest yet most complete description? 'Tributo' already implies its XPS 13" and chassis variation (touchar, hidden trackpad etc etc), '9345' implies XPS 13" of 2024 (?) and in combination with chassis variant pinpoints the model.
>> Otherwise, if it's strongly desired to use marketing names it can be reduced down to `x1e80100-dell-9345.dts` and `dell,9345` altogether as
>> 9345 implies it being both 'XPS' series and 13", and we can hope that by 2034 Dell won't repeat the same mistake with naming. Curious to hear maintainers' opinions as well.
>>
>> P.S. I've sent the V3 version of the series, it probably makes sense to move this conversation there for visibility.
>>
>> Alex
>>
>>>
>>> ---
>>> Thanks & Best Regards, Laurentiu
>>>
>>>>    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..ec04b64f9558
>>>> --- /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;
>>>> +             };
>>>> +     };
>>>> +
>>>> +     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";
>>>> +     };
>>>> +
>>>> +     vreg_vph_pwr: regulator-vph-pwr {
>>>> +             compatible = "regulator-fixed";
>>>> +
>>>> +             regulator-name = "vph_pwr";
>>>> +             regulator-min-microvolt = <3700000>;
>>>> +             regulator-max-microvolt = <3700000>;
>>>> +
>>>> +             regulator-always-on;
>>>> +             regulator-boot-on;
>>>> +     };
>>>> +};
>>>> +
>>>> +&apps_rsc {
>>>> +     regulators-0 {
>>>> +             compatible = "qcom,pm8550-rpmh-regulators";
>>>> +             qcom,pmic-id = "b";
>>>> +             vdd-bob1-supply = <&vreg_vph_pwr>;
>>>> +             vdd-bob2-supply = <&vreg_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 = <&vreg_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 = <&vreg_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 = <&vreg_vph_pwr>;
>>>> +             vdd-s2-supply = <&vreg_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 = <&vreg_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>;
>>>> +             };
>>>> +     };
>>>> +};
>>>> +
>>>> +&gpu {
>>>> +     status = "okay";
>>>> +
>>>> +     zap-shader {
>>>> +             firmware-name = "qcom/x1e80100/dell/tributo/qcdxkmsuc8380.mbn";
>>>> +     };
>>>> +};
>>>> +
>>>> +&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;
>>>> +     };
>>>> +};
>>>> +
>>>> +&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";
>>>> +};
>>>> +
>>>> +&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";
>>>> +};
>>>> +
>>>> +&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 */
>>>> +
>>>> +     cam_indicator_en: cam-indicator-en-state {
>>>> +             pins = "gpio110";
>>>> +             function = "gpio";
>>>> +             drive-strength = <2>;
>>>> +             bias-disable;
>>>> +     };
>>>> +
>>>> +     edp_reg_en: edp-reg-en-state {
>>>> +             pins = "gpio70";
>>>> +             function = "gpio";
>>>> +             drive-strength = <16>;
>>>> +             bias-disable;
>>>> +     };
>>>> +
>>>> +     hall_int_n_default: hall-int-n-state {
>>>> +             pins = "gpio92";
>>>> +             function = "gpio";
>>>> +
>>>> +             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;
>>>> +     };
>>>> +
>>>> +     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;
>>>> +             };
>>>> +     };
>>>> +
>>>> +     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>;
>>>> +             };
>>>> +     };
>>>> +};
>>>> +
>>>> +&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>; };
>>>


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
  2024-10-01 16:23           ` Laurentiu Tudor
@ 2024-10-01 17:57             ` Aleksandrs Vinarskis
  2024-10-02 19:06               ` Laurentiu Tudor
  2024-10-01 18:09             ` Dmitry Baryshkov
  1 sibling, 1 reply; 18+ messages in thread
From: Aleksandrs Vinarskis @ 2024-10-01 17:57 UTC (permalink / raw)
  To: Laurentiu Tudor
  Cc: Kemp, Bryan, Bjorn Andersson, Krzysztof Kozlowski,
	Dmitry Baryshkov, linux-arm-msm@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	Tudor, Laurentiu, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Rob Clark, Peter de Kraker

On Tue, 1 Oct 2024 at 18:23, Laurentiu Tudor
<tudor.laurentiu.oss@gmail.com> wrote:
>
> Hi Alex,
>
> On 10/1/24 19:09, Aleksandrs Vinarskis wrote:
> > On Tue, 1 Oct 2024 at 02:47, Kemp, Bryan <Bryan.Kemp@dell.com> wrote:
> >>
> >> Fascinating topic. First of all, thank you Alex for the explanation of your logic, and thank you as well for the work on the device tree for the XPS 13. I understand completely how the Dell naming/numbering scheme is confusing. The shortened version down to just the model number could also be confusing. For example, there is an XPS 9520 as well as a Latitude 9520. The 9 basically translates to "premium" not a specific line of business. For what it is worth, I would prefer the dell-xps13-9345 naming and I think we can have to be mindful to avoid a naming collision in a decade.
> >>
> >
> > Hi,
> >
> > Thanks for the input, it's really nice to have Dell's perspective as well.
> > That's a good point with latitude, I was only aware of 5XXX/7XXX
> > naming for that one... which I guess further highlights the confusing
> > naming scheme.
>
> Yeah, completely agree. We will raise this internally so that in the
> future we'll do a better job at naming platforms.
>
> > I will re-spin with `dell-xps13-9345` and `dell,xps13-9345`
> > respectively as proposed then, unless there will be any other feedback
> > on the V3 series before tomorrow.
>
> Great, thanks!
>
> Couple of points:
>   - i'm thinking that maybe at a later point, as more dell platforms are
> getting added, we can re-organize the device trees, e.g. have a common
> 'dell-xps.dtsi' which gets inherited by specific platforms

Completely agree. Although I'm not sure about the name - analyzing
DSDT of Tributo it seems there are quite a few more things defined
than particular laptop utilizes, eg. support for x3 TypeC and x3 USB
MP while current device only has x2 TypeC and x1 USB MP. I believe
these are either leftovers of examples being provided to Dell which
were just left there, or ACPI tables being (at least partially?)
shared between multiple platforms - eg. Inspiron 14" 7441/Latitude 14"
5455 etc. In the latter case (unfortunately cannot test myself due to
lack of hw) perhaps the .dtsi can be inherited by more than just XPS
family. If you/Kemp Bryan could share some insight on that already wrt
to how much is shared (if any), I can split to dtsi/dts with upcoming
re-spin. Otherwise indeed can be done when the next platform is being
introduced.

>   - just noticed that the firmware paths point to something like
> ".../dell/tributo/...". Should we reconsider these too? Maybe something
> like ".../dell/xps/..." would be better?

Yes, will drop 'tributo' altogether. Perhaps "../dell/xps13-9345"
then, to match the proposed compat? Also when Divo/Huracan/Perfomante
will come out, those are still "XPS" but I would guess will have
different firmware files, so maybe it makes sense to be a bit more
precise with the naming?

Regards,
Alex

>
> ---
> Thanks & Best Regards, Laurentiu
>
> > Thanks,
> > Alex
> >
> >>
> >> Thanks again for the support.
> >>
> >> Bryan Kemp
> >> Architect - Linux OS Engineering
> >>
> >>
> >> Internal Use - Confidential
> >> -----Original Message-----
> >> From: Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
> >> Sent: Monday, September 30, 2024 2:24 PM
> >> To: Laurentiu Tudor <tudor.laurentiu.oss@gmail.com>
> >> Cc: Bjorn Andersson <andersson@kernel.org>; Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>; Dmitry Baryshkov <dmitry.baryshkov@linaro.org>; linux-arm-msm@vger.kernel.org; devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; Tudor, Laurentiu <Laurentiu.Tudor1@dell.com>; Konrad Dybcio <konradybcio@kernel.org>; Rob Herring <robh@kernel.org>; Krzysztof Kozlowski <krzk+dt@kernel.org>; Conor Dooley <conor+dt@kernel.org>; Rob Clark <robdclark@gmail.com>; Peter de Kraker <peterdekraker@umito.nl>; Kemp, Bryan <Bryan_Kemp@Dell.com>
> >> Subject: Re: [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
> >>
> >>
> >> [EXTERNAL EMAIL]
> >>
> >> On Mon, 30 Sept 2024 at 20:26, Laurentiu Tudor <tudor.laurentiu.oss@gmail.com> wrote:
> >>>
> >>> Hi Alex,
> >>>
> >>> Thanks for this! Comment inline.
> >>>
> >>> On 9/21/24 19:33, Aleksandrs Vinarskis 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
> >>>> * 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 ++++++++++++++++++
> >>>
> >>>
> >>> Could you please use the marketing name for the device tree file name
> >>> & machine compatible, e.g. "x1e80100-dell-xps13-9345.dts" for the dts
> >>> file and "dell,xps13-9345" for the compat? I'm thinking that this will
> >>> help people to identify it more easily.
> >>
> >> Hi,
> >>
> >> Even though I agree that it may be easier to identify for a non-developer, I am a bit skeptical as Dell has a pretty weird naming convention which sometimes results in the name being non-unique.
> >> In particular case - 9345 - 9 stands for XPS series, 3 stands for 13", and 45 would typically be the last digit of year + 0 (so 40), but with the introduction of last year's ''13 Plus"series they added a 5. At present, this is unique, however in 10 years it may not be.
> >>
> >> I have recently hit this issue when working on Dell XPS 15" 2024 (9530), which has the same model number as Dell XPS 15" 2013 and led to huge confusions. Only way to distinguish them is by codename ('fiorano' for the newer one), or using a complete name including the year... The codename on the other hand is easily searchable both in the source code and online.
> >>
> >> I tried to browse the source code for existing notation, but didn't find anything strongly supporting one or another way, so decided to follow Microsoft Surface's example with codenames ('romulus').
> >> Codenaming is also imperfect though, as in Dell's case it typically refers to chassis, rather than _the_ particular device, which typically lasts several years. Typically throughout chassis generation internals stay +/- the same, but we can't know if any of the changes would be breaking. Perhaps then, `x1e80100-dell-tributo-9345` and `dell,tributo-9345` respectively, as this would be the shortest yet most complete description? 'Tributo' already implies its XPS 13" and chassis variation (touchar, hidden trackpad etc etc), '9345' implies XPS 13" of 2024 (?) and in combination with chassis variant pinpoints the model.
> >> Otherwise, if it's strongly desired to use marketing names it can be reduced down to `x1e80100-dell-9345.dts` and `dell,9345` altogether as
> >> 9345 implies it being both 'XPS' series and 13", and we can hope that by 2034 Dell won't repeat the same mistake with naming. Curious to hear maintainers' opinions as well.
> >>
> >> P.S. I've sent the V3 version of the series, it probably makes sense to move this conversation there for visibility.
> >>
> >> Alex
> >>
> >>>
> >>> ---
> >>> Thanks & Best Regards, Laurentiu
> >>>
> >>>>    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..ec04b64f9558
> >>>> --- /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;
> >>>> +             };
> >>>> +     };
> >>>> +
> >>>> +     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";
> >>>> +     };
> >>>> +
> >>>> +     vreg_vph_pwr: regulator-vph-pwr {
> >>>> +             compatible = "regulator-fixed";
> >>>> +
> >>>> +             regulator-name = "vph_pwr";
> >>>> +             regulator-min-microvolt = <3700000>;
> >>>> +             regulator-max-microvolt = <3700000>;
> >>>> +
> >>>> +             regulator-always-on;
> >>>> +             regulator-boot-on;
> >>>> +     };
> >>>> +};
> >>>> +
> >>>> +&apps_rsc {
> >>>> +     regulators-0 {
> >>>> +             compatible = "qcom,pm8550-rpmh-regulators";
> >>>> +             qcom,pmic-id = "b";
> >>>> +             vdd-bob1-supply = <&vreg_vph_pwr>;
> >>>> +             vdd-bob2-supply = <&vreg_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 = <&vreg_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 = <&vreg_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 = <&vreg_vph_pwr>;
> >>>> +             vdd-s2-supply = <&vreg_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 = <&vreg_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>;
> >>>> +             };
> >>>> +     };
> >>>> +};
> >>>> +
> >>>> +&gpu {
> >>>> +     status = "okay";
> >>>> +
> >>>> +     zap-shader {
> >>>> +             firmware-name = "qcom/x1e80100/dell/tributo/qcdxkmsuc8380.mbn";
> >>>> +     };
> >>>> +};
> >>>> +
> >>>> +&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;
> >>>> +     };
> >>>> +};
> >>>> +
> >>>> +&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";
> >>>> +};
> >>>> +
> >>>> +&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";
> >>>> +};
> >>>> +
> >>>> +&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 */
> >>>> +
> >>>> +     cam_indicator_en: cam-indicator-en-state {
> >>>> +             pins = "gpio110";
> >>>> +             function = "gpio";
> >>>> +             drive-strength = <2>;
> >>>> +             bias-disable;
> >>>> +     };
> >>>> +
> >>>> +     edp_reg_en: edp-reg-en-state {
> >>>> +             pins = "gpio70";
> >>>> +             function = "gpio";
> >>>> +             drive-strength = <16>;
> >>>> +             bias-disable;
> >>>> +     };
> >>>> +
> >>>> +     hall_int_n_default: hall-int-n-state {
> >>>> +             pins = "gpio92";
> >>>> +             function = "gpio";
> >>>> +
> >>>> +             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;
> >>>> +     };
> >>>> +
> >>>> +     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;
> >>>> +             };
> >>>> +     };
> >>>> +
> >>>> +     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>;
> >>>> +             };
> >>>> +     };
> >>>> +};
> >>>> +
> >>>> +&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>; };
> >>>
>

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
  2024-10-01 16:23           ` Laurentiu Tudor
  2024-10-01 17:57             ` Aleksandrs Vinarskis
@ 2024-10-01 18:09             ` Dmitry Baryshkov
  1 sibling, 0 replies; 18+ messages in thread
From: Dmitry Baryshkov @ 2024-10-01 18:09 UTC (permalink / raw)
  To: Laurentiu Tudor, Aleksandrs Vinarskis, Kemp, Bryan
  Cc: Bjorn Andersson, Krzysztof Kozlowski,
	linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, Tudor, Laurentiu, Konrad Dybcio,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Rob Clark,
	Peter de Kraker

On October 1, 2024 7:23:21 PM GMT+03:00, Laurentiu Tudor <tudor.laurentiu.oss@gmail.com> wrote:
>Hi Alex,
>
>On 10/1/24 19:09, Aleksandrs Vinarskis wrote:
>> On Tue, 1 Oct 2024 at 02:47, Kemp, Bryan <Bryan.Kemp@dell.com> wrote:
>>> 
>>> Fascinating topic. First of all, thank you Alex for the explanation of your logic, and thank you as well for the work on the device tree for the XPS 13. I understand completely how the Dell naming/numbering scheme is confusing. The shortened version down to just the model number could also be confusing. For example, there is an XPS 9520 as well as a Latitude 9520. The 9 basically translates to "premium" not a specific line of business. For what it is worth, I would prefer the dell-xps13-9345 naming and I think we can have to be mindful to avoid a naming collision in a decade.
>>> 
>> 
>> Hi,
>> 
>> Thanks for the input, it's really nice to have Dell's perspective as well.
>> That's a good point with latitude, I was only aware of 5XXX/7XXX
>> naming for that one... which I guess further highlights the confusing
>> naming scheme.
>
>Yeah, completely agree. We will raise this internally so that in the future we'll do a better job at naming platforms.

BTW, as we are discussing the new XPS, any chance that Dell might release HLOS firmware into the linux-firmware repo? In the past Lenovo did this for the X13s WoA laptop. It significantly improves Linux user experience on these laptops. 

Feel free to ask if you need additional details.


>
>> I will re-spin with `dell-xps13-9345` and `dell,xps13-9345`
>> respectively as proposed then, unless there will be any other feedback
>> on the V3 series before tomorrow.
>
>Great, thanks!
>
>Couple of points:
> - i'm thinking that maybe at a later point, as more dell platforms are getting added, we can re-organize the device trees, e.g. have a common 'dell-xps.dtsi' which gets inherited by specific platforms
> - just noticed that the firmware paths point to something like ".../dell/tributo/...". Should we reconsider these too? Maybe something like ".../dell/xps/..." would be better?
>
>---
>Thanks & Best Regards, Laurentiu
>
>> Thanks,
>> Alex
>> 
>>> 
>>> Thanks again for the support.
>>> 
>>> Bryan Kemp
>>> Architect - Linux OS Engineering
>>> 
>>> 
>>> Internal Use - Confidential
>>> -----Original Message-----
>>> From: Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
>>> Sent: Monday, September 30, 2024 2:24 PM
>>> To: Laurentiu Tudor <tudor.laurentiu.oss@gmail.com>
>>> Cc: Bjorn Andersson <andersson@kernel.org>; Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>; Dmitry Baryshkov <dmitry.baryshkov@linaro.org>; linux-arm-msm@vger.kernel.org; devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; Tudor, Laurentiu <Laurentiu.Tudor1@dell.com>; Konrad Dybcio <konradybcio@kernel.org>; Rob Herring <robh@kernel.org>; Krzysztof Kozlowski <krzk+dt@kernel.org>; Conor Dooley <conor+dt@kernel.org>; Rob Clark <robdclark@gmail.com>; Peter de Kraker <peterdekraker@umito.nl>; Kemp, Bryan <Bryan_Kemp@Dell.com>
>>> Subject: Re: [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
>>> 
>>> 
>>> [EXTERNAL EMAIL]
>>> 
>>> On Mon, 30 Sept 2024 at 20:26, Laurentiu Tudor <tudor.laurentiu.oss@gmail.com> wrote:
>>>> 
>>>> Hi Alex,
>>>> 
>>>> Thanks for this! Comment inline.
>>>> 
>>>> On 9/21/24 19:33, Aleksandrs Vinarskis 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
>>>>> * 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 ++++++++++++++++++
>>>> 
>>>> 
>>>> Could you please use the marketing name for the device tree file name
>>>> & machine compatible, e.g. "x1e80100-dell-xps13-9345.dts" for the dts
>>>> file and "dell,xps13-9345" for the compat? I'm thinking that this will
>>>> help people to identify it more easily.
>>> 
>>> Hi,
>>> 
>>> Even though I agree that it may be easier to identify for a non-developer, I am a bit skeptical as Dell has a pretty weird naming convention which sometimes results in the name being non-unique.
>>> In particular case - 9345 - 9 stands for XPS series, 3 stands for 13", and 45 would typically be the last digit of year + 0 (so 40), but with the introduction of last year's ''13 Plus"series they added a 5. At present, this is unique, however in 10 years it may not be.
>>> 
>>> I have recently hit this issue when working on Dell XPS 15" 2024 (9530), which has the same model number as Dell XPS 15" 2013 and led to huge confusions. Only way to distinguish them is by codename ('fiorano' for the newer one), or using a complete name including the year... The codename on the other hand is easily searchable both in the source code and online.
>>> 
>>> I tried to browse the source code for existing notation, but didn't find anything strongly supporting one or another way, so decided to follow Microsoft Surface's example with codenames ('romulus').
>>> Codenaming is also imperfect though, as in Dell's case it typically refers to chassis, rather than _the_ particular device, which typically lasts several years. Typically throughout chassis generation internals stay +/- the same, but we can't know if any of the changes would be breaking. Perhaps then, `x1e80100-dell-tributo-9345` and `dell,tributo-9345` respectively, as this would be the shortest yet most complete description? 'Tributo' already implies its XPS 13" and chassis variation (touchar, hidden trackpad etc etc), '9345' implies XPS 13" of 2024 (?) and in combination with chassis variant pinpoints the model.
>>> Otherwise, if it's strongly desired to use marketing names it can be reduced down to `x1e80100-dell-9345.dts` and `dell,9345` altogether as
>>> 9345 implies it being both 'XPS' series and 13", and we can hope that by 2034 Dell won't repeat the same mistake with naming. Curious to hear maintainers' opinions as well.
>>> 
>>> P.S. I've sent the V3 version of the series, it probably makes sense to move this conversation there for visibility.
>>> 
>>> Alex
>>> 
>>>> 
>>>> ---
>>>> Thanks & Best Regards, Laurentiu
>>>> 
>>>>>    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..ec04b64f9558
>>>>> --- /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;
>>>>> +             };
>>>>> +     };
>>>>> +
>>>>> +     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";
>>>>> +     };
>>>>> +
>>>>> +     vreg_vph_pwr: regulator-vph-pwr {
>>>>> +             compatible = "regulator-fixed";
>>>>> +
>>>>> +             regulator-name = "vph_pwr";
>>>>> +             regulator-min-microvolt = <3700000>;
>>>>> +             regulator-max-microvolt = <3700000>;
>>>>> +
>>>>> +             regulator-always-on;
>>>>> +             regulator-boot-on;
>>>>> +     };
>>>>> +};
>>>>> +
>>>>> +&apps_rsc {
>>>>> +     regulators-0 {
>>>>> +             compatible = "qcom,pm8550-rpmh-regulators";
>>>>> +             qcom,pmic-id = "b";
>>>>> +             vdd-bob1-supply = <&vreg_vph_pwr>;
>>>>> +             vdd-bob2-supply = <&vreg_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 = <&vreg_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 = <&vreg_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 = <&vreg_vph_pwr>;
>>>>> +             vdd-s2-supply = <&vreg_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 = <&vreg_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>;
>>>>> +             };
>>>>> +     };
>>>>> +};
>>>>> +
>>>>> +&gpu {
>>>>> +     status = "okay";
>>>>> +
>>>>> +     zap-shader {
>>>>> +             firmware-name = "qcom/x1e80100/dell/tributo/qcdxkmsuc8380.mbn";
>>>>> +     };
>>>>> +};
>>>>> +
>>>>> +&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;
>>>>> +     };
>>>>> +};
>>>>> +
>>>>> +&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";
>>>>> +};
>>>>> +
>>>>> +&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";
>>>>> +};
>>>>> +
>>>>> +&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 */
>>>>> +
>>>>> +     cam_indicator_en: cam-indicator-en-state {
>>>>> +             pins = "gpio110";
>>>>> +             function = "gpio";
>>>>> +             drive-strength = <2>;
>>>>> +             bias-disable;
>>>>> +     };
>>>>> +
>>>>> +     edp_reg_en: edp-reg-en-state {
>>>>> +             pins = "gpio70";
>>>>> +             function = "gpio";
>>>>> +             drive-strength = <16>;
>>>>> +             bias-disable;
>>>>> +     };
>>>>> +
>>>>> +     hall_int_n_default: hall-int-n-state {
>>>>> +             pins = "gpio92";
>>>>> +             function = "gpio";
>>>>> +
>>>>> +             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;
>>>>> +     };
>>>>> +
>>>>> +     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;
>>>>> +             };
>>>>> +     };
>>>>> +
>>>>> +     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>;
>>>>> +             };
>>>>> +     };
>>>>> +};
>>>>> +
>>>>> +&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>; };
>>>> 
>


-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
  2024-10-01 17:57             ` Aleksandrs Vinarskis
@ 2024-10-02 19:06               ` Laurentiu Tudor
  2024-10-02 20:49                 ` Dmitry Baryshkov
  0 siblings, 1 reply; 18+ messages in thread
From: Laurentiu Tudor @ 2024-10-02 19:06 UTC (permalink / raw)
  To: Aleksandrs Vinarskis
  Cc: Kemp, Bryan, Bjorn Andersson, Krzysztof Kozlowski,
	Dmitry Baryshkov, linux-arm-msm@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	Tudor, Laurentiu, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Rob Clark, Peter de Kraker

Hi Alex,

On 10/1/24 20:57, Aleksandrs Vinarskis wrote:
> On Tue, 1 Oct 2024 at 18:23, Laurentiu Tudor
> <tudor.laurentiu.oss@gmail.com> wrote:
>>
>> Hi Alex,
>>
>> On 10/1/24 19:09, Aleksandrs Vinarskis wrote:
>>> On Tue, 1 Oct 2024 at 02:47, Kemp, Bryan <Bryan.Kemp@dell.com> wrote:
>>>>
>>>> Fascinating topic. First of all, thank you Alex for the explanation of your logic, and thank you as well for the work on the device tree for the XPS 13. I understand completely how the Dell naming/numbering scheme is confusing. The shortened version down to just the model number could also be confusing. For example, there is an XPS 9520 as well as a Latitude 9520. The 9 basically translates to "premium" not a specific line of business. For what it is worth, I would prefer the dell-xps13-9345 naming and I think we can have to be mindful to avoid a naming collision in a decade.
>>>>
>>>
>>> Hi,
>>>
>>> Thanks for the input, it's really nice to have Dell's perspective as well.
>>> That's a good point with latitude, I was only aware of 5XXX/7XXX
>>> naming for that one... which I guess further highlights the confusing
>>> naming scheme.
>>
>> Yeah, completely agree. We will raise this internally so that in the
>> future we'll do a better job at naming platforms.
>>
>>> I will re-spin with `dell-xps13-9345` and `dell,xps13-9345`
>>> respectively as proposed then, unless there will be any other feedback
>>> on the V3 series before tomorrow.
>>
>> Great, thanks!
>>
>> Couple of points:
>>    - i'm thinking that maybe at a later point, as more dell platforms are
>> getting added, we can re-organize the device trees, e.g. have a common
>> 'dell-xps.dtsi' which gets inherited by specific platforms
> 
> Completely agree. Although I'm not sure about the name - analyzing
> DSDT of Tributo it seems there are quite a few more things defined
> than particular laptop utilizes, eg. support for x3 TypeC and x3 USB
> MP while current device only has x2 TypeC and x1 USB MP. I believe
> these are either leftovers of examples being provided to Dell which
> were just left there, or ACPI tables being (at least partially?)
> shared between multiple platforms - eg. Inspiron 14" 7441/Latitude 14"
> 5455 etc. In the latter case (unfortunately cannot test myself due to
> lack of hw) perhaps the .dtsi can be inherited by more than just XPS
> family. If you/Kemp Bryan could share some insight on that already wrt
> to how much is shared (if any), I can split to dtsi/dts with upcoming
> re-spin. Otherwise indeed can be done when the next platform is being
> introduced.

Regarding ACPI, hard to tell as I'm not familiar with what's exposed in 
there... there might be legacy / inconsistent things.

For now, I'd suggest to just stick with what we have at the moment and 
build on that. More to the point, have the device tree for xps13-9345 
accepted and derive from it, if / when at some point in time similar 
platforms show up.

>>    - just noticed that the firmware paths point to something like
>> ".../dell/tributo/...". Should we reconsider these too? Maybe something
>> like ".../dell/xps/..." would be better?
> 
> Yes, will drop 'tributo' altogether. Perhaps "../dell/xps13-9345"
> then, to match the proposed compat? 


Sounds good to me.

> Also when Divo/Huracan/Perfomante
> will come out, those are still "XPS" but I would guess will have
> different firmware files, so maybe it makes sense to be a bit more
> precise with the naming?

On naming, there are ongoing internal discussions to make them more 
coherent.

Apart from that, could you please Cc: us if you plan to submit stuff to 
linux-firmware?
---
Thanks & Best Regards, Laurentiu!

>>>
>>>>
>>>> Thanks again for the support.
>>>>
>>>> Bryan Kemp
>>>> Architect - Linux OS Engineering
>>>>
>>>>
>>>> Internal Use - Confidential
>>>> -----Original Message-----
>>>> From: Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
>>>> Sent: Monday, September 30, 2024 2:24 PM
>>>> To: Laurentiu Tudor <tudor.laurentiu.oss@gmail.com>
>>>> Cc: Bjorn Andersson <andersson@kernel.org>; Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>; Dmitry Baryshkov <dmitry.baryshkov@linaro.org>; linux-arm-msm@vger.kernel.org; devicetree@vger.kernel.org; linux-kernel@vger.kernel.org; Tudor, Laurentiu <Laurentiu.Tudor1@dell.com>; Konrad Dybcio <konradybcio@kernel.org>; Rob Herring <robh@kernel.org>; Krzysztof Kozlowski <krzk+dt@kernel.org>; Conor Dooley <conor+dt@kernel.org>; Rob Clark <robdclark@gmail.com>; Peter de Kraker <peterdekraker@umito.nl>; Kemp, Bryan <Bryan_Kemp@Dell.com>
>>>> Subject: Re: [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
>>>>
>>>>
>>>> [EXTERNAL EMAIL]
>>>>
>>>> On Mon, 30 Sept 2024 at 20:26, Laurentiu Tudor <tudor.laurentiu.oss@gmail.com> wrote:
>>>>>
>>>>> Hi Alex,
>>>>>
>>>>> Thanks for this! Comment inline.
>>>>>
>>>>> On 9/21/24 19:33, Aleksandrs Vinarskis 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
>>>>>> * 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 ++++++++++++++++++
>>>>>
>>>>>
>>>>> Could you please use the marketing name for the device tree file name
>>>>> & machine compatible, e.g. "x1e80100-dell-xps13-9345.dts" for the dts
>>>>> file and "dell,xps13-9345" for the compat? I'm thinking that this will
>>>>> help people to identify it more easily.
>>>>
>>>> Hi,
>>>>
>>>> Even though I agree that it may be easier to identify for a non-developer, I am a bit skeptical as Dell has a pretty weird naming convention which sometimes results in the name being non-unique.
>>>> In particular case - 9345 - 9 stands for XPS series, 3 stands for 13", and 45 would typically be the last digit of year + 0 (so 40), but with the introduction of last year's ''13 Plus"series they added a 5. At present, this is unique, however in 10 years it may not be.
>>>>
>>>> I have recently hit this issue when working on Dell XPS 15" 2024 (9530), which has the same model number as Dell XPS 15" 2013 and led to huge confusions. Only way to distinguish them is by codename ('fiorano' for the newer one), or using a complete name including the year... The codename on the other hand is easily searchable both in the source code and online.
>>>>
>>>> I tried to browse the source code for existing notation, but didn't find anything strongly supporting one or another way, so decided to follow Microsoft Surface's example with codenames ('romulus').
>>>> Codenaming is also imperfect though, as in Dell's case it typically refers to chassis, rather than _the_ particular device, which typically lasts several years. Typically throughout chassis generation internals stay +/- the same, but we can't know if any of the changes would be breaking. Perhaps then, `x1e80100-dell-tributo-9345` and `dell,tributo-9345` respectively, as this would be the shortest yet most complete description? 'Tributo' already implies its XPS 13" and chassis variation (touchar, hidden trackpad etc etc), '9345' implies XPS 13" of 2024 (?) and in combination with chassis variant pinpoints the model.
>>>> Otherwise, if it's strongly desired to use marketing names it can be reduced down to `x1e80100-dell-9345.dts` and `dell,9345` altogether as
>>>> 9345 implies it being both 'XPS' series and 13", and we can hope that by 2034 Dell won't repeat the same mistake with naming. Curious to hear maintainers' opinions as well.
>>>>
>>>> P.S. I've sent the V3 version of the series, it probably makes sense to move this conversation there for visibility.
>>>>
>>>> Alex
>>>>
>>>>>
>>>>> ---
>>>>> Thanks & Best Regards, Laurentiu
>>>>>
>>>>>>     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..ec04b64f9558
>>>>>> --- /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;
>>>>>> +             };
>>>>>> +     };
>>>>>> +
>>>>>> +     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";
>>>>>> +     };
>>>>>> +
>>>>>> +     vreg_vph_pwr: regulator-vph-pwr {
>>>>>> +             compatible = "regulator-fixed";
>>>>>> +
>>>>>> +             regulator-name = "vph_pwr";
>>>>>> +             regulator-min-microvolt = <3700000>;
>>>>>> +             regulator-max-microvolt = <3700000>;
>>>>>> +
>>>>>> +             regulator-always-on;
>>>>>> +             regulator-boot-on;
>>>>>> +     };
>>>>>> +};
>>>>>> +
>>>>>> +&apps_rsc {
>>>>>> +     regulators-0 {
>>>>>> +             compatible = "qcom,pm8550-rpmh-regulators";
>>>>>> +             qcom,pmic-id = "b";
>>>>>> +             vdd-bob1-supply = <&vreg_vph_pwr>;
>>>>>> +             vdd-bob2-supply = <&vreg_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 = <&vreg_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 = <&vreg_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 = <&vreg_vph_pwr>;
>>>>>> +             vdd-s2-supply = <&vreg_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 = <&vreg_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>;
>>>>>> +             };
>>>>>> +     };
>>>>>> +};
>>>>>> +
>>>>>> +&gpu {
>>>>>> +     status = "okay";
>>>>>> +
>>>>>> +     zap-shader {
>>>>>> +             firmware-name = "qcom/x1e80100/dell/tributo/qcdxkmsuc8380.mbn";
>>>>>> +     };
>>>>>> +};
>>>>>> +
>>>>>> +&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;
>>>>>> +     };
>>>>>> +};
>>>>>> +
>>>>>> +&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";
>>>>>> +};
>>>>>> +
>>>>>> +&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";
>>>>>> +};
>>>>>> +
>>>>>> +&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 */
>>>>>> +
>>>>>> +     cam_indicator_en: cam-indicator-en-state {
>>>>>> +             pins = "gpio110";
>>>>>> +             function = "gpio";
>>>>>> +             drive-strength = <2>;
>>>>>> +             bias-disable;
>>>>>> +     };
>>>>>> +
>>>>>> +     edp_reg_en: edp-reg-en-state {
>>>>>> +             pins = "gpio70";
>>>>>> +             function = "gpio";
>>>>>> +             drive-strength = <16>;
>>>>>> +             bias-disable;
>>>>>> +     };
>>>>>> +
>>>>>> +     hall_int_n_default: hall-int-n-state {
>>>>>> +             pins = "gpio92";
>>>>>> +             function = "gpio";
>>>>>> +
>>>>>> +             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;
>>>>>> +     };
>>>>>> +
>>>>>> +     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;
>>>>>> +             };
>>>>>> +     };
>>>>>> +
>>>>>> +     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>;
>>>>>> +             };
>>>>>> +     };
>>>>>> +};
>>>>>> +
>>>>>> +&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>; };
>>>>>
>>


^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based Dell XPS 13 9345
  2024-10-02 19:06               ` Laurentiu Tudor
@ 2024-10-02 20:49                 ` Dmitry Baryshkov
  0 siblings, 0 replies; 18+ messages in thread
From: Dmitry Baryshkov @ 2024-10-02 20:49 UTC (permalink / raw)
  To: Laurentiu Tudor, Aleksandrs Vinarskis
  Cc: Kemp, Bryan, Bjorn Andersson, Krzysztof Kozlowski,
	linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, Tudor, Laurentiu, Konrad Dybcio,
	Rob Herring, Krzysztof Kozlowski, Conor Dooley, Rob Clark,
	Peter de Kraker

On October 2, 2024 10:06:41 PM GMT+03:00, Laurentiu Tudor <tudor.laurentiu.oss@gmail.com> wrote:
>Hi Alex,
>
>On 10/1/24 20:57, Aleksandrs Vinarskis wrote:
>> On Tue, 1 Oct 2024 at 18:23, Laurentiu Tudor
>> <tudor.laurentiu.oss@gmail.com> wrote:
>>> 
>>> Hi Alex,
>>> 
>>> On 10/1/24 19:09, Aleksandrs Vinarskis wrote:
>>>> On Tue, 1 Oct 2024 at 02:47, Kemp, Bryan <Bryan.Kemp@dell.com> wrote:
>>>>> 
>>>>> Fascinating topic. First of all, thank you Alex for the explanation of your logic, and thank you as well for the work on the device tree for the XPS 13. I understand completely how the Dell naming/numbering scheme is confusing. The shortened version down to just the model number could also be confusing. For example, there is an XPS 9520 as well as a Latitude 9520. The 9 basically translates to "premium" not a specific line of business. For what it is worth, I would prefer the dell-xps13-9345 naming and I think we can have to be mindful to avoid a naming collision in a decade.
>>>>> 
>>>> 
>>>> Hi,
>>>> 
>>>> Thanks for the input, it's really nice to have Dell's perspective as well.
>>>> That's a good point with latitude, I was only aware of 5XXX/7XXX
>>>> naming for that one... which I guess further highlights the confusing
>>>> naming scheme.
>>> 
>>> Yeah, completely agree. We will raise this internally so that in the
>>> future we'll do a better job at naming platforms.
>>> 
>>>> I will re-spin with `dell-xps13-9345` and `dell,xps13-9345`
>>>> respectively as proposed then, unless there will be any other feedback
>>>> on the V3 series before tomorrow.
>>> 
>>> Great, thanks!
>>> 
>>> Couple of points:
>>>    - i'm thinking that maybe at a later point, as more dell platforms are
>>> getting added, we can re-organize the device trees, e.g. have a common
>>> 'dell-xps.dtsi' which gets inherited by specific platforms
>> 
>> Completely agree. Although I'm not sure about the name - analyzing
>> DSDT of Tributo it seems there are quite a few more things defined
>> than particular laptop utilizes, eg. support for x3 TypeC and x3 USB
>> MP while current device only has x2 TypeC and x1 USB MP. I believe
>> these are either leftovers of examples being provided to Dell which
>> were just left there, or ACPI tables being (at least partially?)
>> shared between multiple platforms - eg. Inspiron 14" 7441/Latitude 14"
>> 5455 etc. In the latter case (unfortunately cannot test myself due to
>> lack of hw) perhaps the .dtsi can be inherited by more than just XPS
>> family. If you/Kemp Bryan could share some insight on that already wrt
>> to how much is shared (if any), I can split to dtsi/dts with upcoming
>> re-spin. Otherwise indeed can be done when the next platform is being
>> introduced.
>
>Regarding ACPI, hard to tell as I'm not familiar with what's exposed in there... there might be legacy / inconsistent things.
>
>For now, I'd suggest to just stick with what we have at the moment and build on that. More to the point, have the device tree for xps13-9345 accepted and derive from it, if / when at some point in time similar platforms show up.
>
>>>    - just noticed that the firmware paths point to something like
>>> ".../dell/tributo/...". Should we reconsider these too? Maybe something
>>> like ".../dell/xps/..." would be better?
>> 
>> Yes, will drop 'tributo' altogether. Perhaps "../dell/xps13-9345"
>> then, to match the proposed compat? 
>
>
>Sounds good to me.
>
>> Also when Divo/Huracan/Perfomante
>> will come out, those are still "XPS" but I would guess will have
>> different firmware files, so maybe it makes sense to be a bit more
>> precise with the naming?
>
>On naming, there are ongoing internal discussions to make them more coherent.
>
>Apart from that, could you please Cc: us if you plan to submit stuff to linux-firmware?

Only Dell, the final copyright holder and product owner can submit files to linux-firmware.


-- 
With best wishes
Dmitry

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2024-10-02 20:49 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-21 16:33 [PATCH v2 0/3] X1E Dell XPS 9345 support Aleksandrs Vinarskis
2024-09-21 16:33 ` [PATCH v2 1/3] dt-bindings: arm: qcom: Add Dell XPS 13 9345 Aleksandrs Vinarskis
2024-09-21 17:59   ` Krzysztof Kozlowski
2024-09-21 16:33 ` [PATCH v2 2/3] firmware: qcom: scm: Allow QSEECOM on " Aleksandrs Vinarskis
2024-09-21 16:33 ` [PATCH v2 3/3] arm64: dts: qcom: Add support for X1-based " Aleksandrs Vinarskis
2024-09-24 22:15   ` Bjorn Andersson
2024-09-25 10:05     ` Aleksandrs Vinarskis
2024-09-26  3:33       ` Bjorn Andersson
2024-09-25 18:18   ` Aleksandrs Vinarskis
2024-09-30 18:26   ` Laurentiu Tudor
2024-09-30 19:23     ` Aleksandrs Vinarskis
2024-10-01  0:47       ` Kemp, Bryan
2024-10-01 16:09         ` Aleksandrs Vinarskis
2024-10-01 16:23           ` Laurentiu Tudor
2024-10-01 17:57             ` Aleksandrs Vinarskis
2024-10-02 19:06               ` Laurentiu Tudor
2024-10-02 20:49                 ` Dmitry Baryshkov
2024-10-01 18:09             ` Dmitry Baryshkov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).