From 6d1e1cb284d6edd78e533bf9c8c54bed39d24356 Mon Sep 17 00:00:00 2001
From: Martin Schmiedel <Martin.Schmiedel@tq-group.com>
Date: Wed, 10 Jan 2024 13:10:41 +0100
Subject: [PATCH] Add wifi support for TQMa8MPxL-MBa8MP-RAS314

- bluetooth not working yet

Signed-off-by: Martin Schmiedel <Martin.Schmiedel@tq-group.com>
---
 .../imx8mp-tqma8mpql-mba8mp-ras314.dts        | 43 +++++++++++++++++--
 1 file changed, 39 insertions(+), 4 deletions(-)

diff --git a/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mp-ras314.dts b/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mp-ras314.dts
index 27830cba1cba..418886187ecc 100644
--- a/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mp-ras314.dts
+++ b/arch/arm64/boot/dts/freescale/imx8mp-tqma8mpql-mba8mp-ras314.dts
@@ -257,15 +257,15 @@ &gpio4 {
 			  "", "", "", "",
 			  "", "", "USER_LED1", "USER_LED2",
 			  "HDMI_OC#", "", "", "",
-			  "", "", "GPIO19", "GPIO20",
-			  "", "", "", "";
+			  "", "PCI_WAKE#", "GPIO19", "GPIO20",
+			  "PCIE_PERST#", "", "", "";
 };
 
 &gpio5 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_gpio5>;
 
-	gpio-line-names = "", "GPIO18", "", "",
+	gpio-line-names = "", "GPIO18", "PCIE_W_DISABLE#", "",
 			  "", "", "", "",
 			  "", "", "GPIO21", "CODEC_RST#",
 			  "", "", "", "",
@@ -366,6 +366,29 @@ &pcf85063 {
 	interrupts = <19 IRQ_TYPE_EDGE_FALLING>;
 };
 
+&pcie_phy {
+	clocks = <&hsio_blk_ctrl>;
+	clock-names = "ref";
+	fsl,clkreq-unsupported;
+	fsl,refclk-pad-mode = <IMX8_PCIE_REFCLK_PAD_OUTPUT>;
+	status = "okay";
+};
+
+&pcie {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pinctrl_wifi>;
+	reset-gpio = <&gpio4 28 GPIO_ACTIVE_LOW>;
+	status = "okay";
+
+	mvl_wifi: wifi@0,0 {
+		compatible = "pci1b4b,2b42";
+		interrupt-parent = <&gpio4>;
+		interrupts = <25 IRQ_TYPE_LEVEL_LOW>;
+		wakeup-source;
+		status = "okay";
+	};
+};
+
 &pwm3 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pinctrl_pwm3>;
@@ -405,7 +428,13 @@ &uart2 {
 	pinctrl-0 = <&pinctrl_uart2>;
 	assigned-clocks = <&clk IMX8MP_CLK_UART2>;
 	assigned-clock-parents = <&clk IMX8MP_SYS_PLL1_80M>;
-	status = "okay";
+	uart-has-rtscts;
+	status = "disabled";
+
+	bluetooth {
+		compatible = "nxp,88w8987-bt";
+		fw-init-baudrate = <3000000>;
+	};
 };
 
 &uart3 {
@@ -568,6 +597,7 @@ pinctrl_gpio4: gpio4grp {
 
 	pinctrl_gpio5: gpio5grp {
 		fsl,pins = <MX8MP_IOMUXC_SAI3_TXD__GPIO5_IO01 		0x10>,
+			   <MX8MP_IOMUXC_SAI3_MCLK__GPIO5_IO02 0x180>,
 			   <MX8MP_IOMUXC_SPDIF_EXT_CLK__GPIO5_IO05	0x10>;
 	};
 
@@ -743,4 +773,9 @@ pinctrl_usdhc2_200mhz: usdhc2-200mhzgrp {
 	pinctrl_usdhc2_gpio: usdhc2-gpiogrp {
 		fsl,pins = <MX8MP_IOMUXC_SD2_CD_B__GPIO2_IO12		0x1c0>;
 	};
+
+	pinctrl_wifi: wifigrp {
+		fsl,pins = <MX8MP_IOMUXC_SAI3_RXFS__GPIO4_IO28		0x180>,
+			   <MX8MP_IOMUXC_SAI2_TXC__GPIO4_IO25		0x180>;
+	};
 };
-- 
2.34.1

