This is an automated email from the ASF dual-hosted git repository. acassis pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit c59b48355c9729662e6228cd318e7caf7373b6a2 Author: Michal Lenc <[email protected]> AuthorDate: Tue May 28 10:16:48 2024 +0200 timers/mcp794xx: add possibility to store datetime in UTC 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 <[email protected]> --- drivers/timers/Kconfig | 7 +++++++ drivers/timers/mcp794xx.c | 12 ++++++++++++ 2 files changed, 19 insertions(+) diff --git a/drivers/timers/Kconfig b/drivers/timers/Kconfig index 37a8561c8a..0fd4074727 100644 --- a/drivers/timers/Kconfig +++ b/drivers/timers/Kconfig @@ -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 diff --git a/drivers/timers/mcp794xx.c b/drivers/timers/mcp794xx.c index 71881a9d43..54953a0c73 100644 --- a/drivers/timers/mcp794xx.c +++ b/drivers/timers/mcp794xx.c @@ -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");
