Skip to content

Commit cc3e7e5

Browse files
committed
Add SDIO support for NXP LPC55S69
Tested this with the block device test inside features-storage-tests-blockdevice-general_block_device Below was the change made to add SDIO test --- a/features/storage/TESTS/blockdevice/general_block_device/main.cpp +++ b/features/storage/TESTS/blockdevice/general_block_device/main.cpp @@ -47,6 +47,8 @@ #include "FlashIAPBlockDevice.h" #endif +#include "SDIOBlockDevice.h" + using namespace utest::v1; #define TEST_BLOCK_COUNT 10 @@ -69,6 +71,7 @@ enum bd_type { dataflash, sd, flashiap, + sdio, default_bd }; @@ -90,6 +93,11 @@ static inline uint32_t align_up(uint32_t val, uint32_t size) static BlockDevice *get_bd_instance(uint8_t bd_type) { switch (bd_arr[bd_type]) { + case sdio: { + static SDIOBlockDevice default_bd(P0_17); + return &default_bd; + break; + } case spif: { #if COMPONENT_SPIF static SPIFBlockDevice default_bd( @@ -632,6 +640,8 @@ void test_get_type_functionality() const char *bd_type = block_device->get_type(); TEST_ASSERT_NOT_EQUAL(0, bd_type); + TEST_ASSERT_EQUAL(0, strcmp(bd_type, "SDIO")); + #if COMPONENT_QSPIF TEST_ASSERT_EQUAL(0, strcmp(bd_type, "QSPIF")); #elif COMPONENT_SPIF @@ -708,10 +718,12 @@ int get_bd_count() bd_arr[count++] = flashiap; //4 #endif + bd_arr[count++] = sdio; //5 + return count; } -static const char *prefix[] = {"SPIF ", "QSPIF ", "DATAFLASH ", "SD ", "FLASHIAP ", "DEFAULT "}; +static const char *prefix[] = {"SPIF ", "QSPIF ", "DATAFLASH ", "SD ", "FLASHIAP ", "SDIO ", "DEFAULT "}; int main() { Signed-off-by: Mahesh Mahadevan <[email protected]>
1 parent 1ca1887 commit cc3e7e5

10 files changed

+5249
-0
lines changed

target/board.h

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
/*
2+
* Copyright 2017-2018 NXP
3+
* All rights reserved.
4+
*
5+
* SPDX-License-Identifier: BSD-3-Clause
6+
*/
7+
8+
#ifndef _BOARD_H_
9+
#define _BOARD_H_
10+
11+
#include "fsl_common.h"
12+
#include "fsl_gpio.h"
13+
#include "fsl_iocon.h"
14+
15+
/*******************************************************************************
16+
* Definitions
17+
******************************************************************************/
18+
19+
#define BOARD_SDIF_BASEADDR SDIF
20+
#define BOARD_SDIF_CLKSRC kCLOCK_SDio
21+
#define BOARD_SDIF_CLK_FREQ CLOCK_GetFreq(kCLOCK_SDio)
22+
#define BOARD_SDIF_CLK_ATTACH kMAIN_CLK_to_SDIO_CLK
23+
#define BOARD_SDIF_IRQ SDIO_IRQn
24+
#define BOARD_MMC_VCC_SUPPLY kMMC_VoltageWindows270to360
25+
#define BOARD_SD_CARD_DETECT_PIN 17
26+
#define BOARD_SD_CARD_DETECT_PORT 0
27+
#define BOARD_SD_CARD_DETECT_GPIO GPIO
28+
#define BOARD_SD_DETECT_TYPE kSDMMCHOST_DetectCardByHostCD
29+
30+
#define BOARD_SDIF_CD_GPIO_INIT() \
31+
{ \
32+
CLOCK_EnableClock(kCLOCK_Gpio2); \
33+
GPIO_PinInit(BOARD_SD_CARD_DETECT_GPIO, BOARD_SD_CARD_DETECT_PORT, BOARD_SD_CARD_DETECT_PIN, \
34+
&(gpio_pin_config_t){kGPIO_DigitalInput, 0U}); \
35+
}
36+
#define BOARD_SDIF_CD_STATUS() \
37+
GPIO_PinRead(BOARD_SD_CARD_DETECT_GPIO, BOARD_SD_CARD_DETECT_PORT, BOARD_SD_CARD_DETECT_PIN)
38+
39+
#define BOARD_SDIF_CLK_ATTACH kMAIN_CLK_to_SDIO_CLK
40+
41+
#endif /* _BOARD_H_ */

0 commit comments

Comments
 (0)