diff mbox series

[1/3] arm64: dts: mediatek: asurada: Add display regulators

Message ID 20220908171153.670762-2-nfraprado@collabora.com (mailing list archive)
State New, archived
Headers show
Series arm64: dts: mediatek: asurada: Enable internal display | expand

Commit Message

Nícolas F. R. A. Prado Sept. 8, 2022, 5:11 p.m. UTC
Add the regulators present on the Asurada platform that are used to
power the internal and external displays.

Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>

---

 .../boot/dts/mediatek/mt8192-asurada.dtsi     | 114 ++++++++++++++++++
 1 file changed, 114 insertions(+)

Comments

AngeloGioacchino Del Regno Sept. 9, 2022, 7:46 a.m. UTC | #1
Il 08/09/22 19:11, Nícolas F. R. A. Prado ha scritto:
> Add the regulators present on the Asurada platform that are used to
> power the internal and external displays.
> 
> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
> 
> ---
> 
>   .../boot/dts/mediatek/mt8192-asurada.dtsi     | 114 ++++++++++++++++++
>   1 file changed, 114 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi b/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
> index 4b314435f8fd..1d99e470ea1a 100644
> --- a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
> +++ b/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi

..snip..

> @@ -56,6 +116,18 @@ pp3300_ldo_z: regulator-3v3-z {
>   		vin-supply = <&ppvar_sys>;
>   	};
>   

Can you please add a comment here advertising that this regulator
will not only provide power to the MIPI bridge, but *also* to the
display panel itself?

This is to make sure that everyone understands what's going on, and
also that we ourselves don't forget about that.

Probably something like:
/* pp3300_mipibrdg also enables pp3300_panel */

I would then propose to add a "regulator-fixed" that has no GPIO
but with vin-supply as this one.

pp3300_panel: regulator-3v3-panel {
	compatible = "regulator-fixed";
	regulator-name = "pp3300_panel";
	regulator-min-microvolt = <3300000>;
	regulator-max-microvolt = <3300000>;

	vin-supply = <&pp3300_mipibrdg>;
};

I would also test assigning this regulator to the panel node, as this
will make sure to cover future corner cases (think about PM suspend/resume).

P.S.: If you add the pp3300_panel regulator-fixed with that vin-supply,
       maybe the proposed comment would become a bit overkill. Your choice!

Cheers,
Angelo

> +	pp3300_mipibrdg: regulator-3v3-mipibrdg {
> +		compatible = "regulator-fixed";
> +		regulator-name = "pp3300_mipibrdg";
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&pp3300_mipibrdg_en_pins>;
> +		regulator-min-microvolt = <3300000>;
> +		regulator-max-microvolt = <3300000>;
> +		enable-active-high;
> +		regulator-boot-on;
> +		gpio = <&pio 127 GPIO_ACTIVE_HIGH>;
> +	};
> +
>   	/* separately switched 3.3V power rail */
>   	pp3300_u: regulator-3v3-u {
>   		compatible = "regulator-fixed";
Nícolas F. R. A. Prado Sept. 21, 2022, 1:48 p.m. UTC | #2
On Fri, Sep 09, 2022 at 09:46:33AM +0200, AngeloGioacchino Del Regno wrote:
> Il 08/09/22 19:11, Nícolas F. R. A. Prado ha scritto:
> > Add the regulators present on the Asurada platform that are used to
> > power the internal and external displays.
> > 
> > Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
> > 
> > ---
> > 
> >   .../boot/dts/mediatek/mt8192-asurada.dtsi     | 114 ++++++++++++++++++
> >   1 file changed, 114 insertions(+)
> > 
> > diff --git a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi b/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
> > index 4b314435f8fd..1d99e470ea1a 100644
> > --- a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
> > +++ b/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
> 
> ..snip..
> 
> > @@ -56,6 +116,18 @@ pp3300_ldo_z: regulator-3v3-z {
> >   		vin-supply = <&ppvar_sys>;
> >   	};
> 
> Can you please add a comment here advertising that this regulator
> will not only provide power to the MIPI bridge, but *also* to the
> display panel itself?
> 
> This is to make sure that everyone understands what's going on, and
> also that we ourselves don't forget about that.
> 
> Probably something like:
> /* pp3300_mipibrdg also enables pp3300_panel */
> 
> I would then propose to add a "regulator-fixed" that has no GPIO
> but with vin-supply as this one.
> 
> pp3300_panel: regulator-3v3-panel {
> 	compatible = "regulator-fixed";
> 	regulator-name = "pp3300_panel";
> 	regulator-min-microvolt = <3300000>;
> 	regulator-max-microvolt = <3300000>;
> 
> 	vin-supply = <&pp3300_mipibrdg>;
> };
> 
> I would also test assigning this regulator to the panel node, as this
> will make sure to cover future corner cases (think about PM suspend/resume).
> 
> P.S.: If you add the pp3300_panel regulator-fixed with that vin-supply,
>       maybe the proposed comment would become a bit overkill. Your choice!

Hi Angelo,

thanks for the feedback.

I think the current layout makes more sense based on my understanding of the
power routing here: a single power line output by the pp3300_mipibrdg regulator
powers both the ANX chip as well as the panel. So I'm going to keep it the way
it is for now. If there are any other concerns please let me know.

Thanks,
Nícolas

> 
> Cheers,
> Angelo
> 
> > +	pp3300_mipibrdg: regulator-3v3-mipibrdg {
> > +		compatible = "regulator-fixed";
> > +		regulator-name = "pp3300_mipibrdg";
> > +		pinctrl-names = "default";
> > +		pinctrl-0 = <&pp3300_mipibrdg_en_pins>;
> > +		regulator-min-microvolt = <3300000>;
> > +		regulator-max-microvolt = <3300000>;
> > +		enable-active-high;
> > +		regulator-boot-on;
> > +		gpio = <&pio 127 GPIO_ACTIVE_HIGH>;
> > +	};
> > +
> >   	/* separately switched 3.3V power rail */
> >   	pp3300_u: regulator-3v3-u {
> >   		compatible = "regulator-fixed";
>
AngeloGioacchino Del Regno Sept. 21, 2022, 1:58 p.m. UTC | #3
Il 21/09/22 15:48, Nícolas F. R. A. Prado ha scritto:
> On Fri, Sep 09, 2022 at 09:46:33AM +0200, AngeloGioacchino Del Regno wrote:
>> Il 08/09/22 19:11, Nícolas F. R. A. Prado ha scritto:
>>> Add the regulators present on the Asurada platform that are used to
>>> power the internal and external displays.
>>>
>>> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
>>>
>>> ---
>>>
>>>    .../boot/dts/mediatek/mt8192-asurada.dtsi     | 114 ++++++++++++++++++
>>>    1 file changed, 114 insertions(+)
>>>
>>> diff --git a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi b/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
>>> index 4b314435f8fd..1d99e470ea1a 100644
>>> --- a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
>>> +++ b/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
>>
>> ..snip..
>>
>>> @@ -56,6 +116,18 @@ pp3300_ldo_z: regulator-3v3-z {
>>>    		vin-supply = <&ppvar_sys>;
>>>    	};
>>
>> Can you please add a comment here advertising that this regulator
>> will not only provide power to the MIPI bridge, but *also* to the
>> display panel itself?
>>
>> This is to make sure that everyone understands what's going on, and
>> also that we ourselves don't forget about that.
>>
>> Probably something like:
>> /* pp3300_mipibrdg also enables pp3300_panel */
>>
>> I would then propose to add a "regulator-fixed" that has no GPIO
>> but with vin-supply as this one.
>>
>> pp3300_panel: regulator-3v3-panel {
>> 	compatible = "regulator-fixed";
>> 	regulator-name = "pp3300_panel";
>> 	regulator-min-microvolt = <3300000>;
>> 	regulator-max-microvolt = <3300000>;
>>
>> 	vin-supply = <&pp3300_mipibrdg>;
>> };
>>
>> I would also test assigning this regulator to the panel node, as this
>> will make sure to cover future corner cases (think about PM suspend/resume).
>>
>> P.S.: If you add the pp3300_panel regulator-fixed with that vin-supply,
>>        maybe the proposed comment would become a bit overkill. Your choice!
> 
> Hi Angelo,
> 
> thanks for the feedback.
> 
> I think the current layout makes more sense based on my understanding of the
> power routing here: a single power line output by the pp3300_mipibrdg regulator
> powers both the ANX chip as well as the panel. So I'm going to keep it the way
> it is for now. If there are any other concerns please let me know.
> 

As we discussed, I agree on this decision. Please go on.

Cheers!

> Thanks,
> Nícolas
> 
>>
>> Cheers,
>> Angelo
>>
>>> +	pp3300_mipibrdg: regulator-3v3-mipibrdg {
>>> +		compatible = "regulator-fixed";
>>> +		regulator-name = "pp3300_mipibrdg";
>>> +		pinctrl-names = "default";
>>> +		pinctrl-0 = <&pp3300_mipibrdg_en_pins>;
>>> +		regulator-min-microvolt = <3300000>;
>>> +		regulator-max-microvolt = <3300000>;
>>> +		enable-active-high;
>>> +		regulator-boot-on;
>>> +		gpio = <&pio 127 GPIO_ACTIVE_HIGH>;
>>> +	};
>>> +
>>>    	/* separately switched 3.3V power rail */
>>>    	pp3300_u: regulator-3v3-u {
>>>    		compatible = "regulator-fixed";
>>
Chen-Yu Tsai Sept. 21, 2022, 2:20 p.m. UTC | #4
Hi,

On Fri, Sep 9, 2022 at 1:12 AM Nícolas F. R. A. Prado
<nfraprado@collabora.com> wrote:
>
> Add the regulators present on the Asurada platform that are used to
> power the internal and external displays.
>
> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
>
> ---
>
>  .../boot/dts/mediatek/mt8192-asurada.dtsi     | 114 ++++++++++++++++++
>  1 file changed, 114 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi b/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
> index 4b314435f8fd..1d99e470ea1a 100644
> --- a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
> +++ b/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
> @@ -23,6 +23,42 @@ memory@40000000 {
>                 reg = <0 0x40000000 0 0x80000000>;
>         };
>
> +       pp1000_dpbrdg: regulator-1v0-dpbrdg {
> +               compatible = "regulator-fixed";
> +               regulator-name = "pp1000_dpbrdg";
> +               pinctrl-names = "default";
> +               pinctrl-0 = <&pp1000_dpbrdg_en_pins>;
> +               regulator-min-microvolt = <1000000>;
> +               regulator-max-microvolt = <1000000>;

This is fed by a rail called PP1350_VS2, which is from the MT6359 PMIC.
And this regulator is a proper LDO.

> +               enable-active-high;
> +               regulator-boot-on;
> +               gpio = <&pio 19 GPIO_ACTIVE_HIGH>;
> +       };
> +
> +       pp1000_mipibrdg: regulator-1v0-mipibrdg {
> +               compatible = "regulator-fixed";
> +               regulator-name = "pp1000_mipibrdg";
> +               pinctrl-names = "default";
> +               pinctrl-0 = <&pp1000_mipibrdg_en_pins>;
> +               regulator-min-microvolt = <1000000>;
> +               regulator-max-microvolt = <1000000>;

This is fed by a rail called PP1350_VS2, which is from the MT6359 PMIC.
And this regulator is a proper LDO.

> +               enable-active-high;
> +               regulator-boot-on;
> +               gpio = <&pio 129 GPIO_ACTIVE_HIGH>;
> +       };
> +
> +       pp1800_dpbrdg: regulator-1v8-dpbrdg {
> +               compatible = "regulator-fixed";
> +               regulator-name = "pp1800_dpbrdg";
> +               pinctrl-names = "default";
> +               pinctrl-0 = <&pp1800_dpbrdg_en_pins>;
> +               regulator-min-microvolt = <1800000>;
> +               regulator-max-microvolt = <1800000>;

This regulator is only a power switch. Please drop the min/max properties.
This is fed by a rail called PP1800_VIO18_U, which is from an LDO on the
MT6359 PMIC.

> +               enable-active-high;
> +               regulator-boot-on;
> +               gpio = <&pio 126 GPIO_ACTIVE_HIGH>;
> +       };
> +
>         /* system wide LDO 1.8V power rail */
>         pp1800_ldo_g: regulator-1v8-g {
>                 compatible = "regulator-fixed";
> @@ -34,6 +70,30 @@ pp1800_ldo_g: regulator-1v8-g {
>                 vin-supply = <&pp3300_g>;
>         };
>
> +       pp1800_mipibrdg: regulator-1v8-mipibrdg {
> +               compatible = "regulator-fixed";
> +               regulator-name = "pp1800_mipibrdg";
> +               pinctrl-names = "default";
> +               pinctrl-0 = <&pp1800_mipibrdg_en_pins>;
> +               regulator-min-microvolt = <1800000>;
> +               regulator-max-microvolt = <1800000>;

This regulator is only a power switch. Please drop the min/max properties.
This is fed by a rail called PP1800_VIO18_U, which is from an LDO on the
MT6359 PMIC.

> +               enable-active-high;
> +               regulator-boot-on;
> +               gpio = <&pio 128 GPIO_ACTIVE_HIGH>;
> +       };
> +
> +       pp3300_dpbrdg: regulator-3v3-dpbrdg {
> +               compatible = "regulator-fixed";
> +               regulator-name = "pp3300_dpbrdg";
> +               pinctrl-names = "default";
> +               pinctrl-0 = <&pp3300_dpbrdg_en_pins>;
> +               regulator-min-microvolt = <3300000>;
> +               regulator-max-microvolt = <3300000>;

This regulator is only a power switch. Please drop the min/max properties.
This is fed by a rail called PP3300_G, which is already described below.

> +               enable-active-high;
> +               regulator-boot-on;
> +               gpio = <&pio 26 GPIO_ACTIVE_HIGH>;
> +       };
> +
>         /* system wide switching 3.3V power rail */
>         pp3300_g: regulator-3v3-g {
>                 compatible = "regulator-fixed";
> @@ -56,6 +116,18 @@ pp3300_ldo_z: regulator-3v3-z {
>                 vin-supply = <&ppvar_sys>;
>         };
>
> +       pp3300_mipibrdg: regulator-3v3-mipibrdg {
> +               compatible = "regulator-fixed";
> +               regulator-name = "pp3300_mipibrdg";
> +               pinctrl-names = "default";
> +               pinctrl-0 = <&pp3300_mipibrdg_en_pins>;
> +               regulator-min-microvolt = <3300000>;
> +               regulator-max-microvolt = <3300000>;

This regulator is only a power switch. Please drop the min/max properties.
This is fed by a rail called PP3300_G, which is already described above.

ChenYu

> +               enable-active-high;
> +               regulator-boot-on;
> +               gpio = <&pio 127 GPIO_ACTIVE_HIGH>;
> +       };
> +
>         /* separately switched 3.3V power rail */
>         pp3300_u: regulator-3v3-u {
>                 compatible = "regulator-fixed";
> @@ -719,6 +791,48 @@ pins-wifi-kill {
>                 };
>         };
>
> +       pp1000_dpbrdg_en_pins: pp1000-dpbrdg-en-pins {
> +               pins-en {
> +                       pinmux = <PINMUX_GPIO19__FUNC_GPIO19>;
> +                       output-low;
> +               };
> +       };
> +
> +       pp1000_mipibrdg_en_pins: pp1000-mipibrdg-en-pins {
> +               pins-en {
> +                       pinmux = <PINMUX_GPIO129__FUNC_GPIO129>;
> +                       output-low;
> +               };
> +       };
> +
> +       pp1800_dpbrdg_en_pins: pp1800-dpbrdg-en-pins {
> +               pins-en {
> +                       pinmux = <PINMUX_GPIO126__FUNC_GPIO126>;
> +                       output-low;
> +               };
> +       };
> +
> +       pp1800_mipibrdg_en_pins: pp1800-mipibrd-en-pins {
> +               pins-en {
> +                       pinmux = <PINMUX_GPIO128__FUNC_GPIO128>;
> +                       output-low;
> +               };
> +       };
> +
> +       pp3300_dpbrdg_en_pins: pp3300-dpbrdg-en-pins {
> +               pins-en {
> +                       pinmux = <PINMUX_GPIO26__FUNC_GPIO26>;
> +                       output-low;
> +               };
> +       };
> +
> +       pp3300_mipibrdg_en_pins: pp3300-mipibrdg-en-pins {
> +               pins-en {
> +                       pinmux = <PINMUX_GPIO127__FUNC_GPIO127>;
> +                       output-low;
> +               };
> +       };
> +
>         pp3300_wlan_pins: pp3300-wlan-pins {
>                 pins-pcie-en-pp3300-wlan {
>                         pinmux = <PINMUX_GPIO143__FUNC_GPIO143>;
> --
> 2.37.3
>
Nícolas F. R. A. Prado Sept. 27, 2022, 9:13 p.m. UTC | #5
Hi Chen-Yu,

thank you for the insights on the power supply hierarchy. Just a couple further
questions below.

On Wed, Sep 21, 2022 at 10:20:43PM +0800, Chen-Yu Tsai wrote:
> Hi,
> 
> On Fri, Sep 9, 2022 at 1:12 AM Nícolas F. R. A. Prado
> <nfraprado@collabora.com> wrote:
> >
> > Add the regulators present on the Asurada platform that are used to
> > power the internal and external displays.
> >
> > Signed-off-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
> >
> > ---
> >
> >  .../boot/dts/mediatek/mt8192-asurada.dtsi     | 114 ++++++++++++++++++
> >  1 file changed, 114 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi b/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
> > index 4b314435f8fd..1d99e470ea1a 100644
> > --- a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
> > +++ b/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
> > @@ -23,6 +23,42 @@ memory@40000000 {
> >                 reg = <0 0x40000000 0 0x80000000>;
> >         };
> >
> > +       pp1000_dpbrdg: regulator-1v0-dpbrdg {
> > +               compatible = "regulator-fixed";
> > +               regulator-name = "pp1000_dpbrdg";
> > +               pinctrl-names = "default";
> > +               pinctrl-0 = <&pp1000_dpbrdg_en_pins>;
> > +               regulator-min-microvolt = <1000000>;
> > +               regulator-max-microvolt = <1000000>;
> 
> This is fed by a rail called PP1350_VS2, which is from the MT6359 PMIC.
> And this regulator is a proper LDO.

So, we should have an additional regulator node here called pp1350_vs2 which
will feed into pp1000_dpbrdg and that is itself fed in from mt6359_vs2_buck_reg
(from mt6359.dtsi). Is that right?

Also, is PP1350_VS2 just a simple switch or an LDO?

> 
[..]
> > +       pp1800_dpbrdg: regulator-1v8-dpbrdg {
> > +               compatible = "regulator-fixed";
> > +               regulator-name = "pp1800_dpbrdg";
> > +               pinctrl-names = "default";
> > +               pinctrl-0 = <&pp1800_dpbrdg_en_pins>;
> > +               regulator-min-microvolt = <1800000>;
> > +               regulator-max-microvolt = <1800000>;
> 
> This regulator is only a power switch. Please drop the min/max properties.
> This is fed by a rail called PP1800_VIO18_U, which is from an LDO on the
> MT6359 PMIC.

Similarly, we should have a pp1800_vio18_u node that is fed in by
mt6359_vio18_ldo_reg, right? And is it a switch or an LDO?

Thanks,
Nícolas

> 
> > +               enable-active-high;
> > +               regulator-boot-on;
> > +               gpio = <&pio 126 GPIO_ACTIVE_HIGH>;
> > +       };
> > +
[..]
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi b/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
index 4b314435f8fd..1d99e470ea1a 100644
--- a/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8192-asurada.dtsi
@@ -23,6 +23,42 @@  memory@40000000 {
 		reg = <0 0x40000000 0 0x80000000>;
 	};
 
+	pp1000_dpbrdg: regulator-1v0-dpbrdg {
+		compatible = "regulator-fixed";
+		regulator-name = "pp1000_dpbrdg";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pp1000_dpbrdg_en_pins>;
+		regulator-min-microvolt = <1000000>;
+		regulator-max-microvolt = <1000000>;
+		enable-active-high;
+		regulator-boot-on;
+		gpio = <&pio 19 GPIO_ACTIVE_HIGH>;
+	};
+
+	pp1000_mipibrdg: regulator-1v0-mipibrdg {
+		compatible = "regulator-fixed";
+		regulator-name = "pp1000_mipibrdg";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pp1000_mipibrdg_en_pins>;
+		regulator-min-microvolt = <1000000>;
+		regulator-max-microvolt = <1000000>;
+		enable-active-high;
+		regulator-boot-on;
+		gpio = <&pio 129 GPIO_ACTIVE_HIGH>;
+	};
+
+	pp1800_dpbrdg: regulator-1v8-dpbrdg {
+		compatible = "regulator-fixed";
+		regulator-name = "pp1800_dpbrdg";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pp1800_dpbrdg_en_pins>;
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		enable-active-high;
+		regulator-boot-on;
+		gpio = <&pio 126 GPIO_ACTIVE_HIGH>;
+	};
+
 	/* system wide LDO 1.8V power rail */
 	pp1800_ldo_g: regulator-1v8-g {
 		compatible = "regulator-fixed";
@@ -34,6 +70,30 @@  pp1800_ldo_g: regulator-1v8-g {
 		vin-supply = <&pp3300_g>;
 	};
 
+	pp1800_mipibrdg: regulator-1v8-mipibrdg {
+		compatible = "regulator-fixed";
+		regulator-name = "pp1800_mipibrdg";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pp1800_mipibrdg_en_pins>;
+		regulator-min-microvolt = <1800000>;
+		regulator-max-microvolt = <1800000>;
+		enable-active-high;
+		regulator-boot-on;
+		gpio = <&pio 128 GPIO_ACTIVE_HIGH>;
+	};
+
+	pp3300_dpbrdg: regulator-3v3-dpbrdg {
+		compatible = "regulator-fixed";
+		regulator-name = "pp3300_dpbrdg";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pp3300_dpbrdg_en_pins>;
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		enable-active-high;
+		regulator-boot-on;
+		gpio = <&pio 26 GPIO_ACTIVE_HIGH>;
+	};
+
 	/* system wide switching 3.3V power rail */
 	pp3300_g: regulator-3v3-g {
 		compatible = "regulator-fixed";
@@ -56,6 +116,18 @@  pp3300_ldo_z: regulator-3v3-z {
 		vin-supply = <&ppvar_sys>;
 	};
 
+	pp3300_mipibrdg: regulator-3v3-mipibrdg {
+		compatible = "regulator-fixed";
+		regulator-name = "pp3300_mipibrdg";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pp3300_mipibrdg_en_pins>;
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		enable-active-high;
+		regulator-boot-on;
+		gpio = <&pio 127 GPIO_ACTIVE_HIGH>;
+	};
+
 	/* separately switched 3.3V power rail */
 	pp3300_u: regulator-3v3-u {
 		compatible = "regulator-fixed";
@@ -719,6 +791,48 @@  pins-wifi-kill {
 		};
 	};
 
+	pp1000_dpbrdg_en_pins: pp1000-dpbrdg-en-pins {
+		pins-en {
+			pinmux = <PINMUX_GPIO19__FUNC_GPIO19>;
+			output-low;
+		};
+	};
+
+	pp1000_mipibrdg_en_pins: pp1000-mipibrdg-en-pins {
+		pins-en {
+			pinmux = <PINMUX_GPIO129__FUNC_GPIO129>;
+			output-low;
+		};
+	};
+
+	pp1800_dpbrdg_en_pins: pp1800-dpbrdg-en-pins {
+		pins-en {
+			pinmux = <PINMUX_GPIO126__FUNC_GPIO126>;
+			output-low;
+		};
+	};
+
+	pp1800_mipibrdg_en_pins: pp1800-mipibrd-en-pins {
+		pins-en {
+			pinmux = <PINMUX_GPIO128__FUNC_GPIO128>;
+			output-low;
+		};
+	};
+
+	pp3300_dpbrdg_en_pins: pp3300-dpbrdg-en-pins {
+		pins-en {
+			pinmux = <PINMUX_GPIO26__FUNC_GPIO26>;
+			output-low;
+		};
+	};
+
+	pp3300_mipibrdg_en_pins: pp3300-mipibrdg-en-pins {
+		pins-en {
+			pinmux = <PINMUX_GPIO127__FUNC_GPIO127>;
+			output-low;
+		};
+	};
+
 	pp3300_wlan_pins: pp3300-wlan-pins {
 		pins-pcie-en-pp3300-wlan {
 			pinmux = <PINMUX_GPIO143__FUNC_GPIO143>;