diff --git a/epicardium/modules/hardware.c b/epicardium/modules/hardware.c index cb6b70b51302234ca6d2c796afb51c09de74e581..5cb95dc286d3262504886d210580bdc9f9b12263 100644 --- a/epicardium/modules/hardware.c +++ b/epicardium/modules/hardware.c @@ -17,6 +17,7 @@ #include "gpio.h" #include "i2c.h" +#include "rtc.h" #include "spi.h" #include "trng.h" @@ -70,6 +71,21 @@ int hardware_early_init(void) */ PB_Init(); + /* Enable 32 kHz output */ + while (RTC_SquareWave( + MXC_RTC, + SQUARE_WAVE_ENABLED, + F_32KHZ, + NOISE_IMMUNE_MODE, + NULL) == E_BUSY + ) + ; + + /* If we don't have a valid time yet, set it to 2019-01-01 */ + if (RTC_GetSecond() < 1546300800UL) { + epic_rtc_set_milliseconds(1546300800UL * 1000); + } + /* * SPI for ECG */ diff --git a/lib/card10/card10.c b/lib/card10/card10.c index 624db7609a5424fb6eacfc36c577090f3be69d9f..371912d5909ce5f479f7761ea3fe5b5d87e159e0 100644 --- a/lib/card10/card10.c +++ b/lib/card10/card10.c @@ -53,9 +53,6 @@ void card10_init(void) TMR_Delay(MXC_TMR0, MSEC(1000), 0); - while (RTC_EnableRTCE(MXC_RTC) == E_BUSY) - ; - // Enable 32 kHz output while (RTC_SquareWave( MXC_RTC, @@ -71,6 +68,9 @@ void card10_init(void) ; } + while (RTC_EnableRTCE(MXC_RTC) == E_BUSY) + ; + // Enable SPI sys_cfg_spi_t spi17y_master_cfg;