From 839d27735fcb6bfc5da68edbf70efdffcde7f02e Mon Sep 17 00:00:00 2001 From: Christian Mauderer Date: Thu, 20 Jul 2023 11:29:37 +0200 Subject: [PATCH] Add RTC driver for GRiSP Charger --- demo/init.c | 23 +++++++++++++++++++++++ external/rtems | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/demo/init.c b/demo/init.c index c545e56..6d66e96 100644 --- a/demo/init.c +++ b/demo/init.c @@ -30,6 +30,7 @@ */ #undef EVENT_RECORDING +#define RTC_ENABLED #include #include @@ -45,6 +46,10 @@ #include #include #include +#ifdef RTC_ENABLED +#include +#include +#endif #ifdef EVENT_RECORDING #include #include @@ -259,6 +264,10 @@ Init(rtems_task_argument arg) assert(rv == 0); #endif /* IS_GRISP2 */ +#ifdef RTC_ENABLED + setRealTimeToRTEMS(); +#endif + printf("Init EEPROM\n"); grisp_eeprom_init(); rv = grisp_eeprom_get(&eeprom); @@ -307,6 +316,17 @@ Init(rtems_task_argument arg) exit(0); } +#ifdef RTC_ENABLED +static struct mcp7940m_rtc rtc_ctx = + MCP7940M_RTC_INITIALIZER("/dev/i2c-1", 0x6f, false); + +rtc_tbl RTC_Table[] = { + MCP7940M_RTC_TBL_ENTRY("/dev/rtc", &rtc_ctx), +}; + +size_t RTC_Count = (sizeof(RTC_Table)/sizeof(rtc_tbl)); +#endif + /* * Configure LibBSD. */ @@ -321,6 +341,9 @@ Init(rtems_task_argument arg) */ #define CONFIGURE_MICROSECONDS_PER_TICK 10000 +#ifdef RTC_ENABLED +#define CONFIGURE_APPLICATION_NEEDS_RTC_DRIVER +#endif #define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER #define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER #define CONFIGURE_APPLICATION_NEEDS_STUB_DRIVER diff --git a/external/rtems b/external/rtems index 0fe6bd6..2af970e 160000 --- a/external/rtems +++ b/external/rtems @@ -1 +1 @@ -Subproject commit 0fe6bd64cf9943e1fe9afa14aa4b3185cbea0735 +Subproject commit 2af970e8d3bbfc9e3dc41de9b6ca453acb6d55da