* [PATCH 0/4] Add support for Dell Latitude 7455 (X1E-80-100)
@ 2025-05-25 9:53 Val Packett
2025-05-25 9:53 ` [PATCH 1/4] dt-bindings: arm: qcom: Add Dell Latitude 7455 Val Packett
` (3 more replies)
0 siblings, 4 replies; 11+ messages in thread
From: Val Packett @ 2025-05-25 9:53 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, linux-arm-msm, devicetree, linux-kernel
Cc: Val Packett
Hello everyone,
just got a Dell that wasn't properly brought up before, works pretty well now :)
The hardware is very similar to other Dells, especially the Inspiron 14p 7441,
so big thanks to Bryan O'Donoghue for the patches for that one.
Works:
- USB Type-C x2, including DP alt mode (PS8830)
- USB Type-A & USB fingerprint reader (PTN3222)
- Wi-Fi & Bluetooth (WCN7850 hw2.0)
- Display, Backlight (eDP: BOE NE14QDM-???)
- Keyboard, Touchpad, Touchscreen (I2C HID)
- microSD card reader (SDHC)
- Battery info (aDSP, unlike the Inspiron (0.o))
Works for me but not included yet:
- Camera (OV02E10)
- Iris codec
Not tried yet:
- Audio
Bugs:
- NVMe drops out upon resume from deep suspend (all I/O times out),
have to use s2idle for now
- ath12k wastes 1W of CPU power when NetworkManager is running, with visible
100% CPU spikes caused by ath12k_mac_op_cancel_remain_on_channel spinning
on a spinlock, called from NM's routine check (every 6s) on WiFi status
- SDHC with high-speed (UHS) microSD cards spews I/O errors during early
reads that check the partition table and file system headers (though
actually working with an ext4 FS mounted despite these errors didn't
seem to produce any more errors and worked great)
- SDHC used to break deep suspend completely (nothing on screen when trying
to wake up) at some point during testing but seems to no longer happen
ath12k also used to panic quickly after boot very often (i.e. unless it was
a "lucky" boot) on next-20250516, but that was completely fixed by next-20250523.
Val Packett (4):
dt-bindings: arm: qcom: Add Dell Latitude 7455
arm64: dts: qcom: Add support for X1E80100 Dell Latitude 7455
firmware: qcom: scm: Allow QSEECOM on Dell Latitude 7455
drm/panel-edp: Add BOE NE14QDM panel for Dell Latitude 7455
.../devicetree/bindings/arm/qcom.yaml | 1 +
arch/arm64/boot/dts/qcom/Makefile | 2 +
.../dts/qcom/x1e80100-dell-latitude-7455.dts | 1484 +++++++++++++++++
drivers/firmware/qcom/qcom_scm.c | 1 +
drivers/gpu/drm/panel/panel-edp.c | 1 +
5 files changed, 1489 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-dell-latitude-7455.dts
--
2.49.0
^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH 1/4] dt-bindings: arm: qcom: Add Dell Latitude 7455
2025-05-25 9:53 [PATCH 0/4] Add support for Dell Latitude 7455 (X1E-80-100) Val Packett
@ 2025-05-25 9:53 ` Val Packett
2025-05-29 9:29 ` Krzysztof Kozlowski
2025-05-25 9:53 ` [PATCH 2/4] arm64: dts: qcom: Add support for X1E80100 " Val Packett
` (2 subsequent siblings)
3 siblings, 1 reply; 11+ messages in thread
From: Val Packett @ 2025-05-25 9:53 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: Val Packett, linux-arm-msm, devicetree, linux-kernel
Document the X1E80100-based Dell Latitude 7455 laptop.
Signed-off-by: Val Packett <val@packett.cool>
---
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 56f78f0f3803..e35a05db6558 100644
--- a/Documentation/devicetree/bindings/arm/qcom.yaml
+++ b/Documentation/devicetree/bindings/arm/qcom.yaml
@@ -1140,6 +1140,7 @@ properties:
- enum:
- asus,vivobook-s15
- asus,zenbook-a14-ux3407ra
+ - dell,latitude-7455
- dell,xps13-9345
- hp,elitebook-ultra-g1q
- hp,omnibook-x14
--
2.49.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 2/4] arm64: dts: qcom: Add support for X1E80100 Dell Latitude 7455
2025-05-25 9:53 [PATCH 0/4] Add support for Dell Latitude 7455 (X1E-80-100) Val Packett
2025-05-25 9:53 ` [PATCH 1/4] dt-bindings: arm: qcom: Add Dell Latitude 7455 Val Packett
@ 2025-05-25 9:53 ` Val Packett
2025-05-25 13:25 ` Dmitry Baryshkov
2025-05-27 11:25 ` Konrad Dybcio
2025-05-25 9:53 ` [PATCH 3/4] firmware: qcom: scm: Allow QSEECOM on " Val Packett
2025-08-11 18:41 ` (subset) [PATCH 0/4] Add support for Dell Latitude 7455 (X1E-80-100) Bjorn Andersson
3 siblings, 2 replies; 11+ messages in thread
From: Val Packett @ 2025-05-25 9:53 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley
Cc: Val Packett, linux-arm-msm, devicetree, linux-kernel
Add a device tree for the Dell Latitude 7455 (X Elite) laptop.
Working:
- Wi-Fi (WCN7850 hw2.0)
- Bluetooth
- USB Type-C x2 (with DP alt mode)
- USB Type-A
- USB Fingerprint reader
- eDP Display (with brightness)
- NVMe
- SDHC (microSD slot)
- Keyboard
- Touchpad
- Touchscreen
- Battery
Not included:
- Audio
- Camera
Signed-off-by: Val Packett <val@packett.cool>
---
arch/arm64/boot/dts/qcom/Makefile | 2 +
.../dts/qcom/x1e80100-dell-latitude-7455.dts | 1484 +++++++++++++++++
2 files changed, 1486 insertions(+)
create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-dell-latitude-7455.dts
diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 669b888b27a1..efe3b79376b8 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -311,6 +311,8 @@ x1e80100-asus-vivobook-s15-el2-dtbs := x1e80100-asus-vivobook-s15.dtb x1-el2.dtb
dtb-$(CONFIG_ARCH_QCOM) += x1e80100-asus-vivobook-s15.dtb x1e80100-asus-vivobook-s15-el2.dtb
x1e80100-crd-el2-dtbs := x1e80100-crd.dtb x1-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += x1e80100-crd.dtb x1e80100-crd-el2.dtb
+x1e80100-dell-latitude-7455-el2-dtbs := x1e80100-dell-latitude-7455.dtb x1-el2.dtbo
+dtb-$(CONFIG_ARCH_QCOM) += x1e80100-dell-latitude-7455.dtb x1e80100-dell-latitude-7455-el2.dtb
x1e80100-dell-xps13-9345-el2-dtbs := x1e80100-dell-xps13-9345.dtb x1-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM) += x1e80100-dell-xps13-9345.dtb x1e80100-dell-xps13-9345-el2.dtb
x1e80100-hp-elitebook-ultra-g1q-el2-dtbs := x1e80100-hp-elitebook-ultra-g1q.dtb x1-el2.dtbo
diff --git a/arch/arm64/boot/dts/qcom/x1e80100-dell-latitude-7455.dts b/arch/arm64/boot/dts/qcom/x1e80100-dell-latitude-7455.dts
new file mode 100644
index 000000000000..0e5a853e3291
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/x1e80100-dell-latitude-7455.dts
@@ -0,0 +1,1484 @@
+// 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>
+ * Copyright (c) 2025 Bryan O'Donoghue <bryan.odonoghue@linaro.org>
+ * Copyright (c) 2025 Val Packett <val@packett.cool>
+ */
+
+/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 Latitude 7455";
+ compatible = "dell,latitude-7455", "qcom,x1e80100";
+ chassis-type = "laptop";
+
+ aliases {
+ serial0 = &uart14;
+ };
+
+ 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>;
+ };
+ };
+
+ 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>;
+
+ /* Display-adjacent 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 = <&retimer_ss0_ss_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ pmic_glink_ss0_con_sbu_in: endpoint {
+ remote-endpoint = <&retimer_ss0_con_sbu_out>;
+ };
+ };
+ };
+ };
+
+ /* User-adjacent 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 = <&retimer_ss1_ss_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ pmic_glink_ss1_con_sbu_in: endpoint {
+ remote-endpoint = <&retimer_ss1_con_sbu_out>;
+ };
+ };
+ };
+ };
+ };
+
+ leds {
+ compatible = "gpio-leds";
+
+ pinctrl-0 = <&cam_indicator_en>;
+ pinctrl-names = "default";
+
+ 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;
+ };
+ };
+
+ reserved-memory {
+ linux,cma {
+ compatible = "shared-dma-pool";
+ size = <0x0 0x8000000>;
+ reusable;
+ linux,cma-default;
+ };
+ };
+
+ vreg_cam_1p8: regulator-cam-1p8 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_CAM_1P8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ gpio = <&tlmm 91 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&cam_ldo_en>;
+ pinctrl-names = "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";
+
+ regulator-boot-on;
+ };
+
+ vreg_rtmr0_1p15: regulator-rtmr0-1p15 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_RTMR0_1P15";
+ regulator-min-microvolt = <1150000>;
+ regulator-max-microvolt = <1150000>;
+
+ gpio = <&pmc8380_5_gpios 8 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&usb0_pwr_1p15_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vreg_rtmr0_1p8: regulator-rtmr0-1p8 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_RTMR0_1P8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ gpio = <&pm8550ve_9_gpios 8 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&usb0_1p8_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vreg_rtmr0_3p3: regulator-rtmr0-3p3 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_RTMR0_3P3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&pm8550_gpios 11 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&usb0_3p3_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vreg_rtmr1_1p15: regulator-rtmr1-1p15 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_RTMR1_1P15";
+ regulator-min-microvolt = <1150000>;
+ regulator-max-microvolt = <1150000>;
+
+ gpio = <&tlmm 188 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&usb1_pwr_1p15_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vreg_rtmr1_1p8: regulator-rtmr1-1p8 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_RTMR1_1P8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+
+ gpio = <&tlmm 175 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&usb1_pwr_1p8_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ vreg_rtmr1_3p3: regulator-rtmr1-3p3 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_RTMR1_3P3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&tlmm 186 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&usb1_pwr_3p3_reg_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ 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;
+ };
+
+ vreg_wcn_3p3: regulator-wcn-3p3 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_WCN_3P3";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+
+ gpio = <&tlmm 214 GPIO_ACTIVE_HIGH>;
+ enable-active-high;
+
+ pinctrl-0 = <&wcn_sw_en>;
+ pinctrl-names = "default";
+
+ regulator-boot-on;
+ };
+
+ /*
+ * TODO: These two regulators are actually part of the removable M.2
+ * card and not the mainboard. Need to describe this differently.
+ * Functionally it works correctly, because all we need to do is to
+ * turn on the actual 3.3V supply above.
+ */
+ vreg_wcn_0p95: regulator-wcn-0p95 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_WCN_0P95";
+ regulator-min-microvolt = <950000>;
+ regulator-max-microvolt = <950000>;
+
+ vin-supply = <&vreg_wcn_3p3>;
+ };
+
+ vreg_wcn_1p9: regulator-wcn-1p9 {
+ compatible = "regulator-fixed";
+
+ regulator-name = "VREG_WCN_1P9";
+ regulator-min-microvolt = <1900000>;
+ regulator-max-microvolt = <1900000>;
+
+ vin-supply = <&vreg_wcn_3p3>;
+ };
+
+ wcn7850-pmu {
+ compatible = "qcom,wcn7850-pmu";
+
+ vdd-supply = <&vreg_wcn_0p95>;
+ vddio-supply = <&vreg_l15b_1p8>;
+ vddaon-supply = <&vreg_wcn_0p95>;
+ vdddig-supply = <&vreg_wcn_0p95>;
+ vddrfa1p2-supply = <&vreg_wcn_1p9>;
+ vddrfa1p8-supply = <&vreg_wcn_1p9>;
+
+ wlan-enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
+ bt-enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>;
+
+ pinctrl-0 = <&wcn_wlan_bt_en>;
+ pinctrl-names = "default";
+
+ regulators {
+ vreg_pmu_rfa_cmn: ldo0 {
+ regulator-name = "vreg_pmu_rfa_cmn";
+ };
+
+ vreg_pmu_aon_0p59: ldo1 {
+ regulator-name = "vreg_pmu_aon_0p59";
+ };
+
+ vreg_pmu_wlcx_0p8: ldo2 {
+ regulator-name = "vreg_pmu_wlcx_0p8";
+ };
+
+ vreg_pmu_wlmx_0p85: ldo3 {
+ regulator-name = "vreg_pmu_wlmx_0p85";
+ };
+
+ vreg_pmu_btcmx_0p85: ldo4 {
+ regulator-name = "vreg_pmu_btcmx_0p85";
+ };
+
+ vreg_pmu_rfa_0p8: ldo5 {
+ regulator-name = "vreg_pmu_rfa_0p8";
+ };
+
+ vreg_pmu_rfa_1p2: ldo6 {
+ regulator-name = "vreg_pmu_rfa_1p2";
+ };
+
+ vreg_pmu_rfa_1p8: ldo7 {
+ regulator-name = "vreg_pmu_rfa_1p8";
+ };
+
+ vreg_pmu_pcie_0p9: ldo8 {
+ regulator-name = "vreg_pmu_pcie_0p9";
+ };
+
+ vreg_pmu_pcie_1p8: ldo9 {
+ regulator-name = "vreg_pmu_pcie_1p8";
+ };
+ };
+ };
+};
+
+&apps_rsc {
+ regulators-0 {
+ compatible = "qcom,pm8550-rpmh-regulators";
+ qcom,pmic-id = "b";
+
+ vdd-bob1-supply = <&vph_pwr>;
+ vdd-bob2-supply = <&vph_pwr>;
+ vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>;
+ vdd-l2-l13-l14-supply = <&vreg_bob1>;
+ vdd-l5-l16-supply = <&vreg_bob1>;
+ vdd-l6-l7-supply = <&vreg_bob2>;
+ vdd-l8-l9-supply = <&vreg_bob1>;
+ vdd-l12-supply = <&vreg_s5j_1p2>;
+ vdd-l15-supply = <&vreg_s4c_1p8>;
+ vdd-l17-supply = <&vreg_bob2>;
+
+ vreg_bob1: bob1 {
+ regulator-name = "vreg_bob1";
+ regulator-min-microvolt = <3008000>;
+ regulator-max-microvolt = <3960000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_bob2: bob2 {
+ regulator-name = "vreg_bob2";
+ regulator-min-microvolt = <2504000>;
+ regulator-max-microvolt = <3008000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1b_1p8: ldo1 {
+ regulator-name = "vreg_l1b_1p8";
+ regulator-min-microvolt = <1800000>;
+ regulator-max-microvolt = <1800000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l2b_3p0: ldo2 {
+ regulator-name = "vreg_l2b_3p0";
+ regulator-min-microvolt = <3072000>;
+ regulator-max-microvolt = <3100000>;
+ 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_l7b_2p8: ldo7 {
+ regulator-name = "vreg_l7b_2p8";
+ regulator-min-microvolt = <2800000>;
+ regulator-max-microvolt = <2800000>;
+ 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 = <3100000>;
+ 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>;
+ };
+ };
+
+ 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>;
+ vdd-s4-supply = <&vph_pwr>;
+
+ 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 = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3c_0p8: ldo3 {
+ regulator-name = "vreg_l3c_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-2 {
+ compatible = "qcom,pmc8380-rpmh-regulators";
+ qcom,pmic-id = "d";
+
+ vdd-l1-supply = <&vreg_s1f_0p7>;
+ vdd-l2-supply = <&vreg_s1f_0p7>;
+ vdd-l3-supply = <&vreg_s4c_1p8>;
+ vdd-s1-supply = <&vph_pwr>;
+
+ vreg_l1d_0p8: ldo1 {
+ regulator-name = "vreg_l1d_0p8";
+ regulator-min-microvolt = <880000>;
+ regulator-max-microvolt = <920000>;
+ 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 = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l3e_1p2: ldo3 {
+ regulator-name = "vreg_l3e_1p2";
+ regulator-min-microvolt = <1200000>;
+ regulator-max-microvolt = <1200000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-4 {
+ compatible = "qcom,pmc8380-rpmh-regulators";
+ qcom,pmic-id = "f";
+
+ vdd-l1-supply = <&vreg_s5j_1p2>;
+ vdd-l2-supply = <&vreg_s5j_1p2>;
+ vdd-l3-supply = <&vreg_s5j_1p2>;
+ vdd-s1-supply = <&vph_pwr>;
+
+ vreg_s1f_0p7: smps1 {
+ regulator-name = "vreg_s1f_0p7";
+ regulator-min-microvolt = <700000>;
+ regulator-max-microvolt = <1100000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-6 {
+ compatible = "qcom,pm8550ve-rpmh-regulators";
+ qcom,pmic-id = "i";
+
+ vdd-l1-supply = <&vreg_s4c_1p8>;
+ vdd-l2-supply = <&vreg_s5j_1p2>;
+ vdd-l3-supply = <&vreg_s1f_0p7>;
+ vdd-s1-supply = <&vph_pwr>;
+ vdd-s2-supply = <&vph_pwr>;
+
+ vreg_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 = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+
+ regulators-7 {
+ compatible = "qcom,pm8550ve-rpmh-regulators";
+ qcom,pmic-id = "j";
+
+ vdd-l1-supply = <&vreg_s1f_0p7>;
+ vdd-l2-supply = <&vreg_s5j_1p2>;
+ vdd-l3-supply = <&vreg_s1f_0p7>;
+ vdd-s5-supply = <&vph_pwr>;
+
+ vreg_s5j_1p2: smps5 {
+ regulator-name = "vreg_s5j_1p2";
+ regulator-min-microvolt = <1256000>;
+ regulator-max-microvolt = <1304000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+
+ vreg_l1j_0p8: ldo1 {
+ regulator-name = "vreg_l1j_0p8";
+ 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 = <920000>;
+ regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+ };
+ };
+};
+
+&gpu {
+ status = "okay";
+
+ zap-shader {
+ firmware-name = "qcom/x1e80100/dell/latitude-7455/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;
+ };
+
+ 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;
+ };
+};
+
+&i2c1 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+};
+
+&i2c3 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+
+ typec-mux@8 {
+ compatible = "parade,ps8830";
+ reg = <0x8>;
+
+ clocks = <&rpmhcc RPMH_RF_CLK3>;
+
+ vdd-supply = <&vreg_rtmr0_1p15>;
+ vdd33-supply = <&vreg_rtmr0_3p3>;
+ vdd33-cap-supply = <&vreg_rtmr0_3p3>;
+ vddar-supply = <&vreg_rtmr0_1p15>;
+ vddat-supply = <&vreg_rtmr0_1p15>;
+ vddio-supply = <&vreg_rtmr0_1p8>;
+
+ reset-gpios = <&pm8550_gpios 10 GPIO_ACTIVE_LOW>;
+
+ pinctrl-0 = <&rtmr0_default>;
+ pinctrl-names = "default";
+
+ retimer-switch;
+ orientation-switch;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ retimer_ss0_ss_out: endpoint {
+ remote-endpoint = <&pmic_glink_ss0_ss_in>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ retimer_ss0_ss_in: endpoint {
+ remote-endpoint = <&usb_1_ss0_qmpphy_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ retimer_ss0_con_sbu_out: endpoint {
+ remote-endpoint = <&pmic_glink_ss0_con_sbu_in>;
+ };
+ };
+ };
+ };
+};
+
+&i2c4 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+};
+
+&i2c5 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+
+ /* Type A Port */
+ eusb3_typea_repeater: redriver@43 {
+ compatible = "nxp,ptn3222";
+ reg = <0x43>;
+ #phy-cells = <0>;
+
+ vdd3v3-supply = <&vreg_l13b_3p0>;
+ vdd1v8-supply = <&vreg_l4b_1p8>;
+
+ reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
+
+ pinctrl-0 = <&eusb3_reset_n>;
+ pinctrl-names = "default";
+ };
+
+ /* Fingerprint scanner */
+ eusb5_frp_repeater: redriver@4f {
+ compatible = "nxp,ptn3222";
+ reg = <0x4f>;
+ #phy-cells = <0>;
+
+ vdd3v3-supply = <&vreg_l13b_3p0>;
+ vdd1v8-supply = <&vreg_l4b_1p8>;
+
+ reset-gpios = <&tlmm 184 GPIO_ACTIVE_LOW>;
+
+ pinctrl-0 = <&eusb5_reset_n>;
+ pinctrl-names = "default";
+ };
+};
+
+&i2c7 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+
+ typec-mux@8 {
+ compatible = "parade,ps8830";
+ reg = <0x8>;
+
+ clocks = <&rpmhcc RPMH_RF_CLK4>;
+
+ vdd-supply = <&vreg_rtmr1_1p15>;
+ vdd33-supply = <&vreg_rtmr1_3p3>;
+ vdd33-cap-supply = <&vreg_rtmr1_3p3>;
+ vddar-supply = <&vreg_rtmr1_1p15>;
+ vddat-supply = <&vreg_rtmr1_1p15>;
+ vddio-supply = <&vreg_rtmr1_1p8>;
+
+ reset-gpios = <&tlmm 176 GPIO_ACTIVE_LOW>;
+
+ pinctrl-0 = <&rtmr1_default>;
+ pinctrl-names = "default";
+
+ retimer-switch;
+ orientation-switch;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+
+ retimer_ss1_ss_out: endpoint {
+ remote-endpoint = <&pmic_glink_ss1_ss_in>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+
+ retimer_ss1_ss_in: endpoint {
+ remote-endpoint = <&usb_1_ss1_qmpphy_out>;
+ };
+ };
+
+ port@2 {
+ reg = <2>;
+
+ retimer_ss1_con_sbu_out: endpoint {
+ remote-endpoint = <&pmic_glink_ss1_con_sbu_in>;
+ };
+ };
+ };
+ };
+};
+
+&i2c8 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+
+ /* LXST2021 */
+ touchscreen@9 {
+ compatible = "hid-over-i2c";
+ reg = <0x09>;
+
+ hid-descr-addr = <0x1>;
+ interrupts-extended = <&tlmm 51 IRQ_TYPE_LEVEL_LOW>;
+
+ pinctrl-0 = <&ts0_default>;
+ pinctrl-names = "default";
+ };
+};
+
+&i2c20 {
+ clock-frequency = <400000>;
+
+ status = "okay";
+};
+
+&mdss {
+ status = "okay";
+};
+
+&mdss_dp0 {
+ status = "okay";
+};
+
+&mdss_dp0_out {
+ data-lanes = <0 1>;
+ link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
+&mdss_dp1 {
+ status = "okay";
+};
+
+&mdss_dp1_out {
+ data-lanes = <0 1>;
+ link-frequencies = /bits/ 64 <1620000000 2700000000 5400000000 8100000000>;
+};
+
+&mdss_dp3 {
+ /delete-property/ #sound-dai-cells;
+
+ status = "okay";
+
+ aux-bus {
+ panel {
+ compatible = "edp-panel";
+ enable-gpios = <&tlmm 74 GPIO_ACTIVE_HIGH>;
+ power-supply = <&vreg_edp_3p3>;
+
+ pinctrl-0 = <&edp_bl_en>;
+ pinctrl-names = "default";
+
+ 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";
+};
+
+&pcie4_port0 {
+ wifi@0 {
+ compatible = "pci17cb,1107";
+ reg = <0x10000 0x0 0x0 0x0 0x0>;
+
+ vddaon-supply = <&vreg_pmu_aon_0p59>;
+ vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+ vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+ vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+ vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+ vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+ vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
+ vddpcie0p9-supply = <&vreg_pmu_pcie_0p9>;
+ vddpcie1p8-supply = <&vreg_pmu_pcie_1p8>;
+ };
+};
+
+&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";
+};
+
+&pm8550_gpios {
+ rtmr0_default: rtmr0-reset-n-active-state {
+ pins = "gpio10";
+ function = "normal";
+ power-source = <1>; /* 1.8V */
+ bias-disable;
+ input-disable;
+ output-enable;
+ };
+
+ usb0_3p3_reg_en: usb0-3p3-reg-en-state {
+ pins = "gpio11";
+ function = "normal";
+ power-source = <1>; /* 1.8V */
+ bias-disable;
+ input-disable;
+ output-enable;
+ };
+};
+
+&pm8550ve_9_gpios {
+ usb0_1p8_reg_en: usb0-1p8-reg-en-state {
+ pins = "gpio8";
+ function = "normal";
+ power-source = <1>; /* 1.8V */
+ bias-disable;
+ input-disable;
+ output-enable;
+ };
+};
+
+&pmc8380_5_gpios {
+ usb0_pwr_1p15_reg_en: usb0-pwr-1p15-reg-en-state {
+ pins = "gpio8";
+ function = "normal";
+ power-source = <1>; /* 1.8V */
+ bias-disable;
+ input-disable;
+ output-enable;
+ };
+};
+
+&qupv3_0 {
+ status = "okay";
+};
+
+&qupv3_1 {
+ status = "okay";
+};
+
+&qupv3_2 {
+ status = "okay";
+};
+
+&remoteproc_adsp {
+ firmware-name = "qcom/x1e80100/dell/latitude-7455/qcadsp8380.mbn",
+ "qcom/x1e80100/dell/latitude-7455/adsp_dtbs.elf";
+
+ status = "okay";
+};
+
+&remoteproc_cdsp {
+ firmware-name = "qcom/x1e80100/dell/latitude-7455/qccdsp8380.mbn",
+ "qcom/x1e80100/dell/latitude-7455/cdsp_dtbs.elf";
+
+ status = "okay";
+};
+
+&sdhc_2 {
+ cd-gpios = <&tlmm 71 GPIO_ACTIVE_LOW>;
+ pinctrl-0 = <&sdc2_default &sdc2_card_det_n>;
+ pinctrl-1 = <&sdc2_sleep &sdc2_card_det_n>;
+ pinctrl-names = "default", "sleep";
+ vmmc-supply = <&vreg_l9b_2p9>;
+ vqmmc-supply = <&vreg_l6b_1p8>;
+ bus-width = <4>;
+ no-sdio;
+ no-mmc;
+ status = "okay";
+};
+
+&smb2360_0 {
+ status = "okay";
+};
+
+&smb2360_0_eusb2_repeater {
+ vdd18-supply = <&vreg_l3d_1p8>;
+ vdd3-supply = <&vreg_l2b_3p0>;
+};
+
+&smb2360_1 {
+ status = "okay";
+};
+
+&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_rgb_default: cam-rgb-default-state {
+ mclk-pins {
+ pins = "gpio100";
+ function = "cam_aon";
+ drive-strength = <16>;
+ bias-disable;
+ };
+
+ reset-n-pins {
+ pins = "gpio237";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+ };
+
+ cam_indicator_en: cam-indicator-en-state {
+ pins = "gpio110";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ cam_ldo_en: cam-ldo-en-state {
+ pins = "gpio91";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ edp_bl_en: edp-bl-en-state {
+ pins = "gpio74";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ edp_reg_en: edp-reg-en-state {
+ pins = "gpio70";
+ function = "gpio";
+ drive-strength = <16>;
+ bias-disable;
+ };
+
+ eusb3_reset_n: eusb3-reset-n-state {
+ pins = "gpio6";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ output-low;
+ };
+
+ eusb5_reset_n: eusb5-reset-n-state {
+ pins = "gpio184";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ output-low;
+ };
+
+ 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;
+ };
+ };
+
+ rtmr1_default: rtmr1-reset-n-active-state {
+ pins = "gpio176";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ sdc2_card_det_n: sdc2-card-det-state {
+ pins = "gpio71";
+ 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>;
+ };
+ };
+
+ usb1_pwr_1p15_reg_en: usb1-pwr-1p15-reg-en-state {
+ pins = "gpio188";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ usb1_pwr_1p8_reg_en: usb1-pwr-1p8-reg-en-state {
+ pins = "gpio175";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ usb1_pwr_3p3_reg_en: usb1-pwr-3p3-reg-en-state {
+ pins = "gpio186";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ wcn_sw_en: wcn-sw-en-state {
+ pins = "gpio214";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+
+ wcn_wlan_bt_en: wcn-wlan-bt-en-state {
+ pins = "gpio116", "gpio117";
+ function = "gpio";
+ drive-strength = <2>;
+ bias-disable;
+ };
+};
+
+&uart14 {
+ status = "okay";
+
+ bluetooth {
+ compatible = "qcom,wcn7850-bt";
+ max-speed = <3200000>;
+
+ vddaon-supply = <&vreg_pmu_aon_0p59>;
+ vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
+ vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
+ vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
+ vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
+ vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
+ vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
+ };
+};
+
+&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_l2j_1p2>;
+ vdda-pll-supply = <&vreg_l1j_0p8>;
+
+ 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 = <&retimer_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_l2j_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 = <&retimer_ss1_ss_in>;
+};
+
+&usb_2 {
+ status = "okay";
+};
+
+&usb_2_dwc3 {
+ dr_mode = "host";
+};
+
+&usb_2_hsphy {
+ vdd-supply = <&vreg_l2e_0p8>;
+ vdda12-supply = <&vreg_l3e_1p2>;
+
+ phys = <&eusb5_frp_repeater>;
+
+ status = "okay";
+};
+
+&usb_mp {
+ status = "okay";
+};
+
+&usb_mp_dwc3 {
+ phys = <&usb_mp_hsphy0>, <&usb_mp_qmpphy0>;
+ phy-names = "usb2-0", "usb3-0";
+};
+
+&usb_mp_hsphy0 {
+ vdd-supply = <&vreg_l2e_0p8>;
+ vdda12-supply = <&vreg_l3e_1p2>;
+
+ phys = <&eusb3_typea_repeater>;
+
+ status = "okay";
+};
+
+&usb_mp_qmpphy0 {
+ vdda-phy-supply = <&vreg_l3e_1p2>;
+ vdda-pll-supply = <&vreg_l3c_0p8>;
+
+ status = "okay";
+};
--
2.49.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH 3/4] firmware: qcom: scm: Allow QSEECOM on Dell Latitude 7455
2025-05-25 9:53 [PATCH 0/4] Add support for Dell Latitude 7455 (X1E-80-100) Val Packett
2025-05-25 9:53 ` [PATCH 1/4] dt-bindings: arm: qcom: Add Dell Latitude 7455 Val Packett
2025-05-25 9:53 ` [PATCH 2/4] arm64: dts: qcom: Add support for X1E80100 " Val Packett
@ 2025-05-25 9:53 ` Val Packett
2025-05-25 13:12 ` Dmitry Baryshkov
2025-08-11 18:41 ` (subset) [PATCH 0/4] Add support for Dell Latitude 7455 (X1E-80-100) Bjorn Andersson
3 siblings, 1 reply; 11+ messages in thread
From: Val Packett @ 2025-05-25 9:53 UTC (permalink / raw)
To: Bjorn Andersson, Konrad Dybcio; +Cc: Val Packett, linux-arm-msm, linux-kernel
Allow this machine to access efivars through qseecom/uefisecapp.
Signed-off-by: Val Packett <val@packett.cool>
---
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 f63b716be5b0..e01ce1e37459 100644
--- a/drivers/firmware/qcom/qcom_scm.c
+++ b/drivers/firmware/qcom/qcom_scm.c
@@ -1988,6 +1988,7 @@ static const struct of_device_id qcom_scm_qseecom_allowlist[] __maybe_unused = {
{ .compatible = "asus,vivobook-s15" },
{ .compatible = "asus,zenbook-a14-ux3407qa" },
{ .compatible = "asus,zenbook-a14-ux3407ra" },
+ { .compatible = "dell,latitude-7455" },
{ .compatible = "dell,xps13-9345" },
{ .compatible = "hp,elitebook-ultra-g1q" },
{ .compatible = "hp,omnibook-x14" },
--
2.49.0
^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 3/4] firmware: qcom: scm: Allow QSEECOM on Dell Latitude 7455
2025-05-25 9:53 ` [PATCH 3/4] firmware: qcom: scm: Allow QSEECOM on " Val Packett
@ 2025-05-25 13:12 ` Dmitry Baryshkov
0 siblings, 0 replies; 11+ messages in thread
From: Dmitry Baryshkov @ 2025-05-25 13:12 UTC (permalink / raw)
To: Val Packett; +Cc: Bjorn Andersson, Konrad Dybcio, linux-arm-msm, linux-kernel
On Sun, May 25, 2025 at 06:53:35AM -0300, Val Packett wrote:
> Allow this machine to access efivars through qseecom/uefisecapp.
>
> Signed-off-by: Val Packett <val@packett.cool>
> ---
> drivers/firmware/qcom/qcom_scm.c | 1 +
> 1 file changed, 1 insertion(+)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/4] arm64: dts: qcom: Add support for X1E80100 Dell Latitude 7455
2025-05-25 9:53 ` [PATCH 2/4] arm64: dts: qcom: Add support for X1E80100 " Val Packett
@ 2025-05-25 13:25 ` Dmitry Baryshkov
2025-05-27 12:24 ` Manivannan Sadhasivam
2025-05-27 11:25 ` Konrad Dybcio
1 sibling, 1 reply; 11+ messages in thread
From: Dmitry Baryshkov @ 2025-05-25 13:25 UTC (permalink / raw)
To: Val Packett
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, linux-arm-msm, devicetree, linux-kernel
On Sun, May 25, 2025 at 06:53:34AM -0300, Val Packett wrote:
> Add a device tree for the Dell Latitude 7455 (X Elite) laptop.
>
> Working:
> - Wi-Fi (WCN7850 hw2.0)
> - Bluetooth
> - USB Type-C x2 (with DP alt mode)
> - USB Type-A
> - USB Fingerprint reader
> - eDP Display (with brightness)
> - NVMe
> - SDHC (microSD slot)
> - Keyboard
> - Touchpad
> - Touchscreen
> - Battery
>
> Not included:
> - Audio
> - Camera
>
> Signed-off-by: Val Packett <val@packett.cool>
> ---
> arch/arm64/boot/dts/qcom/Makefile | 2 +
> .../dts/qcom/x1e80100-dell-latitude-7455.dts | 1484 +++++++++++++++++
> 2 files changed, 1486 insertions(+)
> create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-dell-latitude-7455.dts
>
> + 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>;
> +
> + /* Display-adjacent port */
> + connector@0 {
> + compatible = "usb-c-connector";
> + reg = <0>;
> + power-role = "dual";
> + data-role = "dual";
What does UCSI tell about these connectors? Are they really
dual-data-role?
> +
> + 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 = <&retimer_ss0_ss_out>;
> + };
> + };
> +
> + port@2 {
> + reg = <2>;
> +
> + pmic_glink_ss0_con_sbu_in: endpoint {
> + remote-endpoint = <&retimer_ss0_con_sbu_out>;
> + };
> + };
> + };
> + };
> +
> + /* User-adjacent 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 = <&retimer_ss1_ss_out>;
> + };
> + };
> +
> + port@2 {
> + reg = <2>;
> +
> + pmic_glink_ss1_con_sbu_in: endpoint {
> + remote-endpoint = <&retimer_ss1_con_sbu_out>;
> + };
> + };
> + };
> + };
> + };
> +
> + vreg_wcn_3p3: regulator-wcn-3p3 {
> + compatible = "regulator-fixed";
> +
> + regulator-name = "VREG_WCN_3P3";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> +
> + gpio = <&tlmm 214 GPIO_ACTIVE_HIGH>;
> + enable-active-high;
> +
> + pinctrl-0 = <&wcn_sw_en>;
> + pinctrl-names = "default";
> +
> + regulator-boot-on;
> + };
> +
> + /*
> + * TODO: These two regulators are actually part of the removable M.2
> + * card and not the mainboard. Need to describe this differently.
> + * Functionally it works correctly, because all we need to do is to
> + * turn on the actual 3.3V supply above.
> + */
Indeed, it should be possible to describe just M.2 card, because in
theory nothing prevents you from swapping it with some other card.
I _think_, it should be possible to describe WiFI part by listing 3.3V
supply as slot supply. However I don't think we have a way "random BT
connected to the UART". So, this is probably suitable.
> + vreg_wcn_0p95: regulator-wcn-0p95 {
> + compatible = "regulator-fixed";
> +
> + regulator-name = "VREG_WCN_0P95";
> + regulator-min-microvolt = <950000>;
> + regulator-max-microvolt = <950000>;
> +
> + vin-supply = <&vreg_wcn_3p3>;
> + };
> +
> + vreg_wcn_1p9: regulator-wcn-1p9 {
> + compatible = "regulator-fixed";
> +
> + regulator-name = "VREG_WCN_1P9";
> + regulator-min-microvolt = <1900000>;
> + regulator-max-microvolt = <1900000>;
> +
> + vin-supply = <&vreg_wcn_3p3>;
> + };
> +
> + wcn7850-pmu {
> + compatible = "qcom,wcn7850-pmu";
> +
> + vdd-supply = <&vreg_wcn_0p95>;
> + vddio-supply = <&vreg_l15b_1p8>;
> + vddaon-supply = <&vreg_wcn_0p95>;
> + vdddig-supply = <&vreg_wcn_0p95>;
> + vddrfa1p2-supply = <&vreg_wcn_1p9>;
> + vddrfa1p8-supply = <&vreg_wcn_1p9>;
> +
> + wlan-enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
> + bt-enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>;
> +
> + pinctrl-0 = <&wcn_wlan_bt_en>;
> + pinctrl-names = "default";
> +
> + regulators {
> + vreg_pmu_rfa_cmn: ldo0 {
> + regulator-name = "vreg_pmu_rfa_cmn";
> + };
> +
> + vreg_pmu_aon_0p59: ldo1 {
> + regulator-name = "vreg_pmu_aon_0p59";
> + };
> +
> + vreg_pmu_wlcx_0p8: ldo2 {
> + regulator-name = "vreg_pmu_wlcx_0p8";
> + };
> +
> + vreg_pmu_wlmx_0p85: ldo3 {
> + regulator-name = "vreg_pmu_wlmx_0p85";
> + };
> +
> + vreg_pmu_btcmx_0p85: ldo4 {
> + regulator-name = "vreg_pmu_btcmx_0p85";
> + };
> +
> + vreg_pmu_rfa_0p8: ldo5 {
> + regulator-name = "vreg_pmu_rfa_0p8";
> + };
> +
> + vreg_pmu_rfa_1p2: ldo6 {
> + regulator-name = "vreg_pmu_rfa_1p2";
> + };
> +
> + vreg_pmu_rfa_1p8: ldo7 {
> + regulator-name = "vreg_pmu_rfa_1p8";
> + };
> +
> + vreg_pmu_pcie_0p9: ldo8 {
> + regulator-name = "vreg_pmu_pcie_0p9";
> + };
> +
> + vreg_pmu_pcie_1p8: ldo9 {
> + regulator-name = "vreg_pmu_pcie_1p8";
> + };
> + };
> + };
> +};
> +
> +&apps_rsc {
> + regulators-0 {
> + compatible = "qcom,pm8550-rpmh-regulators";
> + qcom,pmic-id = "b";
> +
> + vdd-bob1-supply = <&vph_pwr>;
> + vdd-bob2-supply = <&vph_pwr>;
> + vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>;
> + vdd-l2-l13-l14-supply = <&vreg_bob1>;
> + vdd-l5-l16-supply = <&vreg_bob1>;
> + vdd-l6-l7-supply = <&vreg_bob2>;
> + vdd-l8-l9-supply = <&vreg_bob1>;
> + vdd-l12-supply = <&vreg_s5j_1p2>;
> + vdd-l15-supply = <&vreg_s4c_1p8>;
> + vdd-l17-supply = <&vreg_bob2>;
> +
> + vreg_bob1: bob1 {
> + regulator-name = "vreg_bob1";
> + regulator-min-microvolt = <3008000>;
> + regulator-max-microvolt = <3960000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_bob2: bob2 {
> + regulator-name = "vreg_bob2";
> + regulator-min-microvolt = <2504000>;
> + regulator-max-microvolt = <3008000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l1b_1p8: ldo1 {
> + regulator-name = "vreg_l1b_1p8";
> + regulator-min-microvolt = <1800000>;
> + regulator-max-microvolt = <1800000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l2b_3p0: ldo2 {
> + regulator-name = "vreg_l2b_3p0";
> + regulator-min-microvolt = <3072000>;
> + regulator-max-microvolt = <3100000>;
> + 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_l7b_2p8: ldo7 {
> + regulator-name = "vreg_l7b_2p8";
> + regulator-min-microvolt = <2800000>;
> + regulator-max-microvolt = <2800000>;
> + 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 = <3100000>;
> + 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>;
> + };
> + };
> +
> + 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>;
> + vdd-s4-supply = <&vph_pwr>;
> +
> + 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 = <920000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l3c_0p8: ldo3 {
> + regulator-name = "vreg_l3c_0p8";
> + regulator-min-microvolt = <880000>;
> + regulator-max-microvolt = <920000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +
> + regulators-2 {
> + compatible = "qcom,pmc8380-rpmh-regulators";
> + qcom,pmic-id = "d";
> +
> + vdd-l1-supply = <&vreg_s1f_0p7>;
> + vdd-l2-supply = <&vreg_s1f_0p7>;
> + vdd-l3-supply = <&vreg_s4c_1p8>;
> + vdd-s1-supply = <&vph_pwr>;
> +
> + vreg_l1d_0p8: ldo1 {
> + regulator-name = "vreg_l1d_0p8";
> + regulator-min-microvolt = <880000>;
> + regulator-max-microvolt = <920000>;
> + 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 = <920000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l3e_1p2: ldo3 {
> + regulator-name = "vreg_l3e_1p2";
> + regulator-min-microvolt = <1200000>;
> + regulator-max-microvolt = <1200000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +
> + regulators-4 {
> + compatible = "qcom,pmc8380-rpmh-regulators";
> + qcom,pmic-id = "f";
> +
> + vdd-l1-supply = <&vreg_s5j_1p2>;
> + vdd-l2-supply = <&vreg_s5j_1p2>;
> + vdd-l3-supply = <&vreg_s5j_1p2>;
> + vdd-s1-supply = <&vph_pwr>;
> +
> + vreg_s1f_0p7: smps1 {
> + regulator-name = "vreg_s1f_0p7";
> + regulator-min-microvolt = <700000>;
> + regulator-max-microvolt = <1100000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +
> + regulators-6 {
> + compatible = "qcom,pm8550ve-rpmh-regulators";
> + qcom,pmic-id = "i";
> +
> + vdd-l1-supply = <&vreg_s4c_1p8>;
> + vdd-l2-supply = <&vreg_s5j_1p2>;
> + vdd-l3-supply = <&vreg_s1f_0p7>;
> + vdd-s1-supply = <&vph_pwr>;
> + vdd-s2-supply = <&vph_pwr>;
> +
> + vreg_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 = <920000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +
> + regulators-7 {
> + compatible = "qcom,pm8550ve-rpmh-regulators";
> + qcom,pmic-id = "j";
> +
> + vdd-l1-supply = <&vreg_s1f_0p7>;
> + vdd-l2-supply = <&vreg_s5j_1p2>;
> + vdd-l3-supply = <&vreg_s1f_0p7>;
> + vdd-s5-supply = <&vph_pwr>;
> +
> + vreg_s5j_1p2: smps5 {
> + regulator-name = "vreg_s5j_1p2";
> + regulator-min-microvolt = <1256000>;
> + regulator-max-microvolt = <1304000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> +
> + vreg_l1j_0p8: ldo1 {
> + regulator-name = "vreg_l1j_0p8";
> + 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 = <920000>;
> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> + };
> + };
> +};
> +
> +&gpu {
> + status = "okay";
> +
> + zap-shader {
> + firmware-name = "qcom/x1e80100/dell/latitude-7455/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;
> + };
> +
> + 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;
> + };
> +};
> +
> +&i2c1 {
> + clock-frequency = <400000>;
> +
> + status = "okay";
Anything present on the bus? You can add a comment with chip names (if
you know them) or just probed I2C addresses.
> +};
> +
> +
> +&i2c4 {
> + clock-frequency = <400000>;
> +
> + status = "okay";
> +};
Same here
> +
> +
> +&i2c20 {
> + clock-frequency = <400000>;
> +
> + status = "okay";
And here
> +};
> +
> +
> +&qupv3_0 {
> + status = "okay";
> +};
> +
> +&qupv3_1 {
> + status = "okay";
> +};
> +
> +&qupv3_2 {
> + status = "okay";
> +};
And no GPI DMA devices?
> +
> +&remoteproc_adsp {
> + firmware-name = "qcom/x1e80100/dell/latitude-7455/qcadsp8380.mbn",
> + "qcom/x1e80100/dell/latitude-7455/adsp_dtbs.elf";
> +
> + status = "okay";
> +};
> +
> +&remoteproc_cdsp {
> + firmware-name = "qcom/x1e80100/dell/latitude-7455/qccdsp8380.mbn",
> + "qcom/x1e80100/dell/latitude-7455/cdsp_dtbs.elf";
> +
> + status = "okay";
> +};
> +
> +&sdhc_2 {
> + cd-gpios = <&tlmm 71 GPIO_ACTIVE_LOW>;
> + pinctrl-0 = <&sdc2_default &sdc2_card_det_n>;
> + pinctrl-1 = <&sdc2_sleep &sdc2_card_det_n>;
> + pinctrl-names = "default", "sleep";
> + vmmc-supply = <&vreg_l9b_2p9>;
> + vqmmc-supply = <&vreg_l6b_1p8>;
> + bus-width = <4>;
> + no-sdio;
> + no-mmc;
> + status = "okay";
> +};
> +
> +&smb2360_0 {
> + status = "okay";
> +};
> +
> +&smb2360_0_eusb2_repeater {
> + vdd18-supply = <&vreg_l3d_1p8>;
> + vdd3-supply = <&vreg_l2b_3p0>;
> +};
> +
> +&smb2360_1 {
> + status = "okay";
> +};
> +
> +&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_rgb_default: cam-rgb-default-state {
> + mclk-pins {
> + pins = "gpio100";
> + function = "cam_aon";
> + drive-strength = <16>;
> + bias-disable;
> + };
> +
> + reset-n-pins {
> + pins = "gpio237";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> + };
> +
> + cam_indicator_en: cam-indicator-en-state {
> + pins = "gpio110";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + cam_ldo_en: cam-ldo-en-state {
> + pins = "gpio91";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + edp_bl_en: edp-bl-en-state {
> + pins = "gpio74";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + edp_reg_en: edp-reg-en-state {
> + pins = "gpio70";
> + function = "gpio";
> + drive-strength = <16>;
> + bias-disable;
> + };
> +
> + eusb3_reset_n: eusb3-reset-n-state {
> + pins = "gpio6";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + output-low;
> + };
> +
> + eusb5_reset_n: eusb5-reset-n-state {
> + pins = "gpio184";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + output-low;
> + };
> +
> + 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;
> + };
> + };
> +
> + rtmr1_default: rtmr1-reset-n-active-state {
> + pins = "gpio176";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + sdc2_card_det_n: sdc2-card-det-state {
> + pins = "gpio71";
> + 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>;
> + };
> + };
> +
> + usb1_pwr_1p15_reg_en: usb1-pwr-1p15-reg-en-state {
> + pins = "gpio188";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + usb1_pwr_1p8_reg_en: usb1-pwr-1p8-reg-en-state {
> + pins = "gpio175";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + usb1_pwr_3p3_reg_en: usb1-pwr-3p3-reg-en-state {
> + pins = "gpio186";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + wcn_sw_en: wcn-sw-en-state {
> + pins = "gpio214";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +
> + wcn_wlan_bt_en: wcn-wlan-bt-en-state {
> + pins = "gpio116", "gpio117";
> + function = "gpio";
> + drive-strength = <2>;
> + bias-disable;
> + };
> +};
> +
> +&uart14 {
> + status = "okay";
> +
> + bluetooth {
> + compatible = "qcom,wcn7850-bt";
> + max-speed = <3200000>;
> +
> + vddaon-supply = <&vreg_pmu_aon_0p59>;
> + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
> + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
> + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
> + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
> + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
> + vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
> + };
> +};
> +
> +&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_l2j_1p2>;
> + vdda-pll-supply = <&vreg_l1j_0p8>;
> +
> + status = "okay";
> +};
> +
> +&usb_1_ss0 {
> + status = "okay";
> +};
Please order the chunks alphabetically. &usb_1_ss0_qmpphy can't be
before &usb_1_ss0.
> +
> +&usb_1_ss0_dwc3 {
> + dr_mode = "host";
This doesn't seem to match with the PMIC glink properties.
> +};
> +
> +&usb_1_ss0_dwc3_hs {
> + remote-endpoint = <&pmic_glink_ss0_hs_in>;
> +};
> +
> +&usb_1_ss0_qmpphy_out {
> + remote-endpoint = <&retimer_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_l2j_1p2>;
> + vdda-pll-supply = <&vreg_l2d_0p9>;
> +
> + status = "okay";
> +};
> +
> +&usb_1_ss1 {
> + status = "okay";
> +};
> +
> +&usb_1_ss1_dwc3 {
> + dr_mode = "host";
This also doesn't match PMIC GLINK configuration.
> +};
> +
> +&usb_1_ss1_dwc3_hs {
> + remote-endpoint = <&pmic_glink_ss1_hs_in>;
> +};
> +
> +&usb_1_ss1_qmpphy_out {
> + remote-endpoint = <&retimer_ss1_ss_in>;
> +};
> +
> +&usb_2 {
> + status = "okay";
> +};
> +
> +&usb_2_dwc3 {
> + dr_mode = "host";
> +};
> +
> +&usb_2_hsphy {
> + vdd-supply = <&vreg_l2e_0p8>;
> + vdda12-supply = <&vreg_l3e_1p2>;
> +
> + phys = <&eusb5_frp_repeater>;
> +
> + status = "okay";
> +};
> +
> +&usb_mp {
> + status = "okay";
> +};
> +
> +&usb_mp_dwc3 {
> + phys = <&usb_mp_hsphy0>, <&usb_mp_qmpphy0>;
> + phy-names = "usb2-0", "usb3-0";
> +};
> +
> +&usb_mp_hsphy0 {
> + vdd-supply = <&vreg_l2e_0p8>;
> + vdda12-supply = <&vreg_l3e_1p2>;
> +
> + phys = <&eusb3_typea_repeater>;
> +
> + status = "okay";
> +};
> +
> +&usb_mp_qmpphy0 {
> + vdda-phy-supply = <&vreg_l3e_1p2>;
> + vdda-pll-supply = <&vreg_l3c_0p8>;
> +
> + status = "okay";
> +};
> --
> 2.49.0
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/4] arm64: dts: qcom: Add support for X1E80100 Dell Latitude 7455
2025-05-25 9:53 ` [PATCH 2/4] arm64: dts: qcom: Add support for X1E80100 " Val Packett
2025-05-25 13:25 ` Dmitry Baryshkov
@ 2025-05-27 11:25 ` Konrad Dybcio
1 sibling, 0 replies; 11+ messages in thread
From: Konrad Dybcio @ 2025-05-27 11:25 UTC (permalink / raw)
To: Val Packett, Bjorn Andersson, Konrad Dybcio, Rob Herring,
Krzysztof Kozlowski, Conor Dooley
Cc: linux-arm-msm, devicetree, linux-kernel
On 5/25/25 11:53 AM, Val Packett wrote:
> Add a device tree for the Dell Latitude 7455 (X Elite) laptop.
>
> Working:
> - Wi-Fi (WCN7850 hw2.0)
> - Bluetooth
> - USB Type-C x2 (with DP alt mode)
> - USB Type-A
> - USB Fingerprint reader
> - eDP Display (with brightness)
> - NVMe
> - SDHC (microSD slot)
> - Keyboard
> - Touchpad
> - Touchscreen
> - Battery
>
> Not included:
> - Audio
> - Camera
>
> Signed-off-by: Val Packett <val@packett.cool>
> ---
[...]
> +&i2c3 {
> + clock-frequency = <400000>;
> +
> + status = "okay";
> +
> + typec-mux@8 {
> + compatible = "parade,ps8830";
I'd assume these are ps8833 instead, IIRC there's a pair of ID registers
[...]
> +&sdhc_2 {
> + cd-gpios = <&tlmm 71 GPIO_ACTIVE_LOW>;
> + pinctrl-0 = <&sdc2_default &sdc2_card_det_n>;
> + pinctrl-1 = <&sdc2_sleep &sdc2_card_det_n>;
> + pinctrl-names = "default", "sleep";
> + vmmc-supply = <&vreg_l9b_2p9>;
> + vqmmc-supply = <&vreg_l6b_1p8>;
> + bus-width = <4>;
> + no-sdio;
> + no-mmc;
> + status = "okay";
A consistent \n before 'status' would be appreciated
Konrad
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/4] arm64: dts: qcom: Add support for X1E80100 Dell Latitude 7455
2025-05-25 13:25 ` Dmitry Baryshkov
@ 2025-05-27 12:24 ` Manivannan Sadhasivam
2025-05-27 15:12 ` Stephan Gerhold
0 siblings, 1 reply; 11+ messages in thread
From: Manivannan Sadhasivam @ 2025-05-27 12:24 UTC (permalink / raw)
To: Dmitry Baryshkov, Val Packett
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, linux-arm-msm, devicetree, linux-kernel
On May 25, 2025 6:55:42 PM GMT+05:30, Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> wrote:
>On Sun, May 25, 2025 at 06:53:34AM -0300, Val Packett wrote:
>> Add a device tree for the Dell Latitude 7455 (X Elite) laptop.
>>
>> Working:
>> - Wi-Fi (WCN7850 hw2.0)
>> - Bluetooth
>> - USB Type-C x2 (with DP alt mode)
>> - USB Type-A
>> - USB Fingerprint reader
>> - eDP Display (with brightness)
>> - NVMe
>> - SDHC (microSD slot)
>> - Keyboard
>> - Touchpad
>> - Touchscreen
>> - Battery
>>
>> Not included:
>> - Audio
>> - Camera
>>
>> Signed-off-by: Val Packett <val@packett.cool>
>> ---
>> arch/arm64/boot/dts/qcom/Makefile | 2 +
>> .../dts/qcom/x1e80100-dell-latitude-7455.dts | 1484 +++++++++++++++++
>> 2 files changed, 1486 insertions(+)
>> create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-dell-latitude-7455.dts
>>
>
>> + 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>;
>> +
>> + /* Display-adjacent port */
>> + connector@0 {
>> + compatible = "usb-c-connector";
>> + reg = <0>;
>> + power-role = "dual";
>> + data-role = "dual";
>
>What does UCSI tell about these connectors? Are they really
>dual-data-role?
>
>> +
>> + 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 = <&retimer_ss0_ss_out>;
>> + };
>> + };
>> +
>> + port@2 {
>> + reg = <2>;
>> +
>> + pmic_glink_ss0_con_sbu_in: endpoint {
>> + remote-endpoint = <&retimer_ss0_con_sbu_out>;
>> + };
>> + };
>> + };
>> + };
>> +
>> + /* User-adjacent 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 = <&retimer_ss1_ss_out>;
>> + };
>> + };
>> +
>> + port@2 {
>> + reg = <2>;
>> +
>> + pmic_glink_ss1_con_sbu_in: endpoint {
>> + remote-endpoint = <&retimer_ss1_con_sbu_out>;
>> + };
>> + };
>> + };
>> + };
>> + };
>
>> +
>> + vreg_wcn_3p3: regulator-wcn-3p3 {
>> + compatible = "regulator-fixed";
>> +
>> + regulator-name = "VREG_WCN_3P3";
>> + regulator-min-microvolt = <3300000>;
>> + regulator-max-microvolt = <3300000>;
>> +
>> + gpio = <&tlmm 214 GPIO_ACTIVE_HIGH>;
>> + enable-active-high;
>> +
>> + pinctrl-0 = <&wcn_sw_en>;
>> + pinctrl-names = "default";
>> +
>> + regulator-boot-on;
>> + };
>> +
>> + /*
>> + * TODO: These two regulators are actually part of the removable M.2
>> + * card and not the mainboard. Need to describe this differently.
>> + * Functionally it works correctly, because all we need to do is to
>> + * turn on the actual 3.3V supply above.
>> + */
>
>Indeed, it should be possible to describe just M.2 card, because in
>theory nothing prevents you from swapping it with some other card.
>I _think_, it should be possible to describe WiFI part by listing 3.3V
>supply as slot supply. However I don't think we have a way "random BT
>connected to the UART". So, this is probably suitable.
If it is *just* an M.2 card, then why the PMU node for WLAN is defined? PMU is defining the internal supplies of the M.2 cards. If that's not required, you'd be better off with defining the slot supply alone in the PCIe bridge node. Like,
In SoC dtsi:
pcieport0: pcie@0 {
compatible "pciclass,0604"
...
};
In board dts:
&pcieport0 {
vpcie3v3-supply = <&vreg_wcn_3p3>;
};
But I guess you are sticking with PMU for UART? Even in that case, the PCIe node should just define the slot supply.
- Mani
>
>> + vreg_wcn_0p95: regulator-wcn-0p95 {
>> + compatible = "regulator-fixed";
>> +
>> + regulator-name = "VREG_WCN_0P95";
>> + regulator-min-microvolt = <950000>;
>> + regulator-max-microvolt = <950000>;
>> +
>> + vin-supply = <&vreg_wcn_3p3>;
>> + };
>> +
>> + vreg_wcn_1p9: regulator-wcn-1p9 {
>> + compatible = "regulator-fixed";
>> +
>> + regulator-name = "VREG_WCN_1P9";
>> + regulator-min-microvolt = <1900000>;
>> + regulator-max-microvolt = <1900000>;
>> +
>> + vin-supply = <&vreg_wcn_3p3>;
>> + };
>> +
>> + wcn7850-pmu {
>> + compatible = "qcom,wcn7850-pmu";
>> +
>> + vdd-supply = <&vreg_wcn_0p95>;
>> + vddio-supply = <&vreg_l15b_1p8>;
>> + vddaon-supply = <&vreg_wcn_0p95>;
>> + vdddig-supply = <&vreg_wcn_0p95>;
>> + vddrfa1p2-supply = <&vreg_wcn_1p9>;
>> + vddrfa1p8-supply = <&vreg_wcn_1p9>;
>> +
>> + wlan-enable-gpios = <&tlmm 117 GPIO_ACTIVE_HIGH>;
>> + bt-enable-gpios = <&tlmm 116 GPIO_ACTIVE_HIGH>;
>> +
>> + pinctrl-0 = <&wcn_wlan_bt_en>;
>> + pinctrl-names = "default";
>> +
>> + regulators {
>> + vreg_pmu_rfa_cmn: ldo0 {
>> + regulator-name = "vreg_pmu_rfa_cmn";
>> + };
>> +
>> + vreg_pmu_aon_0p59: ldo1 {
>> + regulator-name = "vreg_pmu_aon_0p59";
>> + };
>> +
>> + vreg_pmu_wlcx_0p8: ldo2 {
>> + regulator-name = "vreg_pmu_wlcx_0p8";
>> + };
>> +
>> + vreg_pmu_wlmx_0p85: ldo3 {
>> + regulator-name = "vreg_pmu_wlmx_0p85";
>> + };
>> +
>> + vreg_pmu_btcmx_0p85: ldo4 {
>> + regulator-name = "vreg_pmu_btcmx_0p85";
>> + };
>> +
>> + vreg_pmu_rfa_0p8: ldo5 {
>> + regulator-name = "vreg_pmu_rfa_0p8";
>> + };
>> +
>> + vreg_pmu_rfa_1p2: ldo6 {
>> + regulator-name = "vreg_pmu_rfa_1p2";
>> + };
>> +
>> + vreg_pmu_rfa_1p8: ldo7 {
>> + regulator-name = "vreg_pmu_rfa_1p8";
>> + };
>> +
>> + vreg_pmu_pcie_0p9: ldo8 {
>> + regulator-name = "vreg_pmu_pcie_0p9";
>> + };
>> +
>> + vreg_pmu_pcie_1p8: ldo9 {
>> + regulator-name = "vreg_pmu_pcie_1p8";
>> + };
>> + };
>> + };
>> +};
>> +
>> +&apps_rsc {
>> + regulators-0 {
>> + compatible = "qcom,pm8550-rpmh-regulators";
>> + qcom,pmic-id = "b";
>> +
>> + vdd-bob1-supply = <&vph_pwr>;
>> + vdd-bob2-supply = <&vph_pwr>;
>> + vdd-l1-l4-l10-supply = <&vreg_s4c_1p8>;
>> + vdd-l2-l13-l14-supply = <&vreg_bob1>;
>> + vdd-l5-l16-supply = <&vreg_bob1>;
>> + vdd-l6-l7-supply = <&vreg_bob2>;
>> + vdd-l8-l9-supply = <&vreg_bob1>;
>> + vdd-l12-supply = <&vreg_s5j_1p2>;
>> + vdd-l15-supply = <&vreg_s4c_1p8>;
>> + vdd-l17-supply = <&vreg_bob2>;
>> +
>> + vreg_bob1: bob1 {
>> + regulator-name = "vreg_bob1";
>> + regulator-min-microvolt = <3008000>;
>> + regulator-max-microvolt = <3960000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_bob2: bob2 {
>> + regulator-name = "vreg_bob2";
>> + regulator-min-microvolt = <2504000>;
>> + regulator-max-microvolt = <3008000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_l1b_1p8: ldo1 {
>> + regulator-name = "vreg_l1b_1p8";
>> + regulator-min-microvolt = <1800000>;
>> + regulator-max-microvolt = <1800000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_l2b_3p0: ldo2 {
>> + regulator-name = "vreg_l2b_3p0";
>> + regulator-min-microvolt = <3072000>;
>> + regulator-max-microvolt = <3100000>;
>> + 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_l7b_2p8: ldo7 {
>> + regulator-name = "vreg_l7b_2p8";
>> + regulator-min-microvolt = <2800000>;
>> + regulator-max-microvolt = <2800000>;
>> + 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 = <3100000>;
>> + 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>;
>> + };
>> + };
>> +
>> + 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>;
>> + vdd-s4-supply = <&vph_pwr>;
>> +
>> + 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 = <920000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_l3c_0p8: ldo3 {
>> + regulator-name = "vreg_l3c_0p8";
>> + regulator-min-microvolt = <880000>;
>> + regulator-max-microvolt = <920000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> + };
>> +
>> + regulators-2 {
>> + compatible = "qcom,pmc8380-rpmh-regulators";
>> + qcom,pmic-id = "d";
>> +
>> + vdd-l1-supply = <&vreg_s1f_0p7>;
>> + vdd-l2-supply = <&vreg_s1f_0p7>;
>> + vdd-l3-supply = <&vreg_s4c_1p8>;
>> + vdd-s1-supply = <&vph_pwr>;
>> +
>> + vreg_l1d_0p8: ldo1 {
>> + regulator-name = "vreg_l1d_0p8";
>> + regulator-min-microvolt = <880000>;
>> + regulator-max-microvolt = <920000>;
>> + 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 = <920000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_l3e_1p2: ldo3 {
>> + regulator-name = "vreg_l3e_1p2";
>> + regulator-min-microvolt = <1200000>;
>> + regulator-max-microvolt = <1200000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> + };
>> +
>> + regulators-4 {
>> + compatible = "qcom,pmc8380-rpmh-regulators";
>> + qcom,pmic-id = "f";
>> +
>> + vdd-l1-supply = <&vreg_s5j_1p2>;
>> + vdd-l2-supply = <&vreg_s5j_1p2>;
>> + vdd-l3-supply = <&vreg_s5j_1p2>;
>> + vdd-s1-supply = <&vph_pwr>;
>> +
>> + vreg_s1f_0p7: smps1 {
>> + regulator-name = "vreg_s1f_0p7";
>> + regulator-min-microvolt = <700000>;
>> + regulator-max-microvolt = <1100000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> + };
>> +
>> + regulators-6 {
>> + compatible = "qcom,pm8550ve-rpmh-regulators";
>> + qcom,pmic-id = "i";
>> +
>> + vdd-l1-supply = <&vreg_s4c_1p8>;
>> + vdd-l2-supply = <&vreg_s5j_1p2>;
>> + vdd-l3-supply = <&vreg_s1f_0p7>;
>> + vdd-s1-supply = <&vph_pwr>;
>> + vdd-s2-supply = <&vph_pwr>;
>> +
>> + vreg_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 = <920000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> + };
>> +
>> + regulators-7 {
>> + compatible = "qcom,pm8550ve-rpmh-regulators";
>> + qcom,pmic-id = "j";
>> +
>> + vdd-l1-supply = <&vreg_s1f_0p7>;
>> + vdd-l2-supply = <&vreg_s5j_1p2>;
>> + vdd-l3-supply = <&vreg_s1f_0p7>;
>> + vdd-s5-supply = <&vph_pwr>;
>> +
>> + vreg_s5j_1p2: smps5 {
>> + regulator-name = "vreg_s5j_1p2";
>> + regulator-min-microvolt = <1256000>;
>> + regulator-max-microvolt = <1304000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> +
>> + vreg_l1j_0p8: ldo1 {
>> + regulator-name = "vreg_l1j_0p8";
>> + 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 = <920000>;
>> + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>> + };
>> + };
>> +};
>> +
>> +&gpu {
>> + status = "okay";
>> +
>> + zap-shader {
>> + firmware-name = "qcom/x1e80100/dell/latitude-7455/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;
>> + };
>> +
>> + 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;
>> + };
>> +};
>> +
>> +&i2c1 {
>> + clock-frequency = <400000>;
>> +
>> + status = "okay";
>
>Anything present on the bus? You can add a comment with chip names (if
>you know them) or just probed I2C addresses.
>
>> +};
>> +
>> +
>> +&i2c4 {
>> + clock-frequency = <400000>;
>> +
>> + status = "okay";
>> +};
>
>Same here
>
>> +
>> +
>> +&i2c20 {
>> + clock-frequency = <400000>;
>> +
>> + status = "okay";
>
>And here
>
>> +};
>> +
>> +
>> +&qupv3_0 {
>> + status = "okay";
>> +};
>> +
>> +&qupv3_1 {
>> + status = "okay";
>> +};
>> +
>> +&qupv3_2 {
>> + status = "okay";
>> +};
>
>And no GPI DMA devices?
>
>> +
>> +&remoteproc_adsp {
>> + firmware-name = "qcom/x1e80100/dell/latitude-7455/qcadsp8380.mbn",
>> + "qcom/x1e80100/dell/latitude-7455/adsp_dtbs.elf";
>> +
>> + status = "okay";
>> +};
>> +
>> +&remoteproc_cdsp {
>> + firmware-name = "qcom/x1e80100/dell/latitude-7455/qccdsp8380.mbn",
>> + "qcom/x1e80100/dell/latitude-7455/cdsp_dtbs.elf";
>> +
>> + status = "okay";
>> +};
>> +
>> +&sdhc_2 {
>> + cd-gpios = <&tlmm 71 GPIO_ACTIVE_LOW>;
>> + pinctrl-0 = <&sdc2_default &sdc2_card_det_n>;
>> + pinctrl-1 = <&sdc2_sleep &sdc2_card_det_n>;
>> + pinctrl-names = "default", "sleep";
>> + vmmc-supply = <&vreg_l9b_2p9>;
>> + vqmmc-supply = <&vreg_l6b_1p8>;
>> + bus-width = <4>;
>> + no-sdio;
>> + no-mmc;
>> + status = "okay";
>> +};
>> +
>> +&smb2360_0 {
>> + status = "okay";
>> +};
>> +
>> +&smb2360_0_eusb2_repeater {
>> + vdd18-supply = <&vreg_l3d_1p8>;
>> + vdd3-supply = <&vreg_l2b_3p0>;
>> +};
>> +
>> +&smb2360_1 {
>> + status = "okay";
>> +};
>> +
>> +&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_rgb_default: cam-rgb-default-state {
>> + mclk-pins {
>> + pins = "gpio100";
>> + function = "cam_aon";
>> + drive-strength = <16>;
>> + bias-disable;
>> + };
>> +
>> + reset-n-pins {
>> + pins = "gpio237";
>> + function = "gpio";
>> + drive-strength = <2>;
>> + bias-disable;
>> + };
>> + };
>> +
>> + cam_indicator_en: cam-indicator-en-state {
>> + pins = "gpio110";
>> + function = "gpio";
>> + drive-strength = <2>;
>> + bias-disable;
>> + };
>> +
>> + cam_ldo_en: cam-ldo-en-state {
>> + pins = "gpio91";
>> + function = "gpio";
>> + drive-strength = <2>;
>> + bias-disable;
>> + };
>> +
>> + edp_bl_en: edp-bl-en-state {
>> + pins = "gpio74";
>> + function = "gpio";
>> + drive-strength = <2>;
>> + bias-disable;
>> + };
>> +
>> + edp_reg_en: edp-reg-en-state {
>> + pins = "gpio70";
>> + function = "gpio";
>> + drive-strength = <16>;
>> + bias-disable;
>> + };
>> +
>> + eusb3_reset_n: eusb3-reset-n-state {
>> + pins = "gpio6";
>> + function = "gpio";
>> + drive-strength = <2>;
>> + bias-disable;
>> + output-low;
>> + };
>> +
>> + eusb5_reset_n: eusb5-reset-n-state {
>> + pins = "gpio184";
>> + function = "gpio";
>> + drive-strength = <2>;
>> + bias-disable;
>> + output-low;
>> + };
>> +
>> + 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;
>> + };
>> + };
>> +
>> + rtmr1_default: rtmr1-reset-n-active-state {
>> + pins = "gpio176";
>> + function = "gpio";
>> + drive-strength = <2>;
>> + bias-disable;
>> + };
>> +
>> + sdc2_card_det_n: sdc2-card-det-state {
>> + pins = "gpio71";
>> + 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>;
>> + };
>> + };
>> +
>> + usb1_pwr_1p15_reg_en: usb1-pwr-1p15-reg-en-state {
>> + pins = "gpio188";
>> + function = "gpio";
>> + drive-strength = <2>;
>> + bias-disable;
>> + };
>> +
>> + usb1_pwr_1p8_reg_en: usb1-pwr-1p8-reg-en-state {
>> + pins = "gpio175";
>> + function = "gpio";
>> + drive-strength = <2>;
>> + bias-disable;
>> + };
>> +
>> + usb1_pwr_3p3_reg_en: usb1-pwr-3p3-reg-en-state {
>> + pins = "gpio186";
>> + function = "gpio";
>> + drive-strength = <2>;
>> + bias-disable;
>> + };
>> +
>> + wcn_sw_en: wcn-sw-en-state {
>> + pins = "gpio214";
>> + function = "gpio";
>> + drive-strength = <2>;
>> + bias-disable;
>> + };
>> +
>> + wcn_wlan_bt_en: wcn-wlan-bt-en-state {
>> + pins = "gpio116", "gpio117";
>> + function = "gpio";
>> + drive-strength = <2>;
>> + bias-disable;
>> + };
>> +};
>> +
>> +&uart14 {
>> + status = "okay";
>> +
>> + bluetooth {
>> + compatible = "qcom,wcn7850-bt";
>> + max-speed = <3200000>;
>> +
>> + vddaon-supply = <&vreg_pmu_aon_0p59>;
>> + vddwlcx-supply = <&vreg_pmu_wlcx_0p8>;
>> + vddwlmx-supply = <&vreg_pmu_wlmx_0p85>;
>> + vddrfacmn-supply = <&vreg_pmu_rfa_cmn>;
>> + vddrfa0p8-supply = <&vreg_pmu_rfa_0p8>;
>> + vddrfa1p2-supply = <&vreg_pmu_rfa_1p2>;
>> + vddrfa1p8-supply = <&vreg_pmu_rfa_1p8>;
>> + };
>> +};
>> +
>> +&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_l2j_1p2>;
>> + vdda-pll-supply = <&vreg_l1j_0p8>;
>> +
>> + status = "okay";
>> +};
>> +
>> +&usb_1_ss0 {
>> + status = "okay";
>> +};
>
>Please order the chunks alphabetically. &usb_1_ss0_qmpphy can't be
>before &usb_1_ss0.
>
>> +
>> +&usb_1_ss0_dwc3 {
>> + dr_mode = "host";
>
>This doesn't seem to match with the PMIC glink properties.
>
>> +};
>> +
>> +&usb_1_ss0_dwc3_hs {
>> + remote-endpoint = <&pmic_glink_ss0_hs_in>;
>> +};
>> +
>> +&usb_1_ss0_qmpphy_out {
>> + remote-endpoint = <&retimer_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_l2j_1p2>;
>> + vdda-pll-supply = <&vreg_l2d_0p9>;
>> +
>> + status = "okay";
>> +};
>> +
>> +&usb_1_ss1 {
>> + status = "okay";
>> +};
>> +
>> +&usb_1_ss1_dwc3 {
>> + dr_mode = "host";
>
>This also doesn't match PMIC GLINK configuration.
>
>> +};
>> +
>> +&usb_1_ss1_dwc3_hs {
>> + remote-endpoint = <&pmic_glink_ss1_hs_in>;
>> +};
>> +
>> +&usb_1_ss1_qmpphy_out {
>> + remote-endpoint = <&retimer_ss1_ss_in>;
>> +};
>> +
>> +&usb_2 {
>> + status = "okay";
>> +};
>> +
>> +&usb_2_dwc3 {
>> + dr_mode = "host";
>> +};
>> +
>> +&usb_2_hsphy {
>> + vdd-supply = <&vreg_l2e_0p8>;
>> + vdda12-supply = <&vreg_l3e_1p2>;
>> +
>> + phys = <&eusb5_frp_repeater>;
>> +
>> + status = "okay";
>> +};
>> +
>> +&usb_mp {
>> + status = "okay";
>> +};
>> +
>> +&usb_mp_dwc3 {
>> + phys = <&usb_mp_hsphy0>, <&usb_mp_qmpphy0>;
>> + phy-names = "usb2-0", "usb3-0";
>> +};
>> +
>> +&usb_mp_hsphy0 {
>> + vdd-supply = <&vreg_l2e_0p8>;
>> + vdda12-supply = <&vreg_l3e_1p2>;
>> +
>> + phys = <&eusb3_typea_repeater>;
>> +
>> + status = "okay";
>> +};
>> +
>> +&usb_mp_qmpphy0 {
>> + vdda-phy-supply = <&vreg_l3e_1p2>;
>> + vdda-pll-supply = <&vreg_l3c_0p8>;
>> +
>> + status = "okay";
>> +};
>> --
>> 2.49.0
>>
>
மணிவண்ணன் சதாசிவம்
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 2/4] arm64: dts: qcom: Add support for X1E80100 Dell Latitude 7455
2025-05-27 12:24 ` Manivannan Sadhasivam
@ 2025-05-27 15:12 ` Stephan Gerhold
0 siblings, 0 replies; 11+ messages in thread
From: Stephan Gerhold @ 2025-05-27 15:12 UTC (permalink / raw)
To: Manivannan Sadhasivam
Cc: Dmitry Baryshkov, Val Packett, Bjorn Andersson, Konrad Dybcio,
Rob Herring, Krzysztof Kozlowski, Conor Dooley, linux-arm-msm,
devicetree, linux-kernel, Johan Hovold
On Tue, May 27, 2025 at 05:54:49PM +0530, Manivannan Sadhasivam wrote:
> On May 25, 2025 6:55:42 PM GMT+05:30, Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> wrote:
> >On Sun, May 25, 2025 at 06:53:34AM -0300, Val Packett wrote:
> >> Add a device tree for the Dell Latitude 7455 (X Elite) laptop.
> >>
> >> Working:
> >> - Wi-Fi (WCN7850 hw2.0)
> >> - Bluetooth
> >> - USB Type-C x2 (with DP alt mode)
> >> - USB Type-A
> >> - USB Fingerprint reader
> >> - eDP Display (with brightness)
> >> - NVMe
> >> - SDHC (microSD slot)
> >> - Keyboard
> >> - Touchpad
> >> - Touchscreen
> >> - Battery
> >>
> >> Not included:
> >> - Audio
> >> - Camera
> >>
> >> Signed-off-by: Val Packett <val@packett.cool>
> >> ---
> >> arch/arm64/boot/dts/qcom/Makefile | 2 +
> >> .../dts/qcom/x1e80100-dell-latitude-7455.dts | 1484 +++++++++++++++++
> >> 2 files changed, 1486 insertions(+)
> >> create mode 100644 arch/arm64/boot/dts/qcom/x1e80100-dell-latitude-7455.dts
> >>
> >
> [...]
> >> +
> >> + vreg_wcn_3p3: regulator-wcn-3p3 {
> >> + compatible = "regulator-fixed";
> >> +
> >> + regulator-name = "VREG_WCN_3P3";
> >> + regulator-min-microvolt = <3300000>;
> >> + regulator-max-microvolt = <3300000>;
> >> +
> >> + gpio = <&tlmm 214 GPIO_ACTIVE_HIGH>;
> >> + enable-active-high;
> >> +
> >> + pinctrl-0 = <&wcn_sw_en>;
> >> + pinctrl-names = "default";
> >> +
> >> + regulator-boot-on;
> >> + };
> >> +
> >> + /*
> >> + * TODO: These two regulators are actually part of the removable M.2
> >> + * card and not the mainboard. Need to describe this differently.
> >> + * Functionally it works correctly, because all we need to do is to
> >> + * turn on the actual 3.3V supply above.
> >> + */
> >
> >Indeed, it should be possible to describe just M.2 card, because in
> >theory nothing prevents you from swapping it with some other card.
> >I _think_, it should be possible to describe WiFI part by listing 3.3V
> >supply as slot supply. However I don't think we have a way "random BT
> >connected to the UART". So, this is probably suitable.
>
> If it is *just* an M.2 card, then why the PMU node for WLAN is
> defined?
We keep discussing incomplete approaches for handling these M.2 cards,
but still haven't come up with a proper consensus for the whole setup.
This is why currently describing the PMU - even if it feels weird and
describes lots of redundant information - is the only working solution.
These are reasonably standard M.2 cards, with the following resources
that must be controlled:
- Shared:
- 3.3V supply
- 1.8V supply
- WiFi:
- PCIe (discoverable)
- wlan-enable-gpios (W_DISABLE1#)
- Bluetooth
- UART (non-discoverable, must be hardcoded in DT?)
- bt-enable-gpios (W_DISABLE2#)
Currently, defining the PMU is required for the Bluetooth
(qcom,wcn7850-bt) and also the WiFi (pci17cb,1107) bindings. We need to
add proper alternatives for the M.2 case.
> PMU is defining the internal supplies of the M.2 cards. If
> that's not required, you'd be better off with defining the slot supply
> alone in the PCIe bridge node. Like,
>
> In SoC dtsi:
>
> pcieport0: pcie@0 {
> compatible "pciclass,0604"
> ...
> };
>
> In board dts:
>
> &pcieport0 {
> vpcie3v3-supply = <&vreg_wcn_3p3>;
> };
>
> But I guess you are sticking with PMU for UART? Even in that case, the PCIe node should just define the slot supply.
>
Can this handle the standard 1.8V supply as well? What about the
wlan-enable-gpios (W_DISABLE1#)? I don't think it makes sense describing
the shared PMU only for Bluetooth. The question if the PMU really needs
to be modelled at all (rather than relying on reference counting for
regulators etc) is also still open though.
We need to start looking for solutions for the whole setup. We have
discussed lots of partial solutions over the last year, but eventually
always got stuck when putting things together for the whole M.2 card. :/
Thanks,
Stephan
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 1/4] dt-bindings: arm: qcom: Add Dell Latitude 7455
2025-05-25 9:53 ` [PATCH 1/4] dt-bindings: arm: qcom: Add Dell Latitude 7455 Val Packett
@ 2025-05-29 9:29 ` Krzysztof Kozlowski
0 siblings, 0 replies; 11+ messages in thread
From: Krzysztof Kozlowski @ 2025-05-29 9:29 UTC (permalink / raw)
To: Val Packett
Cc: Bjorn Andersson, Konrad Dybcio, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, linux-arm-msm, devicetree, linux-kernel
On Sun, May 25, 2025 at 06:53:33AM GMT, Val Packett wrote:
> Document the X1E80100-based Dell Latitude 7455 laptop.
>
> Signed-off-by: Val Packett <val@packett.cool>
> ---
> Documentation/devicetree/bindings/arm/qcom.yaml | 1 +
> 1 file changed, 1 insertion(+)
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: (subset) [PATCH 0/4] Add support for Dell Latitude 7455 (X1E-80-100)
2025-05-25 9:53 [PATCH 0/4] Add support for Dell Latitude 7455 (X1E-80-100) Val Packett
` (2 preceding siblings ...)
2025-05-25 9:53 ` [PATCH 3/4] firmware: qcom: scm: Allow QSEECOM on " Val Packett
@ 2025-08-11 18:41 ` Bjorn Andersson
3 siblings, 0 replies; 11+ messages in thread
From: Bjorn Andersson @ 2025-08-11 18:41 UTC (permalink / raw)
To: Konrad Dybcio, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
linux-arm-msm, devicetree, linux-kernel, Val Packett
On Sun, 25 May 2025 06:53:32 -0300, Val Packett wrote:
> just got a Dell that wasn't properly brought up before, works pretty well now :)
>
> The hardware is very similar to other Dells, especially the Inspiron 14p 7441,
> so big thanks to Bryan O'Donoghue for the patches for that one.
>
> Works:
> - USB Type-C x2, including DP alt mode (PS8830)
> - USB Type-A & USB fingerprint reader (PTN3222)
> - Wi-Fi & Bluetooth (WCN7850 hw2.0)
> - Display, Backlight (eDP: BOE NE14QDM-???)
> - Keyboard, Touchpad, Touchscreen (I2C HID)
> - microSD card reader (SDHC)
> - Battery info (aDSP, unlike the Inspiron (0.o))
>
> [...]
Applied, thanks!
[1/4] dt-bindings: arm: qcom: Add Dell Latitude 7455
commit: 1a67f85c690658a35cac41c070df33e3e5a72868
Best regards,
--
Bjorn Andersson <andersson@kernel.org>
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2025-08-11 18:41 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-25 9:53 [PATCH 0/4] Add support for Dell Latitude 7455 (X1E-80-100) Val Packett
2025-05-25 9:53 ` [PATCH 1/4] dt-bindings: arm: qcom: Add Dell Latitude 7455 Val Packett
2025-05-29 9:29 ` Krzysztof Kozlowski
2025-05-25 9:53 ` [PATCH 2/4] arm64: dts: qcom: Add support for X1E80100 " Val Packett
2025-05-25 13:25 ` Dmitry Baryshkov
2025-05-27 12:24 ` Manivannan Sadhasivam
2025-05-27 15:12 ` Stephan Gerhold
2025-05-27 11:25 ` Konrad Dybcio
2025-05-25 9:53 ` [PATCH 3/4] firmware: qcom: scm: Allow QSEECOM on " Val Packett
2025-05-25 13:12 ` Dmitry Baryshkov
2025-08-11 18:41 ` (subset) [PATCH 0/4] Add support for Dell Latitude 7455 (X1E-80-100) Bjorn Andersson
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).