1 /* 2 * Copyright 2021-2022 NXP 3 * All rights reserved. 4 * 5 * SPDX-License-Identifier: BSD-3-Clause 6 */ 7 8 #include "wifi_bt_config.h" 9 #include "pin_mux.h" 10 #include "fsl_gpio.h" 11 12 /******************************************************************************* 13 * Definitions 14 ******************************************************************************/ 15 16 /******************************************************************************* 17 * Prototypes 18 ******************************************************************************/ 19 20 /******************************************************************************* 21 * Variables 22 ******************************************************************************/ 23 24 /******************************************************************************* 25 * Code 26 ******************************************************************************/ 27 BOARD_WIFI_BT_Enable(bool enable)28void BOARD_WIFI_BT_Enable(bool enable) 29 { 30 if (enable) 31 { 32 /* Enable module */ 33 #ifdef WIFI_BT_USE_M2_INTERFACE 34 /* Set SDIO_RST to 1 */ 35 GPIO_PortSet(BOARD_INITPINSM2_SDIO_RST_GPIO, BOARD_INITPINSM2_SDIO_RST_PIN_MASK); 36 vTaskDelay(pdMS_TO_TICKS(100)); 37 38 /* Set WL_RST to 1 */ 39 GPIO_PortSet(BOARD_INITPINSM2_WL_RST_GPIO, BOARD_INITPINSM2_WL_RST_PIN_MASK); 40 vTaskDelay(pdMS_TO_TICKS(100)); 41 #elif defined(WIFI_BT_USE_USD_INTERFACE) 42 /* Enable power supply for SD */ 43 BOARD_SDMMC_SD_POWER_RESET_GPIO_BASE->GDIR &= ~(1UL << BOARD_SDMMC_SD_POWER_RESET_GPIO_PIN); 44 vTaskDelay(pdMS_TO_TICKS(100)); 45 #endif /* WIFI_BT_USE_M2_INTERFACE */ 46 } 47 else 48 { 49 /* Disable module */ 50 #ifdef WIFI_BT_USE_M2_INTERFACE 51 /* Set WL_RST to 0 */ 52 GPIO_PortClear(BOARD_INITPINSM2_WL_RST_GPIO, BOARD_INITPINSM2_WL_RST_PIN_MASK); 53 /* Set SDIO_RST to 0 */ 54 GPIO_PortClear(BOARD_INITPINSM2_SDIO_RST_GPIO, BOARD_INITPINSM2_SDIO_RST_PIN_MASK); 55 #elif defined(WIFI_BT_USE_USD_INTERFACE) 56 /* Disable power supply for SD */ 57 BOARD_SDMMC_SD_POWER_RESET_GPIO_BASE->GDIR |= (1UL << BOARD_SDMMC_SD_POWER_RESET_GPIO_PIN); 58 #endif /* WIFI_BT_USE_M2_INTERFACE */ 59 vTaskDelay(pdMS_TO_TICKS(100)); 60 } 61 } 62 BOARD_WIFI_BT_Config(void * card,sdio_int_t cardInt)63void BOARD_WIFI_BT_Config(void *card, sdio_int_t cardInt) 64 { 65 BOARD_SDIO_Config(card, NULL, BOARD_SDMMC_SDIO_HOST_IRQ_PRIORITY, cardInt); 66 ((sdio_card_t *)card)->usrParam.pwr = NULL; 67 68 #ifdef WIFI_BT_USE_M2_INTERFACE 69 ((sdio_card_t *)card)->usrParam.pwr = NULL; 70 BOARD_InitPinsM2(); 71 #endif 72 73 BOARD_WIFI_BT_Enable(false); 74 } 75