diff mbox series

[v3] arm64: dts: qcom: sdm845-xiaomi-beryllium: Add DSI and panel bits

Message ID 1612945128-23174-1-git-send-email-amit.pundir@linaro.org (mailing list archive)
State Superseded
Headers show
Series [v3] arm64: dts: qcom: sdm845-xiaomi-beryllium: Add DSI and panel bits | expand

Commit Message

Amit Pundir Feb. 10, 2021, 8:18 a.m. UTC
From: Sumit Semwal <sumit.semwal@linaro.org>

Enabling the Display panel for beryllium requires DSI
labibb regulators and panel dts nodes to be added.
It is also required to keep some of the regulators as
always-on.

Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
---
v3: Addressed Konrad's concerns. Configured labibb regulators
    explicitly based on downstream microvolt values. Display
    comes up fine with default discharge-resistor-kohms and
    soft-start-us properties, so didn't touch them.
    Smoke tested on next-20210209.
v2: Rebased to mainline (v5.11-rc6) and fixed build warnings.

 .../boot/dts/qcom/sdm845-xiaomi-beryllium.dts      | 64 ++++++++++++++++++++++
 1 file changed, 64 insertions(+)

Comments

Konrad Dybcio Feb. 10, 2021, 2:43 p.m. UTC | #1
Reviewed-by: Konrad Dybcio <konrad.dybcio@somainline.org>

Konrad
AngeloGioacchino Del Regno Feb. 10, 2021, 6:55 p.m. UTC | #2
Il 10/02/21 09:18, Amit Pundir ha scritto:
> From: Sumit Semwal <sumit.semwal@linaro.org>
> 
> Enabling the Display panel for beryllium requires DSI
> labibb regulators and panel dts nodes to be added.
> It is also required to keep some of the regulators as
> always-on.
> 
> Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
> ---

Hello!
Your patch looks good, however, I have a few concerns...

> v3: Addressed Konrad's concerns. Configured labibb regulators
>      explicitly based on downstream microvolt values. Display
>      comes up fine with default discharge-resistor-kohms and
>      soft-start-us properties, so didn't touch them.
>      Smoke tested on next-20210209.
> v2: Rebased to mainline (v5.11-rc6) and fixed build warnings.
> 
>   .../boot/dts/qcom/sdm845-xiaomi-beryllium.dts      | 64 ++++++++++++++++++++++
>   1 file changed, 64 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts b/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts
> index 86cbae63eaf7..5ac049a247e1 100644
> --- a/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts
> +++ b/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts
> @@ -157,6 +157,14 @@
>   			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>   		};
>   
> +		vreg_l14a_1p8: ldo14 {
> +			regulator-min-microvolt = <1800000>;
> +			regulator-max-microvolt = <1800000>;
> +			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +			regulator-boot-on;
> +			regulator-always-on;
> +		};
> +
>   		vreg_l17a_1p3: ldo17 {
>   			regulator-min-microvolt = <1304000>;
>   			regulator-max-microvolt = <1304000>;
> @@ -191,6 +199,7 @@
>   			regulator-min-microvolt = <1200000>;
>   			regulator-max-microvolt = <1200000>;
>   			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> +			regulator-boot-on;
>   		};
>   	};
>   };
> @@ -200,6 +209,43 @@
>   	firmware-name = "qcom/sdm845/cdsp.mdt";
>   };
>   
> +&dsi0 {
> +	status = "okay";
> +	vdda-supply = <&vreg_l26a_1p2>;
> +
> +	#address-cells = <1>;
> +	#size-cells = <0>;
> +
> +	panel@0 {
> +		compatible = "tianma,fhd-video";
> +		reg = <0>;
> +		vddi0-supply = <&vreg_l14a_1p8>;
> +		vddpos-supply = <&lab>;
> +		vddneg-supply = <&ibb>;
> +
> +		#address-cells = <1>;
> +		#size-cells = <0>;
> +
> +		reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
> +
> +		port {
> +			tianma_nt36672a_in_0: endpoint {
> +				remote-endpoint = <&dsi0_out>;
> +			};
> +		};
> +	};
> +};
> +
> +&dsi0_out {
> +	remote-endpoint = <&tianma_nt36672a_in_0>;
> +	data-lanes = <0 1 2 3>;
> +};
> +
> +&dsi0_phy {
> +	status = "okay";
> +	vdds-supply = <&vreg_l1a_0p875>;
> +};
> +
>   &gcc {
>   	protected-clocks = <GCC_QSPI_CORE_CLK>,
>   			   <GCC_QSPI_CORE_CLK_SRC>,
> @@ -215,6 +261,24 @@
>   	};
>   };
>   
> +&ibb {
> +	regulator-min-microvolt = <4600000>;
> +	regulator-max-microvolt = <6000000>;
> +};
> +

I think you want to also configure overvoltage and overcurrent 
protection values for both LAB and IBB, as these regulators may be a bit 
dangerous if used without.
Besides that, even if it wouldn't be that dangerous, since the 
protection features are present, it would be nice to configure them 
properly as in the rare event that something bad happens, you would be 
able to save the hardware (or at least have a chance to!).

> +&lab {
> +	regulator-min-microvolt = <4600000>;
> +	regulator-max-microvolt = <6000000>;
> +};
> +

Same here.

Yours,
-- Angelo

> +&mdss {
> +	status = "okay";
> +};
> +
> +&mdss_mdp {
> +	status = "okay";
> +};
> +
>   &mss_pil {
>   	status = "okay";
>   	firmware-name = "qcom/sdm845/mba.mbn", "qcom/sdm845/modem.mdt";
>
Amit Pundir Feb. 12, 2021, 9:24 a.m. UTC | #3
Hi,

On Thu, 11 Feb 2021 at 00:25, AngeloGioacchino Del Regno
<angelogioacchino.delregno@somainline.org> wrote:
>
> Il 10/02/21 09:18, Amit Pundir ha scritto:
> > From: Sumit Semwal <sumit.semwal@linaro.org>
> >
> > Enabling the Display panel for beryllium requires DSI
> > labibb regulators and panel dts nodes to be added.
> > It is also required to keep some of the regulators as
> > always-on.
> >
> > Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
> > Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
> > ---
>
> Hello!
> Your patch looks good, however, I have a few concerns...
>
> > v3: Addressed Konrad's concerns. Configured labibb regulators
> >      explicitly based on downstream microvolt values. Display
> >      comes up fine with default discharge-resistor-kohms and
> >      soft-start-us properties, so didn't touch them.
> >      Smoke tested on next-20210209.
> > v2: Rebased to mainline (v5.11-rc6) and fixed build warnings.
> >
> >   .../boot/dts/qcom/sdm845-xiaomi-beryllium.dts      | 64 ++++++++++++++++++++++
> >   1 file changed, 64 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts b/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts
> > index 86cbae63eaf7..5ac049a247e1 100644
> > --- a/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts
> > +++ b/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts
> > @@ -157,6 +157,14 @@
> >                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >               };
> >
> > +             vreg_l14a_1p8: ldo14 {
> > +                     regulator-min-microvolt = <1800000>;
> > +                     regulator-max-microvolt = <1800000>;
> > +                     regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +                     regulator-boot-on;
> > +                     regulator-always-on;
> > +             };
> > +
> >               vreg_l17a_1p3: ldo17 {
> >                       regulator-min-microvolt = <1304000>;
> >                       regulator-max-microvolt = <1304000>;
> > @@ -191,6 +199,7 @@
> >                       regulator-min-microvolt = <1200000>;
> >                       regulator-max-microvolt = <1200000>;
> >                       regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> > +                     regulator-boot-on;
> >               };
> >       };
> >   };
> > @@ -200,6 +209,43 @@
> >       firmware-name = "qcom/sdm845/cdsp.mdt";
> >   };
> >
> > +&dsi0 {
> > +     status = "okay";
> > +     vdda-supply = <&vreg_l26a_1p2>;
> > +
> > +     #address-cells = <1>;
> > +     #size-cells = <0>;
> > +
> > +     panel@0 {
> > +             compatible = "tianma,fhd-video";
> > +             reg = <0>;
> > +             vddi0-supply = <&vreg_l14a_1p8>;
> > +             vddpos-supply = <&lab>;
> > +             vddneg-supply = <&ibb>;
> > +
> > +             #address-cells = <1>;
> > +             #size-cells = <0>;
> > +
> > +             reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
> > +
> > +             port {
> > +                     tianma_nt36672a_in_0: endpoint {
> > +                             remote-endpoint = <&dsi0_out>;
> > +                     };
> > +             };
> > +     };
> > +};
> > +
> > +&dsi0_out {
> > +     remote-endpoint = <&tianma_nt36672a_in_0>;
> > +     data-lanes = <0 1 2 3>;
> > +};
> > +
> > +&dsi0_phy {
> > +     status = "okay";
> > +     vdds-supply = <&vreg_l1a_0p875>;
> > +};
> > +
> >   &gcc {
> >       protected-clocks = <GCC_QSPI_CORE_CLK>,
> >                          <GCC_QSPI_CORE_CLK_SRC>,
> > @@ -215,6 +261,24 @@
> >       };
> >   };
> >
> > +&ibb {
> > +     regulator-min-microvolt = <4600000>;
> > +     regulator-max-microvolt = <6000000>;
> > +};
> > +
>
> I think you want to also configure overvoltage and overcurrent
> protection values for both LAB and IBB, as these regulators may be a bit
> dangerous if used without.

Can you point me to the relevant DT properties please. I didn't find
any DT properties which set the over voltage/current protection
properties explicitly in upstream as well as in downstream kernel.
Plus I also do not see "regulator-min/max-microamp" values set
downstream, otherwise I'd have used that as well atleast.

Regards,
Amit Pundir

> Besides that, even if it wouldn't be that dangerous, since the
> protection features are present, it would be nice to configure them
> properly as in the rare event that something bad happens, you would be
> able to save the hardware (or at least have a chance to!).
>
> > +&lab {
> > +     regulator-min-microvolt = <4600000>;
> > +     regulator-max-microvolt = <6000000>;
> > +};
> > +
>
> Same here.
>
> Yours,
> -- Angelo
>
> > +&mdss {
> > +     status = "okay";
> > +};
> > +
> > +&mdss_mdp {
> > +     status = "okay";
> > +};
> > +
> >   &mss_pil {
> >       status = "okay";
> >       firmware-name = "qcom/sdm845/mba.mbn", "qcom/sdm845/modem.mdt";
> >
>
AngeloGioacchino Del Regno Feb. 12, 2021, 5:41 p.m. UTC | #4
Il 12/02/21 10:24, Amit Pundir ha scritto:
> Hi,
> 
> On Thu, 11 Feb 2021 at 00:25, AngeloGioacchino Del Regno
> <angelogioacchino.delregno@somainline.org> wrote:
>>
>> Il 10/02/21 09:18, Amit Pundir ha scritto:
>>> From: Sumit Semwal <sumit.semwal@linaro.org>
>>>
>>> Enabling the Display panel for beryllium requires DSI
>>> labibb regulators and panel dts nodes to be added.
>>> It is also required to keep some of the regulators as
>>> always-on.
>>>
>>> Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
>>> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
>>> ---
>>
>> Hello!
>> Your patch looks good, however, I have a few concerns...
>>
>>> v3: Addressed Konrad's concerns. Configured labibb regulators
>>>       explicitly based on downstream microvolt values. Display
>>>       comes up fine with default discharge-resistor-kohms and
>>>       soft-start-us properties, so didn't touch them.
>>>       Smoke tested on next-20210209.
>>> v2: Rebased to mainline (v5.11-rc6) and fixed build warnings.
>>>
>>>    .../boot/dts/qcom/sdm845-xiaomi-beryllium.dts      | 64 ++++++++++++++++++++++
>>>    1 file changed, 64 insertions(+)
>>>
>>> diff --git a/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts b/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts
>>> index 86cbae63eaf7..5ac049a247e1 100644
>>> --- a/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts
>>> +++ b/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts
>>> @@ -157,6 +157,14 @@
>>>                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>>                };
>>>
>>> +             vreg_l14a_1p8: ldo14 {
>>> +                     regulator-min-microvolt = <1800000>;
>>> +                     regulator-max-microvolt = <1800000>;
>>> +                     regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>> +                     regulator-boot-on;
>>> +                     regulator-always-on;
>>> +             };
>>> +
>>>                vreg_l17a_1p3: ldo17 {
>>>                        regulator-min-microvolt = <1304000>;
>>>                        regulator-max-microvolt = <1304000>;
>>> @@ -191,6 +199,7 @@
>>>                        regulator-min-microvolt = <1200000>;
>>>                        regulator-max-microvolt = <1200000>;
>>>                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
>>> +                     regulator-boot-on;
>>>                };
>>>        };
>>>    };
>>> @@ -200,6 +209,43 @@
>>>        firmware-name = "qcom/sdm845/cdsp.mdt";
>>>    };
>>>
>>> +&dsi0 {
>>> +     status = "okay";
>>> +     vdda-supply = <&vreg_l26a_1p2>;
>>> +
>>> +     #address-cells = <1>;
>>> +     #size-cells = <0>;
>>> +
>>> +     panel@0 {
>>> +             compatible = "tianma,fhd-video";
>>> +             reg = <0>;
>>> +             vddi0-supply = <&vreg_l14a_1p8>;
>>> +             vddpos-supply = <&lab>;
>>> +             vddneg-supply = <&ibb>;
>>> +
>>> +             #address-cells = <1>;
>>> +             #size-cells = <0>;
>>> +
>>> +             reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
>>> +
>>> +             port {
>>> +                     tianma_nt36672a_in_0: endpoint {
>>> +                             remote-endpoint = <&dsi0_out>;
>>> +                     };
>>> +             };
>>> +     };
>>> +};
>>> +
>>> +&dsi0_out {
>>> +     remote-endpoint = <&tianma_nt36672a_in_0>;
>>> +     data-lanes = <0 1 2 3>;
>>> +};
>>> +
>>> +&dsi0_phy {
>>> +     status = "okay";
>>> +     vdds-supply = <&vreg_l1a_0p875>;
>>> +};
>>> +
>>>    &gcc {
>>>        protected-clocks = <GCC_QSPI_CORE_CLK>,
>>>                           <GCC_QSPI_CORE_CLK_SRC>,
>>> @@ -215,6 +261,24 @@
>>>        };
>>>    };
>>>
>>> +&ibb {
>>> +     regulator-min-microvolt = <4600000>;
>>> +     regulator-max-microvolt = <6000000>;
>>> +};
>>> +
>>
>> I think you want to also configure overvoltage and overcurrent
>> protection values for both LAB and IBB, as these regulators may be a bit
>> dangerous if used without.
> 
> Can you point me to the relevant DT properties please. I didn't find
> any DT properties which set the over voltage/current protection
> properties explicitly in upstream as well as in downstream kernel.
> Plus I also do not see "regulator-min/max-microamp" values set
> downstream, otherwise I'd have used that as well atleast.
> 

The regulator-{min/max}-microamp is the equivalent of the downstream
"qcom,qpnp-lab-limit-maximum-current" and 
"qcom,qpnp-ibb-limit-maximum-current.

I am sorry if we haven't sent our patch series that will introduce the
Sony MSM8998 Yoshino and SDM630/636 Nile and Ganges platforms, which
are actually using the driver that I've sent fully, as these would have
been a nice reference for you.

In any case, I can point you at our public repositories and their
downstream equivalents...

Here you find the downstream configuration for LAB/IBB:
https://github.com/sonyxperiadev/kernel/blob/aosp/LA.UM.7.1.r1/arch/arm64/boot/dts/qcom/msm8998-yoshino-common.dtsi#L3158

...And here you find the SoMainline upstream stuff for the same:
https://github.com/SoMainline/linux/blob/SoMainline/v5.11-rc4/arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino.dtsi#L332

https://github.com/SoMainline/linux/blob/SoMainline/v5.11-rc4/arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-maple.dts#L50

I hope that clears out your doubts and difficulties about implementing
the protections on labibb.

Yours,
-- Angelo

> Regards,
> Amit Pundir
> 
>> Besides that, even if it wouldn't be that dangerous, since the
>> protection features are present, it would be nice to configure them
>> properly as in the rare event that something bad happens, you would be
>> able to save the hardware (or at least have a chance to!).
>>
>>> +&lab {
>>> +     regulator-min-microvolt = <4600000>;
>>> +     regulator-max-microvolt = <6000000>;
>>> +};
>>> +
>>
>> Same here.
>>
>> Yours,
>> -- Angelo
>>
>>> +&mdss {
>>> +     status = "okay";
>>> +};
>>> +
>>> +&mdss_mdp {
>>> +     status = "okay";
>>> +};
>>> +
>>>    &mss_pil {
>>>        status = "okay";
>>>        firmware-name = "qcom/sdm845/mba.mbn", "qcom/sdm845/modem.mdt";
>>>
>>
Amit Pundir Feb. 16, 2021, 9:03 a.m. UTC | #5
Hi,

On Fri, 12 Feb 2021 at 23:11, AngeloGioacchino Del Regno
<angelogioacchino.delregno@somainline.org> wrote:
>
> Il 12/02/21 10:24, Amit Pundir ha scritto:
> > Hi,
> >
> > On Thu, 11 Feb 2021 at 00:25, AngeloGioacchino Del Regno
> > <angelogioacchino.delregno@somainline.org> wrote:
> >>
> >> Il 10/02/21 09:18, Amit Pundir ha scritto:
> >>> From: Sumit Semwal <sumit.semwal@linaro.org>
> >>>
> >>> Enabling the Display panel for beryllium requires DSI
> >>> labibb regulators and panel dts nodes to be added.
> >>> It is also required to keep some of the regulators as
> >>> always-on.
> >>>
> >>> Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
> >>> Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
> >>> ---
> >>
> >> Hello!
> >> Your patch looks good, however, I have a few concerns...
> >>
> >>> v3: Addressed Konrad's concerns. Configured labibb regulators
> >>>       explicitly based on downstream microvolt values. Display
> >>>       comes up fine with default discharge-resistor-kohms and
> >>>       soft-start-us properties, so didn't touch them.
> >>>       Smoke tested on next-20210209.
> >>> v2: Rebased to mainline (v5.11-rc6) and fixed build warnings.
> >>>
> >>>    .../boot/dts/qcom/sdm845-xiaomi-beryllium.dts      | 64 ++++++++++++++++++++++
> >>>    1 file changed, 64 insertions(+)
> >>>
> >>> diff --git a/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts b/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts
> >>> index 86cbae63eaf7..5ac049a247e1 100644
> >>> --- a/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts
> >>> +++ b/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts
> >>> @@ -157,6 +157,14 @@
> >>>                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >>>                };
> >>>
> >>> +             vreg_l14a_1p8: ldo14 {
> >>> +                     regulator-min-microvolt = <1800000>;
> >>> +                     regulator-max-microvolt = <1800000>;
> >>> +                     regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >>> +                     regulator-boot-on;
> >>> +                     regulator-always-on;
> >>> +             };
> >>> +
> >>>                vreg_l17a_1p3: ldo17 {
> >>>                        regulator-min-microvolt = <1304000>;
> >>>                        regulator-max-microvolt = <1304000>;
> >>> @@ -191,6 +199,7 @@
> >>>                        regulator-min-microvolt = <1200000>;
> >>>                        regulator-max-microvolt = <1200000>;
> >>>                        regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
> >>> +                     regulator-boot-on;
> >>>                };
> >>>        };
> >>>    };
> >>> @@ -200,6 +209,43 @@
> >>>        firmware-name = "qcom/sdm845/cdsp.mdt";
> >>>    };
> >>>
> >>> +&dsi0 {
> >>> +     status = "okay";
> >>> +     vdda-supply = <&vreg_l26a_1p2>;
> >>> +
> >>> +     #address-cells = <1>;
> >>> +     #size-cells = <0>;
> >>> +
> >>> +     panel@0 {
> >>> +             compatible = "tianma,fhd-video";
> >>> +             reg = <0>;
> >>> +             vddi0-supply = <&vreg_l14a_1p8>;
> >>> +             vddpos-supply = <&lab>;
> >>> +             vddneg-supply = <&ibb>;
> >>> +
> >>> +             #address-cells = <1>;
> >>> +             #size-cells = <0>;
> >>> +
> >>> +             reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
> >>> +
> >>> +             port {
> >>> +                     tianma_nt36672a_in_0: endpoint {
> >>> +                             remote-endpoint = <&dsi0_out>;
> >>> +                     };
> >>> +             };
> >>> +     };
> >>> +};
> >>> +
> >>> +&dsi0_out {
> >>> +     remote-endpoint = <&tianma_nt36672a_in_0>;
> >>> +     data-lanes = <0 1 2 3>;
> >>> +};
> >>> +
> >>> +&dsi0_phy {
> >>> +     status = "okay";
> >>> +     vdds-supply = <&vreg_l1a_0p875>;
> >>> +};
> >>> +
> >>>    &gcc {
> >>>        protected-clocks = <GCC_QSPI_CORE_CLK>,
> >>>                           <GCC_QSPI_CORE_CLK_SRC>,
> >>> @@ -215,6 +261,24 @@
> >>>        };
> >>>    };
> >>>
> >>> +&ibb {
> >>> +     regulator-min-microvolt = <4600000>;
> >>> +     regulator-max-microvolt = <6000000>;
> >>> +};
> >>> +
> >>
> >> I think you want to also configure overvoltage and overcurrent
> >> protection values for both LAB and IBB, as these regulators may be a bit
> >> dangerous if used without.
> >
> > Can you point me to the relevant DT properties please. I didn't find
> > any DT properties which set the over voltage/current protection
> > properties explicitly in upstream as well as in downstream kernel.
> > Plus I also do not see "regulator-min/max-microamp" values set
> > downstream, otherwise I'd have used that as well atleast.
> >
>
> The regulator-{min/max}-microamp is the equivalent of the downstream
> "qcom,qpnp-lab-limit-maximum-current" and
> "qcom,qpnp-ibb-limit-maximum-current.

Thank you for the information.

>
> I am sorry if we haven't sent our patch series that will introduce the
> Sony MSM8998 Yoshino and SDM630/636 Nile and Ganges platforms, which
> are actually using the driver that I've sent fully, as these would have
> been a nice reference for you.
>
> In any case, I can point you at our public repositories and their
> downstream equivalents...
>
> Here you find the downstream configuration for LAB/IBB:
> https://github.com/sonyxperiadev/kernel/blob/aosp/LA.UM.7.1.r1/arch/arm64/boot/dts/qcom/msm8998-yoshino-common.dtsi#L3158
>
> ...And here you find the SoMainline upstream stuff for the same:
> https://github.com/SoMainline/linux/blob/SoMainline/v5.11-rc4/arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino.dtsi#L332
>
> https://github.com/SoMainline/linux/blob/SoMainline/v5.11-rc4/arch/arm64/boot/dts/qcom/msm8998-sony-xperia-yoshino-maple.dts#L50
>
> I hope that clears out your doubts and difficulties about implementing
> the protections on labibb.

Exactly what I was looking for. Thanks again.

>
> Yours,
> -- Angelo
>
> > Regards,
> > Amit Pundir
> >
> >> Besides that, even if it wouldn't be that dangerous, since the
> >> protection features are present, it would be nice to configure them
> >> properly as in the rare event that something bad happens, you would be
> >> able to save the hardware (or at least have a chance to!).
> >>
> >>> +&lab {
> >>> +     regulator-min-microvolt = <4600000>;
> >>> +     regulator-max-microvolt = <6000000>;
> >>> +};
> >>> +
> >>
> >> Same here.
> >>
> >> Yours,
> >> -- Angelo
> >>
> >>> +&mdss {
> >>> +     status = "okay";
> >>> +};
> >>> +
> >>> +&mdss_mdp {
> >>> +     status = "okay";
> >>> +};
> >>> +
> >>>    &mss_pil {
> >>>        status = "okay";
> >>>        firmware-name = "qcom/sdm845/mba.mbn", "qcom/sdm845/modem.mdt";
> >>>
> >>
>
Amit Pundir April 4, 2021, 7:38 p.m. UTC | #6
Hi Angelo,

On Thu, 11 Feb 2021 at 00:25, AngeloGioacchino Del Regno
<angelogioacchino.delregno@somainline.org> wrote:
>
> Il 10/02/21 09:18, Amit Pundir ha scritto:
> > From: Sumit Semwal <sumit.semwal@linaro.org>
> >
> > Enabling the Display panel for beryllium requires DSI
> > labibb regulators and panel dts nodes to be added.
> > It is also required to keep some of the regulators as
> > always-on.
> >
> > Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
> > Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
> > ---
>
> Hello!
> Your patch looks good, however, I have a few concerns...
>
> > +&ibb {
> > +     regulator-min-microvolt = <4600000>;
> > +     regulator-max-microvolt = <6000000>;
> > +};
> > +
>
> I think you want to also configure overvoltage and overcurrent
> protection values for both LAB and IBB, as these regulators may be a bit
> dangerous if used without.

It turned out I can't boot if I set regulator-max-microamp lab/ibb
values from downstream DT. Verified it a few times and same result.
Here is the decompiled downstream DTB for reference:
https://pastebin.ubuntu.com/p/4nPxzq6zf7/, just in case.

I'm not sure if over current protection value is tied to max-microamp,
but I added it anyway along with pull-down and soft-start properties
in next version of this patch.

Regards,
Amit Pundir

> Besides that, even if it wouldn't be that dangerous, since the
> protection features are present, it would be nice to configure them
> properly as in the rare event that something bad happens, you would be
> able to save the hardware (or at least have a chance to!).
>
> > +&lab {
> > +     regulator-min-microvolt = <4600000>;
> > +     regulator-max-microvolt = <6000000>;
> > +};
> > +
>
> Same here.
>
> Yours,
> -- Angelo
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts b/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts
index 86cbae63eaf7..5ac049a247e1 100644
--- a/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts
+++ b/arch/arm64/boot/dts/qcom/sdm845-xiaomi-beryllium.dts
@@ -157,6 +157,14 @@ 
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
 		};
 
+		vreg_l14a_1p8: ldo14 {
+			regulator-min-microvolt = <1800000>;
+			regulator-max-microvolt = <1800000>;
+			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+			regulator-boot-on;
+			regulator-always-on;
+		};
+
 		vreg_l17a_1p3: ldo17 {
 			regulator-min-microvolt = <1304000>;
 			regulator-max-microvolt = <1304000>;
@@ -191,6 +199,7 @@ 
 			regulator-min-microvolt = <1200000>;
 			regulator-max-microvolt = <1200000>;
 			regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
+			regulator-boot-on;
 		};
 	};
 };
@@ -200,6 +209,43 @@ 
 	firmware-name = "qcom/sdm845/cdsp.mdt";
 };
 
+&dsi0 {
+	status = "okay";
+	vdda-supply = <&vreg_l26a_1p2>;
+
+	#address-cells = <1>;
+	#size-cells = <0>;
+
+	panel@0 {
+		compatible = "tianma,fhd-video";
+		reg = <0>;
+		vddi0-supply = <&vreg_l14a_1p8>;
+		vddpos-supply = <&lab>;
+		vddneg-supply = <&ibb>;
+
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		reset-gpios = <&tlmm 6 GPIO_ACTIVE_LOW>;
+
+		port {
+			tianma_nt36672a_in_0: endpoint {
+				remote-endpoint = <&dsi0_out>;
+			};
+		};
+	};
+};
+
+&dsi0_out {
+	remote-endpoint = <&tianma_nt36672a_in_0>;
+	data-lanes = <0 1 2 3>;
+};
+
+&dsi0_phy {
+	status = "okay";
+	vdds-supply = <&vreg_l1a_0p875>;
+};
+
 &gcc {
 	protected-clocks = <GCC_QSPI_CORE_CLK>,
 			   <GCC_QSPI_CORE_CLK_SRC>,
@@ -215,6 +261,24 @@ 
 	};
 };
 
+&ibb {
+	regulator-min-microvolt = <4600000>;
+	regulator-max-microvolt = <6000000>;
+};
+
+&lab {
+	regulator-min-microvolt = <4600000>;
+	regulator-max-microvolt = <6000000>;
+};
+
+&mdss {
+	status = "okay";
+};
+
+&mdss_mdp {
+	status = "okay";
+};
+
 &mss_pil {
 	status = "okay";
 	firmware-name = "qcom/sdm845/mba.mbn", "qcom/sdm845/modem.mdt";