[PATCH v2 02/16] arm64: dts: mediatek: mt6359: Switch to proper ldo_vcn33_[12] regulators

Chen-Yu Tsai
2026-05-05T10:14:34Z

The ldo_vcn33_[12]_wifi and ldo_vcn33_[12]_bt are just two regulator
outputs instead of four. The wifi and bt parts refer to separate enable
bits that are OR-ed together to affect the actual regulator output. The
separate bits allow the wifi and bt stacks to enable their power without
coordination between them. These have been deprecated in favor of proper
nodes matching the output.

Add proper ldo_vcn33_[12] nodes and drop the old ones. No default voltage
ranges are given as they don't make sense, and the existing ranges are
about to be removed. In-tree users of the existing *_(wifi|bt) regulator
nodes are converted over to use the new ones.

Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
---
Changes since v1:
- Use non-suffixed names (ldo_vcn33_[12]) instead
- Convert existing users
---
arch/arm64/boot/dts/mediatek/mt6359.dtsi | 22 ++++---------------
.../dts/mediatek/mt8390-genio-common.dtsi | 4 ++--
.../dts/mediatek/mt8390-grinn-genio-som.dtsi | 2 +-
.../dts/mediatek/mt8390-tungsten-smarc.dtsi | 6 ++---
.../dts/mediatek/mt8395-genio-common.dtsi | 6 ++---
.../mt8395-radxa-nio-12l-8-hd-panel.dtso | 4 ++--
.../dts/mediatek/mt8395-radxa-nio-12l.dts | 2 +-
7 files changed, 16 insertions(+), 30 deletions(-)

diff --git a/arch/arm64/boot/dts/mediatek/mt6359.dtsi b/arch/arm64/boot/dts/mediatek/mt6359.dtsi
index 45ad69ee49ed..a953fb527b69 100644
--- a/arch/arm64/boot/dts/mediatek/mt6359.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt6359.dtsi
@@ -164,15 +164,8 @@ mt6359_vcn13_ldo_reg: ldo_vcn13 {
regulator-min-microvolt = <900000>;
regulator-max-microvolt = <1300000>;
};
- mt6359_vcn33_1_bt_ldo_reg: ldo_vcn33_1_bt {
- regulator-name = "vcn33_1_bt";
- regulator-min-microvolt = <2800000>;
- regulator-max-microvolt = <3500000>;
- };
- mt6359_vcn33_1_wifi_ldo_reg: ldo_vcn33_1_wifi {
- regulator-name = "vcn33_1_wifi";
- regulator-min-microvolt = <2800000>;
- regulator-max-microvolt = <3500000>;
+ mt6359_vcn33_1_ldo_reg: ldo_vcn33_1 {
+ regulator-name = "vcn33_1";
};
mt6359_vaux18_ldo_reg: ldo_vaux18 {
regulator-name = "vaux18";
@@ -231,15 +224,8 @@ mt6359_vemc_1_ldo_reg: ldo_vemc_1 {
regulator-min-microvolt = <2500000>;
regulator-max-microvolt = <3300000>;
};
- mt6359_vcn33_2_bt_ldo_reg: ldo_vcn33_2_bt {
- regulator-name = "vcn33_2_bt";
- regulator-min-microvolt = <2800000>;
- regulator-max-microvolt = <3500000>;
- };
- mt6359_vcn33_2_wifi_ldo_reg: ldo_vcn33_2_wifi {
- regulator-name = "vcn33_2_wifi";
- regulator-min-microvolt = <2800000>;
- regulator-max-microvolt = <3500000>;
+ mt6359_vcn33_2_ldo_reg: ldo_vcn33_2 {
+ regulator-name = "vcn33_2";
};
mt6359_va12_ldo_reg: ldo_va12 {
regulator-name = "va12";
diff --git a/arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi b/arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi
index 2062506f6cc5..ae11cd73e333 100644
--- a/arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi
@@ -445,7 +445,7 @@ typec-mux@48 {
mode-switch;
orientation-switch;

- vcc-supply = <&mt6359_vcn33_1_bt_ldo_reg>;
+ vcc-supply = <&mt6359_vcn33_1_ldo_reg>;

port {
it5205_sbu_mux: endpoint {
@@ -637,7 +637,7 @@ &mt6359_vcn18_ldo_reg {
regulator-always-on;
};

-&mt6359_vcn33_2_bt_ldo_reg {
+&mt6359_vcn33_2_ldo_reg {
regulator-name = "vcn33_2_pmu";
regulator-always-on;
};
diff --git a/arch/arm64/boot/dts/mediatek/mt8390-grinn-genio-som.dtsi b/arch/arm64/boot/dts/mediatek/mt8390-grinn-genio-som.dtsi
index 8da47c916313..84064511fa0d 100644
--- a/arch/arm64/boot/dts/mediatek/mt8390-grinn-genio-som.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8390-grinn-genio-som.dtsi
@@ -58,7 +58,7 @@ &mt6359_vcn18_ldo_reg {
regulator-always-on;
};

-&mt6359_vcn33_2_bt_ldo_reg {
+&mt6359_vcn33_2_ldo_reg {
regulator-name = "vcn33_2_pmu";
regulator-always-on;
};
diff --git a/arch/arm64/boot/dts/mediatek/mt8390-tungsten-smarc.dtsi b/arch/arm64/boot/dts/mediatek/mt8390-tungsten-smarc.dtsi
index 40b381d4cc35..2e68e997dff3 100644
--- a/arch/arm64/boot/dts/mediatek/mt8390-tungsten-smarc.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8390-tungsten-smarc.dtsi
@@ -592,7 +592,7 @@ &mmc2 {
interrupt-names = "msdc", "sdio_wakeup";
interrupts-extended = <&gic GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH 0>,
<&pio 172 IRQ_TYPE_LEVEL_LOW>;
- vmmc-supply = <&mt6359_vcn33_2_bt_ldo_reg>;
+ vmmc-supply = <&mt6359_vcn33_2_ldo_reg>;
vqmmc-supply = <&mt6359_vcn18_ldo_reg>;
mmc-pwrseq = <&wifi_pwrseq>;
status = "okay";
@@ -617,12 +617,12 @@ &mt6359_vcn18_ldo_reg {
regulator-boot-on;
};

-&mt6359_vcn33_1_bt_ldo_reg {
+&mt6359_vcn33_1_ldo_reg {
regulator-name = "vcn33_1_pmu";
regulator-always-on;
};

-&mt6359_vcn33_2_bt_ldo_reg {
+&mt6359_vcn33_2_ldo_reg {
regulator-name = "vcn33_2_pmu";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
diff --git a/arch/arm64/boot/dts/mediatek/mt8395-genio-common.dtsi b/arch/arm64/boot/dts/mediatek/mt8395-genio-common.dtsi
index 62c336e21500..4259291a52a3 100644
--- a/arch/arm64/boot/dts/mediatek/mt8395-genio-common.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8395-genio-common.dtsi
@@ -701,7 +701,7 @@ &mt6359_vcamio_ldo_reg {
regulator-always-on;
};

-&mt6359_vcn33_2_bt_ldo_reg {
+&mt6359_vcn33_2_ldo_reg {
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
@@ -1216,8 +1216,8 @@ can0: can@0 {
clocks = <&can_clk>;
spi-max-frequency = <20000000>;
interrupts-extended = <&pio 16 IRQ_TYPE_LEVEL_LOW>;
- vdd-supply = <&mt6359_vcn33_2_bt_ldo_reg>;
- xceiver-supply = <&mt6359_vcn33_2_bt_ldo_reg>;
+ vdd-supply = <&mt6359_vcn33_2_ldo_reg>;
+ xceiver-supply = <&mt6359_vcn33_2_ldo_reg>;
};
};

diff --git a/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l-8-hd-panel.dtso b/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l-8-hd-panel.dtso
index 0389c9cb8581..ecc9fd27b82d 100644
--- a/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l-8-hd-panel.dtso
+++ b/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l-8-hd-panel.dtso
@@ -29,7 +29,7 @@ panel@0 {
compatible = "radxa,display-8hd-ad002", "jadard,jd9365da-h3";
reg = <0>;
backlight = <&backlight>;
- vdd-supply = <&mt6359_vcn33_2_bt_ldo_reg>;
+ vdd-supply = <&mt6359_vcn33_2_ldo_reg>;
vccio-supply = <&mt6360_ldo2>;
reset-gpios = <&pio 108 GPIO_ACTIVE_LOW>;
pinctrl-names = "default";
@@ -57,7 +57,7 @@ touchscreen@14 {
interrupts-extended = <&pio 132 IRQ_TYPE_EDGE_RISING>;
irq-gpios = <&pio 132 GPIO_ACTIVE_HIGH>;
reset-gpios = <&pio 133 GPIO_ACTIVE_HIGH>;
- VDDIO-supply = <&mt6359_vcn33_2_bt_ldo_reg>;
+ VDDIO-supply = <&mt6359_vcn33_2_ldo_reg>;
pinctrl-names = "default";
pinctrl-0 = <&touch_pins>;
};
diff --git a/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts b/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts
index bf91305e8e4a..4530434015a5 100644
--- a/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts
+++ b/arch/arm64/boot/dts/mediatek/mt8395-radxa-nio-12l.dts
@@ -614,7 +614,7 @@ &mt6359_vcamio_ldo_reg {
regulator-always-on;
};

-&mt6359_vcn33_2_bt_ldo_reg {
+&mt6359_vcn33_2_ldo_reg {
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};
--
2.54.0.545.g6539524ca2-goog