Re: [PATCH v7 4/4] arm64: dts: qcom: sc8280xp-x13s: Add bluetooth

Steev Klimaszewski
2023-03-22T15:35:20Z

Hi Johan,

Thanks again for your time in reviewing things, it's greatly appreciated!

On Wed, Mar 22, 2023 at 6:41 AM Johan Hovold <johan@kernel.org> wrote:
>
> On Tue, Mar 21, 2023 at 08:14:42PM -0500, Steev Klimaszewski wrote:
> > The Lenovo Thinkpad X13s has a WCN6855 Bluetooth controller on uart2,
> > add this.
> >
> > Signed-off-by: Steev Klimaszewski <steev@kali.org>
> > ---
> > Changes since v6:
> > * Remove allowed-modes as they aren't needed
> > * Remove regulator-allow-set-load
> > * Set regulator-always-on because the wifi chip also uses the regulator
> > * cts pin uses bias-bus-hold
> > * Alphabetize uart2 pins
> >
> > Changes since v5:
> > * Update patch subject
> > * Specify initial mode (via guess) for vreg_s1c
> > * Drop uart17 definition
> > * Rename bt_en to bt_default because configuring more than one pin
> > * Correct (maybe) bias configurations
> > * Correct cts gpio
> > * Split rts-tx into two nodes
> > * Drop incorrect link in the commit message
> >
> > Changes since v4:
> > * Address Konrad's review comments.
> >
> > Changes since v3:
> > * Add vreg_s1c
> > * Add regulators and not dead code
> > * Fix commit message changelog
> >
> > Changes since v2:
> > * Remove dead code and add TODO comment
> > * Make dtbs_check happy with the pin definitions
> > .../qcom/sc8280xp-lenovo-thinkpad-x13s.dts | 78 +++++++++++++++++++
> > 1 file changed, 78 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> > index 92d365519546..05e66505e5cc 100644
> > --- a/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> > +++ b/arch/arm64/boot/dts/qcom/sc8280xp-lenovo-thinkpad-x13s.dts
> > @@ -24,6 +24,7 @@ / {
> > aliases {
> > i2c4 = &i2c4;
> > i2c21 = &i2c21;
> > + serial1 = &uart2;
> > };
> >
> > wcd938x: audio-codec {
> > @@ -431,6 +432,14 @@ regulators-1 {
> > qcom,pmic-id = "c";
> > vdd-bob-supply = <&vreg_vph_pwr>;
> >
> > + vreg_s1c: smps1 {
> > + regulator-name = "vreg_s1c";
> > + regulator-min-microvolt = <1880000>;
> > + regulator-max-microvolt = <1900000>;
> > + regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > + regulator-always-on;
> > + };
>
> I went through the schematics to check for further problems with
> consumers that are not yet described and found a few more bugs:
>
> https://lore.kernel.org/lkml/20230322113318.17908-1-johan+linaro@kernel.org
>
> Note that that series is now adding the s1c supply as it also used by
> some of the pmics.
>
> I'm assuming those fixes may get merged before this patch is, in which
> case the above hunk should be dropped.
>

I can spin up v8 dropping this hunk and mention the dependency on that series.

> > +
> > vreg_l1c: ldo1 {
> > regulator-name = "vreg_l1c";
> > regulator-min-microvolt = <1800000>;
> > @@ -918,6 +927,32 @@ &qup0 {
> > status = "okay";
> > };
> >
> > +&uart2 {
>
> This node in no longer in alphabetical order and needs to be moved
> further down (above &usb_0).
>
Ack

> > + pinctrl-0 = <&uart2_default>;
> > + pinctrl-names = "default";
> > +
> > + status = "okay";
> > +
> > + bluetooth {
> > + compatible = "qcom,wcn6855-bt";
> > +
> > + vddio-supply = <&vreg_s10b>;
> > + vddbtcxmx-supply = <&vreg_s12b>;
> > + vddrfacmn-supply = <&vreg_s12b>;
> > + vddrfa0p8-supply = <&vreg_s12b>;
> > + vddrfa1p2-supply = <&vreg_s11b>;
> > + vddrfa1p7-supply = <&vreg_s1c>;
> > +
> > + max-speed = <3200000>;
> > +
> > + enable-gpios = <&tlmm 133 GPIO_ACTIVE_HIGH>;
> > + swctrl-gpios = <&tlmm 132 GPIO_ACTIVE_HIGH>;
> > +
> > + pinctrl-0 = <&bt_default>;
> > + pinctrl-names = "default";
> > + };
> > +};
> > +
> > &qup1 {
> > status = "okay";
> > };
> > @@ -1192,6 +1227,21 @@ hastings_reg_en: hastings-reg-en-state {
> > &tlmm {
> > gpio-reserved-ranges = <70 2>, <74 6>, <83 4>, <125 2>, <128 2>, <154 7>;
> >
> > + bt_default: bt-default-state {
> > + hstp-sw-ctrl-pins {
> > + pins = "gpio132";
> > + function = "gpio";
> > + bias-pull-down;
> > + };
>
> Similarly, this one should go after hstp-bt-en-pins.
>
Ack
> > +
> > + hstp-bt-en-pins {
> > + pins = "gpio133";
> > + function = "gpio";
> > + drive-strength = <16>;
> > + bias-disable;
> > + };
> > + };
> > +
> > edp_reg_en: edp-reg-en-state {
> > pins = "gpio25";
> > function = "gpio";
> > @@ -1213,6 +1263,34 @@ i2c4_default: i2c4-default-state {
> > bias-disable;
> > };
> >
> > + uart2_default: uart2-default-state {
>
> And this one is also not ordered correctly.
>
Ack
> > + };
> > +
> > i2c21_default: i2c21-default-state {
> > pins = "gpio81", "gpio82";
> > function = "qup21";
>
> Johan
-- steev