From af1a266670d040d2f4083ff309d732d648afba2a Mon Sep 17 00:00:00 2001 From: Angelos Mouzakitis Date: Tue, 10 Oct 2023 14:33:42 +0000 Subject: Add submodule dependency files Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec --- roms/u-boot/board/ge/common/ge_rtc.c | 56 ++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 roms/u-boot/board/ge/common/ge_rtc.c (limited to 'roms/u-boot/board/ge/common/ge_rtc.c') diff --git a/roms/u-boot/board/ge/common/ge_rtc.c b/roms/u-boot/board/ge/common/ge_rtc.c new file mode 100644 index 000000000..48c377804 --- /dev/null +++ b/roms/u-boot/board/ge/common/ge_rtc.c @@ -0,0 +1,56 @@ +// SPDX-License-Identifier: GPL-2.0+ +/* + * Copyright 2017 General Electric Company + */ + +#include +#include +#include +#include + +void check_time(void) +{ + struct udevice *dev; + int ret, i; + struct rtc_time tm; + u8 retry = 3; + + ret = uclass_get_device(UCLASS_RTC, 0, &dev); + if (ret) { + env_set("rtc_status", "FAIL"); + return; + } + + for (i = 0; i < retry; i++) { + ret = dm_rtc_get(dev, &tm); + if (!ret || ret == -EINVAL) + break; + } + + if (!ret && tm.tm_year > 2037) { + tm.tm_sec = 0; + tm.tm_min = 0; + tm.tm_hour = 0; + tm.tm_mday = 1; + tm.tm_wday = 2; + tm.tm_mon = 1; + tm.tm_year = 2036; + + for (i = 0; i < retry; i++) { + ret = dm_rtc_set(dev, &tm); + if (!ret) + break; + } + + if (ret >= 0) + ret = 2038; + } + + if (ret < 0) + env_set("rtc_status", "FAIL"); + else if (ret == 2038) + env_set("rtc_status", "2038"); + else + env_set("rtc_status", "OK"); +} + -- cgit