summaryrefslogtreecommitdiff
path: root/bsp/lpc176x/drivers/sd.c
diff options
context:
space:
mode:
Diffstat (limited to 'bsp/lpc176x/drivers/sd.c')
-rw-r--r--bsp/lpc176x/drivers/sd.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/bsp/lpc176x/drivers/sd.c b/bsp/lpc176x/drivers/sd.c
index a777ef70d2..ea9b712569 100644
--- a/bsp/lpc176x/drivers/sd.c
+++ b/bsp/lpc176x/drivers/sd.c
@@ -397,7 +397,19 @@ static rt_size_t rt_sdcard_write (rt_device_t dev, rt_off_t pos, const void* buf
static rt_err_t rt_sdcard_control(rt_device_t dev, rt_uint8_t cmd, void *args)
{
- return RT_EOK;
+ if (cmd == RT_DEVICE_CTRL_BLK_GETGEOME)
+ {
+ struct rt_device_blk_geometry *geometry;
+
+ geometry = (struct rt_device_blk_geometry *)args;
+ if (geometry == RT_NULL) return -RT_ERROR;
+
+ geometry->bytes_per_sector = SDCfg.sectorsize;
+ geometry->block_size = SDCfg.blocksize;
+ geometry->sector_count = SDCfg.sectorcnt;
+ }
+
+ return RT_EOK;
}
void rt_hw_sdcard_init()