Skip to content

Commit

Permalink
timers/mcp794xx: add possibility to store datetime in UTC
Browse files Browse the repository at this point in the history
This commit adds configuration option CONFIG_MCP794XX_DATETIME_UTC.
If set, the datetime is stored in UTC instead of local time. The
default value is kept at local time to keep backwards compatibility
with devices currently using the RTC.

Signed-off-by: Michal Lenc <michallenc@seznam.cz>
  • Loading branch information
michallenc committed May 28, 2024
1 parent 8d7d687 commit 81b26a2
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
7 changes: 7 additions & 0 deletions drivers/timers/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -339,6 +339,13 @@ config RTC_MCP794XX

if RTC_MCP794XX

config MCP794XX_DATETIME_UTC
bool "Store datetime in UTC"
default n
---help---
If set, the datetime is stored in UTC timezone instead of timezone
defined by local time.

config MCP794XX_I2C_FREQUENCY
int "MCP794XX I2C frequency"
default 400000
Expand Down
12 changes: 12 additions & 0 deletions drivers/timers/mcp794xx.c
Original file line number Diff line number Diff line change
Expand Up @@ -407,11 +407,23 @@ int up_rtc_settime(FAR const struct timespec *tp)
newtime++;
}

#ifndef CONFIG_MCP794XX_DATETIME_UTC
/* Save datetime in local time. */

if (localtime_r(&newtime, &newtm) == NULL)
{
rtcerr("ERROR: localtime_r failed\n");
return -EINVAL;
}
#else
/* Save datetime in UTC time. */

if (gmtime_r(&newtime, &newtm) == NULL)
{
rtcerr("ERROR: gmtime_r failed\n");
return -EINVAL;
}
#endif

rtc_dumptime(&newtm, "New time");

Expand Down

0 comments on commit 81b26a2

Please sign in to comment.