diff --git a/bsp/ls1cdev/drivers/drv_spi.c b/bsp/ls1cdev/drivers/drv_spi.c index 4b81d55d71a08881b3a98e5e6bc978b8c2267283..3cc2212850b3ffe01918c8aeb1c4752600f81d73 100644 --- a/bsp/ls1cdev/drivers/drv_spi.c +++ b/bsp/ls1cdev/drivers/drv_spi.c @@ -25,13 +25,14 @@ #include #include +#include #include "drv_spi.h" +#include "ls1c_public.h" +#include "spi_msd.h" +#include "dfs_fs.h" #include "../libraries/ls1c_pin.h" #ifdef RT_USING_SPI - -//#define DEBUG - #ifdef DEBUG #define DEBUG_PRINTF(...) rt_kprintf(__VA_ARGS__) #else @@ -265,20 +266,24 @@ int ls1c_hw_spi_init(void) #ifdef RT_USING_SPI0 /* attach cs */ { - static struct rt_spi_device spi_device0; - static struct rt_spi_device spi_device1; - static struct rt_spi_device spi_device2; - static struct ls1c_spi_cs spi_cs0; - static struct ls1c_spi_cs spi_cs1; - static struct ls1c_spi_cs spi_cs2; - - /* spi02: CS2 SD Card*/ - spi_cs2.cs = LS1C_SPI_CS_2; - rt_spi_bus_attach_device(&spi_device2, "spi02", "spi0", (void *)&spi_cs2); - spi_cs1.cs = LS1C_SPI_CS_1; - rt_spi_bus_attach_device(&spi_device1, "spi01", "spi0", (void *)&spi_cs1); - spi_cs0.cs = LS1C_SPI_CS_0; - rt_spi_bus_attach_device(&spi_device0, "spi00", "spi0", (void *)&spi_cs0); + static struct rt_spi_device spi_device0; + static struct rt_spi_device spi_device1; + static struct rt_spi_device spi_device2; + static struct rt_spi_device spi_device3; + static struct ls1c_spi_cs spi_cs0; + static struct ls1c_spi_cs spi_cs1; + static struct ls1c_spi_cs spi_cs2; + static struct ls1c_spi_cs spi_cs3; + /* spi02: CS2 SD Card*/ + spi_cs2.cs = LS1C_SPI_CS_2; + rt_spi_bus_attach_device(&spi_device2, "spi02", "spi0", (void *)&spi_cs2); + spi_cs1.cs = LS1C_SPI_CS_1; + rt_spi_bus_attach_device(&spi_device1, "spi01", "spi0", (void *)&spi_cs1); + spi_cs0.cs = LS1C_SPI_CS_0; + rt_spi_bus_attach_device(&spi_device0, "spi00", "spi0", (void *)&spi_cs0); + spi_cs3.cs = LS1C_SPI_CS_3; + rt_spi_bus_attach_device(&spi_device3, "spi03", "spi0", (void*)&spi_cs3); + msd_init("sd0", "spi02"); } #endif #ifdef RT_USING_SPI1 @@ -296,5 +301,21 @@ int ls1c_hw_spi_init(void) INIT_BOARD_EXPORT(ls1c_hw_spi_init); +static int board_sd_init(void) +{ + #if defined(RT_USING_DFS) && defined(RT_USING_DFS_ELMFAT) + /* mount sd card fat partition 1 as root directory */ + if( dfs_mount("sd0", "/", "elm", 0, 0) == 0) + { + rt_kprintf("File System initialized!\n"); + } + else + { + rt_kprintf("File System initialzation failed!\n"); + } + #endif /* RT_USING_DFS && RT_USING_DFS_ELMFAT */ +} +INIT_APP_EXPORT(board_sd_init); + #endif