diff options
author | Martyn Welch | 2017-11-08 15:59:35 +0000 |
---|---|---|
committer | Stefano Babic | 2017-12-29 11:17:22 +0100 |
commit | 647155bcd549edae57f027e08add4c9ac090f05e (patch) | |
tree | b964c45a757ed8151387b695dfefd6e050915623 /board/ge | |
parent | 1b25f2d9d72823cc6ba35e8cb9086c9b3f6b849b (diff) |
board: ge: mx53ppd: Move check_time() to common location
We are going to be using check_time() on more than the mx53ppd, move this
function to a common location.
Signed-off-by: Martyn Welch <martyn.welch@collabora.co.uk>
Diffstat (limited to 'board/ge')
-rw-r--r-- | board/ge/common/Makefile | 2 | ||||
-rw-r--r-- | board/ge/common/ge_common.c | 55 | ||||
-rw-r--r-- | board/ge/common/ge_common.h | 7 | ||||
-rw-r--r-- | board/ge/mx53ppd/mx53ppd.c | 47 |
4 files changed, 64 insertions, 47 deletions
diff --git a/board/ge/common/Makefile b/board/ge/common/Makefile index 93e6c0182b1..f5be11bcefa 100644 --- a/board/ge/common/Makefile +++ b/board/ge/common/Makefile @@ -4,4 +4,4 @@ # SPDX-License-Identifier: GPL-2.0+ # -obj-y := vpd_reader.o +obj-y := vpd_reader.o ge_common.o diff --git a/board/ge/common/ge_common.c b/board/ge/common/ge_common.c new file mode 100644 index 00000000000..c8260960cf5 --- /dev/null +++ b/board/ge/common/ge_common.c @@ -0,0 +1,55 @@ +/* + * Copyright 2017 General Electric Company + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +#include <common.h> +#include <i2c.h> +#include <rtc.h> + +void check_time(void) +{ + int ret, i; + struct rtc_time tm; + u8 retry = 3; + + unsigned int current_i2c_bus = i2c_get_bus_num(); + + ret = i2c_set_bus_num(CONFIG_SYS_RTC_BUS_NUM); + if (ret < 0) + return; + + rtc_init(); + + for (i = 0; i < retry; i++) { + ret = rtc_get(&tm); + if (!ret || ret == -EINVAL) + break; + } + + if (ret < 0) + env_set("rtc_status", "RTC_ERROR"); + + if (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 = rtc_set(&tm); + if (!ret) + break; + } + + if (ret < 0) + env_set("rtc_status", "RTC_ERROR"); + } + + i2c_set_bus_num(current_i2c_bus); +} + diff --git a/board/ge/common/ge_common.h b/board/ge/common/ge_common.h new file mode 100644 index 00000000000..b28aada8dd8 --- /dev/null +++ b/board/ge/common/ge_common.h @@ -0,0 +1,7 @@ +/* + * Copyright 2017 General Electric Company + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +void check_time(void); diff --git a/board/ge/mx53ppd/mx53ppd.c b/board/ge/mx53ppd/mx53ppd.c index 6a8a29d7d80..90dbccc5edf 100644 --- a/board/ge/mx53ppd/mx53ppd.c +++ b/board/ge/mx53ppd/mx53ppd.c @@ -33,8 +33,8 @@ #include <watchdog.h> #include "ppd_gpio.h" #include <stdlib.h> +#include "../../ge/common/ge_common.h" #include "../../ge/common/vpd_reader.h" -#include <rtc.h> #define MX53PPD_LCD_POWER IMX_GPIO_NR(3, 24) @@ -357,51 +357,6 @@ static int read_vpd(uint eeprom_bus) return res; } -static void check_time(void) -{ - int ret, i; - struct rtc_time tm; - u8 retry = 3; - - unsigned int current_i2c_bus = i2c_get_bus_num(); - - ret = i2c_set_bus_num(CONFIG_SYS_RTC_BUS_NUM); - if (ret < 0) - return; - - rtc_init(); - - for (i = 0; i < retry; i++) { - ret = rtc_get(&tm); - if (!ret || ret == -EINVAL) - break; - } - - if (ret < 0) - env_set("rtc_status", "RTC_ERROR"); - - if (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 = rtc_set(&tm); - if (!ret) - break; - } - - if (ret < 0) - env_set("rtc_status", "RTC_ERROR"); - } - - i2c_set_bus_num(current_i2c_bus); -} - int board_init(void) { gd->bd->bi_boot_params = PHYS_SDRAM_1 + 0x100; |