xref: /openbmc/u-boot/arch/x86/include/asm/early_cmos.h (revision 9f1fad1e)
1*9f1fad1eSBin Meng /*
2*9f1fad1eSBin Meng  * Copyright (C) 2017, Bin Meng <bmeng.cn@gmail.com>
3*9f1fad1eSBin Meng  *
4*9f1fad1eSBin Meng  * SPDX-License-Identifier:	GPL-2.0+
5*9f1fad1eSBin Meng  */
6*9f1fad1eSBin Meng 
7*9f1fad1eSBin Meng #ifndef __EARLY_CMOS_H
8*9f1fad1eSBin Meng #define __EARLY_CMOS_H
9*9f1fad1eSBin Meng 
10*9f1fad1eSBin Meng /* CMOS actually resides in the RTC SRAM */
11*9f1fad1eSBin Meng #define CMOS_IO_PORT	0x70
12*9f1fad1eSBin Meng 
13*9f1fad1eSBin Meng /**
14*9f1fad1eSBin Meng  * cmos_read8() - Get 8-bit data stored at the given address
15*9f1fad1eSBin Meng  *
16*9f1fad1eSBin Meng  * This reads from CMOS for the 8-bit data stored at the given address.
17*9f1fad1eSBin Meng  *
18*9f1fad1eSBin Meng  * @addr:	RTC SRAM address
19*9f1fad1eSBin Meng  * @return:	8-bit data stored at the given address
20*9f1fad1eSBin Meng  */
21*9f1fad1eSBin Meng u8 cmos_read8(u8 addr);
22*9f1fad1eSBin Meng 
23*9f1fad1eSBin Meng /**
24*9f1fad1eSBin Meng  * cmos_read16() - Get 16-bit data stored at the given address
25*9f1fad1eSBin Meng  *
26*9f1fad1eSBin Meng  * This reads from CMOS for the 16-bit data stored at the given address.
27*9f1fad1eSBin Meng  *
28*9f1fad1eSBin Meng  * @addr:	RTC SRAM address
29*9f1fad1eSBin Meng  * @return:	16-bit data stored at the given address
30*9f1fad1eSBin Meng  */
31*9f1fad1eSBin Meng u16 cmos_read16(u8 addr);
32*9f1fad1eSBin Meng 
33*9f1fad1eSBin Meng /**
34*9f1fad1eSBin Meng  * cmos_read32() - Get 32-bit data stored at the given address
35*9f1fad1eSBin Meng  *
36*9f1fad1eSBin Meng  * This reads from CMOS for the 32-bit data stored at the given address.
37*9f1fad1eSBin Meng  *
38*9f1fad1eSBin Meng  * @addr:	RTC SRAM address
39*9f1fad1eSBin Meng  * @return:	32-bit data stored at the given address
40*9f1fad1eSBin Meng  */
41*9f1fad1eSBin Meng u32 cmos_read32(u8 addr);
42*9f1fad1eSBin Meng 
43*9f1fad1eSBin Meng #endif /* __EARLY_CMOS_H */
44