summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorYe Li <ye.li@nxp.com>2022-09-20 17:33:37 +0800
committerYe Li <ye.li@nxp.com>2022-09-28 21:04:05 +0800
commit1f500a5967001ddfa72680b2711b6ae2b0110006 (patch)
treea5c5596661c606c4ff7538331d79d8fbef57c8aa /board
parentba4f72198f500ace451f714ee90ccb50e8ba6b9f (diff)
LFU-398-6 imx93_qsb: Enable M.2 VPCIe_3V3 and deassert SD3_nRST
VPCIe_3V3 is used to supply the power to M.2 card, we must enable it before using the flash. The SD3_nRST is connected to reset pin of flash, must deassert (pull up) it. Signed-off-by: Ye Li <ye.li@nxp.com> Reviewed-by: Peng Fan <peng.fan@nxp.com> (cherry picked from commit de9747a36721c2bb19a3f5ac5c3da3e580c78010)
Diffstat (limited to 'board')
-rw-r--r--board/freescale/imx93_qsb/imx93_qsb.c33
1 files changed, 33 insertions, 0 deletions
diff --git a/board/freescale/imx93_qsb/imx93_qsb.c b/board/freescale/imx93_qsb/imx93_qsb.c
index 9d6115afd8..b5cb2709fc 100644
--- a/board/freescale/imx93_qsb/imx93_qsb.c
+++ b/board/freescale/imx93_qsb/imx93_qsb.c
@@ -19,6 +19,7 @@
#include <dm/uclass.h>
#include <usb.h>
#include <dwc3-uboot.h>
+#include <asm/gpio.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -213,6 +214,36 @@ static int setup_eqos(void)
return set_clk_eqos(ENET_125MHZ);
}
+static void board_gpio_init(void)
+{
+ struct gpio_desc desc;
+ int ret;
+
+ /* Enable EXT1_PWREN for PCIE_3.3V */
+ ret = dm_gpio_lookup_name("gpio@22_13", &desc);
+ if (ret)
+ return;
+
+ ret = dm_gpio_request(&desc, "EXT1_PWREN");
+ if (ret)
+ return;
+
+ dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT);
+ dm_gpio_set_value(&desc, 1);
+
+ /* Deassert SD3_nRST */
+ ret = dm_gpio_lookup_name("gpio@22_12", &desc);
+ if (ret)
+ return;
+
+ ret = dm_gpio_request(&desc, "SD3_nRST");
+ if (ret)
+ return;
+
+ dm_gpio_set_dir_flags(&desc, GPIOD_IS_OUT);
+ dm_gpio_set_value(&desc, 1);
+}
+
int board_init(void)
{
#ifdef CONFIG_USB_TCPC
@@ -222,6 +253,8 @@ int board_init(void)
if (CONFIG_IS_ENABLED(DWC_ETH_QOS))
setup_eqos();
+ board_gpio_init();
+
return 0;
}