coreboot
coreboot is an Open Source project aimed at replacing the proprietary BIOS found in most computers.
rtc.h File Reference
#include <soc/pmic_wrap_common.h>
#include <soc/rtc_common.h>
#include <stdbool.h>
Include dependency graph for rtc.h:

Go to the source code of this file.

Enumerations

enum  { RTC_BBPU = 0x0588 , RTC_IRQ_STA = 0x058A , RTC_IRQ_EN = 0x058C , RTC_CII_EN = 0x058E }
 
enum  {
  RTC_TC_SEC = 0x0592 , RTC_TC_MIN = 0x0594 , RTC_TC_HOU = 0x0596 , RTC_TC_DOM = 0x0598 ,
  RTC_TC_DOW = 0x059A , RTC_TC_MTH = 0x059C , RTC_TC_YEA = 0x059E
}
 
enum  {
  RTC_AL_SEC = 0x05A0 , RTC_AL_MIN = 0x05A2 , RTC_AL_HOU = 0x05A4 , RTC_AL_DOM = 0x05A6 ,
  RTC_AL_DOW = 0x05A8 , RTC_AL_MTH = 0x05AA , RTC_AL_YEA = 0x05AC , RTC_AL_MASK = 0x0590
}
 
enum  { RTC_OSC32CON = 0x05AE , RTC_CON = 0x05C4 , RTC_WRTGR = 0x05C2 }
 
enum  { RTC_POWERKEY1 = 0x05B0 , RTC_POWERKEY2 = 0x05B2 }
 
enum  {
  RTC_PDN1 = 0x05B4 , RTC_PDN2 = 0x05B6 , RTC_SPAR0 = 0x05B8 , RTC_SPAR1 = 0x05BA ,
  RTC_PROT = 0x05BC , RTC_DIFF = 0x05BE , RTC_CALI = 0x05C0
}
 
enum  {
  RTC_BBPU_PWREN = 1U << 0 , RTC_BBPU_CLR = 1U << 1 , RTC_BBPU_INIT = 1U << 2 , RTC_BBPU_AUTO = 1U << 3 ,
  RTC_BBPU_CLRPKY = 1U << 4 , RTC_BBPU_RELOAD = 1U << 5 , RTC_BBPU_CBUSY = 1U << 6 , RTC_CBUSY_TIMEOUT_US = 8000
}
 
enum  {
  RTC_CON_VBAT_LPSTA_RAW = 1U << 0 , RTC_CON_EOSC32_LPEN = 1U << 1 , RTC_CON_XOSC32_LPEN = 1U << 2 , RTC_CON_LPRST = 1U << 3 ,
  RTC_CON_CDBO = 1U << 4 , RTC_CON_F32KOB = 1U << 5 , RTC_CON_GPO = 1U << 6 , RTC_CON_GOE = 1U << 7 ,
  RTC_CON_GSR = 1U << 8 , RTC_CON_GSMT = 1U << 9 , RTC_CON_GPEN = 1U << 10 , RTC_CON_GPU = 1U << 11 ,
  RTC_CON_GE4 = 1U << 12 , RTC_CON_GE8 = 1U << 13 , RTC_CON_GPI = 1U << 14 , RTC_CON_LPSTA_RAW = 1U << 15
}
 
enum  {
  RTC_XOSCCALI_MASK = 0x1F << 0 , RTC_XOSC32_ENB = 1U << 5 , RTC_EMB_HW_MODE = 0U << 6 , RTC_EMB_K_EOSC32_MODE = 1U << 6 ,
  RTC_EMB_SW_DCXO_MODE = 2U << 6 , RTC_EMB_SW_EOSC32_MODE = 3U << 6 , RTC_EMBCK_SEL_MODE_MASK = 3U << 6 , RTC_EMBCK_SRC_SEL = 1U << 8 ,
  RTC_EMBCK_SEL_OPTION = 1U << 9 , RTC_GPS_CKOUT_EN = 1U << 10 , RTC_REG_XOSC32_ENB = 1U << 15
}
 
enum  {
  RTC_LPD_OPT_XOSC_AND_EOSC_LPD = 0U << 13 , RTC_LPD_OPT_EOSC_LPD = 1U << 13 , RTC_LPD_OPT_XOSC_LPD = 2U << 13 , RTC_LPD_OPT_F32K_CK_ALIVE = 3U << 13 ,
  RTC_LPD_OPT_MASK = 3U << 13
}
 
enum  { PMIC_RG_SCK_TOP_CON0 = 0x050C }
 
enum  {
  PMIC_RG_TOP_CKPDN_CON0 = 0x010C , PMIC_RG_TOP_CKPDN_CON0_SET = 0x010E , PMIC_RG_TOP_CKPDN_CON0_CLR = 0x0110 , PMIC_RG_TOP_CKPDN_CON1 = 0x0112 ,
  PMIC_RG_TOP_CKPDN_CON1_SET = 0x0114 , PMIC_RG_TOP_CKPDN_CON1_CLR = 0x0116 , PMIC_RG_TOP_CKSEL_CON0 = 0x0118 , PMIC_RG_TOP_CKSEL_CON0_SET = 0x011A ,
  PMIC_RG_TOP_CKSEL_CON0_CLR = 0x011C
}
 
enum  { PMIC_RG_FQMTR_32K_CK_PDN_SHIFT = 10 , PMIC_RG_FQMTR_CK_PDN_SHIFT = 11 }
 
enum  {
  PMIC_RG_DCXO_CW00 = 0x0788 , PMIC_RG_DCXO_CW00_CLR = 0x078C , PMIC_RG_DCXO_CW02 = 0x0790 , PMIC_RG_DCXO_CW07 = 0x079A ,
  PMIC_RG_DCXO_CW09 = 0x079E , PMIC_RG_DCXO_CW11 = 0x07A2 , PMIC_RG_DCXO_CW13 = 0x07AA , PMIC_RG_DCXO_CW15 = 0x07AE ,
  PMIC_RG_DCXO_CW16 = 0x07B0 , PMIC_RG_DCXO_CW21 = 0x07BA , PMIC_RG_DCXO_CW23 = 0x07BE , PMIC_RG_DCXO_ELR0 = 0x07C4
}
 
enum  { PMIC_RG_TOP_TMA_KEY = 0x03A8 }
 
enum  {
  PMIC_RG_FQMTR_CKSEL = 0x0118 , PMIC_RG_FQMTR_RST = 0x013E , PMIC_RG_FQMTR_CON0 = 0x0514 , PMIC_RG_FQMTR_WINSET = 0x0516 ,
  PMIC_RG_FQMTR_DATA = 0x0518 , FQMTR_TIMEOUT_US = 8000
}
 
enum  {
  PMIC_FQMTR_FIX_CLK_26M = 0U << 0 , PMIC_FQMTR_FIX_CLK_XOSC_32K_DET = 1U << 0 , PMIC_FQMTR_FIX_CLK_EOSC_32K = 2U << 0 , PMIC_FQMTR_FIX_CLK_RTC_32K = 3U << 0 ,
  PMIC_FQMTR_FIX_CLK_SMPS_CK = 4U << 0 , PMIC_FQMTR_FIX_CLK_TCK_SEC = 5U << 0 , PMIC_FQMTR_FIX_CLK_PMU_75K = 6U << 0 , PMIC_FQMTR_CKSEL_MASK = 7U << 0
}
 
enum  { PMIC_FQMTR_RST_SHIFT = 8 }
 
enum  {
  PMIC_FQMTR_CON0_XOSC32_CK = 0U << 0 , PMIC_FQMTR_CON0_DCXO_F32K_CK = 1U << 0 , PMIC_FQMTR_CON0_EOSC32_CK = 2U << 0 , PMIC_FQMTR_CON0_XOSC32_CK_DETECTON = 3U << 0 ,
  PMIC_FQMTR_CON0_FQM26M_CK = 4U << 0 , PMIC_FQMTR_CON0_FQM32k_CK = 5U << 0 , PMIC_FQMTR_CON0_TEST_CK = 6U << 0 , PMIC_FQMTR_CON0_TCKSEL_MASK = 7U << 0 ,
  PMIC_FQMTR_CON0_BUSY = 1U << 3 , PMIC_FQMTR_CON0_DCXO26M_EN = 1U << 4 , PMIC_FQMTR_CON0_FQMTR_EN = 1U << 15
}
 
enum  { RTC_FQMTR_LOW_BASE = 794 - 2 , RTC_FQMTR_HIGH_BASE = 794 + 2 }
 
enum  { RTC_XOSCCALI_START = 0x00 , RTC_XOSCCALI_END = 0x1f }
 

Functions

void rtc_bbpu_power_on (void)
 
int rtc_init (int recover)
 
bool rtc_gpio_init (void)
 
void rtc_boot (void)
 
u16 rtc_get_frequency_meter (u16 val, u16 measure_src, u16 window_size)
 
void mt6358_dcxo_disable_unused (void)
 
static s32 rtc_read (u16 addr, u16 *rdata)
 
static s32 rtc_write (u16 addr, u16 wdata)
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
RTC_BBPU 
RTC_IRQ_STA 
RTC_IRQ_EN 
RTC_CII_EN 

Definition at line 11 of file rtc.h.

◆ anonymous enum

anonymous enum
Enumerator
RTC_TC_SEC 
RTC_TC_MIN 
RTC_TC_HOU 
RTC_TC_DOM 
RTC_TC_DOW 
RTC_TC_MTH 
RTC_TC_YEA 

Definition at line 18 of file rtc.h.

◆ anonymous enum

anonymous enum
Enumerator
RTC_AL_SEC 
RTC_AL_MIN 
RTC_AL_HOU 
RTC_AL_DOM 
RTC_AL_DOW 
RTC_AL_MTH 
RTC_AL_YEA 
RTC_AL_MASK 

Definition at line 28 of file rtc.h.

◆ anonymous enum

anonymous enum
Enumerator
RTC_OSC32CON 
RTC_CON 
RTC_WRTGR 

Definition at line 39 of file rtc.h.

◆ anonymous enum

anonymous enum
Enumerator
RTC_POWERKEY1 
RTC_POWERKEY2 

Definition at line 45 of file rtc.h.

◆ anonymous enum

anonymous enum
Enumerator
RTC_PDN1 
RTC_PDN2 
RTC_SPAR0 
RTC_SPAR1 
RTC_PROT 
RTC_DIFF 
RTC_CALI 

Definition at line 50 of file rtc.h.

◆ anonymous enum

anonymous enum
Enumerator
RTC_BBPU_PWREN 
RTC_BBPU_CLR 
RTC_BBPU_INIT 
RTC_BBPU_AUTO 
RTC_BBPU_CLRPKY 
RTC_BBPU_RELOAD 
RTC_BBPU_CBUSY 
RTC_CBUSY_TIMEOUT_US 

Definition at line 60 of file rtc.h.

◆ anonymous enum

anonymous enum
Enumerator
RTC_CON_VBAT_LPSTA_RAW 
RTC_CON_EOSC32_LPEN 
RTC_CON_XOSC32_LPEN 
RTC_CON_LPRST 
RTC_CON_CDBO 
RTC_CON_F32KOB 
RTC_CON_GPO 
RTC_CON_GOE 
RTC_CON_GSR 
RTC_CON_GSMT 
RTC_CON_GPEN 
RTC_CON_GPU 
RTC_CON_GE4 
RTC_CON_GE8 
RTC_CON_GPI 
RTC_CON_LPSTA_RAW 

Definition at line 72 of file rtc.h.

◆ anonymous enum

anonymous enum
Enumerator
RTC_XOSCCALI_MASK 
RTC_XOSC32_ENB 
RTC_EMB_HW_MODE 
RTC_EMB_K_EOSC32_MODE 
RTC_EMB_SW_DCXO_MODE 
RTC_EMB_SW_EOSC32_MODE 
RTC_EMBCK_SEL_MODE_MASK 
RTC_EMBCK_SRC_SEL 
RTC_EMBCK_SEL_OPTION 
RTC_GPS_CKOUT_EN 
RTC_REG_XOSC32_ENB 

Definition at line 91 of file rtc.h.

◆ anonymous enum

anonymous enum
Enumerator
RTC_LPD_OPT_XOSC_AND_EOSC_LPD 
RTC_LPD_OPT_EOSC_LPD 
RTC_LPD_OPT_XOSC_LPD 
RTC_LPD_OPT_F32K_CK_ALIVE 
RTC_LPD_OPT_MASK 

Definition at line 105 of file rtc.h.

◆ anonymous enum

anonymous enum
Enumerator
PMIC_RG_SCK_TOP_CON0 

Definition at line 114 of file rtc.h.

◆ anonymous enum

anonymous enum
Enumerator
PMIC_RG_TOP_CKPDN_CON0 
PMIC_RG_TOP_CKPDN_CON0_SET 
PMIC_RG_TOP_CKPDN_CON0_CLR 
PMIC_RG_TOP_CKPDN_CON1 
PMIC_RG_TOP_CKPDN_CON1_SET 
PMIC_RG_TOP_CKPDN_CON1_CLR 
PMIC_RG_TOP_CKSEL_CON0 
PMIC_RG_TOP_CKSEL_CON0_SET 
PMIC_RG_TOP_CKSEL_CON0_CLR 

Definition at line 119 of file rtc.h.

◆ anonymous enum

anonymous enum
Enumerator
PMIC_RG_FQMTR_32K_CK_PDN_SHIFT 
PMIC_RG_FQMTR_CK_PDN_SHIFT 

Definition at line 131 of file rtc.h.

◆ anonymous enum

anonymous enum
Enumerator
PMIC_RG_DCXO_CW00 
PMIC_RG_DCXO_CW00_CLR 
PMIC_RG_DCXO_CW02 
PMIC_RG_DCXO_CW07 
PMIC_RG_DCXO_CW09 
PMIC_RG_DCXO_CW11 
PMIC_RG_DCXO_CW13 
PMIC_RG_DCXO_CW15 
PMIC_RG_DCXO_CW16 
PMIC_RG_DCXO_CW21 
PMIC_RG_DCXO_CW23 
PMIC_RG_DCXO_ELR0 

Definition at line 137 of file rtc.h.

◆ anonymous enum

anonymous enum
Enumerator
PMIC_RG_TOP_TMA_KEY 

Definition at line 152 of file rtc.h.

◆ anonymous enum

anonymous enum
Enumerator
PMIC_RG_FQMTR_CKSEL 
PMIC_RG_FQMTR_RST 
PMIC_RG_FQMTR_CON0 
PMIC_RG_FQMTR_WINSET 
PMIC_RG_FQMTR_DATA 
FQMTR_TIMEOUT_US 

Definition at line 157 of file rtc.h.

◆ anonymous enum

anonymous enum
Enumerator
PMIC_FQMTR_FIX_CLK_26M 
PMIC_FQMTR_FIX_CLK_XOSC_32K_DET 
PMIC_FQMTR_FIX_CLK_EOSC_32K 
PMIC_FQMTR_FIX_CLK_RTC_32K 
PMIC_FQMTR_FIX_CLK_SMPS_CK 
PMIC_FQMTR_FIX_CLK_TCK_SEC 
PMIC_FQMTR_FIX_CLK_PMU_75K 
PMIC_FQMTR_CKSEL_MASK 

Definition at line 167 of file rtc.h.

◆ anonymous enum

anonymous enum
Enumerator
PMIC_FQMTR_RST_SHIFT 

Definition at line 178 of file rtc.h.

◆ anonymous enum

anonymous enum
Enumerator
PMIC_FQMTR_CON0_XOSC32_CK 
PMIC_FQMTR_CON0_DCXO_F32K_CK 
PMIC_FQMTR_CON0_EOSC32_CK 
PMIC_FQMTR_CON0_XOSC32_CK_DETECTON 
PMIC_FQMTR_CON0_FQM26M_CK 
PMIC_FQMTR_CON0_FQM32k_CK 
PMIC_FQMTR_CON0_TEST_CK 
PMIC_FQMTR_CON0_TCKSEL_MASK 
PMIC_FQMTR_CON0_BUSY 
PMIC_FQMTR_CON0_DCXO26M_EN 
PMIC_FQMTR_CON0_FQMTR_EN 

Definition at line 182 of file rtc.h.

◆ anonymous enum

anonymous enum
Enumerator
RTC_FQMTR_LOW_BASE 
RTC_FQMTR_HIGH_BASE 

Definition at line 196 of file rtc.h.

◆ anonymous enum

anonymous enum
Enumerator
RTC_XOSCCALI_START 
RTC_XOSCCALI_END 

Definition at line 201 of file rtc.h.

Function Documentation

◆ mt6358_dcxo_disable_unused()

void mt6358_dcxo_disable_unused ( void  )

Definition at line 326 of file rtc.c.

References PMIC_RG_DCXO_CW00_CLR, PMIC_RG_DCXO_CW23, and rtc_write().

Referenced by soc_init().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rtc_bbpu_power_on()

void rtc_bbpu_power_on ( void  )

Definition at line 286 of file rtc_mt6359p.c.

◆ rtc_boot()

void rtc_boot ( void  )

Definition at line 315 of file rtc_mt6359p.c.

◆ rtc_get_frequency_meter()

u16 rtc_get_frequency_meter ( u16  val,
u16  measure_src,
u16  window_size 
)

Definition at line 87 of file rtc_mt6359p.c.

◆ rtc_gpio_init()

bool rtc_gpio_init ( void  )

Definition at line 71 of file rtc_mt6359p.c.

◆ rtc_init()

int rtc_init ( int  recover)

Definition at line 219 of file rtc_mt6359p.c.

◆ rtc_read()

static s32 rtc_read ( u16  addr,
u16 rdata 
)
inlinestatic

Definition at line 214 of file rtc.h.

References addr, pwrap_read(), and rtc_info.

Here is the call graph for this function:

◆ rtc_write()

static s32 rtc_write ( u16  addr,
u16  wdata 
)
inlinestatic

Definition at line 225 of file rtc.h.

References addr, pwrap_write(), and rtc_info.

Here is the call graph for this function: