xref: /openbmc/u-boot/arch/x86/include/asm/early_cmos.h (revision e8f80a5a)
1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */
29f1fad1eSBin Meng /*
39f1fad1eSBin Meng  * Copyright (C) 2017, Bin Meng <bmeng.cn@gmail.com>
49f1fad1eSBin Meng  */
59f1fad1eSBin Meng 
69f1fad1eSBin Meng #ifndef __EARLY_CMOS_H
79f1fad1eSBin Meng #define __EARLY_CMOS_H
89f1fad1eSBin Meng 
99f1fad1eSBin Meng /* CMOS actually resides in the RTC SRAM */
109f1fad1eSBin Meng #define CMOS_IO_PORT	0x70
119f1fad1eSBin Meng 
129f1fad1eSBin Meng /**
139f1fad1eSBin Meng  * cmos_read8() - Get 8-bit data stored at the given address
149f1fad1eSBin Meng  *
159f1fad1eSBin Meng  * This reads from CMOS for the 8-bit data stored at the given address.
169f1fad1eSBin Meng  *
179f1fad1eSBin Meng  * @addr:	RTC SRAM address
189f1fad1eSBin Meng  * @return:	8-bit data stored at the given address
199f1fad1eSBin Meng  */
209f1fad1eSBin Meng u8 cmos_read8(u8 addr);
219f1fad1eSBin Meng 
229f1fad1eSBin Meng /**
239f1fad1eSBin Meng  * cmos_read16() - Get 16-bit data stored at the given address
249f1fad1eSBin Meng  *
259f1fad1eSBin Meng  * This reads from CMOS for the 16-bit data stored at the given address.
269f1fad1eSBin Meng  *
279f1fad1eSBin Meng  * @addr:	RTC SRAM address
289f1fad1eSBin Meng  * @return:	16-bit data stored at the given address
299f1fad1eSBin Meng  */
309f1fad1eSBin Meng u16 cmos_read16(u8 addr);
319f1fad1eSBin Meng 
329f1fad1eSBin Meng /**
339f1fad1eSBin Meng  * cmos_read32() - Get 32-bit data stored at the given address
349f1fad1eSBin Meng  *
359f1fad1eSBin Meng  * This reads from CMOS for the 32-bit data stored at the given address.
369f1fad1eSBin Meng  *
379f1fad1eSBin Meng  * @addr:	RTC SRAM address
389f1fad1eSBin Meng  * @return:	32-bit data stored at the given address
399f1fad1eSBin Meng  */
409f1fad1eSBin Meng u32 cmos_read32(u8 addr);
419f1fad1eSBin Meng 
429f1fad1eSBin Meng #endif /* __EARLY_CMOS_H */
43