Conversation
SDIOBlockDevice.cpp
Outdated
| @@ -0,0 +1,296 @@ | |||
| /* mbed Microcontroller Library | |||
| * Copyright (c) 2017 ARM Limited | |||
There was a problem hiding this comment.
year 2019 and add also SPDX identifier please
SDIOBlockDevice.cpp
Outdated
|
|
||
| int SDIOBlockDevice::program(const void *b, bd_addr_t addr, bd_size_t size) | ||
| { | ||
| //debug_if(SD_DBG, "program Card...\r\n"); |
| @@ -0,0 +1,236 @@ | |||
| /* | |||
| * Copyright (c) 2015, Freescale Semiconductor, Inc. | |||
There was a problem hiding this comment.
will these file work , if the location is target/fsl_sdmmc_common.h ? rather than TARGET_NXP as it's only for NXP targets?
Took the work done as part of PR ARMmbed/mbed-os#8634 Signed-off-by: Mahesh Mahadevan <mahesh.mahadevan@nxp.com>
cc3e7e5 to
1040204
Compare
|
I have update the PR to address the comments |
target/TARGET_NXP/sdio_device.c
Outdated
| //pin_mode(P0_17, PullNone); | ||
|
|
||
| /* SD Write Protect */ | ||
| //pin_function(P0_15, 5); |
There was a problem hiding this comment.
what about these unused code, lines 88-94 ?
There was a problem hiding this comment.
Thank you for catching this. This has been fixed.
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 <mahesh.mahadevan@nxp.com>
1040204 to
370c51a
Compare
|
@mmahadevan108 : this PR#2 seems to be conflicting PR#1 on this same repo: (#1). For instance #1 is using DMA mode and #2 does not. cc: @ARMmbed/mbed-os-storage |
|
I moved that part of the code to the target to decide the transfer mechanism to use. |
|
@mmahadevan108 - logically, leaving this part for the target to decide makes sense, but practically until someone changes PR #1 we have two separate PRs that conflict each other. @0xc0170 - I think we need to decide whether we would like two separate SDIOBlockDevice repos, for each target. |
|
cc @flit |
|
How should we proceed? |
|
@mmahadevan108 - can you confirm usage details for testing this on LPC55S69_EVK? How did you test this? is card detect required? Or did you use something like this? Also, there appears to be hard-coded pin seetings in sdio_device.c. Seems better to pass these in via the constructors. |
|
Never mind my last comment about usage details. I took the standard mbed-os-example-filesystem, made these changes and it works. |
|
Tested this with the block device test inside features-storage-tests-blockdevice-general_block_device |
- ARMmbed#1 is based on [JojoS62/sdio-driver/master](JojoS62@c03489c). - ARMmbed#2 is based on [NXPmicro/sdio-driver/Add_SDIO_LPC55S69](nxp-archive@370c51a)
Remove some warnings
add get_default_instance
Initial SDIO Block device driver.
Add SDIO support for LPC55S69