software/libbase/spisdcard: add USE_SPISDCARD_RECLOCKING define to easily disable reclocking.

This commit is contained in:
Florent Kermarrec 2020-03-26 07:46:32 +01:00
parent b509df8bb6
commit 73b4347587
1 changed files with 6 additions and 2 deletions

View File

@ -21,6 +21,8 @@
#include <time.h> #include <time.h>
#include <string.h> #include <string.h>
#define USE_SPISCARD_RECLOCKING
#ifdef CSR_SPISDCARD_BASE #ifdef CSR_SPISDCARD_BASE
// Import prototypes for the functions // Import prototypes for the functions
#include <spisdcard.h> #include <spisdcard.h>
@ -138,7 +140,7 @@ uint8_t spi_setspimode(void)
{ {
uint32_t r; uint32_t r;
int i, timeout=32; int i, timeout=32;
// Initialise SPI mode // Initialise SPI mode
// set CS to HIGH // set CS to HIGH
// Send pulses // Send pulses
@ -444,6 +446,7 @@ uint8_t spi_sdcard_readMBR(void)
return FAILURE; return FAILURE;
} }
#ifdef USE_SPISCARD_RECLOCKING
// Reclock the card // Reclock the card
// Calculate 16MHz as an integer divider from the CONFIG_CLOCK_FREQUENCY // Calculate 16MHz as an integer divider from the CONFIG_CLOCK_FREQUENCY
// Add 1 as will be rounded down // Add 1 as will be rounded down
@ -454,7 +457,7 @@ uint8_t spi_sdcard_readMBR(void)
divider=2; divider=2;
printf("Reclocking from %dKHz to %dKHz\n\n", CONFIG_CLOCK_FREQUENCY/(int)spisdcard_clk_divider_read()/1000, CONFIG_CLOCK_FREQUENCY/divider/1000); printf("Reclocking from %dKHz to %dKHz\n\n", CONFIG_CLOCK_FREQUENCY/(int)spisdcard_clk_divider_read()/1000, CONFIG_CLOCK_FREQUENCY/divider/1000);
spisdcard_clk_divider_write(divider); spisdcard_clk_divider_write(divider);
// Read in FAT16 File Allocation Table, array of 16bit unsinged integers // Read in FAT16 File Allocation Table, array of 16bit unsinged integers
// Calculate Storage from TOP of MAIN RAM // Calculate Storage from TOP of MAIN RAM
sdCardFatTable = (uint16_t *)(MAIN_RAM_BASE+MAIN_RAM_SIZE-sdCardFatBootSector.sector_size*sdCardFatBootSector.fat_size_sectors); sdCardFatTable = (uint16_t *)(MAIN_RAM_BASE+MAIN_RAM_SIZE-sdCardFatBootSector.sector_size*sdCardFatBootSector.fat_size_sectors);
@ -468,6 +471,7 @@ uint8_t spi_sdcard_readMBR(void)
return FAILURE; return FAILURE;
} }
} }
#endif
// Read in FAT16 Root Directory // Read in FAT16 Root Directory
// Calculate Storage from TOP of MAIN RAM // Calculate Storage from TOP of MAIN RAM