[PATCH v2 6/7] arm64: dts: mediatek: mt8195-cherry: add WiFi PCIe and BT USB power supplies
From: Chen-Yu Tsai
Date: Thu Feb 26 2026 - 02:52:42 EST
The MT8195 Cherry design features an M.2 E-key slot wired up with PCIe
and USB for a WiFi+BT adapter. Previously the power was just enabled
all the time with a default pinctrl setting that set the GPIO pin high.
With the PCIe slot description DT binding in place, the power supplies
can at least be added and tied to the PCIe and USB hosts. Once the
M.2 E-key binding is merged, this description can be further converted
to an M.2 E-key.
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@xxxxxxxxxxxxx>
Reviewed-by: Manivannan Sadhasivam <mani@xxxxxxxxxx>
Signed-off-by: Chen-Yu Tsai <wenst@xxxxxxxxxxxx>
---
.../boot/dts/mediatek/mt8195-cherry.dtsi | 47 ++++++++++++++-----
1 file changed, 36 insertions(+), 11 deletions(-)
diff --git a/arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi b/arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi
index 6e99122c65ac..f1ff64a84267 100644
--- a/arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi
+++ b/arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi
@@ -83,6 +83,17 @@ pp3300_s3: regulator-pp3300-s3 {
vin-supply = <&pp3300_z2>;
};
+ pp3300_wlan: regulator-pp3300-wlan {
+ compatible = "regulator-fixed";
+ pinctrl-names = "default";
+ pinctrl-0 = <&pp3300_wlan_en_pin>;
+ regulator-name = "pp3300_wlan";
+ /* load switch */
+ enable-active-high;
+ gpio = <&pio 58 GPIO_ACTIVE_HIGH>;
+ vin-supply = <&pp3300_z2>;
+ };
+
/* system wide 3.3V power rail */
pp3300_z2: regulator-pp3300-z2 {
compatible = "regulator-fixed";
@@ -760,10 +771,25 @@ &ovl0_in {
};
&pcie1 {
- status = "okay";
-
pinctrl-names = "default";
pinctrl-0 = <&pcie1_pins_default>;
+ status = "okay";
+
+ pcie@0 {
+ compatible = "pciclass,0604";
+ reg = <0 0 0 0 0>;
+ device_type = "pci";
+ num-lanes = <1>;
+ vpcie3v3-supply = <&pp3300_wlan>;
+ #address-cells = <3>;
+ #size-cells = <2>;
+ ranges;
+
+ wifi@0 {
+ reg = <0 0 0 0 0>;
+ wakeup-source;
+ };
+ };
};
&pio {
@@ -1179,12 +1205,6 @@ pins-vreg-en {
};
pio_default: pio-default-pins {
- pins-wifi-enable {
- pinmux = <PINMUX_GPIO58__FUNC_GPIO58>;
- output-high;
- drive-strength = <14>;
- };
-
pins-low-power-pd {
pinmux = <PINMUX_GPIO25__FUNC_GPIO25>,
<PINMUX_GPIO26__FUNC_GPIO26>,
@@ -1222,6 +1242,12 @@ pins-low-power-pupd {
};
};
+ pp3300_wlan_en_pin: pp3300-wlan-en-pins {
+ pins-en {
+ pinmux = <PINMUX_GPIO58__FUNC_GPIO58>;
+ };
+ };
+
rt1019p_pins_default: rt1019p-default-pins {
pins-amp-sdb {
pinmux = <PINMUX_GPIO100__FUNC_GPIO100>;
@@ -1570,11 +1596,10 @@ &xhci2 {
};
&xhci3 {
- status = "okay";
-
/* MT7921's USB Bluetooth has issues with USB2 LPM */
usb2-lpm-disable;
- vbus-supply = <&usb_vbus>;
+ vbus-supply = <&pp3300_wlan>;
+ status = "okay";
};
#include <arm/cros-ec-keyboard.dtsi>
--
2.53.0.414.gf7e9f6c205-goog