diff mbox series

[v2,1/1] arm64: dts: qcom: x1e80100-dell-xps-9345: Add WiFi/BT pwrseq

Message ID 20250331073423.3184322-2-alex.vinarskis@gmail.com (mailing list archive)
State Superseded
Headers show
Series arm64: dts: qcom: x1e80100-dell-xps-9345: Add WiFi/BT pwrseq | expand

Commit Message

Aleksandrs Vinarskis March 31, 2025, 7:33 a.m. UTC
Add the WiFi/BT nodes for XPS and describe the regulators for the WCN7850
combo chip using the new power sequencing bindings. All voltages are
derived from chained fixed regulators controlled using a single GPIO.

Based on the commit d09ab685a8f5 ("arm64: dts: qcom: x1e80100-qcp: Add
WiFi/BT pwrseq").

With that fixed commit f5b788d0e8cd ("arm64: dts: qcom: Add support for
X1-based Dell XPS 13 9345")

Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Signed-off-by: Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
---
 .../dts/qcom/x1e80100-dell-xps13-9345.dts     | 144 ++++++++++++++++++
 1 file changed, 144 insertions(+)

Comments

Johan Hovold March 31, 2025, 8:09 a.m. UTC | #1
[ +CC: Stephan ]

On Mon, Mar 31, 2025 at 08:33:47AM +0100, Aleksandrs Vinarskis wrote:
> Add the WiFi/BT nodes for XPS and describe the regulators for the WCN7850
> combo chip using the new power sequencing bindings. All voltages are
> derived from chained fixed regulators controlled using a single GPIO.
> 
> Based on the commit d09ab685a8f5 ("arm64: dts: qcom: x1e80100-qcp: Add
> WiFi/BT pwrseq").

Are you sure this is correct and that you don't need to worry about the
"how do we model the supplies to an M.2 card" issue?

See

	https://lore.kernel.org/lkml/Z-KuG0aOwEnxuhp9@linaro.org/

> With that fixed commit f5b788d0e8cd ("arm64: dts: qcom: Add support for
> X1-based Dell XPS 13 9345")

Not sure what happened here.
 
Johan
Bryan O'Donoghue March 31, 2025, 8:33 a.m. UTC | #2
On 31/03/2025 08:33, Aleksandrs Vinarskis wrote:
> Add the WiFi/BT nodes for XPS and describe the regulators for the WCN7850
> combo chip using the new power sequencing bindings. All voltages are
> derived from chained fixed regulators controlled using a single GPIO.
> 
> Based on the commit d09ab685a8f5 ("arm64: dts: qcom: x1e80100-qcp: Add
> WiFi/BT pwrseq").
> 
> With that fixed commit f5b788d0e8cd ("arm64: dts: qcom: Add support for
> X1-based Dell XPS 13 9345")
> 
> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> Signed-off-by: Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
> ---
>   .../dts/qcom/x1e80100-dell-xps13-9345.dts     | 144 ++++++++++++++++++
>   1 file changed, 144 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts b/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
> index d259a0d12d7b..c924f2a67939 100644
> --- a/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
> +++ b/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
> @@ -22,6 +22,7 @@ / {
> 
>   	aliases {
>   		serial0 = &uart21;
> +		serial1 = &uart14;
>   	};
> 
>   	gpio-keys {
> @@ -288,6 +289,101 @@ vreg_vph_pwr: regulator-vph-pwr {
>   		regulator-always-on;
>   		regulator-boot-on;
>   	};
> +
> +	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>;
> +	};
> +
> +	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;
> +	};
> +
> +	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 {
> @@ -861,6 +957,23 @@ &pcie4_phy {
>   	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>;
> @@ -1127,6 +1240,37 @@ reset-n-pins {
>   			drive-strength = <2>;
>   		};
>   	};
> +
> +	wcn_wlan_bt_en: wcn-wlan-bt-en-state {
> +		pins = "gpio116", "gpio117";
> +		function = "gpio";
> +		drive-strength = <2>;
> +		bias-disable;
> +	};
> +
> +	wcn_sw_en: wcn-sw-en-state {
> +		pins = "gpio214";
> +		function = "gpio";
> +		drive-strength = <2>;
> +		bias-disable;
> +	};

wcn_sw should come before wcn_wlan

> +};
> +
> +&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>;
> +	};
>   };

Other than that this looks fine and is equivalent to what I have on 
Insprion14p - with the exception I see that I don't have the 3v3 rail, 
which I probably should.

https://git.codelinaro.org/bryan.odonoghue/kernel/-/blob/x1e80100-6.14-rc6-dell-xps-inspirion14-lenovo-slim7x-t14s-camss-sound-wip/arch/arm64/boot/dts/qcom/x1e80100-dell-inspirion-14-plus-7441.dts?ref_type=heads

Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>

---
bod
Aleksandrs Vinarskis March 31, 2025, 9:38 a.m. UTC | #3
On Mon, 31 Mar 2025 at 10:09, Johan Hovold <johan@kernel.org> wrote:
>
> [ +CC: Stephan ]
>
> On Mon, Mar 31, 2025 at 08:33:47AM +0100, Aleksandrs Vinarskis wrote:
> > Add the WiFi/BT nodes for XPS and describe the regulators for the WCN7850
> > combo chip using the new power sequencing bindings. All voltages are
> > derived from chained fixed regulators controlled using a single GPIO.
> >
> > Based on the commit d09ab685a8f5 ("arm64: dts: qcom: x1e80100-qcp: Add
> > WiFi/BT pwrseq").
>
> Are you sure this is correct and that you don't need to worry about the
> "how do we model the supplies to an M.2 card" issue?
>
> See
>
>         https://lore.kernel.org/lkml/Z-KuG0aOwEnxuhp9@linaro.org/

Dell XPS 9345 does not have an M.2 card, WLAN package is soldered
directly onboard, hence I am quite sure this is similar to QCP.
To be certain, perhaps @Tudor, Laurentiu or @Bryan O'Donoghue (if  you
have it?) could confirm from schematics?

>
> > With that fixed commit f5b788d0e8cd ("arm64: dts: qcom: Add support for
> > X1-based Dell XPS 13 9345")
>
> Not sure what happened here.

Bluetooth and WLAN definitions were missing, as at the time I only
knew the UART port being used for bluetooth, and was missing
everything else to describe it.

Alex

>
> Johan
Aleksandrs Vinarskis March 31, 2025, 9:40 a.m. UTC | #4
On Mon, 31 Mar 2025 at 10:33, Bryan O'Donoghue
<bryan.odonoghue@linaro.org> wrote:
>
> On 31/03/2025 08:33, Aleksandrs Vinarskis wrote:
> > Add the WiFi/BT nodes for XPS and describe the regulators for the WCN7850
> > combo chip using the new power sequencing bindings. All voltages are
> > derived from chained fixed regulators controlled using a single GPIO.
> >
> > Based on the commit d09ab685a8f5 ("arm64: dts: qcom: x1e80100-qcp: Add
> > WiFi/BT pwrseq").
> >
> > With that fixed commit f5b788d0e8cd ("arm64: dts: qcom: Add support for
> > X1-based Dell XPS 13 9345")
> >
> > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> > Signed-off-by: Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
> > ---
> >   .../dts/qcom/x1e80100-dell-xps13-9345.dts     | 144 ++++++++++++++++++
> >   1 file changed, 144 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts b/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
> > index d259a0d12d7b..c924f2a67939 100644
> > --- a/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
> > +++ b/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
> > @@ -22,6 +22,7 @@ / {
> >
> >       aliases {
> >               serial0 = &uart21;
> > +             serial1 = &uart14;
> >       };
> >
> >       gpio-keys {
> > @@ -288,6 +289,101 @@ vreg_vph_pwr: regulator-vph-pwr {
> >               regulator-always-on;
> >               regulator-boot-on;
> >       };
> > +
> > +     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>;
> > +     };
> > +
> > +     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;
> > +     };
> > +
> > +     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 {
> > @@ -861,6 +957,23 @@ &pcie4_phy {
> >       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>;
> > @@ -1127,6 +1240,37 @@ reset-n-pins {
> >                       drive-strength = <2>;
> >               };
> >       };
> > +
> > +     wcn_wlan_bt_en: wcn-wlan-bt-en-state {
> > +             pins = "gpio116", "gpio117";
> > +             function = "gpio";
> > +             drive-strength = <2>;
> > +             bias-disable;
> > +     };
> > +
> > +     wcn_sw_en: wcn-sw-en-state {
> > +             pins = "gpio214";
> > +             function = "gpio";
> > +             drive-strength = <2>;
> > +             bias-disable;
> > +     };
>
> wcn_sw should come before wcn_wlan

Indeed, will fix.

>
> > +};
> > +
> > +&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>;
> > +     };
> >   };
>
> Other than that this looks fine and is equivalent to what I have on
> Insprion14p - with the exception I see that I don't have the 3v3 rail,
> which I probably should.
>
> https://git.codelinaro.org/bryan.odonoghue/kernel/-/blob/x1e80100-6.14-rc6-dell-xps-inspirion14-lenovo-slim7x-t14s-camss-sound-wip/arch/arm64/boot/dts/qcom/x1e80100-dell-inspirion-14-plus-7441.dts?ref_type=heads
>
> Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>

Thanks,
Alex

>
> ---
> bod
Johan Hovold March 31, 2025, 11 a.m. UTC | #5
On Mon, Mar 31, 2025 at 11:38:25AM +0200, Aleksandrs Vinarskis wrote:
> On Mon, 31 Mar 2025 at 10:09, Johan Hovold <johan@kernel.org> wrote:
> >
> > [ +CC: Stephan ]
> >
> > On Mon, Mar 31, 2025 at 08:33:47AM +0100, Aleksandrs Vinarskis wrote:
> > > Add the WiFi/BT nodes for XPS and describe the regulators for the WCN7850
> > > combo chip using the new power sequencing bindings. All voltages are
> > > derived from chained fixed regulators controlled using a single GPIO.
> > >
> > > Based on the commit d09ab685a8f5 ("arm64: dts: qcom: x1e80100-qcp: Add
> > > WiFi/BT pwrseq").
> >
> > Are you sure this is correct and that you don't need to worry about the
> > "how do we model the supplies to an M.2 card" issue?
> >
> > See
> >
> >         https://lore.kernel.org/lkml/Z-KuG0aOwEnxuhp9@linaro.org/
> 
> Dell XPS 9345 does not have an M.2 card, WLAN package is soldered
> directly onboard, hence I am quite sure this is similar to QCP.
> To be certain, perhaps @Tudor, Laurentiu or @Bryan O'Donoghue (if  you
> have it?) could confirm from schematics?

I checked now, it seems you are correct.

Highly annoying that we need all this guess-work boiler plate (about
chip internal details) for what is effectively just two supplies.

Hopefully we can drop that again going forward, but that's a separate
discussion.

> > > With that fixed commit f5b788d0e8cd ("arm64: dts: qcom: Add support for
> > > X1-based Dell XPS 13 9345")
> >
> > Not sure what happened here.
> 
> Bluetooth and WLAN definitions were missing, as at the time I only
> knew the UART port being used for bluetooth, and was missing
> everything else to describe it.

Ah, ok. The above sentence looked like some left-over copy paste. I
guess you don't need to mention it at all since this does not seem to
warrant a proper Fixes tag.

Johan
Tudor, Laurentiu March 31, 2025, 1:22 p.m. UTC | #6
> -----Original Message-----
> From: Aleksandrs Vinarskis <alex.vinarskis@gmail.com>
> Sent: Monday, March 31, 2025 10:34 AM
> 
> Add the WiFi/BT nodes for XPS and describe the regulators for the WCN7850
> combo chip using the new power sequencing bindings. All voltages are derived
> from chained fixed regulators controlled using a single GPIO.
> 
> Based on the commit d09ab685a8f5 ("arm64: dts: qcom: x1e80100-qcp: Add
> WiFi/BT pwrseq").
> 
> With that fixed commit f5b788d0e8cd ("arm64: dts: qcom: Add support for X1-
> based Dell XPS 13 9345")
> 
> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
> Signed-off-by: Aleksandrs Vinarskis <alex.vinarskis@gmail.com>

Tested-by: Laurentiu Tudor <laurentiu.tudor1@dell.com>

Thanks for taking care of this, Alex!

---
Best Regards, Laurentiu

> ---
>  .../dts/qcom/x1e80100-dell-xps13-9345.dts     | 144 ++++++++++++++++++
>  1 file changed, 144 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
> b/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
> index d259a0d12d7b..c924f2a67939 100644
> --- a/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
> +++ b/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
> @@ -22,6 +22,7 @@ / {
> 
>  	aliases {
>  		serial0 = &uart21;
> +		serial1 = &uart14;
>  	};
> 
>  	gpio-keys {
> @@ -288,6 +289,101 @@ vreg_vph_pwr: regulator-vph-pwr {
>  		regulator-always-on;
>  		regulator-boot-on;
>  	};
> +
> +	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>;
> +	};
> +
> +	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;
> +	};
> +
> +	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 {
> @@ -861,6 +957,23 @@ &pcie4_phy {
>  	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>; @@ -1127,6
> +1240,37 @@ reset-n-pins {
>  			drive-strength = <2>;
>  		};
>  	};
> +
> +	wcn_wlan_bt_en: wcn-wlan-bt-en-state {
> +		pins = "gpio116", "gpio117";
> +		function = "gpio";
> +		drive-strength = <2>;
> +		bias-disable;
> +	};
> +
> +	wcn_sw_en: wcn-sw-en-state {
> +		pins = "gpio214";
> +		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>;
> +	};
>  };
> 
>  &uart21 {
> --
> 2.45.2
Aleksandrs Vinarskis March 31, 2025, 4:51 p.m. UTC | #7
On Mon, 31 Mar 2025 at 13:00, Johan Hovold <johan@kernel.org> wrote:
>
> On Mon, Mar 31, 2025 at 11:38:25AM +0200, Aleksandrs Vinarskis wrote:
> > On Mon, 31 Mar 2025 at 10:09, Johan Hovold <johan@kernel.org> wrote:
> > >
> > > [ +CC: Stephan ]
> > >
> > > On Mon, Mar 31, 2025 at 08:33:47AM +0100, Aleksandrs Vinarskis wrote:
> > > > Add the WiFi/BT nodes for XPS and describe the regulators for the WCN7850
> > > > combo chip using the new power sequencing bindings. All voltages are
> > > > derived from chained fixed regulators controlled using a single GPIO.
> > > >
> > > > Based on the commit d09ab685a8f5 ("arm64: dts: qcom: x1e80100-qcp: Add
> > > > WiFi/BT pwrseq").
> > >
> > > Are you sure this is correct and that you don't need to worry about the
> > > "how do we model the supplies to an M.2 card" issue?
> > >
> > > See
> > >
> > >         https://lore.kernel.org/lkml/Z-KuG0aOwEnxuhp9@linaro.org/
> >
> > Dell XPS 9345 does not have an M.2 card, WLAN package is soldered
> > directly onboard, hence I am quite sure this is similar to QCP.
> > To be certain, perhaps @Tudor, Laurentiu or @Bryan O'Donoghue (if  you
> > have it?) could confirm from schematics?
>
> I checked now, it seems you are correct.\

Ah perfect, thanks.

>
> Highly annoying that we need all this guess-work boiler plate (about
> chip internal details) for what is effectively just two supplies.
>
> Hopefully we can drop that again going forward, but that's a separate
> discussion.
>
> > > > With that fixed commit f5b788d0e8cd ("arm64: dts: qcom: Add support for
> > > > X1-based Dell XPS 13 9345")
> > >
> > > Not sure what happened here.
> >
> > Bluetooth and WLAN definitions were missing, as at the time I only
> > knew the UART port being used for bluetooth, and was missing
> > everything else to describe it.
>
> Ah, ok. The above sentence looked like some left-over copy paste. I
> guess you don't need to mention it at all since this does not seem to
> warrant a proper Fixes tag.

It was a suggestion from Dmitry in v1. Though indeed it does not
warrant a proper Fixed tag, as it is something  that was left out from
the initial series, I think it's fine to keep it like this, if it's
okay with you?

Regards,
Alex

>
> Johan
Johan Hovold March 31, 2025, 7:06 p.m. UTC | #8
On Mon, Mar 31, 2025 at 06:51:03PM +0200, Aleksandrs Vinarskis wrote:
> On Mon, 31 Mar 2025 at 13:00, Johan Hovold <johan@kernel.org> wrote:
> > On Mon, Mar 31, 2025 at 11:38:25AM +0200, Aleksandrs Vinarskis wrote:
> > > On Mon, 31 Mar 2025 at 10:09, Johan Hovold <johan@kernel.org> wrote:
> > > > On Mon, Mar 31, 2025 at 08:33:47AM +0100, Aleksandrs Vinarskis wrote:
> > > > > Add the WiFi/BT nodes for XPS and describe the regulators for the WCN7850
> > > > > combo chip using the new power sequencing bindings. All voltages are
> > > > > derived from chained fixed regulators controlled using a single GPIO.
> > > > >
> > > > > Based on the commit d09ab685a8f5 ("arm64: dts: qcom: x1e80100-qcp: Add
> > > > > WiFi/BT pwrseq").

> > > > > With that fixed commit f5b788d0e8cd ("arm64: dts: qcom: Add support for
> > > > > X1-based Dell XPS 13 9345")
> > > >
> > > > Not sure what happened here.
> > >
> > > Bluetooth and WLAN definitions were missing, as at the time I only
> > > knew the UART port being used for bluetooth, and was missing
> > > everything else to describe it.
> >
> > Ah, ok. The above sentence looked like some left-over copy paste. I
> > guess you don't need to mention it at all since this does not seem to
> > warrant a proper Fixes tag.
> 
> It was a suggestion from Dmitry in v1. Though indeed it does not
> warrant a proper Fixed tag, as it is something  that was left out from
> the initial series, I think it's fine to keep it like this, if it's
> okay with you?

I think you misinterpreted Dmitry here. He just said that after you
added the reference to the commit you based this on to the commit
message you could add his reviewed-by tag ("With that fixed: R-B: Dmitry
...")

	https://lore.kernel.org/all/ou7w4hvbbz72nzrm45gfhpq2uzkuwpfudqeh2o34tcnbnazxgz@glmuryu5dh3s/

As it stands it's hard to understand what that sentence means and why
it is there (looks like a copy paste mistake). I suggest you just drop
it.

Johan
Dmitry Baryshkov March 31, 2025, 8:15 p.m. UTC | #9
On Mon, Mar 31, 2025 at 09:06:37PM +0200, Johan Hovold wrote:
> On Mon, Mar 31, 2025 at 06:51:03PM +0200, Aleksandrs Vinarskis wrote:
> > On Mon, 31 Mar 2025 at 13:00, Johan Hovold <johan@kernel.org> wrote:
> > > On Mon, Mar 31, 2025 at 11:38:25AM +0200, Aleksandrs Vinarskis wrote:
> > > > On Mon, 31 Mar 2025 at 10:09, Johan Hovold <johan@kernel.org> wrote:
> > > > > On Mon, Mar 31, 2025 at 08:33:47AM +0100, Aleksandrs Vinarskis wrote:
> > > > > > Add the WiFi/BT nodes for XPS and describe the regulators for the WCN7850
> > > > > > combo chip using the new power sequencing bindings. All voltages are
> > > > > > derived from chained fixed regulators controlled using a single GPIO.
> > > > > >
> > > > > > Based on the commit d09ab685a8f5 ("arm64: dts: qcom: x1e80100-qcp: Add
> > > > > > WiFi/BT pwrseq").
> 
> > > > > > With that fixed commit f5b788d0e8cd ("arm64: dts: qcom: Add support for
> > > > > > X1-based Dell XPS 13 9345")
> > > > >
> > > > > Not sure what happened here.
> > > >
> > > > Bluetooth and WLAN definitions were missing, as at the time I only
> > > > knew the UART port being used for bluetooth, and was missing
> > > > everything else to describe it.
> > >
> > > Ah, ok. The above sentence looked like some left-over copy paste. I
> > > guess you don't need to mention it at all since this does not seem to
> > > warrant a proper Fixes tag.
> > 
> > It was a suggestion from Dmitry in v1. Though indeed it does not
> > warrant a proper Fixed tag, as it is something  that was left out from
> > the initial series, I think it's fine to keep it like this, if it's
> > okay with you?
> 
> I think you misinterpreted Dmitry here. He just said that after you
> added the reference to the commit you based this on to the commit
> message you could add his reviewed-by tag ("With that fixed: R-B: Dmitry
> ...")
> 
> 	https://lore.kernel.org/all/ou7w4hvbbz72nzrm45gfhpq2uzkuwpfudqeh2o34tcnbnazxgz@glmuryu5dh3s/
> 
> As it stands it's hard to understand what that sentence means and why
> it is there (looks like a copy paste mistake). I suggest you just drop
> it.

I disliked the original phrase "Derived from: commit subject". Instead I
suggested a different, more standard way, '... commit abcdefabcdef
("commit subject")'. With that phrase in place Aleksandrs can add my R-B
tag.
Aleksandrs Vinarskis March 31, 2025, 8:27 p.m. UTC | #10
On Mon, 31 Mar 2025 at 22:15, Dmitry Baryshkov
<dmitry.baryshkov@oss.qualcomm.com> wrote:
>
> On Mon, Mar 31, 2025 at 09:06:37PM +0200, Johan Hovold wrote:
> > On Mon, Mar 31, 2025 at 06:51:03PM +0200, Aleksandrs Vinarskis wrote:
> > > On Mon, 31 Mar 2025 at 13:00, Johan Hovold <johan@kernel.org> wrote:
> > > > On Mon, Mar 31, 2025 at 11:38:25AM +0200, Aleksandrs Vinarskis wrote:
> > > > > On Mon, 31 Mar 2025 at 10:09, Johan Hovold <johan@kernel.org> wrote:
> > > > > > On Mon, Mar 31, 2025 at 08:33:47AM +0100, Aleksandrs Vinarskis wrote:
> > > > > > > Add the WiFi/BT nodes for XPS and describe the regulators for the WCN7850
> > > > > > > combo chip using the new power sequencing bindings. All voltages are
> > > > > > > derived from chained fixed regulators controlled using a single GPIO.
> > > > > > >
> > > > > > > Based on the commit d09ab685a8f5 ("arm64: dts: qcom: x1e80100-qcp: Add
> > > > > > > WiFi/BT pwrseq").
> >
> > > > > > > With that fixed commit f5b788d0e8cd ("arm64: dts: qcom: Add support for
> > > > > > > X1-based Dell XPS 13 9345")
> > > > > >
> > > > > > Not sure what happened here.
> > > > >
> > > > > Bluetooth and WLAN definitions were missing, as at the time I only
> > > > > knew the UART port being used for bluetooth, and was missing
> > > > > everything else to describe it.
> > > >
> > > > Ah, ok. The above sentence looked like some left-over copy paste. I
> > > > guess you don't need to mention it at all since this does not seem to
> > > > warrant a proper Fixes tag.
> > >
> > > It was a suggestion from Dmitry in v1. Though indeed it does not
> > > warrant a proper Fixed tag, as it is something  that was left out from
> > > the initial series, I think it's fine to keep it like this, if it's
> > > okay with you?
> >
> > I think you misinterpreted Dmitry here. He just said that after you
> > added the reference to the commit you based this on to the commit
> > message you could add his reviewed-by tag ("With that fixed: R-B: Dmitry
> > ...")
> >
> >       https://lore.kernel.org/all/ou7w4hvbbz72nzrm45gfhpq2uzkuwpfudqeh2o34tcnbnazxgz@glmuryu5dh3s/
> >
> > As it stands it's hard to understand what that sentence means and why
> > it is there (looks like a copy paste mistake). I suggest you just drop
> > it.
>
> I disliked the original phrase "Derived from: commit subject". Instead I
> suggested a different, more standard way, '... commit abcdefabcdef
> ("commit subject")'. With that phrase in place Aleksandrs can add my R-B
> tag.

SMH just re-read it... apologies for the confusion. Will fix it now.

Alex

>
> --
> With best wishes
> Dmitry
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts b/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
index d259a0d12d7b..c924f2a67939 100644
--- a/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
+++ b/arch/arm64/boot/dts/qcom/x1e80100-dell-xps13-9345.dts
@@ -22,6 +22,7 @@  / {
 
 	aliases {
 		serial0 = &uart21;
+		serial1 = &uart14;
 	};
 
 	gpio-keys {
@@ -288,6 +289,101 @@  vreg_vph_pwr: regulator-vph-pwr {
 		regulator-always-on;
 		regulator-boot-on;
 	};
+
+	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>;
+	};
+
+	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;
+	};
+
+	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 {
@@ -861,6 +957,23 @@  &pcie4_phy {
 	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>;
@@ -1127,6 +1240,37 @@  reset-n-pins {
 			drive-strength = <2>;
 		};
 	};
+
+	wcn_wlan_bt_en: wcn-wlan-bt-en-state {
+		pins = "gpio116", "gpio117";
+		function = "gpio";
+		drive-strength = <2>;
+		bias-disable;
+	};
+
+	wcn_sw_en: wcn-sw-en-state {
+		pins = "gpio214";
+		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>;
+	};
 };
 
 &uart21 {