12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070 |
- #ifndef GD32F30X_RCU_H
- #define GD32F30X_RCU_H
- #include "gd32f30x.h"
- #define RCU RCU_BASE
- #if (defined(GD32F30X_HD) || defined(GD32F30X_XD))
- #define RCU_CTL REG32(RCU + 0x00U)
- #define RCU_CFG0 REG32(RCU + 0x04U)
- #define RCU_INT REG32(RCU + 0x08U)
- #define RCU_APB2RST REG32(RCU + 0x0CU)
- #define RCU_APB1RST REG32(RCU + 0x10U)
- #define RCU_AHBEN REG32(RCU + 0x14U)
- #define RCU_APB2EN REG32(RCU + 0x18U)
- #define RCU_APB1EN REG32(RCU + 0x1CU)
- #define RCU_BDCTL REG32(RCU + 0x20U)
- #define RCU_RSTSCK REG32(RCU + 0x24U)
- #define RCU_CFG1 REG32(RCU + 0x2CU)
- #define RCU_DSV REG32(RCU + 0x34U)
- #define RCU_ADDCTL REG32(RCU + 0xC0U)
- #define RCU_ADDINT REG32(RCU + 0xCCU)
- #define RCU_ADDAPB1RST REG32(RCU + 0xE0U)
- #define RCU_ADDAPB1EN REG32(RCU + 0xE4U)
- #elif defined(GD32F30X_CL)
- #define RCU_CTL REG32(RCU + 0x00U)
- #define RCU_CFG0 REG32(RCU + 0x04U)
- #define RCU_INT REG32(RCU + 0x08U)
- #define RCU_APB2RST REG32(RCU + 0x0CU)
- #define RCU_APB1RST REG32(RCU + 0x10U)
- #define RCU_AHBEN REG32(RCU + 0x14U)
- #define RCU_APB2EN REG32(RCU + 0x18U)
- #define RCU_APB1EN REG32(RCU + 0x1CU)
- #define RCU_BDCTL REG32(RCU + 0x20U)
- #define RCU_RSTSCK REG32(RCU + 0x24U)
- #define RCU_AHBRST REG32(RCU + 0x28U)
- #define RCU_CFG1 REG32(RCU + 0x2CU)
- #define RCU_DSV REG32(RCU + 0x34U)
- #define RCU_ADDCTL REG32(RCU + 0xC0U)
- #define RCU_ADDINT REG32(RCU + 0xCCU)
- #define RCU_ADDAPB1RST REG32(RCU + 0xE0U)
- #define RCU_ADDAPB1EN REG32(RCU + 0xE4U)
- #endif
- #if (defined(GD32F30X_HD) || defined(GD32F30X_XD))
- #define RCU_CTL_IRC8MEN BIT(0)
- #define RCU_CTL_IRC8MSTB BIT(1)
- #define RCU_CTL_IRC8MADJ BITS(3,7)
- #define RCU_CTL_IRC8MCALIB BITS(8,15)
- #define RCU_CTL_HXTALEN BIT(16)
- #define RCU_CTL_HXTALSTB BIT(17)
- #define RCU_CTL_HXTALBPS BIT(18)
- #define RCU_CTL_CKMEN BIT(19)
- #define RCU_CTL_PLLEN BIT(24)
- #define RCU_CTL_PLLSTB BIT(25)
- #elif defined(GD32F30X_CL)
- #define RCU_CTL_IRC8MEN BIT(0)
- #define RCU_CTL_IRC8MSTB BIT(1)
- #define RCU_CTL_IRC8MADJ BITS(3,7)
- #define RCU_CTL_IRC8MCALIB BITS(8,15)
- #define RCU_CTL_HXTALEN BIT(16)
- #define RCU_CTL_HXTALSTB BIT(17)
- #define RCU_CTL_HXTALBPS BIT(18)
- #define RCU_CTL_CKMEN BIT(19)
- #define RCU_CTL_PLLEN BIT(24)
- #define RCU_CTL_PLLSTB BIT(25)
- #define RCU_CTL_PLL1EN BIT(26)
- #define RCU_CTL_PLL1STB BIT(27)
- #define RCU_CTL_PLL2EN BIT(28)
- #define RCU_CTL_PLL2STB BIT(29)
- #endif
- #if (defined(GD32F30X_HD) || defined(GD32F30X_XD))
- #define RCU_CFG0_SCS BITS(0,1)
- #define RCU_CFG0_SCSS BITS(2,3)
- #define RCU_CFG0_AHBPSC BITS(4,7)
- #define RCU_CFG0_APB1PSC BITS(8,10)
- #define RCU_CFG0_APB2PSC BITS(11,13)
- #define RCU_CFG0_ADCPSC BITS(14,15)
- #define RCU_CFG0_PLLSEL BIT(16)
- #define RCU_CFG0_PREDV0 BIT(17)
- #define RCU_CFG0_PLLMF BITS(18,21)
- #define RCU_CFG0_USBDPSC BITS(22,23)
- #define RCU_CFG0_CKOUT0SEL BITS(24,26)
- #define RCU_CFG0_PLLMF_4 BIT(27)
- #define RCU_CFG0_ADCPSC_2 BIT(28)
- #define RCU_CFG0_PLLMF_5 BIT(30)
- #define RCU_CFG0_USBDPSC_2 BIT(31)
- #elif defined(GD32F30X_CL)
- #define RCU_CFG0_SCS BITS(0,1)
- #define RCU_CFG0_SCSS BITS(2,3)
- #define RCU_CFG0_AHBPSC BITS(4,7)
- #define RCU_CFG0_APB1PSC BITS(8,10)
- #define RCU_CFG0_APB2PSC BITS(11,13)
- #define RCU_CFG0_ADCPSC BITS(14,15)
- #define RCU_CFG0_PLLSEL BIT(16)
- #define RCU_CFG0_PREDV0_LSB BIT(17)
- #define RCU_CFG0_PLLMF BITS(18,21)
- #define RCU_CFG0_USBFSPSC BITS(22,23)
- #define RCU_CFG0_CKOUT0SEL BITS(24,27)
- #define RCU_CFG0_ADCPSC_2 BIT(28)
- #define RCU_CFG0_PLLMF_4 BIT(29)
- #define RCU_CFG0_PLLMF_5 BIT(30)
- #define RCU_CFG0_USBFSPSC_2 BIT(31)
- #endif
- #if (defined(GD32F30X_HD) || defined(GD32F30X_XD))
- #define RCU_INT_IRC40KSTBIF BIT(0)
- #define RCU_INT_LXTALSTBIF BIT(1)
- #define RCU_INT_IRC8MSTBIF BIT(2)
- #define RCU_INT_HXTALSTBIF BIT(3)
- #define RCU_INT_PLLSTBIF BIT(4)
- #define RCU_INT_CKMIF BIT(7)
- #define RCU_INT_IRC40KSTBIE BIT(8)
- #define RCU_INT_LXTALSTBIE BIT(9)
- #define RCU_INT_IRC8MSTBIE BIT(10)
- #define RCU_INT_HXTALSTBIE BIT(11)
- #define RCU_INT_PLLSTBIE BIT(12)
- #define RCU_INT_IRC40KSTBIC BIT(16)
- #define RCU_INT_LXTALSTBIC BIT(17)
- #define RCU_INT_IRC8MSTBIC BIT(18)
- #define RCU_INT_HXTALSTBIC BIT(19)
- #define RCU_INT_PLLSTBIC BIT(20)
- #define RCU_INT_CKMIC BIT(23)
- #elif defined(GD32F30X_CL)
- #define RCU_INT_IRC40KSTBIF BIT(0)
- #define RCU_INT_LXTALSTBIF BIT(1)
- #define RCU_INT_IRC8MSTBIF BIT(2)
- #define RCU_INT_HXTALSTBIF BIT(3)
- #define RCU_INT_PLLSTBIF BIT(4)
- #define RCU_INT_PLL1STBIF BIT(5)
- #define RCU_INT_PLL2STBIF BIT(6)
- #define RCU_INT_CKMIF BIT(7)
- #define RCU_INT_IRC40KSTBIE BIT(8)
- #define RCU_INT_LXTALSTBIE BIT(9)
- #define RCU_INT_IRC8MSTBIE BIT(10)
- #define RCU_INT_HXTALSTBIE BIT(11)
- #define RCU_INT_PLLSTBIE BIT(12)
- #define RCU_INT_PLL1STBIE BIT(13)
- #define RCU_INT_PLL2STBIE BIT(14)
- #define RCU_INT_IRC40KSTBIC BIT(16)
- #define RCU_INT_LXTALSTBIC BIT(17)
- #define RCU_INT_IRC8MSTBIC BIT(18)
- #define RCU_INT_HXTALSTBIC BIT(19)
- #define RCU_INT_PLLSTBIC BIT(20)
- #define RCU_INT_PLL1STBIC BIT(21)
- #define RCU_INT_PLL2STBIC BIT(22)
- #define RCU_INT_CKMIC BIT(23)
- #endif
- #define RCU_APB2RST_AFRST BIT(0)
- #define RCU_APB2RST_PARST BIT(2)
- #define RCU_APB2RST_PBRST BIT(3)
- #define RCU_APB2RST_PCRST BIT(4)
- #define RCU_APB2RST_PDRST BIT(5)
- #define RCU_APB2RST_PERST BIT(6)
- #define RCU_APB2RST_PFRST BIT(7)
- #define RCU_APB2RST_PGRST BIT(8)
- #define RCU_APB2RST_ADC0RST BIT(9)
- #define RCU_APB2RST_ADC1RST BIT(10)
- #define RCU_APB2RST_TIMER0RST BIT(11)
- #define RCU_APB2RST_SPI0RST BIT(12)
- #define RCU_APB2RST_TIMER7RST BIT(13)
- #define RCU_APB2RST_USART0RST BIT(14)
- #ifndef GD32F30X_CL
- #define RCU_APB2RST_ADC2RST BIT(15)
- #endif
- #ifndef GD32F30X_HD
- #define RCU_APB2RST_TIMER8RST BIT(19)
- #define RCU_APB2RST_TIMER9RST BIT(20)
- #define RCU_APB2RST_TIMER10RST BIT(21)
- #endif
- #define RCU_APB1RST_TIMER1RST BIT(0)
- #define RCU_APB1RST_TIMER2RST BIT(1)
- #define RCU_APB1RST_TIMER3RST BIT(2)
- #define RCU_APB1RST_TIMER4RST BIT(3)
- #define RCU_APB1RST_TIMER5RST BIT(4)
- #define RCU_APB1RST_TIMER6RST BIT(5)
- #ifndef GD32F30X_HD
- #define RCU_APB1RST_TIMER11RST BIT(6)
- #define RCU_APB1RST_TIMER12RST BIT(7)
- #define RCU_APB1RST_TIMER13RST BIT(8)
- #endif
- #define RCU_APB1RST_WWDGTRST BIT(11)
- #define RCU_APB1RST_SPI1RST BIT(14)
- #define RCU_APB1RST_SPI2RST BIT(15)
- #define RCU_APB1RST_USART1RST BIT(17)
- #define RCU_APB1RST_USART2RST BIT(18)
- #define RCU_APB1RST_UART3RST BIT(19)
- #define RCU_APB1RST_UART4RST BIT(20)
- #define RCU_APB1RST_I2C0RST BIT(21)
- #define RCU_APB1RST_I2C1RST BIT(22)
- #if (defined(GD32F30X_HD) || defined(GD32F30X_XD))
- #define RCU_APB1RST_USBDRST BIT(23)
- #endif
- #define RCU_APB1RST_CAN0RST BIT(25)
- #ifdef GD32F30X_CL
- #define RCU_APB1RST_CAN1RST BIT(26)
- #endif
- #define RCU_APB1RST_BKPIRST BIT(27)
- #define RCU_APB1RST_PMURST BIT(28)
- #define RCU_APB1RST_DACRST BIT(29)
- #define RCU_AHBEN_DMA0EN BIT(0)
- #define RCU_AHBEN_DMA1EN BIT(1)
- #define RCU_AHBEN_SRAMSPEN BIT(2)
- #define RCU_AHBEN_FMCSPEN BIT(4)
- #define RCU_AHBEN_CRCEN BIT(6)
- #define RCU_AHBEN_EXMCEN BIT(8)
- #if (defined(GD32F30X_HD) || defined(GD32F30X_XD))
- #define RCU_AHBEN_SDIOEN BIT(10)
- #elif defined(GD32F30X_CL)
- #define RCU_AHBEN_USBFSEN BIT(12)
- #define RCU_AHBEN_ENETEN BIT(14)
- #define RCU_AHBEN_ENETTXEN BIT(15)
- #define RCU_AHBEN_ENETRXEN BIT(16)
- #endif
- #define RCU_APB2EN_AFEN BIT(0)
- #define RCU_APB2EN_PAEN BIT(2)
- #define RCU_APB2EN_PBEN BIT(3)
- #define RCU_APB2EN_PCEN BIT(4)
- #define RCU_APB2EN_PDEN BIT(5)
- #define RCU_APB2EN_PEEN BIT(6)
- #define RCU_APB2EN_PFEN BIT(7)
- #define RCU_APB2EN_PGEN BIT(8)
- #define RCU_APB2EN_ADC0EN BIT(9)
- #define RCU_APB2EN_ADC1EN BIT(10)
- #define RCU_APB2EN_TIMER0EN BIT(11)
- #define RCU_APB2EN_SPI0EN BIT(12)
- #define RCU_APB2EN_TIMER7EN BIT(13)
- #define RCU_APB2EN_USART0EN BIT(14)
- #ifndef GD32F30X_CL
- #define RCU_APB2EN_ADC2EN BIT(15)
- #endif
- #ifndef GD32F30X_HD
- #define RCU_APB2EN_TIMER8EN BIT(19)
- #define RCU_APB2EN_TIMER9EN BIT(20)
- #define RCU_APB2EN_TIMER10EN BIT(21)
- #endif
- #define RCU_APB1EN_TIMER1EN BIT(0)
- #define RCU_APB1EN_TIMER2EN BIT(1)
- #define RCU_APB1EN_TIMER3EN BIT(2)
- #define RCU_APB1EN_TIMER4EN BIT(3)
- #define RCU_APB1EN_TIMER5EN BIT(4)
- #define RCU_APB1EN_TIMER6EN BIT(5)
- #ifndef GD32F30X_HD
- #define RCU_APB1EN_TIMER11EN BIT(6)
- #define RCU_APB1EN_TIMER12EN BIT(7)
- #define RCU_APB1EN_TIMER13EN BIT(8)
- #endif
- #define RCU_APB1EN_WWDGTEN BIT(11)
- #define RCU_APB1EN_SPI1EN BIT(14)
- #define RCU_APB1EN_SPI2EN BIT(15)
- #define RCU_APB1EN_USART1EN BIT(17)
- #define RCU_APB1EN_USART2EN BIT(18)
- #define RCU_APB1EN_UART3EN BIT(19)
- #define RCU_APB1EN_UART4EN BIT(20)
- #define RCU_APB1EN_I2C0EN BIT(21)
- #define RCU_APB1EN_I2C1EN BIT(22)
- #if (defined(GD32F30X_HD) || defined(GD32F30X_XD))
- #define RCU_APB1EN_USBDEN BIT(23)
- #endif
- #define RCU_APB1EN_CAN0EN BIT(25)
- #ifdef GD32F30X_CL
- #define RCU_APB1EN_CAN1EN BIT(26)
- #endif
- #define RCU_APB1EN_BKPIEN BIT(27)
- #define RCU_APB1EN_PMUEN BIT(28)
- #define RCU_APB1EN_DACEN BIT(29)
- #define RCU_BDCTL_LXTALEN BIT(0)
- #define RCU_BDCTL_LXTALSTB BIT(1)
- #define RCU_BDCTL_LXTALBPS BIT(2)
- #define RCU_BDCTL_LXTALDRI BITS(3,4)
- #define RCU_BDCTL_RTCSRC BITS(8,9)
- #define RCU_BDCTL_RTCEN BIT(15)
- #define RCU_BDCTL_BKPRST BIT(16)
- #define RCU_RSTSCK_IRC40KEN BIT(0)
- #define RCU_RSTSCK_IRC40KSTB BIT(1)
- #define RCU_RSTSCK_RSTFC BIT(24)
- #define RCU_RSTSCK_EPRSTF BIT(26)
- #define RCU_RSTSCK_PORRSTF BIT(27)
- #define RCU_RSTSCK_SWRSTF BIT(28)
- #define RCU_RSTSCK_FWDGTRSTF BIT(29)
- #define RCU_RSTSCK_WWDGTRSTF BIT(30)
- #define RCU_RSTSCK_LPRSTF BIT(31)
- #ifdef GD32F30X_CL
- #define RCU_AHBRST_USBFSRST BIT(12)
- #define RCU_AHBRST_ENETRST BIT(14)
- #endif
- #if (defined(GD32F30X_HD) || defined(GD32F30X_XD))
- #define RCU_CFG1_ADCPSC_3 BIT(29)
- #define RCU_CFG1_PLLPRESEL BIT(30)
- #elif defined(GD32F30X_CL)
- #define RCU_CFG1_PREDV0 BITS(0,3)
- #define RCU_CFG1_PREDV1 BITS(4,7)
- #define RCU_CFG1_PLL1MF BITS(8,11)
- #define RCU_CFG1_PLL2MF BITS(12,15)
- #define RCU_CFG1_PREDV0SEL BIT(16)
- #define RCU_CFG1_I2S1SEL BIT(17)
- #define RCU_CFG1_I2S2SEL BIT(18)
- #define RCU_CFG1_ADCPSC_3 BIT(29)
- #define RCU_CFG1_PLLPRESEL BIT(30)
- #define RCU_CFG1_PLL2MF_4 BIT(31)
- #endif
- #define RCU_DSV_DSLPVS BITS(0,2)
- #define RCU_ADDCTL_CK48MSEL BIT(0)
- #define RCU_ADDCTL_IRC48MEN BIT(16)
- #define RCU_ADDCTL_IRC48MSTB BIT(17)
- #define RCU_ADDCTL_IRC48MCAL BITS(24,31)
- #define RCU_ADDINT_IRC48MSTBIF BIT(6)
- #define RCU_ADDINT_IRC48MSTBIE BIT(14)
- #define RCU_ADDINT_IRC48MSTBIC BIT(22)
- #define RCU_ADDAPB1RST_CTCRST BIT(27)
- #define RCU_ADDAPB1EN_CTCEN BIT(27)
- #define RCU_REGIDX_BIT(regidx, bitpos) (((uint32_t)(regidx) << 6) | (uint32_t)(bitpos))
- #define RCU_REG_VAL(periph) (REG32(RCU + ((uint32_t)(periph) >> 6)))
- #define RCU_BIT_POS(val) ((uint32_t)(val) & 0x1FU)
- #define AHBEN_REG_OFFSET 0x14U
- #define APB1EN_REG_OFFSET 0x1CU
- #define APB2EN_REG_OFFSET 0x18U
- #define ADD_APB1EN_REG_OFFSET 0xE4U
- #define AHBRST_REG_OFFSET 0x28U
- #define APB1RST_REG_OFFSET 0x10U
- #define APB2RST_REG_OFFSET 0x0CU
- #define ADD_APB1RST_REG_OFFSET 0xE0U
- #define RSTSCK_REG_OFFSET 0x24U
- #define CTL_REG_OFFSET 0x00U
- #define BDCTL_REG_OFFSET 0x20U
- #define ADDCTL_REG_OFFSET 0xC0U
- #define INT_REG_OFFSET 0x08U
- #define ADDINT_REG_OFFSET 0xCCU
- #define CFG0_REG_OFFSET 0x04U
- #define CFG1_REG_OFFSET 0x2CU
- typedef enum
- {
-
- RCU_DMA0 = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 0U),
- RCU_DMA1 = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 1U),
- RCU_CRC = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 6U),
- RCU_EXMC = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 8U),
- #if (defined(GD32F30X_HD) || defined(GD32F30X_XD))
- RCU_SDIO = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 10U),
- #elif defined(GD32F30X_CL)
- RCU_USBFS = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 12U),
- RCU_ENET = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 14U),
- RCU_ENETTX = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 15U),
- RCU_ENETRX = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 16U),
- #endif
-
-
- RCU_TIMER1 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 0U),
- RCU_TIMER2 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 1U),
- RCU_TIMER3 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 2U),
- RCU_TIMER4 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 3U),
- RCU_TIMER5 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 4U),
- RCU_TIMER6 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 5U),
- #ifndef GD32F30X_HD
- RCU_TIMER11 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 6U),
- RCU_TIMER12 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 7U),
- RCU_TIMER13 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 8U),
- #endif
- RCU_WWDGT = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 11U),
- RCU_SPI1 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 14U),
- RCU_SPI2 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 15U),
- RCU_USART1 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 17U),
- RCU_USART2 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 18U),
- RCU_UART3 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 19U),
- RCU_UART4 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 20U),
- RCU_I2C0 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 21U),
- RCU_I2C1 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 22U),
- #if (defined(GD32F30X_HD) || defined(GD32F30X_XD))
- RCU_USBD = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 23U),
- #endif
- RCU_CAN0 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 25U),
- #ifdef GD32F30X_CL
- RCU_CAN1 = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 26U),
- #endif
- RCU_BKPI = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 27U),
- RCU_PMU = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 28U),
- RCU_DAC = RCU_REGIDX_BIT(APB1EN_REG_OFFSET, 29U),
- RCU_RTC = RCU_REGIDX_BIT(BDCTL_REG_OFFSET, 15U),
- RCU_CTC = RCU_REGIDX_BIT(ADD_APB1EN_REG_OFFSET, 27U),
-
-
- RCU_AF = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 0U),
- RCU_GPIOA = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 2U),
- RCU_GPIOB = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 3U),
- RCU_GPIOC = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 4U),
- RCU_GPIOD = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 5U),
- RCU_GPIOE = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 6U),
- RCU_GPIOF = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 7U),
- RCU_GPIOG = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 8U),
- RCU_ADC0 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 9U),
- RCU_ADC1 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 10U),
- RCU_TIMER0 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 11U),
- RCU_SPI0 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 12U),
- RCU_TIMER7 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 13U),
- RCU_USART0 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 14U),
- #ifndef GD32F30X_CL
- RCU_ADC2 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 15U),
- #endif
- #ifndef GD32F30X_HD
- RCU_TIMER8 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 19U),
- RCU_TIMER9 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 20U),
- RCU_TIMER10 = RCU_REGIDX_BIT(APB2EN_REG_OFFSET, 21U),
- #endif
- }rcu_periph_enum;
- typedef enum
- {
-
- RCU_SRAM_SLP = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 2U),
- RCU_FMC_SLP = RCU_REGIDX_BIT(AHBEN_REG_OFFSET, 4U),
- }rcu_periph_sleep_enum;
- typedef enum
- {
-
- #ifdef GD32F30X_CL
- RCU_USBFSRST = RCU_REGIDX_BIT(AHBRST_REG_OFFSET, 12U),
- RCU_ENETRST = RCU_REGIDX_BIT(AHBRST_REG_OFFSET, 14U),
- #endif
-
-
- RCU_TIMER1RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 0U),
- RCU_TIMER2RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 1U),
- RCU_TIMER3RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 2U),
- RCU_TIMER4RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 3U),
- RCU_TIMER5RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 4U),
- RCU_TIMER6RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 5U),
- #ifndef GD32F30X_HD
- RCU_TIMER11RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 6U),
- RCU_TIMER12RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 7U),
- RCU_TIMER13RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 8U),
- #endif
- RCU_WWDGTRST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 11U),
- RCU_SPI1RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 14U),
- RCU_SPI2RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 15U),
- RCU_USART1RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 17U),
- RCU_USART2RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 18U),
- RCU_UART3RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 19U),
- RCU_UART4RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 20U),
- RCU_I2C0RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 21U),
- RCU_I2C1RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 22U),
- #if (defined(GD32F30X_HD) || defined(GD32F30X_XD))
- RCU_USBDRST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 23U),
- #endif
- RCU_CAN0RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 25U),
- #ifdef GD32F30X_CL
- RCU_CAN1RST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 26U),
- #endif
- RCU_BKPIRST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 27U),
- RCU_PMURST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 28U),
- RCU_DACRST = RCU_REGIDX_BIT(APB1RST_REG_OFFSET, 29U),
- RCU_CTCRST = RCU_REGIDX_BIT(ADD_APB1RST_REG_OFFSET, 27U),
-
-
- RCU_AFRST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 0U),
- RCU_GPIOARST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 2U),
- RCU_GPIOBRST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 3U),
- RCU_GPIOCRST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 4U),
- RCU_GPIODRST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 5U),
- RCU_GPIOERST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 6U),
- RCU_GPIOFRST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 7U),
- RCU_GPIOGRST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 8U),
- RCU_ADC0RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 9U),
- RCU_ADC1RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 10U),
- RCU_TIMER0RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 11U),
- RCU_SPI0RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 12U),
- RCU_TIMER7RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 13U),
- RCU_USART0RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 14U),
- #ifndef GD32F30X_CL
- RCU_ADC2RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 15U),
- #endif
- #ifndef GD32F30X_HD
- RCU_TIMER8RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 19U),
- RCU_TIMER9RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 20U),
- RCU_TIMER10RST = RCU_REGIDX_BIT(APB2RST_REG_OFFSET, 21U),
- #endif
- }rcu_periph_reset_enum;
- typedef enum
- {
-
- RCU_FLAG_IRC8MSTB = RCU_REGIDX_BIT(CTL_REG_OFFSET, 1U),
- RCU_FLAG_HXTALSTB = RCU_REGIDX_BIT(CTL_REG_OFFSET, 17U),
- RCU_FLAG_PLLSTB = RCU_REGIDX_BIT(CTL_REG_OFFSET, 25U),
- #ifdef GD32F30X_CL
- RCU_FLAG_PLL1STB = RCU_REGIDX_BIT(CTL_REG_OFFSET, 27U),
- RCU_FLAG_PLL2STB = RCU_REGIDX_BIT(CTL_REG_OFFSET, 29U),
- #endif
- RCU_FLAG_LXTALSTB = RCU_REGIDX_BIT(BDCTL_REG_OFFSET, 1U),
- RCU_FLAG_IRC40KSTB = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 1U),
- RCU_FLAG_IRC48MSTB = RCU_REGIDX_BIT(ADDCTL_REG_OFFSET, 17U),
-
- RCU_FLAG_EPRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 26U),
- RCU_FLAG_PORRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 27U),
- RCU_FLAG_SWRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 28U),
- RCU_FLAG_FWDGTRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 29U),
- RCU_FLAG_WWDGTRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 30U),
- RCU_FLAG_LPRST = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 31U),
- }rcu_flag_enum;
- typedef enum
- {
- RCU_INT_FLAG_IRC40KSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 0U),
- RCU_INT_FLAG_LXTALSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 1U),
- RCU_INT_FLAG_IRC8MSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 2U),
- RCU_INT_FLAG_HXTALSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 3U),
- RCU_INT_FLAG_PLLSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 4U),
- #ifdef GD32F30X_CL
- RCU_INT_FLAG_PLL1STB = RCU_REGIDX_BIT(INT_REG_OFFSET, 5U),
- RCU_INT_FLAG_PLL2STB = RCU_REGIDX_BIT(INT_REG_OFFSET, 6U),
- #endif
- RCU_INT_FLAG_CKM = RCU_REGIDX_BIT(INT_REG_OFFSET, 7U),
- RCU_INT_FLAG_IRC48MSTB = RCU_REGIDX_BIT(ADDINT_REG_OFFSET, 6U),
- }rcu_int_flag_enum;
- typedef enum
- {
- RCU_INT_FLAG_IRC40KSTB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 16U),
- RCU_INT_FLAG_LXTALSTB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 17U),
- RCU_INT_FLAG_IRC8MSTB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 18U),
- RCU_INT_FLAG_HXTALSTB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 19U),
- RCU_INT_FLAG_PLLSTB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 20U),
- #ifdef GD32F30X_CL
- RCU_INT_FLAG_PLL1STB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 21U),
- RCU_INT_FLAG_PLL2STB_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 22U),
- #endif
- RCU_INT_FLAG_CKM_CLR = RCU_REGIDX_BIT(INT_REG_OFFSET, 23U),
- RCU_INT_FLAG_IRC48MSTB_CLR = RCU_REGIDX_BIT(ADDINT_REG_OFFSET, 22U),
- }rcu_int_flag_clear_enum;
- typedef enum
- {
- RCU_INT_IRC40KSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 8U),
- RCU_INT_LXTALSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 9U),
- RCU_INT_IRC8MSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 10U),
- RCU_INT_HXTALSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 11U),
- RCU_INT_PLLSTB = RCU_REGIDX_BIT(INT_REG_OFFSET, 12U),
- #ifdef GD32F30X_CL
- RCU_INT_PLL1STB = RCU_REGIDX_BIT(INT_REG_OFFSET, 13U),
- RCU_INT_PLL2STB = RCU_REGIDX_BIT(INT_REG_OFFSET, 14U),
- #endif
- RCU_INT_IRC48MSTB = RCU_REGIDX_BIT(ADDINT_REG_OFFSET, 14U),
- }rcu_int_enum;
- typedef enum
- {
- RCU_HXTAL = RCU_REGIDX_BIT(CTL_REG_OFFSET, 16U),
- RCU_LXTAL = RCU_REGIDX_BIT(BDCTL_REG_OFFSET, 0U),
- RCU_IRC8M = RCU_REGIDX_BIT(CTL_REG_OFFSET, 0U),
- RCU_IRC48M = RCU_REGIDX_BIT(ADDCTL_REG_OFFSET, 16U),
- RCU_IRC40K = RCU_REGIDX_BIT(RSTSCK_REG_OFFSET, 0U),
- RCU_PLL_CK = RCU_REGIDX_BIT(CTL_REG_OFFSET, 24U),
- #ifdef GD32F30X_CL
- RCU_PLL1_CK = RCU_REGIDX_BIT(CTL_REG_OFFSET, 26U),
- RCU_PLL2_CK = RCU_REGIDX_BIT(CTL_REG_OFFSET, 28U),
- #endif
- }rcu_osci_type_enum;
- typedef enum
- {
- CK_SYS = 0,
- CK_AHB,
- CK_APB1,
- CK_APB2,
- }rcu_clock_freq_enum;
- #define CFG0_SCS(regval) (BITS(0,1) & ((uint32_t)(regval) << 0))
- #define RCU_CKSYSSRC_IRC8M CFG0_SCS(0)
- #define RCU_CKSYSSRC_HXTAL CFG0_SCS(1)
- #define RCU_CKSYSSRC_PLL CFG0_SCS(2)
- #define CFG0_SCSS(regval) (BITS(2,3) & ((uint32_t)(regval) << 2))
- #define RCU_SCSS_IRC8M CFG0_SCSS(0)
- #define RCU_SCSS_HXTAL CFG0_SCSS(1)
- #define RCU_SCSS_PLL CFG0_SCSS(2)
- #define CFG0_AHBPSC(regval) (BITS(4,7) & ((uint32_t)(regval) << 4))
- #define RCU_AHB_CKSYS_DIV1 CFG0_AHBPSC(0)
- #define RCU_AHB_CKSYS_DIV2 CFG0_AHBPSC(8)
- #define RCU_AHB_CKSYS_DIV4 CFG0_AHBPSC(9)
- #define RCU_AHB_CKSYS_DIV8 CFG0_AHBPSC(10)
- #define RCU_AHB_CKSYS_DIV16 CFG0_AHBPSC(11)
- #define RCU_AHB_CKSYS_DIV64 CFG0_AHBPSC(12)
- #define RCU_AHB_CKSYS_DIV128 CFG0_AHBPSC(13)
- #define RCU_AHB_CKSYS_DIV256 CFG0_AHBPSC(14)
- #define RCU_AHB_CKSYS_DIV512 CFG0_AHBPSC(15)
- #define CFG0_APB1PSC(regval) (BITS(8,10) & ((uint32_t)(regval) << 8))
- #define RCU_APB1_CKAHB_DIV1 CFG0_APB1PSC(0)
- #define RCU_APB1_CKAHB_DIV2 CFG0_APB1PSC(4)
- #define RCU_APB1_CKAHB_DIV4 CFG0_APB1PSC(5)
- #define RCU_APB1_CKAHB_DIV8 CFG0_APB1PSC(6)
- #define RCU_APB1_CKAHB_DIV16 CFG0_APB1PSC(7)
- #define CFG0_APB2PSC(regval) (BITS(11,13) & ((uint32_t)(regval) << 11))
- #define RCU_APB2_CKAHB_DIV1 CFG0_APB2PSC(0)
- #define RCU_APB2_CKAHB_DIV2 CFG0_APB2PSC(4)
- #define RCU_APB2_CKAHB_DIV4 CFG0_APB2PSC(5)
- #define RCU_APB2_CKAHB_DIV8 CFG0_APB2PSC(6)
- #define RCU_APB2_CKAHB_DIV16 CFG0_APB2PSC(7)
- #define RCU_CKADC_CKAPB2_DIV2 ((uint32_t)0x00000000U)
- #define RCU_CKADC_CKAPB2_DIV4 ((uint32_t)0x00000001U)
- #define RCU_CKADC_CKAPB2_DIV6 ((uint32_t)0x00000002U)
- #define RCU_CKADC_CKAPB2_DIV8 ((uint32_t)0x00000003U)
- #define RCU_CKADC_CKAPB2_DIV12 ((uint32_t)0x00000005U)
- #define RCU_CKADC_CKAPB2_DIV16 ((uint32_t)0x00000007U)
- #define RCU_CKADC_CKAHB_DIV5 ((uint32_t)0x00000008U)
- #define RCU_CKADC_CKAHB_DIV6 ((uint32_t)0x00000009U)
- #define RCU_CKADC_CKAHB_DIV10 ((uint32_t)0x0000000AU)
- #define RCU_CKADC_CKAHB_DIV20 ((uint32_t)0x0000000BU)
- #define RCU_PLLSRC_IRC8M_DIV2 ((uint32_t)0x00000000U)
- #define RCU_PLLSRC_HXTAL_IRC48M RCU_CFG0_PLLSEL
- #define PLLMF_4 RCU_CFG0_PLLMF_4
- #define PLLMF_5 RCU_CFG0_PLLMF_5
- #define PLLMF_4_5 (PLLMF_4 | PLLMF_5)
- #define CFG0_PLLMF(regval) (BITS(18,21) & ((uint32_t)(regval) << 18))
- #define RCU_PLL_MUL2 CFG0_PLLMF(0)
- #define RCU_PLL_MUL3 CFG0_PLLMF(1)
- #define RCU_PLL_MUL4 CFG0_PLLMF(2)
- #define RCU_PLL_MUL5 CFG0_PLLMF(3)
- #define RCU_PLL_MUL6 CFG0_PLLMF(4)
- #define RCU_PLL_MUL7 CFG0_PLLMF(5)
- #define RCU_PLL_MUL8 CFG0_PLLMF(6)
- #define RCU_PLL_MUL9 CFG0_PLLMF(7)
- #define RCU_PLL_MUL10 CFG0_PLLMF(8)
- #define RCU_PLL_MUL11 CFG0_PLLMF(9)
- #define RCU_PLL_MUL12 CFG0_PLLMF(10)
- #define RCU_PLL_MUL13 CFG0_PLLMF(11)
- #define RCU_PLL_MUL14 CFG0_PLLMF(12)
- #if(defined(GD32F30X_HD) || defined(GD32F30X_XD))
- #define RCU_PLL_MUL15 CFG0_PLLMF(13)
- #elif defined(GD32F30X_CL)
- #define RCU_PLL_MUL6_5 CFG0_PLLMF(13)
- #endif
- #define RCU_PLL_MUL16 CFG0_PLLMF(14)
- #define RCU_PLL_MUL17 (PLLMF_4 | CFG0_PLLMF(0))
- #define RCU_PLL_MUL18 (PLLMF_4 | CFG0_PLLMF(1))
- #define RCU_PLL_MUL19 (PLLMF_4 | CFG0_PLLMF(2))
- #define RCU_PLL_MUL20 (PLLMF_4 | CFG0_PLLMF(3))
- #define RCU_PLL_MUL21 (PLLMF_4 | CFG0_PLLMF(4))
- #define RCU_PLL_MUL22 (PLLMF_4 | CFG0_PLLMF(5))
- #define RCU_PLL_MUL23 (PLLMF_4 | CFG0_PLLMF(6))
- #define RCU_PLL_MUL24 (PLLMF_4 | CFG0_PLLMF(7))
- #define RCU_PLL_MUL25 (PLLMF_4 | CFG0_PLLMF(8))
- #define RCU_PLL_MUL26 (PLLMF_4 | CFG0_PLLMF(9))
- #define RCU_PLL_MUL27 (PLLMF_4 | CFG0_PLLMF(10))
- #define RCU_PLL_MUL28 (PLLMF_4 | CFG0_PLLMF(11))
- #define RCU_PLL_MUL29 (PLLMF_4 | CFG0_PLLMF(12))
- #define RCU_PLL_MUL30 (PLLMF_4 | CFG0_PLLMF(13))
- #define RCU_PLL_MUL31 (PLLMF_4 | CFG0_PLLMF(14))
- #define RCU_PLL_MUL32 (PLLMF_4 | CFG0_PLLMF(15))
- #define RCU_PLL_MUL33 (PLLMF_5 | CFG0_PLLMF(0))
- #define RCU_PLL_MUL34 (PLLMF_5 | CFG0_PLLMF(1))
- #define RCU_PLL_MUL35 (PLLMF_5 | CFG0_PLLMF(2))
- #define RCU_PLL_MUL36 (PLLMF_5 | CFG0_PLLMF(3))
- #define RCU_PLL_MUL37 (PLLMF_5 | CFG0_PLLMF(4))
- #define RCU_PLL_MUL38 (PLLMF_5 | CFG0_PLLMF(5))
- #define RCU_PLL_MUL39 (PLLMF_5 | CFG0_PLLMF(6))
- #define RCU_PLL_MUL40 (PLLMF_5 | CFG0_PLLMF(7))
- #define RCU_PLL_MUL41 (PLLMF_5 | CFG0_PLLMF(8))
- #define RCU_PLL_MUL42 (PLLMF_5 | CFG0_PLLMF(9))
- #define RCU_PLL_MUL43 (PLLMF_5 | CFG0_PLLMF(10))
- #define RCU_PLL_MUL44 (PLLMF_5 | CFG0_PLLMF(11))
- #define RCU_PLL_MUL45 (PLLMF_5 | CFG0_PLLMF(12))
- #define RCU_PLL_MUL46 (PLLMF_5 | CFG0_PLLMF(13))
- #define RCU_PLL_MUL47 (PLLMF_5 | CFG0_PLLMF(14))
- #define RCU_PLL_MUL48 (PLLMF_5 | CFG0_PLLMF(15))
- #define RCU_PLL_MUL49 (PLLMF_4_5 | CFG0_PLLMF(0))
- #define RCU_PLL_MUL50 (PLLMF_4_5 | CFG0_PLLMF(1))
- #define RCU_PLL_MUL51 (PLLMF_4_5 | CFG0_PLLMF(2))
- #define RCU_PLL_MUL52 (PLLMF_4_5 | CFG0_PLLMF(3))
- #define RCU_PLL_MUL53 (PLLMF_4_5 | CFG0_PLLMF(4))
- #define RCU_PLL_MUL54 (PLLMF_4_5 | CFG0_PLLMF(5))
- #define RCU_PLL_MUL55 (PLLMF_4_5 | CFG0_PLLMF(6))
- #define RCU_PLL_MUL56 (PLLMF_4_5 | CFG0_PLLMF(7))
- #define RCU_PLL_MUL57 (PLLMF_4_5 | CFG0_PLLMF(8))
- #define RCU_PLL_MUL58 (PLLMF_4_5 | CFG0_PLLMF(9))
- #define RCU_PLL_MUL59 (PLLMF_4_5 | CFG0_PLLMF(10))
- #define RCU_PLL_MUL60 (PLLMF_4_5 | CFG0_PLLMF(11))
- #define RCU_PLL_MUL61 (PLLMF_4_5 | CFG0_PLLMF(12))
- #define RCU_PLL_MUL62 (PLLMF_4_5 | CFG0_PLLMF(13))
- #define RCU_PLL_MUL63 (PLLMF_4_5 | CFG0_PLLMF(14))
- #if(defined(GD32F30X_HD) || defined(GD32F30X_XD))
- #define USBPSC_2 RCU_CFG0_USBDPSC_2
- #elif defined(GD32F30X_CL)
- #define USBPSC_2 RCU_CFG0_USBFSPSC_2
- #endif
- #define CFG0_USBPSC(regval) (BITS(22,23) & ((uint32_t)(regval) << 22))
- #define RCU_CKUSB_CKPLL_DIV1_5 CFG0_USBPSC(0)
- #define RCU_CKUSB_CKPLL_DIV1 CFG0_USBPSC(1)
- #define RCU_CKUSB_CKPLL_DIV2_5 CFG0_USBPSC(2)
- #define RCU_CKUSB_CKPLL_DIV2 CFG0_USBPSC(3)
- #define RCU_CKUSB_CKPLL_DIV3 (USBPSC_2 |CFG0_USBPSC(0))
- #define RCU_CKUSB_CKPLL_DIV3_5 (USBPSC_2 |CFG0_USBPSC(1))
- #define RCU_CKUSB_CKPLL_DIV4 (USBPSC_2 |CFG0_USBPSC(2))
- #define CFG0_CKOUT0SEL(regval) (BITS(24,27) & ((uint32_t)(regval) << 24))
- #define RCU_CKOUT0SRC_NONE CFG0_CKOUT0SEL(0)
- #define RCU_CKOUT0SRC_CKSYS CFG0_CKOUT0SEL(4)
- #define RCU_CKOUT0SRC_IRC8M CFG0_CKOUT0SEL(5)
- #define RCU_CKOUT0SRC_HXTAL CFG0_CKOUT0SEL(6)
- #define RCU_CKOUT0SRC_CKPLL_DIV2 CFG0_CKOUT0SEL(7)
- #ifdef GD32F30X_CL
- #define RCU_CKOUT0SRC_CKPLL1 CFG0_CKOUT0SEL(8)
- #define RCU_CKOUT0SRC_CKPLL2_DIV2 CFG0_CKOUT0SEL(9)
- #define RCU_CKOUT0SRC_EXT1 CFG0_CKOUT0SEL(10)
- #define RCU_CKOUT0SRC_CKPLL2 CFG0_CKOUT0SEL(11)
- #endif
- #define BDCTL_LXTALDRI(regval) (BITS(3,4) & ((uint32_t)(regval) << 3))
- #define RCU_LXTAL_LOWDRI BDCTL_LXTALDRI(0)
- #define RCU_LXTAL_MED_LOWDRI BDCTL_LXTALDRI(1)
- #define RCU_LXTAL_MED_HIGHDRI BDCTL_LXTALDRI(2)
- #define RCU_LXTAL_HIGHDRI BDCTL_LXTALDRI(3)
- #define BDCTL_RTCSRC(regval) (BITS(8,9) & ((uint32_t)(regval) << 8))
- #define RCU_RTCSRC_NONE BDCTL_RTCSRC(0)
- #define RCU_RTCSRC_LXTAL BDCTL_RTCSRC(1)
- #define RCU_RTCSRC_IRC40K BDCTL_RTCSRC(2)
- #define RCU_RTCSRC_HXTAL_DIV_128 BDCTL_RTCSRC(3)
- #define CFG1_PREDV0(regval) (BITS(0,3) & ((uint32_t)(regval) << 0))
- #define RCU_PREDV0_DIV1 CFG1_PREDV0(0)
- #define RCU_PREDV0_DIV2 CFG1_PREDV0(1)
- #define RCU_PREDV0_DIV3 CFG1_PREDV0(2)
- #define RCU_PREDV0_DIV4 CFG1_PREDV0(3)
- #define RCU_PREDV0_DIV5 CFG1_PREDV0(4)
- #define RCU_PREDV0_DIV6 CFG1_PREDV0(5)
- #define RCU_PREDV0_DIV7 CFG1_PREDV0(6)
- #define RCU_PREDV0_DIV8 CFG1_PREDV0(7)
- #define RCU_PREDV0_DIV9 CFG1_PREDV0(8)
- #define RCU_PREDV0_DIV10 CFG1_PREDV0(9)
- #define RCU_PREDV0_DIV11 CFG1_PREDV0(10)
- #define RCU_PREDV0_DIV12 CFG1_PREDV0(11)
- #define RCU_PREDV0_DIV13 CFG1_PREDV0(12)
- #define RCU_PREDV0_DIV14 CFG1_PREDV0(13)
- #define RCU_PREDV0_DIV15 CFG1_PREDV0(14)
- #define RCU_PREDV0_DIV16 CFG1_PREDV0(15)
- #define CFG1_PREDV1(regval) (BITS(4,7) & ((uint32_t)(regval) << 4))
- #define RCU_PREDV1_DIV1 CFG1_PREDV1(0)
- #define RCU_PREDV1_DIV2 CFG1_PREDV1(1)
- #define RCU_PREDV1_DIV3 CFG1_PREDV1(2)
- #define RCU_PREDV1_DIV4 CFG1_PREDV1(3)
- #define RCU_PREDV1_DIV5 CFG1_PREDV1(4)
- #define RCU_PREDV1_DIV6 CFG1_PREDV1(5)
- #define RCU_PREDV1_DIV7 CFG1_PREDV1(6)
- #define RCU_PREDV1_DIV8 CFG1_PREDV1(7)
- #define RCU_PREDV1_DIV9 CFG1_PREDV1(8)
- #define RCU_PREDV1_DIV10 CFG1_PREDV1(9)
- #define RCU_PREDV1_DIV11 CFG1_PREDV1(10)
- #define RCU_PREDV1_DIV12 CFG1_PREDV1(11)
- #define RCU_PREDV1_DIV13 CFG1_PREDV1(12)
- #define RCU_PREDV1_DIV14 CFG1_PREDV1(13)
- #define RCU_PREDV1_DIV15 CFG1_PREDV1(14)
- #define RCU_PREDV1_DIV16 CFG1_PREDV1(15)
- #define CFG1_PLL1MF(regval) (BITS(8,11) & ((uint32_t)(regval) << 8))
- #define RCU_PLL1_MUL8 CFG1_PLL1MF(6)
- #define RCU_PLL1_MUL9 CFG1_PLL1MF(7)
- #define RCU_PLL1_MUL10 CFG1_PLL1MF(8)
- #define RCU_PLL1_MUL11 CFG1_PLL1MF(9)
- #define RCU_PLL1_MUL12 CFG1_PLL1MF(10)
- #define RCU_PLL1_MUL13 CFG1_PLL1MF(11)
- #define RCU_PLL1_MUL14 CFG1_PLL1MF(12)
- #define RCU_PLL1_MUL15 CFG1_PLL1MF(13)
- #define RCU_PLL1_MUL16 CFG1_PLL1MF(14)
- #define RCU_PLL1_MUL20 CFG1_PLL1MF(15)
- #define PLL2MF_4 RCU_CFG1_PLL2MF_4
- #define CFG1_PLL2MF(regval) (BITS(12,15) & ((uint32_t)(regval) << 12))
- #define RCU_PLL2_MUL8 CFG1_PLL2MF(6)
- #define RCU_PLL2_MUL9 CFG1_PLL2MF(7)
- #define RCU_PLL2_MUL10 CFG1_PLL2MF(8)
- #define RCU_PLL2_MUL11 CFG1_PLL2MF(9)
- #define RCU_PLL2_MUL12 CFG1_PLL2MF(10)
- #define RCU_PLL2_MUL13 CFG1_PLL2MF(11)
- #define RCU_PLL2_MUL14 CFG1_PLL2MF(12)
- #define RCU_PLL2_MUL15 CFG1_PLL2MF(13)
- #define RCU_PLL2_MUL16 CFG1_PLL2MF(14)
- #define RCU_PLL2_MUL20 CFG1_PLL2MF(15)
- #define RCU_PLL2_MUL18 (PLL2MF_4 | CFG1_PLL2MF(0))
- #define RCU_PLL2_MUL19 (PLL2MF_4 | CFG1_PLL2MF(1))
- #define RCU_PLL2_MUL21 (PLL2MF_4 | CFG1_PLL2MF(3))
- #define RCU_PLL2_MUL22 (PLL2MF_4 | CFG1_PLL2MF(4))
- #define RCU_PLL2_MUL23 (PLL2MF_4 | CFG1_PLL2MF(5))
- #define RCU_PLL2_MUL24 (PLL2MF_4 | CFG1_PLL2MF(6))
- #define RCU_PLL2_MUL25 (PLL2MF_4 | CFG1_PLL2MF(7))
- #define RCU_PLL2_MUL26 (PLL2MF_4 | CFG1_PLL2MF(8))
- #define RCU_PLL2_MUL27 (PLL2MF_4 | CFG1_PLL2MF(9))
- #define RCU_PLL2_MUL28 (PLL2MF_4 | CFG1_PLL2MF(10))
- #define RCU_PLL2_MUL29 (PLL2MF_4 | CFG1_PLL2MF(11))
- #define RCU_PLL2_MUL30 (PLL2MF_4 | CFG1_PLL2MF(12))
- #define RCU_PLL2_MUL31 (PLL2MF_4 | CFG1_PLL2MF(13))
- #define RCU_PLL2_MUL32 (PLL2MF_4 | CFG1_PLL2MF(14))
- #define RCU_PLL2_MUL40 (PLL2MF_4 | CFG1_PLL2MF(15))
- #ifdef GD32F30X_CL
- #define RCU_PREDV0SRC_HXTAL_IRC48M ((uint32_t)0x00000000U)
- #define RCU_PREDV0SRC_CKPLL1 RCU_CFG1_PREDV0SEL
- #define RCU_I2S1SRC_CKSYS ((uint32_t)0x00000000U)
- #define RCU_I2S1SRC_CKPLL2_MUL2 RCU_CFG1_I2S1SEL
- #define RCU_I2S2SRC_CKSYS ((uint32_t)0x00000000U)
- #define RCU_I2S2SRC_CKPLL2_MUL2 RCU_CFG1_I2S2SEL
- #endif
- #define RCU_PLLPRESRC_HXTAL ((uint32_t)0x00000000U)
- #define RCU_PLLPRESRC_IRC48M RCU_CFG1_PLLPRESEL
- #define DSV_DSLPVS(regval) (BITS(0,2) & ((uint32_t)(regval) << 0))
- #define RCU_DEEPSLEEP_V_0 DSV_DSLPVS(0)
- #define RCU_DEEPSLEEP_V_1 DSV_DSLPVS(1)
- #define RCU_DEEPSLEEP_V_2 DSV_DSLPVS(2)
- #define RCU_DEEPSLEEP_V_3 DSV_DSLPVS(3)
- #define RCU_CK48MSRC_CKPLL ((uint32_t)0x00000000U)
- #define RCU_CK48MSRC_IRC48M RCU_ADDCTL_CK48MSEL
- void rcu_deinit(void);
- void rcu_periph_clock_enable(rcu_periph_enum periph);
- void rcu_periph_clock_disable(rcu_periph_enum periph);
- void rcu_periph_clock_sleep_enable(rcu_periph_sleep_enum periph);
- void rcu_periph_clock_sleep_disable(rcu_periph_sleep_enum periph);
- void rcu_periph_reset_enable(rcu_periph_reset_enum periph_reset);
- void rcu_periph_reset_disable(rcu_periph_reset_enum periph_reset);
- void rcu_bkp_reset_enable(void);
- void rcu_bkp_reset_disable(void);
- void rcu_system_clock_source_config(uint32_t ck_sys);
- uint32_t rcu_system_clock_source_get(void);
- void rcu_ahb_clock_config(uint32_t ck_ahb);
- void rcu_apb1_clock_config(uint32_t ck_apb1);
- void rcu_apb2_clock_config(uint32_t ck_apb2);
- void rcu_ckout0_config(uint32_t ckout0_src);
- void rcu_pll_config(uint32_t pll_src, uint32_t pll_mul);
- void rcu_pllpresel_config(uint32_t pll_presel);
- #if(defined(GD32F30X_HD) || defined(GD32F30X_XD))
- void rcu_predv0_config(uint32_t predv0_div);
- #elif defined(GD32F30X_CL)
- void rcu_predv0_config(uint32_t predv0_source, uint32_t predv0_div);
- void rcu_predv1_config(uint32_t predv1_div);
- void rcu_pll1_config(uint32_t pll_mul);
- void rcu_pll2_config(uint32_t pll_mul);
- #endif
- void rcu_adc_clock_config(uint32_t adc_psc);
- void rcu_usb_clock_config(uint32_t usb_psc);
- void rcu_rtc_clock_config(uint32_t rtc_clock_source);
- #ifdef GD32F30X_CL
- void rcu_i2s1_clock_config(uint32_t i2s_clock_source);
- void rcu_i2s2_clock_config(uint32_t i2s_clock_source);
- #endif
- void rcu_ck48m_clock_config(uint32_t ck48m_clock_source);
- FlagStatus rcu_flag_get(rcu_flag_enum flag);
- void rcu_all_reset_flag_clear(void);
- FlagStatus rcu_interrupt_flag_get(rcu_int_flag_enum int_flag);
- void rcu_interrupt_flag_clear(rcu_int_flag_clear_enum int_flag);
- void rcu_interrupt_enable(rcu_int_enum interrupt);
- void rcu_interrupt_disable(rcu_int_enum interrupt);
- void rcu_lxtal_drive_capability_config(uint32_t lxtal_dricap);
- ErrStatus rcu_osci_stab_wait(rcu_osci_type_enum osci);
- void rcu_osci_on(rcu_osci_type_enum osci);
- void rcu_osci_off(rcu_osci_type_enum osci);
- void rcu_osci_bypass_mode_enable(rcu_osci_type_enum osci);
- void rcu_osci_bypass_mode_disable(rcu_osci_type_enum osci);
- void rcu_irc8m_adjust_value_set(uint32_t irc8m_adjval);
- void rcu_hxtal_clock_monitor_enable(void);
- void rcu_hxtal_clock_monitor_disable(void);
- void rcu_deepsleep_voltage_set(uint32_t dsvol);
- uint32_t rcu_clock_freq_get(rcu_clock_freq_enum clock);
- FlagStatus rcu_flag_get(rcu_flag_enum flag);
- void rcu_all_reset_flag_clear(void);
- FlagStatus rcu_interrupt_flag_get(rcu_int_flag_enum int_flag);
- void rcu_interrupt_flag_clear(rcu_int_flag_clear_enum int_flag);
- void rcu_interrupt_enable(rcu_int_enum interrupt);
- void rcu_interrupt_disable(rcu_int_enum interrupt);
- #endif
|