mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-05 05:34:32 +02:00
feat(sdmmc): Add ESP32-P4 eMMC test board definition
This commit is contained in:
@@ -37,6 +37,10 @@ menu "SDMMC Test Board Configuration"
|
|||||||
bool "ESP32-P4 Function EV Board with SDSPI breakout"
|
bool "ESP32-P4 Function EV Board with SDSPI breakout"
|
||||||
depends on IDF_TARGET_ESP32P4
|
depends on IDF_TARGET_ESP32P4
|
||||||
|
|
||||||
|
config SDMMC_BOARD_ESP32P4_EMMC_TEST
|
||||||
|
bool "ESP32-P4 eMMC Test Board v1"
|
||||||
|
depends on IDF_TARGET_ESP32P4
|
||||||
|
|
||||||
config SDMMC_BOARD_ESP32C5_BREAKOUT
|
config SDMMC_BOARD_ESP32C5_BREAKOUT
|
||||||
bool "ESP32-C5 breakout board"
|
bool "ESP32-C5 breakout board"
|
||||||
depends on IDF_TARGET_ESP32C5
|
depends on IDF_TARGET_ESP32C5
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
|
* SPDX-FileCopyrightText: 2022-2025 Espressif Systems (Shanghai) CO LTD
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
*/
|
*/
|
||||||
@@ -375,6 +375,88 @@ static const sdmmc_test_board_info_t s_board_info = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#elif CONFIG_SDMMC_BOARD_ESP32P4_EMMC_TEST
|
||||||
|
|
||||||
|
#define SD_TEST_BOARD_EN_GPIO 23
|
||||||
|
#define SD_TEST_BOARD_EN_LEVEL 0
|
||||||
|
// Pin pulled down to discharge VDD_SDIO capacitors. CMD pin used here.
|
||||||
|
#define SD_TEST_BOARD_DISCHARGE_GPIO 19
|
||||||
|
#define SD_TEST_BOARD_PWR_RST_DELAY_MS 100
|
||||||
|
#define SD_TEST_BOARD_PWR_ON_DELAY_MS 100
|
||||||
|
|
||||||
|
static void card_power_set_esp32p4_emmc(bool en)
|
||||||
|
{
|
||||||
|
if (en) {
|
||||||
|
/* power off to make sure the card is reset */
|
||||||
|
gpio_reset_pin(SD_TEST_BOARD_EN_GPIO);
|
||||||
|
gpio_set_direction(SD_TEST_BOARD_EN_GPIO, GPIO_MODE_OUTPUT);
|
||||||
|
gpio_set_level(SD_TEST_BOARD_EN_GPIO, !SD_TEST_BOARD_EN_LEVEL);
|
||||||
|
/* discharge capacitors on VDD_SDIO */
|
||||||
|
gpio_reset_pin(SD_TEST_BOARD_DISCHARGE_GPIO);
|
||||||
|
gpio_set_direction(SD_TEST_BOARD_DISCHARGE_GPIO, GPIO_MODE_OUTPUT);
|
||||||
|
gpio_set_level(SD_TEST_BOARD_DISCHARGE_GPIO, 0);
|
||||||
|
usleep(SD_TEST_BOARD_PWR_RST_DELAY_MS * 1000);
|
||||||
|
/* power on */
|
||||||
|
gpio_reset_pin(SD_TEST_BOARD_DISCHARGE_GPIO);
|
||||||
|
gpio_set_level(SD_TEST_BOARD_EN_GPIO, SD_TEST_BOARD_EN_LEVEL);
|
||||||
|
usleep(SD_TEST_BOARD_PWR_ON_DELAY_MS * 1000);
|
||||||
|
} else {
|
||||||
|
/* power off the card */
|
||||||
|
gpio_set_level(SD_TEST_BOARD_EN_GPIO, !SD_TEST_BOARD_EN_LEVEL);
|
||||||
|
gpio_set_direction(SD_TEST_BOARD_EN_GPIO, GPIO_MODE_INPUT);
|
||||||
|
/* discharge capacitors on VDD_SDIO */
|
||||||
|
gpio_reset_pin(SD_TEST_BOARD_DISCHARGE_GPIO);
|
||||||
|
gpio_set_direction(SD_TEST_BOARD_DISCHARGE_GPIO, GPIO_MODE_OUTPUT);
|
||||||
|
gpio_set_level(SD_TEST_BOARD_DISCHARGE_GPIO, 0);
|
||||||
|
usleep(SD_TEST_BOARD_PWR_RST_DELAY_MS * 1000);
|
||||||
|
/* reset the pin but leaving it floating so that VDD_SDIO won't be charged again */
|
||||||
|
gpio_reset_pin(SD_TEST_BOARD_DISCHARGE_GPIO);
|
||||||
|
gpio_pullup_dis(SD_TEST_BOARD_DISCHARGE_GPIO);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static const sdmmc_test_board_info_t s_board_info = {
|
||||||
|
.name = "ESP32-P4 eMMC test board v1",
|
||||||
|
.slot = {
|
||||||
|
{
|
||||||
|
.slot_exists = true,
|
||||||
|
.is_emmc = true,
|
||||||
|
.bus_width = 8,
|
||||||
|
.clk = 43,
|
||||||
|
.cmd_mosi = 44,
|
||||||
|
.d0_miso = 39,
|
||||||
|
.d1 = 40,
|
||||||
|
.d2 = 41,
|
||||||
|
.d3_cs = 42,
|
||||||
|
.d4 = 45,
|
||||||
|
.d5 = 46,
|
||||||
|
.d6 = 47,
|
||||||
|
.d7 = 48,
|
||||||
|
.cd = GPIO_NUM_NC,
|
||||||
|
.wp = GPIO_NUM_NC,
|
||||||
|
.unused_pin = 54,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.slot_exists = true,
|
||||||
|
.bus_width = 4,
|
||||||
|
.clk = 18,
|
||||||
|
.cmd_mosi = 19,
|
||||||
|
.d0_miso = 14,
|
||||||
|
.d1 = 15,
|
||||||
|
.d2 = 16,
|
||||||
|
.d3_cs = 17,
|
||||||
|
.d4 = GPIO_NUM_NC,
|
||||||
|
.d5 = GPIO_NUM_NC,
|
||||||
|
.d6 = GPIO_NUM_NC,
|
||||||
|
.d7 = GPIO_NUM_NC,
|
||||||
|
.cd = 22,
|
||||||
|
.wp = GPIO_NUM_NC,
|
||||||
|
.unused_pin = 54,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
.card_power_set = card_power_set_esp32p4_emmc
|
||||||
|
};
|
||||||
|
|
||||||
#elif CONFIG_SDMMC_BOARD_ESP32C5_BREAKOUT
|
#elif CONFIG_SDMMC_BOARD_ESP32C5_BREAKOUT
|
||||||
|
|
||||||
static const sdmmc_test_board_info_t s_board_info = {
|
static const sdmmc_test_board_info_t s_board_info = {
|
||||||
|
Reference in New Issue
Block a user