]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
arm64: dts: mediatek: mt8195-cherry: add WiFi PCIe and BT USB power supplies
authorChen-Yu Tsai <wenst@chromium.org>
Mon, 2 Mar 2026 05:31:06 +0000 (13:31 +0800)
committerAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Thu, 5 Mar 2026 12:42:57 +0000 (13:42 +0100)
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@collabora.com>
Reviewed-by: Manivannan Sadhasivam <mani@kernel.org>
Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
arch/arm64/boot/dts/mediatek/mt8195-cherry.dtsi

index 6e99122c65ac09a5af9c12670b56c44cf19966fa..f1ff64a84267c69244e4e35dabf52578909d2061 100644 (file)
                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";
 };
 
 &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 {
        };
 
        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>,
                };
        };
 
+       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>;
 };
 
 &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>