coreboot/src/include/rtc.h
Simon Glass 3b02dbcd7d Add common real-time-clock functions
Add functions to convert between seconds and a struct rtc_time. Also
add a function that can display the time on the console.

BUG=chrome-os-partner:52220
BRANCH=none
TEST=(partial) with future commits and after setting RTC on the EC:
  boot on gru into linux shell, check firmware log:

  localhost ~ # grep Date: /sys/firmware/log
  Date: 2016-06-20 (Monday)  Time: 18:01:44

  Then reboot ~10 seconds and check again:

  localhost ~ # grep Date: /sys/firmware/log
  Date: 2016-06-20 (Monday)  Time: 18:01:54

Change-Id: I344c385e2e4cb995d3a374025c205f01c38b660d
Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/351782
Commit-Ready: Vadim Bendebury <vbendeb@chromium.org>
Tested-by: Vadim Bendebury <vbendeb@chromium.org>
Reviewed-by: Vadim Bendebury <vbendeb@chromium.org>
2016-06-20 20:10:36 -07:00

39 lines
999 B
C

/*
* This file is part of the coreboot project.
*
* Copyright 2014 Google, Inc.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef _RTC_H_
#define _RTC_H_
struct rtc_time
{
int sec;
int min;
int hour;
int mday;
int mon;
int year;
int wday;
};
/* Implemented by the RTC driver (there can be only one) */
int rtc_set(const struct rtc_time *time);
int rtc_get(struct rtc_time *time);
/* Common functions */
int rtc_to_tm(int tim, struct rtc_time *tm);
unsigned long rtc_mktime(const struct rtc_time *tm);
void rtc_display(const struct rtc_time *tm);
#endif /* _RTC_H_ */