123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 |
- #include "t_define.h"
- #include "t_bk3231sf.h"
- #include "t_icu.h"
- void IcuPphCfg(uint8 pph, uint8 clksrc, uint8 clkfreq, uint8 clkprediv, uint8 clken, uint8 inten, uint8 wakeen, uint8 fiqprio)
- {
- if(pph == ICU_PPH_CORE)
- {
-
- }
- else if(pph == ICU_PPH_ADC)
- {
- REG_ICU_ADC_CLK_CFG = SET_VALUE(REG_ICU_ADC_CLK_CFG,
- (BM_ICU_ADC_CLK_DIV|BM_ICU_ADC_CLK_DISEN),
- (((uint32)clkprediv<<BO_ICU_ADC_CLK_DIV) | ((uint32)clken<<BO_ICU_ADC_CLK_DISEN)));
- REG_ICU_PPH_INT_EN = SET_VALUE(REG_ICU_PPH_INT_EN,
- (BM_ICU_INT_ADC|BM_ICU_INT_ADC_WAKEUP),
- (((uint32)inten<<BO_ICU_INT_ADC) | ((uint32)wakeen<<BO_ICU_INT_ADC_WAKEUP)));
- REG_ICU_PPH_INT_FIQ_PRIORITY_EN = SET_VALUE(REG_ICU_PPH_INT_FIQ_PRIORITY_EN,
- (BM_ICU_INT_ADC|BM_ICU_INT_ADC_WAKEUP),
- (((uint32)(inten&fiqprio)<<BO_ICU_INT_ADC) | ((uint32)(wakeen&fiqprio)<<BO_ICU_INT_ADC_WAKEUP)));
- }
- else if(pph == ICU_PPH_UART)
- {
- REG_ICU_UART_CLK_CFG = SET_VALUE(REG_ICU_I2C_CLK_CFG,
- BM_ICU_UART_CLK_DISEN,
- ((uint32)clken<<BO_ICU_UART_CLK_DISEN));
- REG_ICU_PPH_INT_EN = SET_VALUE(REG_ICU_PPH_INT_EN,
- (BM_ICU_INT_UART|BM_ICU_INT_UART_WAKEUP),
- (((uint32)inten<<BO_ICU_INT_UART) | ((uint32)wakeen<<BO_ICU_INT_UART_WAKEUP)));
- REG_ICU_PPH_INT_FIQ_PRIORITY_EN = SET_VALUE(REG_ICU_PPH_INT_FIQ_PRIORITY_EN,
- (BM_ICU_INT_UART|BM_ICU_INT_UART_WAKEUP),
- (((uint32)(inten&fiqprio)<<BO_ICU_INT_UART) | ((uint32)(wakeen&fiqprio)<<BO_ICU_INT_UART_WAKEUP)));
- }
- else if(pph == ICU_PPH_I2C0)
- {
- REG_ICU_I2C_CLK_CFG = SET_VALUE(REG_ICU_I2C_CLK_CFG,
- BM_ICU_I2C0_CLK_DISEN,
- ((uint32)clken<<BO_ICU_I2C0_CLK_DISEN));
- REG_ICU_PPH_INT_EN = SET_VALUE(REG_ICU_PPH_INT_EN,
- (BM_ICU_INT_I2C0|BM_ICU_INT_I2C0_WAKEUP),
- (((uint32)inten<<BO_ICU_INT_I2C0) | ((uint32)wakeen<<BO_ICU_INT_I2C0_WAKEUP)));
- REG_ICU_PPH_INT_FIQ_PRIORITY_EN = SET_VALUE(REG_ICU_PPH_INT_FIQ_PRIORITY_EN,
- (BM_ICU_INT_I2C0|BM_ICU_INT_I2C0_WAKEUP),
- (((uint32)(inten&fiqprio)<<BO_ICU_INT_I2C0) | ((uint32)(wakeen&fiqprio)<<BO_ICU_INT_I2C0_WAKEUP)));
- }
- else if(pph == ICU_PPH_I2C1)
- {
- REG_ICU_I2C_CLK_CFG = SET_VALUE(REG_ICU_I2C_CLK_CFG,
- BM_ICU_I2C1_CLK_DISEN,
- ((uint32)clken<<BO_ICU_I2C1_CLK_DISEN));
- REG_ICU_PPH_INT_EN = SET_VALUE(REG_ICU_PPH_INT_EN,
- (BM_ICU_INT_I2C1|BM_ICU_INT_I2C1_WAKEUP),
- (((uint32)inten<<BO_ICU_INT_I2C1) | ((uint32)wakeen<<BO_ICU_INT_I2C1_WAKEUP)));
- REG_ICU_PPH_INT_FIQ_PRIORITY_EN = SET_VALUE(REG_ICU_PPH_INT_FIQ_PRIORITY_EN,
- (BM_ICU_INT_I2C1|BM_ICU_INT_I2C1_WAKEUP),
- (((uint32)(inten&fiqprio)<<BO_ICU_INT_I2C1) | ((uint32)(wakeen&fiqprio)<<BO_ICU_INT_I2C1_WAKEUP)));
- }
- else if(pph == ICU_PPH_SPI)
- {
-
- }
- else if(pph == ICU_PPH_CEVA)
- {
-
- }
- else if(pph == ICU_PPH_WD)
- {
-
- }
- else if(pph == ICU_PPH_BK24)
- {
-
- }
- else if(pph == ICU_PPH_LPO)
- {
-
- }
- else if(pph == ICU_PPH_RTC)
- {
- REG_ICU_RTC_CLK_CFG = SET_VALUE(REG_ICU_RTC_CLK_CFG,
- BM_ICU_RTC_CLK_DISEN,
- ((uint32)clken<<BO_ICU_RTC_CLK_DISEN));
- REG_ICU_PPH_INT_EN = SET_VALUE(REG_ICU_PPH_INT_EN,
- (BM_ICU_INT_RTC|BM_ICU_INT_RTC_WAKEUP),
- (((uint32)inten<<BO_ICU_INT_RTC) | ((uint32)wakeen<<BO_ICU_INT_RTC_WAKEUP)));
- REG_ICU_PPH_INT_FIQ_PRIORITY_EN = SET_VALUE(REG_ICU_PPH_INT_FIQ_PRIORITY_EN,
- (BM_ICU_INT_PWM|BM_ICU_INT_PWM_WAKEUP),
- (((uint32)(inten&fiqprio)<<BO_ICU_INT_PWM) | ((uint32)(wakeen&fiqprio)<<BO_ICU_INT_PWM_WAKEUP)));
- }
- else if(pph == ICU_PPH_PWM0)
- {
- REG_ICU_PWM0_CLK_CFG = SET_VALUE(REG_ICU_PWM0_CLK_CFG,
- (BM_ICU_PWM0_CLK_SEL|BM_ICU_PWM0_CLK_DISEN),
- (((uint32)clkfreq<<BO_ICU_PWM0_CLK_SEL) | ((uint32)clken<<BO_ICU_PWM0_CLK_DISEN)));
- REG_ICU_PPH_INT_EN = SET_VALUE(REG_ICU_PPH_INT_EN,
- (BM_ICU_INT_PWM|BM_ICU_INT_PWM_WAKEUP),
- (((uint32)inten<<BO_ICU_INT_PWM) | ((uint32)wakeen<<BO_ICU_INT_PWM_WAKEUP)));
- REG_ICU_PPH_INT_FIQ_PRIORITY_EN = SET_VALUE(REG_ICU_PPH_INT_FIQ_PRIORITY_EN,
- (BM_ICU_INT_PWM|BM_ICU_INT_PWM_WAKEUP),
- (((uint32)(inten&fiqprio)<<BO_ICU_INT_PWM) | ((uint32)(wakeen&fiqprio)<<BO_ICU_INT_PWM_WAKEUP)));
- }
- else if(pph == ICU_PPH_PWM1)
- {
- REG_ICU_PWM1_CLK_CFG = SET_VALUE(REG_ICU_PWM1_CLK_CFG,
- (BM_ICU_PWM1_CLK_SEL|BM_ICU_PWM1_CLK_DISEN),
- (((uint32)clkfreq<<BO_ICU_PWM1_CLK_SEL) | ((uint32)clken<<BO_ICU_PWM1_CLK_DISEN)));
- REG_ICU_PPH_INT_EN = SET_VALUE(REG_ICU_PPH_INT_EN,
- (BM_ICU_INT_PWM|BM_ICU_INT_PWM_WAKEUP),
- (((uint32)inten<<BO_ICU_INT_PWM) | ((uint32)wakeen<<BO_ICU_INT_PWM_WAKEUP)));
- REG_ICU_PPH_INT_FIQ_PRIORITY_EN = SET_VALUE(REG_ICU_PPH_INT_FIQ_PRIORITY_EN,
- (BM_ICU_INT_PWM|BM_ICU_INT_PWM_WAKEUP),
- (((uint32)(inten&fiqprio)<<BO_ICU_INT_PWM) | ((uint32)(wakeen&fiqprio)<<BO_ICU_INT_PWM_WAKEUP)));
- }
- else if(pph == ICU_PPH_PWM2)
- {
- REG_ICU_PWM2_CLK_CFG = SET_VALUE(REG_ICU_PWM2_CLK_CFG,
- (BM_ICU_PWM2_CLK_SEL|BM_ICU_PWM2_CLK_DISEN),
- (((uint32)clkfreq<<BO_ICU_PWM2_CLK_SEL) | ((uint32)clken<<BO_ICU_PWM2_CLK_DISEN)));
- REG_ICU_PPH_INT_EN = SET_VALUE(REG_ICU_PPH_INT_EN,
- (BM_ICU_INT_PWM|BM_ICU_INT_PWM_WAKEUP),
- (((uint32)inten<<BO_ICU_INT_PWM) | ((uint32)wakeen<<BO_ICU_INT_PWM_WAKEUP)));
- REG_ICU_PPH_INT_FIQ_PRIORITY_EN = SET_VALUE(REG_ICU_PPH_INT_FIQ_PRIORITY_EN,
- (BM_ICU_INT_PWM|BM_ICU_INT_PWM_WAKEUP),
- (((uint32)(inten&fiqprio)<<BO_ICU_INT_PWM) | ((uint32)(wakeen&fiqprio)<<BO_ICU_INT_PWM_WAKEUP)));
- }
- else if(pph == ICU_PPH_PWM3)
- {
- REG_ICU_PWM3_CLK_CFG = SET_VALUE(REG_ICU_PWM3_CLK_CFG,
- (BM_ICU_PWM3_CLK_SEL|BM_ICU_PWM3_CLK_DISEN),
- (((uint32)clkfreq<<BO_ICU_PWM3_CLK_SEL) | ((uint32)clken<<BO_ICU_PWM3_CLK_DISEN)));
- REG_ICU_PPH_INT_EN = SET_VALUE(REG_ICU_PPH_INT_EN,
- (BM_ICU_INT_PWM|BM_ICU_INT_PWM_WAKEUP),
- (((uint32)inten<<BO_ICU_INT_PWM) | ((uint32)wakeen<<BO_ICU_INT_PWM_WAKEUP)));
- REG_ICU_PPH_INT_FIQ_PRIORITY_EN = SET_VALUE(REG_ICU_PPH_INT_FIQ_PRIORITY_EN,
- (BM_ICU_INT_PWM|BM_ICU_INT_PWM_WAKEUP),
- (((uint32)(inten&fiqprio)<<BO_ICU_INT_PWM) | ((uint32)(wakeen&fiqprio)<<BO_ICU_INT_PWM_WAKEUP)));
- }
- else if(pph == ICU_PPH_PWM4)
- {
- REG_ICU_PWM4_CLK_CFG = SET_VALUE(REG_ICU_PWM4_CLK_CFG,
- (BM_ICU_PWM4_CLK_SEL|BM_ICU_PWM4_CLK_DISEN),
- (((uint32)clkfreq<<BO_ICU_PWM4_CLK_SEL) | ((uint32)clken<<BO_ICU_PWM4_CLK_DISEN)));
- REG_ICU_PPH_INT_EN = SET_VALUE(REG_ICU_PPH_INT_EN,
- (BM_ICU_INT_PWM|BM_ICU_INT_PWM_WAKEUP),
- (((uint32)inten<<BO_ICU_INT_PWM) | ((uint32)wakeen<<BO_ICU_INT_PWM_WAKEUP)));
- REG_ICU_PPH_INT_FIQ_PRIORITY_EN = SET_VALUE(REG_ICU_PPH_INT_FIQ_PRIORITY_EN,
- (BM_ICU_INT_PWM|BM_ICU_INT_PWM_WAKEUP),
- (((uint32)(inten&fiqprio)<<BO_ICU_INT_PWM) | ((uint32)(wakeen&fiqprio)<<BO_ICU_INT_PWM_WAKEUP)));
- }
- else if(pph == ICU_PPH_PWM5)
- {
- REG_ICU_PWM4_CLK_CFG = SET_VALUE(REG_ICU_PWM4_CLK_CFG,
- (BM_ICU_PWM5_CLK_SEL|BM_ICU_PWM5_CLK_DISEN),
- (((uint32)clkfreq<<BO_ICU_PWM5_CLK_SEL) | ((uint32)clken<<BO_ICU_PWM5_CLK_DISEN)));
- REG_ICU_PPH_INT_EN = SET_VALUE(REG_ICU_PPH_INT_EN,
- (BM_ICU_INT_PWM|BM_ICU_INT_PWM_WAKEUP),
- (((uint32)inten<<BO_ICU_INT_PWM) | ((uint32)wakeen<<BO_ICU_INT_PWM_WAKEUP)));
- REG_ICU_PPH_INT_FIQ_PRIORITY_EN = SET_VALUE(REG_ICU_PPH_INT_FIQ_PRIORITY_EN,
- (BM_ICU_INT_PWM|BM_ICU_INT_PWM_WAKEUP),
- (((uint32)(inten&fiqprio)<<BO_ICU_INT_PWM) | ((uint32)(wakeen&fiqprio)<<BO_ICU_INT_PWM_WAKEUP)));
- }
- else if(pph == ICU_PPH_TIMER)
- {
- REG_ICU_PWM4_CLK_CFG = SET_VALUE(REG_ICU_PWM4_CLK_CFG,
- (BM_ICU_TIMER_CLK_SEL|BM_ICU_TIMER_CLK_DISEN),
- (((uint32)clkfreq<<BO_ICU_TIMER_CLK_SEL) | ((uint32)clken<<BO_ICU_TIMER_CLK_DISEN)));
- REG_ICU_PPH_INT_EN = SET_VALUE(REG_ICU_PPH_INT_EN,
- (BM_ICU_INT_TIMER|BM_ICU_INT_TIMER_WAKEUP),
- (((uint32)inten<<BO_ICU_INT_TIMER) | ((uint32)wakeen<<BO_ICU_INT_TIMER_WAKEUP)));
- REG_ICU_PPH_INT_FIQ_PRIORITY_EN = SET_VALUE(REG_ICU_PPH_INT_FIQ_PRIORITY_EN,
- (BM_ICU_INT_TIMER|BM_ICU_INT_TIMER_WAKEUP),
- (((uint32)(inten&fiqprio)<<BO_ICU_INT_TIMER) | ((uint32)(wakeen&fiqprio)<<BO_ICU_INT_TIMER_WAKEUP)));
- }
- else if(pph == ICU_PPH_GPIO)
- {
- REG_ICU_PPH_INT_EN = SET_VALUE(REG_ICU_PPH_INT_EN,
- (BM_ICU_INT_GPIO|BM_ICU_INT_GPIO_WAKEUP),
- (((uint32)inten<<BO_ICU_INT_GPIO) | ((uint32)wakeen<<BO_ICU_INT_GPIO_WAKEUP)));
- REG_ICU_PPH_INT_FIQ_PRIORITY_EN = SET_VALUE(REG_ICU_PPH_INT_FIQ_PRIORITY_EN,
- (BM_ICU_INT_GPIO|BM_ICU_INT_GPIO_WAKEUP),
- (((uint32)(inten&fiqprio)<<BO_ICU_INT_GPIO) | ((uint32)(wakeen&fiqprio)<<BO_ICU_INT_GPIO_WAKEUP)));
- }
- }
- void IcuPphClkCfg(uint8 pph, uint8 clksrc, uint8 clkfreq, uint8 clkprediv, uint8 clken)
- {
-
- }
- void IcuPphIntCfg(uint8 pph, uint8 inten, uint8 wakeen, uint8 fiqprio)
- {
-
- }
- uint32 IcuPphGetIntSta(void)
- {
- return REG_ICU_PPH_INT_STA;
- }
- void IcuPphClearIntSta(uint32 intsta)
- {
- REG_ICU_PPH_INT_STA = intsta;
- }
- void IcuPphFiqCfg(uint8 en)
- {
- REG_ICU_FIQ_IRQ_EN = SET_VALUE(REG_ICU_FIQ_IRQ_EN,
- BM_ICU_INT_FIQ_EN,
- (en<<BO_ICU_INT_FIQ_EN));
- }
- void IcuPphIrqCfg(uint8 en)
- {
- REG_ICU_FIQ_IRQ_EN = SET_VALUE(REG_ICU_FIQ_IRQ_EN,
- BM_ICU_INT_IRQ_EN,
- (en<<BM_ICU_INT_IRQ_EN));
- }
- void IcuPphIrqFiqCfg(uint8 en)
- {
-
- }
- void IcuEnterDeepSleep(void)
- {
- REG_ICU_GPIO4_DEEP_WAKEUP_EN = SET_VALUE(REG_ICU_GPIO4_DEEP_WAKEUP_EN,
- BM_ICU_DEEP_SLEEP_CTRL_WORD,
- (0x3231ul<<BO_ICU_DEEP_SLEEP_CTRL_WORD));
- }
|