X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Frtc.h;h=54e361ea5e83ee28593dddd8178a361b5e1b53f2;hb=fe78378d7df90541c09b279b67ce79ebbdca93d5;hp=2995144a0dee52a7065a15d761b9b1783190be86;hpb=b73a19e1609d0f705cbab8014ca17aefe89e4c76;p=u-boot diff --git a/include/rtc.h b/include/rtc.h index 2995144a0d..54e361ea5e 100644 --- a/include/rtc.h +++ b/include/rtc.h @@ -2,23 +2,7 @@ * (C) Copyright 2001 * Wolfgang Denk, DENX Software Engineering, wd@denx.de. * - * See file CREDITS for list of people who contributed to this - * project. - * - * 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; either version 2 of - * the License, or (at your option) any later version. - * - * 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. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA + * SPDX-License-Identifier: GPL-2.0+ */ /* @@ -27,6 +11,11 @@ #ifndef _RTC_H_ #define _RTC_H_ +/* bcd<->bin functions are needed by almost all the RTC drivers, let's include + * it there instead of in evey single driver */ + +#include + /* * The struct used to pass data from the generic interface code to * the hardware dependend low-level code ande vice versa. Identical @@ -35,7 +24,7 @@ * Note that there are small but significant differences to the * common "struct time": * - * struct time: struct rtc_time: + * struct time: struct rtc_time: * tm_mon 0 ... 11 1 ... 12 * tm_year years since 1900 years since 0 */ @@ -53,7 +42,7 @@ struct rtc_time { }; int rtc_get (struct rtc_time *); -void rtc_set (struct rtc_time *); +int rtc_set (struct rtc_time *); void rtc_reset (void); void GregorianDay (struct rtc_time *); @@ -61,4 +50,41 @@ void to_tm (int, struct rtc_time *); unsigned long mktime (unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int); +/** + * rtc_read8() - Read an 8-bit register + * + * @reg: Register to read + * @return value read + */ +int rtc_read8(int reg); + +/** + * rtc_write8() - Write an 8-bit register + * + * @reg: Register to write + * @value: Value to write + */ +void rtc_write8(int reg, uchar val); + +/** + * rtc_read32() - Read a 32-bit value from the RTC + * + * @reg: Offset to start reading from + * @return value read + */ +u32 rtc_read32(int reg); + +/** + * rtc_write32() - Write a 32-bit value to the RTC + * + * @reg: Register to start writing to + * @value: Value to write + */ +void rtc_write32(int reg, u32 value); + +/** + * rtc_init() - Set up the real time clock ready for use + */ +void rtc_init(void); + #endif /* _RTC_H_ */