static void init_spi_gpio()
{
// GPIO map for SPI.
static const gpio_map_t spi_gpio_map =
{
{ AVR32_SPI1_SCK_0_PIN, AVR32_SPI1_SCK_0_FUNCTION }, // SPI Clock.
{ AVR32_SPI1_MISO_0_PIN, AVR32_SPI1_MISO_0_FUNCTION }, // MISO.
{ AVR32_SPI1_MOSI_0_PIN, AVR32_SPI1_MOSI_0_FUNCTION }, // MOSI.
{ AVR32_SPI1_NPCS_1_PIN, AVR32_SPI1_NPCS_1_FUNCTION }, // CS SD
};
gpio_enable_module(spi_gpio_map,sizeof(spi_gpio_map) / sizeof(spi_gpio_map[0]));
}
static void init_display(long hwclk)
{
static const gpio_map_t spi_gpio_map =
{
{ AVR32_SPI1_NPCS_2_PIN, AVR32_SPI1_NPCS_2_FUNCTION } // Display
};
gpio_enable_module(spi_gpio_map, sizeof(spi_gpio_map)
/ sizeof(spi_gpio_map[0]));
spi_options_t spiOptions =
{ .reg = DIP204_SPI_NPCS, /*DIP204_SPI_CS, */
.baudrate = 1000000, .bits = 8, .spck_delay = 0, .trans_delay = 0,
.stay_act = 1, .spi_mode = 0, .fdiv = 0, .modfdis = 1 };
spi_initMaster(DIP204_SPI, &spiOptions);
spi_selectionMode(DIP204_SPI, 0, 0, 0);
spi_enable(DIP204_SPI);
spi_setupChipReg(DIP204_SPI, &spiOptions, hwclk);
}
static void sdcard_resources_init(long hwclk)
{
static const gpio_map_t spi_gpio_map =
{
{ AVR32_SPI1_NPCS_1_PIN, AVR32_SPI1_NPCS_1_FUNCTION } // SD Card
};
gpio_enable_module(spi_gpio_map, sizeof(spi_gpio_map)
/ sizeof(spi_gpio_map[0]));
spi_options_t spiOptions =
{ .reg = 1, .baudrate = 12000000, .bits = 8, .spck_delay = 0,
.trans_delay = 0, .stay_act = 1, .spi_mode = 0, .fdiv = 0,
.modfdis = 1 };
sd_mmc_init(spiOptions, hwclk);
}