diff --git a/boards/arm/tiva/lm3s6965-ek/src/lm_appinit.c b/boards/arm/tiva/lm3s6965-ek/src/lm_appinit.c index 3ee75c506c..556389af3a 100644 --- a/boards/arm/tiva/lm3s6965-ek/src/lm_appinit.c +++ b/boards/arm/tiva/lm3s6965-ek/src/lm_appinit.c @@ -39,56 +39,7 @@ #include -#include -#include -#include -#include - -#include -#include -#include - #include "lm3s6965-ek.h" -#include "tiva_ssi.h" - -/**************************************************************************** - * Pre-processor Definitions - ****************************************************************************/ - -/* Configuration ************************************************************/ - -#define NSH_HAVEMMCSD 1 - -/* Can't support MMC/SD features if mountpoints or MMC/SPI are disabled */ - -#if defined(CONFIG_DISABLE_MOUNTPOINT) || !defined(CONFIG_MMCSD_SPI) -# undef NSH_HAVEMMCSD -#endif - -/* PORT and SLOT number depend on the board configuration */ - -#ifdef CONFIG_NSH_ARCHINIT -# if !defined(CONFIG_NSH_MMCSDSPIPORTNO) || CONFIG_NSH_MMCSDSPIPORTNO != 0 -# error "The LM3S6965 Eval Kit MMC/SD is on SSI0" -# undef CONFIG_NSH_MMCSDSPIPORTNO -# define CONFIG_NSH_MMCSDSPIPORTNO 0 -# endif -# if !defined(CONFIG_NSH_MMCSDSLOTNO) || CONFIG_NSH_MMCSDSLOTNO != 0 -# error "The LM3S6965 Eval Kit MMC/SD is on SSI0 slot 0" -# undef CONFIG_NSH_MMCSDSLOTNO -# define CONFIG_NSH_MMCSDSLOTNO 0 -# endif -# ifndef CONFIG_NSH_MMCSDMINOR -# define CONFIG_NSH_MMCSDMINOR 0 -# endif -#else -# undef CONFIG_NSH_MMCSDSPIPORTNO -# define CONFIG_NSH_MMCSDSPIPORTNO 0 -# undef CONFIG_NSH_MMCSDSLOTNO -# define CONFIG_NSH_MMCSDSLOTNO 0 -# undef CONFIG_NSH_MMCSDMINOR -# define CONFIG_NSH_MMCSDMINOR 0 -#endif /**************************************************************************** * Public Functions @@ -119,43 +70,9 @@ int board_app_initialize(uintptr_t arg) { -#ifdef NSH_HAVEMMCSD - FAR struct spi_dev_s *spi; - int ret; - - /* Get the SPI port */ - - mcinfo("Initializing SPI port %d\n", CONFIG_NSH_MMCSDSPIPORTNO); - - spi = tiva_ssibus_initialize(CONFIG_NSH_MMCSDSPIPORTNO); - if (!spi) - { - mcerr("ERROR: Failed to initialize SPI port %d\n", - CONFIG_NSH_MMCSDSPIPORTNO); - return -ENODEV; - } - - mcinfo("Successfully initialized SPI port %d\n", CONFIG_NSH_MMCSDSPIPORTNO); - - /* Bind the SPI port to the slot */ - - mcinfo("Binding SPI port %d to MMC/SD slot %d\n", - CONFIG_NSH_MMCSDSPIPORTNO, CONFIG_NSH_MMCSDSLOTNO); - - ret = mmcsd_spislotinitialize(CONFIG_NSH_MMCSDMINOR, - CONFIG_NSH_MMCSDSLOTNO, spi); - if (ret < 0) - { - mcerr("ERROR: Failed to bind SPI port %d to MMC/SD slot %d: %d\n", - CONFIG_NSH_MMCSDSPIPORTNO, CONFIG_NSH_MMCSDSLOTNO, ret); - return ret; - } - - mcinfo("Successfully bound SPI port %d to MMC/SD slot %d\n", - CONFIG_NSH_MMCSDSPIPORTNO, CONFIG_NSH_MMCSDSLOTNO); -#endif #ifndef CONFIG_BOARD_LATE_INITIALIZE - lm_bringup(); -#endif + return lm_bringup(); +#else return OK; +#endif } diff --git a/boards/arm/tiva/lm3s6965-ek/src/lm_bringup.c b/boards/arm/tiva/lm3s6965-ek/src/lm_bringup.c index 07127add9f..696c9ce0c4 100644 --- a/boards/arm/tiva/lm3s6965-ek/src/lm_bringup.c +++ b/boards/arm/tiva/lm3s6965-ek/src/lm_bringup.c @@ -24,10 +24,57 @@ #include +#include +#include +#include + #include #include +#include +#include +#include #include "lm3s6965-ek.h" +#include "tiva_ssi.h" + +/**************************************************************************** + * Pre-processor Definitions + ****************************************************************************/ + +/* Configuration ************************************************************/ + +#define NSH_HAVEMMCSD 1 + +/* Can't support MMC/SD features if mountpoints or MMC/SPI are disabled */ + +#if defined(CONFIG_DISABLE_MOUNTPOINT) || !defined(CONFIG_MMCSD_SPI) +# undef NSH_HAVEMMCSD +#endif + +/* PORT and SLOT number depend on the board configuration */ + +#ifdef CONFIG_NSH_ARCHINIT +# if !defined(CONFIG_NSH_MMCSDSPIPORTNO) || CONFIG_NSH_MMCSDSPIPORTNO != 0 +# error "The LM3S6965 Eval Kit MMC/SD is on SSI0" +# undef CONFIG_NSH_MMCSDSPIPORTNO +# define CONFIG_NSH_MMCSDSPIPORTNO 0 +# endif +# if !defined(CONFIG_NSH_MMCSDSLOTNO) || CONFIG_NSH_MMCSDSLOTNO != 0 +# error "The LM3S6965 Eval Kit MMC/SD is on SSI0 slot 0" +# undef CONFIG_NSH_MMCSDSLOTNO +# define CONFIG_NSH_MMCSDSLOTNO 0 +# endif +# ifndef CONFIG_NSH_MMCSDMINOR +# define CONFIG_NSH_MMCSDMINOR 0 +# endif +#else +# undef CONFIG_NSH_MMCSDSPIPORTNO +# define CONFIG_NSH_MMCSDSPIPORTNO 0 +# undef CONFIG_NSH_MMCSDSLOTNO +# define CONFIG_NSH_MMCSDSLOTNO 0 +# undef CONFIG_NSH_MMCSDMINOR +# define CONFIG_NSH_MMCSDMINOR 0 +#endif /**************************************************************************** * Public Functions @@ -45,6 +92,41 @@ int lm_bringup(void) { int ret = 0; +#ifdef NSH_HAVEMMCSD + FAR struct spi_dev_s *spi; + + /* Get the SPI port */ + + mcinfo("Initializing SPI port %d\n", CONFIG_NSH_MMCSDSPIPORTNO); + + spi = tiva_ssibus_initialize(CONFIG_NSH_MMCSDSPIPORTNO); + if (!spi) + { + mcerr("ERROR: Failed to initialize SPI port %d\n", + CONFIG_NSH_MMCSDSPIPORTNO); + return -ENODEV; + } + + mcinfo("Successfully initialized SPI port %d\n", CONFIG_NSH_MMCSDSPIPORTNO); + + /* Bind the SPI port to the slot */ + + mcinfo("Binding SPI port %d to MMC/SD slot %d\n", + CONFIG_NSH_MMCSDSPIPORTNO, CONFIG_NSH_MMCSDSLOTNO); + + ret = mmcsd_spislotinitialize(CONFIG_NSH_MMCSDMINOR, + CONFIG_NSH_MMCSDSLOTNO, spi); + if (ret < 0) + { + mcerr("ERROR: Failed to bind SPI port %d to MMC/SD slot %d: %d\n", + CONFIG_NSH_MMCSDSPIPORTNO, CONFIG_NSH_MMCSDSLOTNO, ret); + return ret; + } + + mcinfo("Successfully bound SPI port %d to MMC/SD slot %d\n", + CONFIG_NSH_MMCSDSPIPORTNO, CONFIG_NSH_MMCSDSLOTNO); +#endif + #ifdef CONFIG_FS_BINFS /* Mount the binfs file system */