regsccmanalog.h 158 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254
  1. /*
  2. * Copyright (c) 2012, Freescale Semiconductor, Inc.
  3. * All rights reserved.
  4. *
  5. * THIS SOFTWARE IS PROVIDED BY FREESCALE "AS IS" AND ANY EXPRESS OR IMPLIED
  6. * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  7. * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
  8. * SHALL FREESCALE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  9. * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
  10. * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  11. * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  12. * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
  13. * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
  14. * OF SUCH DAMAGE.
  15. */
  16. /*
  17. * WARNING! DO NOT EDIT THIS FILE DIRECTLY!
  18. *
  19. * This file was generated automatically and any changes may be lost.
  20. */
  21. #ifndef __HW_CCM_ANALOG_REGISTERS_H__
  22. #define __HW_CCM_ANALOG_REGISTERS_H__
  23. #include "regs.h"
  24. /*
  25. * i.MX6UL CCM_ANALOG
  26. *
  27. * CCM
  28. *
  29. * Registers defined in this header file:
  30. * - HW_CCM_ANALOG_PLL_ARM - Analog ARM PLL control Register
  31. * - HW_CCM_ANALOG_PLL_USB1 - Analog USB1 480MHz PLL Control Register
  32. * - HW_CCM_ANALOG_PLL_USB2 - Analog USB2 480MHz PLL Control Register
  33. * - HW_CCM_ANALOG_PLL_SYS - Analog System PLL Control Register
  34. * - HW_CCM_ANALOG_PLL_SYS_SS - 528MHz System PLL Spread Spectrum Register.
  35. * - HW_CCM_ANALOG_PLL_SYS_NUM - Numerator of 528MHz System PLL Fractional Loop Divider Register
  36. * - HW_CCM_ANALOG_PLL_SYS_DENOM - Denominator of 528MHz System PLL Fractional Loop Divider Register
  37. * - HW_CCM_ANALOG_PLL_AUDIO - Analog Audio PLL control Register
  38. * - HW_CCM_ANALOG_PLL_AUDIO_NUM - Numerator of Audio PLL Fractional Loop Divider Register
  39. * - HW_CCM_ANALOG_PLL_AUDIO_DENOM - Denominator of Audio PLL Fractional Loop Divider Register
  40. * - HW_CCM_ANALOG_PLL_VIDEO - Analog Video PLL control Register
  41. * - HW_CCM_ANALOG_PLL_VIDEO_NUM - Numerator of Video PLL Fractional Loop Divider Register
  42. * - HW_CCM_ANALOG_PLL_VIDEO_DENOM - Denominator of Video PLL Fractional Loop Divider Register
  43. * - HW_CCM_ANALOG_PLL_MLB - MLB PLL Control Register
  44. * - HW_CCM_ANALOG_PLL_ENET - Analog ENET PLL Control Register
  45. * - HW_CCM_ANALOG_PFD_480 - 480MHz Clock (from PLL_USB2) Phase Fractional Divider Control Register
  46. * - HW_CCM_ANALOG_PFD_528 - 528MHz Clock (From PLL_SYS) Phase Fractional Divider Control Register
  47. * - HW_CCM_ANALOG_MISC0 - Miscellaneous Control Register
  48. * - HW_CCM_ANALOG_MISC2 - Miscellaneous Control Register
  49. *
  50. * - hw_ccm_analog_t - Struct containing all module registers.
  51. */
  52. //! @name Module base addresses
  53. //@{
  54. #ifndef REGS_CCM_ANALOG_BASE
  55. #define HW_CCM_ANALOG_INSTANCE_COUNT (1) //!< Number of instances of the CCM_ANALOG module.
  56. #define REGS_CCM_ANALOG_BASE (0x020c8000) //!< Base address for CCM_ANALOG.
  57. #endif
  58. //@}
  59. //-------------------------------------------------------------------------------------------
  60. // HW_CCM_ANALOG_PLL_ARM - Analog ARM PLL control Register
  61. //-------------------------------------------------------------------------------------------
  62. #ifndef __LANGUAGE_ASM__
  63. /*!
  64. * @brief HW_CCM_ANALOG_PLL_ARM - Analog ARM PLL control Register (RW)
  65. *
  66. * Reset value: 0x00013042
  67. *
  68. * The control register provides control for the system PLL.
  69. */
  70. typedef union _hw_ccm_analog_pll_arm
  71. {
  72. reg32_t U;
  73. struct _hw_ccm_analog_pll_arm_bitfields
  74. {
  75. unsigned DIV_SELECT : 7; //!< [6:0] This field controls the pll loop divider.
  76. unsigned RESERVED0 : 5; //!< [11:7] Reserved.
  77. unsigned POWERDOWN : 1; //!< [12] Powers down the PLL.
  78. unsigned ENABLE : 1; //!< [13] Enable the clock output.
  79. unsigned BYPASS_CLK_SRC : 2; //!< [15:14] Determines the bypass source.
  80. unsigned BYPASS : 1; //!< [16] Bypass the pll.
  81. unsigned LVDS_SEL : 1; //!< [17] Analog Debug Bit
  82. unsigned LVDS_24MHZ_SEL : 1; //!< [18] Analog Debug Bit
  83. unsigned PLL_SEL : 1; //!< [19] Reserved
  84. unsigned RESERVED1 : 11; //!< [30:20] Always set to zero (0).
  85. unsigned LOCK : 1; //!< [31] 1 - PLL is currently locked.
  86. } B;
  87. } hw_ccm_analog_pll_arm_t;
  88. #endif
  89. /*!
  90. * @name Constants and macros for entire CCM_ANALOG_PLL_ARM register
  91. */
  92. //@{
  93. #define HW_CCM_ANALOG_PLL_ARM_ADDR (REGS_CCM_ANALOG_BASE + 0x0)
  94. #define HW_CCM_ANALOG_PLL_ARM_SET_ADDR (HW_CCM_ANALOG_PLL_ARM_ADDR + 0x4)
  95. #define HW_CCM_ANALOG_PLL_ARM_CLR_ADDR (HW_CCM_ANALOG_PLL_ARM_ADDR + 0x8)
  96. #define HW_CCM_ANALOG_PLL_ARM_TOG_ADDR (HW_CCM_ANALOG_PLL_ARM_ADDR + 0xC)
  97. #ifndef __LANGUAGE_ASM__
  98. #define HW_CCM_ANALOG_PLL_ARM (*(volatile hw_ccm_analog_pll_arm_t *) HW_CCM_ANALOG_PLL_ARM_ADDR)
  99. #define HW_CCM_ANALOG_PLL_ARM_RD() (HW_CCM_ANALOG_PLL_ARM.U)
  100. #define HW_CCM_ANALOG_PLL_ARM_WR(v) (HW_CCM_ANALOG_PLL_ARM.U = (v))
  101. #define HW_CCM_ANALOG_PLL_ARM_SET(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PLL_ARM_SET_ADDR) = (v))
  102. #define HW_CCM_ANALOG_PLL_ARM_CLR(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PLL_ARM_CLR_ADDR) = (v))
  103. #define HW_CCM_ANALOG_PLL_ARM_TOG(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PLL_ARM_TOG_ADDR) = (v))
  104. #endif
  105. //@}
  106. /*
  107. * constants & macros for individual CCM_ANALOG_PLL_ARM bitfields
  108. */
  109. /*! @name Register CCM_ANALOG_PLL_ARM, field DIV_SELECT[6:0] (RW)
  110. *
  111. * This field controls the pll loop divider. Valid range for divider value: 54-108. Fout = Fin *
  112. * div_select/2.0.
  113. */
  114. //@{
  115. #define BP_CCM_ANALOG_PLL_ARM_DIV_SELECT (0) //!< Bit position for CCM_ANALOG_PLL_ARM_DIV_SELECT.
  116. #define BM_CCM_ANALOG_PLL_ARM_DIV_SELECT (0x0000007f) //!< Bit mask for CCM_ANALOG_PLL_ARM_DIV_SELECT.
  117. //! @brief Get value of CCM_ANALOG_PLL_ARM_DIV_SELECT from a register value.
  118. #define BG_CCM_ANALOG_PLL_ARM_DIV_SELECT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_ARM_DIV_SELECT) >> BP_CCM_ANALOG_PLL_ARM_DIV_SELECT)
  119. //! @brief Format value for bitfield CCM_ANALOG_PLL_ARM_DIV_SELECT.
  120. #define BF_CCM_ANALOG_PLL_ARM_DIV_SELECT(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_ARM_DIV_SELECT) & BM_CCM_ANALOG_PLL_ARM_DIV_SELECT)
  121. #ifndef __LANGUAGE_ASM__
  122. //! @brief Set the DIV_SELECT field to a new value.
  123. #define BW_CCM_ANALOG_PLL_ARM_DIV_SELECT(v) BF_CS1(CCM_ANALOG_PLL_ARM, DIV_SELECT, v)
  124. #endif
  125. //@}
  126. /*! @name Register CCM_ANALOG_PLL_ARM, field POWERDOWN[12] (RW)
  127. *
  128. * Powers down the PLL.
  129. */
  130. //@{
  131. #define BP_CCM_ANALOG_PLL_ARM_POWERDOWN (12) //!< Bit position for CCM_ANALOG_PLL_ARM_POWERDOWN.
  132. #define BM_CCM_ANALOG_PLL_ARM_POWERDOWN (0x00001000) //!< Bit mask for CCM_ANALOG_PLL_ARM_POWERDOWN.
  133. //! @brief Get value of CCM_ANALOG_PLL_ARM_POWERDOWN from a register value.
  134. #define BG_CCM_ANALOG_PLL_ARM_POWERDOWN(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_ARM_POWERDOWN) >> BP_CCM_ANALOG_PLL_ARM_POWERDOWN)
  135. //! @brief Format value for bitfield CCM_ANALOG_PLL_ARM_POWERDOWN.
  136. #define BF_CCM_ANALOG_PLL_ARM_POWERDOWN(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_ARM_POWERDOWN) & BM_CCM_ANALOG_PLL_ARM_POWERDOWN)
  137. #ifndef __LANGUAGE_ASM__
  138. //! @brief Set the POWERDOWN field to a new value.
  139. #define BW_CCM_ANALOG_PLL_ARM_POWERDOWN(v) BF_CS1(CCM_ANALOG_PLL_ARM, POWERDOWN, v)
  140. #endif
  141. //@}
  142. /*! @name Register CCM_ANALOG_PLL_ARM, field ENABLE[13] (RW)
  143. *
  144. * Enable the clock output.
  145. */
  146. //@{
  147. #define BP_CCM_ANALOG_PLL_ARM_ENABLE (13) //!< Bit position for CCM_ANALOG_PLL_ARM_ENABLE.
  148. #define BM_CCM_ANALOG_PLL_ARM_ENABLE (0x00002000) //!< Bit mask for CCM_ANALOG_PLL_ARM_ENABLE.
  149. //! @brief Get value of CCM_ANALOG_PLL_ARM_ENABLE from a register value.
  150. #define BG_CCM_ANALOG_PLL_ARM_ENABLE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_ARM_ENABLE) >> BP_CCM_ANALOG_PLL_ARM_ENABLE)
  151. //! @brief Format value for bitfield CCM_ANALOG_PLL_ARM_ENABLE.
  152. #define BF_CCM_ANALOG_PLL_ARM_ENABLE(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_ARM_ENABLE) & BM_CCM_ANALOG_PLL_ARM_ENABLE)
  153. #ifndef __LANGUAGE_ASM__
  154. //! @brief Set the ENABLE field to a new value.
  155. #define BW_CCM_ANALOG_PLL_ARM_ENABLE(v) BF_CS1(CCM_ANALOG_PLL_ARM, ENABLE, v)
  156. #endif
  157. //@}
  158. /*! @name Register CCM_ANALOG_PLL_ARM, field BYPASS_CLK_SRC[15:14] (RW)
  159. *
  160. * Determines the bypass source.
  161. *
  162. * Values:
  163. * - REF_CLK_24M = 0x0 - Select the 24MHz oscillator as source.
  164. * - CLK1 = 0x1 - Select the CLK1_N / CLK1_P as source.
  165. * - CLK2 = 0x2 - Select the CLK2_N / CLK2_P as source.
  166. * - XOR = 0x3 - Select the XOR of CLK1_N / CLK1_P and CLK2_N / CLK2_P as source.
  167. */
  168. //@{
  169. #define BP_CCM_ANALOG_PLL_ARM_BYPASS_CLK_SRC (14) //!< Bit position for CCM_ANALOG_PLL_ARM_BYPASS_CLK_SRC.
  170. #define BM_CCM_ANALOG_PLL_ARM_BYPASS_CLK_SRC (0x0000c000) //!< Bit mask for CCM_ANALOG_PLL_ARM_BYPASS_CLK_SRC.
  171. //! @brief Get value of CCM_ANALOG_PLL_ARM_BYPASS_CLK_SRC from a register value.
  172. #define BG_CCM_ANALOG_PLL_ARM_BYPASS_CLK_SRC(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_ARM_BYPASS_CLK_SRC) >> BP_CCM_ANALOG_PLL_ARM_BYPASS_CLK_SRC)
  173. //! @brief Format value for bitfield CCM_ANALOG_PLL_ARM_BYPASS_CLK_SRC.
  174. #define BF_CCM_ANALOG_PLL_ARM_BYPASS_CLK_SRC(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_ARM_BYPASS_CLK_SRC) & BM_CCM_ANALOG_PLL_ARM_BYPASS_CLK_SRC)
  175. #ifndef __LANGUAGE_ASM__
  176. //! @brief Set the BYPASS_CLK_SRC field to a new value.
  177. #define BW_CCM_ANALOG_PLL_ARM_BYPASS_CLK_SRC(v) BF_CS1(CCM_ANALOG_PLL_ARM, BYPASS_CLK_SRC, v)
  178. #endif
  179. //! @brief Macro to simplify usage of value macros.
  180. #define BF_CCM_ANALOG_PLL_ARM_BYPASS_CLK_SRC_V(v) BF_CCM_ANALOG_PLL_ARM_BYPASS_CLK_SRC(BV_CCM_ANALOG_PLL_ARM_BYPASS_CLK_SRC__##v)
  181. #define BV_CCM_ANALOG_PLL_ARM_BYPASS_CLK_SRC__REF_CLK_24M (0x0) //!< Select the 24MHz oscillator as source.
  182. #define BV_CCM_ANALOG_PLL_ARM_BYPASS_CLK_SRC__CLK1 (0x1) //!< Select the CLK1_N / CLK1_P as source.
  183. #define BV_CCM_ANALOG_PLL_ARM_BYPASS_CLK_SRC__CLK2 (0x2) //!< Select the CLK2_N / CLK2_P as source.
  184. #define BV_CCM_ANALOG_PLL_ARM_BYPASS_CLK_SRC__XOR (0x3) //!< Select the XOR of CLK1_N / CLK1_P and CLK2_N / CLK2_P as source.
  185. //@}
  186. /*! @name Register CCM_ANALOG_PLL_ARM, field BYPASS[16] (RW)
  187. *
  188. * Bypass the pll.
  189. */
  190. //@{
  191. #define BP_CCM_ANALOG_PLL_ARM_BYPASS (16) //!< Bit position for CCM_ANALOG_PLL_ARM_BYPASS.
  192. #define BM_CCM_ANALOG_PLL_ARM_BYPASS (0x00010000) //!< Bit mask for CCM_ANALOG_PLL_ARM_BYPASS.
  193. //! @brief Get value of CCM_ANALOG_PLL_ARM_BYPASS from a register value.
  194. #define BG_CCM_ANALOG_PLL_ARM_BYPASS(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_ARM_BYPASS) >> BP_CCM_ANALOG_PLL_ARM_BYPASS)
  195. //! @brief Format value for bitfield CCM_ANALOG_PLL_ARM_BYPASS.
  196. #define BF_CCM_ANALOG_PLL_ARM_BYPASS(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_ARM_BYPASS) & BM_CCM_ANALOG_PLL_ARM_BYPASS)
  197. #ifndef __LANGUAGE_ASM__
  198. //! @brief Set the BYPASS field to a new value.
  199. #define BW_CCM_ANALOG_PLL_ARM_BYPASS(v) BF_CS1(CCM_ANALOG_PLL_ARM, BYPASS, v)
  200. #endif
  201. //@}
  202. /*! @name Register CCM_ANALOG_PLL_ARM, field LVDS_SEL[17] (RW)
  203. *
  204. * Analog Debug Bit
  205. */
  206. //@{
  207. #define BP_CCM_ANALOG_PLL_ARM_LVDS_SEL (17) //!< Bit position for CCM_ANALOG_PLL_ARM_LVDS_SEL.
  208. #define BM_CCM_ANALOG_PLL_ARM_LVDS_SEL (0x00020000) //!< Bit mask for CCM_ANALOG_PLL_ARM_LVDS_SEL.
  209. //! @brief Get value of CCM_ANALOG_PLL_ARM_LVDS_SEL from a register value.
  210. #define BG_CCM_ANALOG_PLL_ARM_LVDS_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_ARM_LVDS_SEL) >> BP_CCM_ANALOG_PLL_ARM_LVDS_SEL)
  211. //! @brief Format value for bitfield CCM_ANALOG_PLL_ARM_LVDS_SEL.
  212. #define BF_CCM_ANALOG_PLL_ARM_LVDS_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_ARM_LVDS_SEL) & BM_CCM_ANALOG_PLL_ARM_LVDS_SEL)
  213. #ifndef __LANGUAGE_ASM__
  214. //! @brief Set the LVDS_SEL field to a new value.
  215. #define BW_CCM_ANALOG_PLL_ARM_LVDS_SEL(v) BF_CS1(CCM_ANALOG_PLL_ARM, LVDS_SEL, v)
  216. #endif
  217. //@}
  218. /*! @name Register CCM_ANALOG_PLL_ARM, field LVDS_24MHZ_SEL[18] (RW)
  219. *
  220. * Analog Debug Bit
  221. */
  222. //@{
  223. #define BP_CCM_ANALOG_PLL_ARM_LVDS_24MHZ_SEL (18) //!< Bit position for CCM_ANALOG_PLL_ARM_LVDS_24MHZ_SEL.
  224. #define BM_CCM_ANALOG_PLL_ARM_LVDS_24MHZ_SEL (0x00040000) //!< Bit mask for CCM_ANALOG_PLL_ARM_LVDS_24MHZ_SEL.
  225. //! @brief Get value of CCM_ANALOG_PLL_ARM_LVDS_24MHZ_SEL from a register value.
  226. #define BG_CCM_ANALOG_PLL_ARM_LVDS_24MHZ_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_ARM_LVDS_24MHZ_SEL) >> BP_CCM_ANALOG_PLL_ARM_LVDS_24MHZ_SEL)
  227. //! @brief Format value for bitfield CCM_ANALOG_PLL_ARM_LVDS_24MHZ_SEL.
  228. #define BF_CCM_ANALOG_PLL_ARM_LVDS_24MHZ_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_ARM_LVDS_24MHZ_SEL) & BM_CCM_ANALOG_PLL_ARM_LVDS_24MHZ_SEL)
  229. #ifndef __LANGUAGE_ASM__
  230. //! @brief Set the LVDS_24MHZ_SEL field to a new value.
  231. #define BW_CCM_ANALOG_PLL_ARM_LVDS_24MHZ_SEL(v) BF_CS1(CCM_ANALOG_PLL_ARM, LVDS_24MHZ_SEL, v)
  232. #endif
  233. //@}
  234. /*! @name Register CCM_ANALOG_PLL_ARM, field PLL_SEL[19] (RW)
  235. *
  236. * Reserved
  237. */
  238. //@{
  239. #define BP_CCM_ANALOG_PLL_ARM_PLL_SEL (19) //!< Bit position for CCM_ANALOG_PLL_ARM_PLL_SEL.
  240. #define BM_CCM_ANALOG_PLL_ARM_PLL_SEL (0x00080000) //!< Bit mask for CCM_ANALOG_PLL_ARM_PLL_SEL.
  241. //! @brief Get value of CCM_ANALOG_PLL_ARM_PLL_SEL from a register value.
  242. #define BG_CCM_ANALOG_PLL_ARM_PLL_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_ARM_PLL_SEL) >> BP_CCM_ANALOG_PLL_ARM_PLL_SEL)
  243. //! @brief Format value for bitfield CCM_ANALOG_PLL_ARM_PLL_SEL.
  244. #define BF_CCM_ANALOG_PLL_ARM_PLL_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_ARM_PLL_SEL) & BM_CCM_ANALOG_PLL_ARM_PLL_SEL)
  245. #ifndef __LANGUAGE_ASM__
  246. //! @brief Set the PLL_SEL field to a new value.
  247. #define BW_CCM_ANALOG_PLL_ARM_PLL_SEL(v) BF_CS1(CCM_ANALOG_PLL_ARM, PLL_SEL, v)
  248. #endif
  249. //@}
  250. /*! @name Register CCM_ANALOG_PLL_ARM, field LOCK[31] (RO)
  251. *
  252. * 1 - PLL is currently locked. 0 - PLL is not currently locked.
  253. */
  254. //@{
  255. #define BP_CCM_ANALOG_PLL_ARM_LOCK (31) //!< Bit position for CCM_ANALOG_PLL_ARM_LOCK.
  256. #define BM_CCM_ANALOG_PLL_ARM_LOCK (0x80000000) //!< Bit mask for CCM_ANALOG_PLL_ARM_LOCK.
  257. //! @brief Get value of CCM_ANALOG_PLL_ARM_LOCK from a register value.
  258. #define BG_CCM_ANALOG_PLL_ARM_LOCK(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_ARM_LOCK) >> BP_CCM_ANALOG_PLL_ARM_LOCK)
  259. //@}
  260. //-------------------------------------------------------------------------------------------
  261. // HW_CCM_ANALOG_PLL_USB1 - Analog USB1 480MHz PLL Control Register
  262. //-------------------------------------------------------------------------------------------
  263. #ifndef __LANGUAGE_ASM__
  264. /*!
  265. * @brief HW_CCM_ANALOG_PLL_USB1 - Analog USB1 480MHz PLL Control Register (RW)
  266. *
  267. * Reset value: 0x00012000
  268. *
  269. * The control register provides control for USBPHY0 480MHz PLL.
  270. */
  271. typedef union _hw_ccm_analog_pll_usb1
  272. {
  273. reg32_t U;
  274. struct _hw_ccm_analog_pll_usb1_bitfields
  275. {
  276. unsigned DIV_SELECT : 2; //!< [1:0] This field controls the pll loop divider.
  277. unsigned RESERVED0 : 4; //!< [5:2] Always set to zero (0).
  278. unsigned EN_USB_CLKS : 1; //!< [6] Powers the 9-phase PLL outputs for USBPHYn.
  279. unsigned RESERVED1 : 5; //!< [11:7] Always set to zero (0).
  280. unsigned POWER : 1; //!< [12] Powers up the PLL.
  281. unsigned ENABLE : 1; //!< [13] Enable the PLL clock output.
  282. unsigned BYPASS_CLK_SRC : 2; //!< [15:14] Determines the bypass source.
  283. unsigned BYPASS : 1; //!< [16] Bypass the pll.
  284. unsigned RESERVED2 : 14; //!< [30:17] Always set to zero (0).
  285. unsigned LOCK : 1; //!< [31] 1 - PLL is currently locked.
  286. } B;
  287. } hw_ccm_analog_pll_usb1_t;
  288. #endif
  289. /*!
  290. * @name Constants and macros for entire CCM_ANALOG_PLL_USB1 register
  291. */
  292. //@{
  293. #define HW_CCM_ANALOG_PLL_USB1_ADDR (REGS_CCM_ANALOG_BASE + 0x10)
  294. #define HW_CCM_ANALOG_PLL_USB1_SET_ADDR (HW_CCM_ANALOG_PLL_USB1_ADDR + 0x4)
  295. #define HW_CCM_ANALOG_PLL_USB1_CLR_ADDR (HW_CCM_ANALOG_PLL_USB1_ADDR + 0x8)
  296. #define HW_CCM_ANALOG_PLL_USB1_TOG_ADDR (HW_CCM_ANALOG_PLL_USB1_ADDR + 0xC)
  297. #ifndef __LANGUAGE_ASM__
  298. #define HW_CCM_ANALOG_PLL_USB1 (*(volatile hw_ccm_analog_pll_usb1_t *) HW_CCM_ANALOG_PLL_USB1_ADDR)
  299. #define HW_CCM_ANALOG_PLL_USB1_RD() (HW_CCM_ANALOG_PLL_USB1.U)
  300. #define HW_CCM_ANALOG_PLL_USB1_WR(v) (HW_CCM_ANALOG_PLL_USB1.U = (v))
  301. #define HW_CCM_ANALOG_PLL_USB1_SET(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PLL_USB1_SET_ADDR) = (v))
  302. #define HW_CCM_ANALOG_PLL_USB1_CLR(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PLL_USB1_CLR_ADDR) = (v))
  303. #define HW_CCM_ANALOG_PLL_USB1_TOG(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PLL_USB1_TOG_ADDR) = (v))
  304. #endif
  305. //@}
  306. /*
  307. * constants & macros for individual CCM_ANALOG_PLL_USB1 bitfields
  308. */
  309. /*! @name Register CCM_ANALOG_PLL_USB1, field DIV_SELECT[1:0] (RW)
  310. *
  311. * This field controls the pll loop divider. 0 - Fout=Fref*20; 1 - Fout=Fref*22.
  312. */
  313. //@{
  314. #define BP_CCM_ANALOG_PLL_USB1_DIV_SELECT (0) //!< Bit position for CCM_ANALOG_PLL_USB1_DIV_SELECT.
  315. #define BM_CCM_ANALOG_PLL_USB1_DIV_SELECT (0x00000003) //!< Bit mask for CCM_ANALOG_PLL_USB1_DIV_SELECT.
  316. //! @brief Get value of CCM_ANALOG_PLL_USB1_DIV_SELECT from a register value.
  317. #define BG_CCM_ANALOG_PLL_USB1_DIV_SELECT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_USB1_DIV_SELECT) >> BP_CCM_ANALOG_PLL_USB1_DIV_SELECT)
  318. //! @brief Format value for bitfield CCM_ANALOG_PLL_USB1_DIV_SELECT.
  319. #define BF_CCM_ANALOG_PLL_USB1_DIV_SELECT(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_USB1_DIV_SELECT) & BM_CCM_ANALOG_PLL_USB1_DIV_SELECT)
  320. #ifndef __LANGUAGE_ASM__
  321. //! @brief Set the DIV_SELECT field to a new value.
  322. #define BW_CCM_ANALOG_PLL_USB1_DIV_SELECT(v) BF_CS1(CCM_ANALOG_PLL_USB1, DIV_SELECT, v)
  323. #endif
  324. //@}
  325. /*! @name Register CCM_ANALOG_PLL_USB1, field EN_USB_CLKS[6] (RW)
  326. *
  327. * Powers the 9-phase PLL outputs for USBPHYn. Additionally, the UTMI clock gate must be deasserted
  328. * in the USBPHYn to enable USBn operation (clear CLKGATE bit in USBPHYn_CTRL). This bit will be set
  329. * automatically when USBPHYn remote wakeup event occurs.
  330. *
  331. * Values:
  332. * - 0 - PLL outputs for USBPHYn off.
  333. * - 1 - PLL outputs for USBPHYn on.
  334. */
  335. //@{
  336. #define BP_CCM_ANALOG_PLL_USB1_EN_USB_CLKS (6) //!< Bit position for CCM_ANALOG_PLL_USB1_EN_USB_CLKS.
  337. #define BM_CCM_ANALOG_PLL_USB1_EN_USB_CLKS (0x00000040) //!< Bit mask for CCM_ANALOG_PLL_USB1_EN_USB_CLKS.
  338. //! @brief Get value of CCM_ANALOG_PLL_USB1_EN_USB_CLKS from a register value.
  339. #define BG_CCM_ANALOG_PLL_USB1_EN_USB_CLKS(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_USB1_EN_USB_CLKS) >> BP_CCM_ANALOG_PLL_USB1_EN_USB_CLKS)
  340. //! @brief Format value for bitfield CCM_ANALOG_PLL_USB1_EN_USB_CLKS.
  341. #define BF_CCM_ANALOG_PLL_USB1_EN_USB_CLKS(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_USB1_EN_USB_CLKS) & BM_CCM_ANALOG_PLL_USB1_EN_USB_CLKS)
  342. #ifndef __LANGUAGE_ASM__
  343. //! @brief Set the EN_USB_CLKS field to a new value.
  344. #define BW_CCM_ANALOG_PLL_USB1_EN_USB_CLKS(v) BF_CS1(CCM_ANALOG_PLL_USB1, EN_USB_CLKS, v)
  345. #endif
  346. //@}
  347. /*! @name Register CCM_ANALOG_PLL_USB1, field POWER[12] (RW)
  348. *
  349. * Powers up the PLL. This bit will be set automatically when USBPHY0 remote wakeup event happens.
  350. */
  351. //@{
  352. #define BP_CCM_ANALOG_PLL_USB1_POWER (12) //!< Bit position for CCM_ANALOG_PLL_USB1_POWER.
  353. #define BM_CCM_ANALOG_PLL_USB1_POWER (0x00001000) //!< Bit mask for CCM_ANALOG_PLL_USB1_POWER.
  354. //! @brief Get value of CCM_ANALOG_PLL_USB1_POWER from a register value.
  355. #define BG_CCM_ANALOG_PLL_USB1_POWER(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_USB1_POWER) >> BP_CCM_ANALOG_PLL_USB1_POWER)
  356. //! @brief Format value for bitfield CCM_ANALOG_PLL_USB1_POWER.
  357. #define BF_CCM_ANALOG_PLL_USB1_POWER(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_USB1_POWER) & BM_CCM_ANALOG_PLL_USB1_POWER)
  358. #ifndef __LANGUAGE_ASM__
  359. //! @brief Set the POWER field to a new value.
  360. #define BW_CCM_ANALOG_PLL_USB1_POWER(v) BF_CS1(CCM_ANALOG_PLL_USB1, POWER, v)
  361. #endif
  362. //@}
  363. /*! @name Register CCM_ANALOG_PLL_USB1, field ENABLE[13] (RW)
  364. *
  365. * Enable the PLL clock output.
  366. */
  367. //@{
  368. #define BP_CCM_ANALOG_PLL_USB1_ENABLE (13) //!< Bit position for CCM_ANALOG_PLL_USB1_ENABLE.
  369. #define BM_CCM_ANALOG_PLL_USB1_ENABLE (0x00002000) //!< Bit mask for CCM_ANALOG_PLL_USB1_ENABLE.
  370. //! @brief Get value of CCM_ANALOG_PLL_USB1_ENABLE from a register value.
  371. #define BG_CCM_ANALOG_PLL_USB1_ENABLE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_USB1_ENABLE) >> BP_CCM_ANALOG_PLL_USB1_ENABLE)
  372. //! @brief Format value for bitfield CCM_ANALOG_PLL_USB1_ENABLE.
  373. #define BF_CCM_ANALOG_PLL_USB1_ENABLE(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_USB1_ENABLE) & BM_CCM_ANALOG_PLL_USB1_ENABLE)
  374. #ifndef __LANGUAGE_ASM__
  375. //! @brief Set the ENABLE field to a new value.
  376. #define BW_CCM_ANALOG_PLL_USB1_ENABLE(v) BF_CS1(CCM_ANALOG_PLL_USB1, ENABLE, v)
  377. #endif
  378. //@}
  379. /*! @name Register CCM_ANALOG_PLL_USB1, field BYPASS_CLK_SRC[15:14] (RW)
  380. *
  381. * Determines the bypass source.
  382. *
  383. * Values:
  384. * - REF_CLK_24M = 0x0 - Select the 24MHz oscillator as source.
  385. * - CLK1 = 0x1 - Select the CLK1_N / CLK1_P as source.
  386. * - CLK2 = 0x2 - Select the CLK2_N / CLK2_P as source.
  387. * - XOR = 0x3 - Select the XOR of CLK1_N / CLK1_P and CLK2_N / CLK2_P as source.
  388. */
  389. //@{
  390. #define BP_CCM_ANALOG_PLL_USB1_BYPASS_CLK_SRC (14) //!< Bit position for CCM_ANALOG_PLL_USB1_BYPASS_CLK_SRC.
  391. #define BM_CCM_ANALOG_PLL_USB1_BYPASS_CLK_SRC (0x0000c000) //!< Bit mask for CCM_ANALOG_PLL_USB1_BYPASS_CLK_SRC.
  392. //! @brief Get value of CCM_ANALOG_PLL_USB1_BYPASS_CLK_SRC from a register value.
  393. #define BG_CCM_ANALOG_PLL_USB1_BYPASS_CLK_SRC(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_USB1_BYPASS_CLK_SRC) >> BP_CCM_ANALOG_PLL_USB1_BYPASS_CLK_SRC)
  394. //! @brief Format value for bitfield CCM_ANALOG_PLL_USB1_BYPASS_CLK_SRC.
  395. #define BF_CCM_ANALOG_PLL_USB1_BYPASS_CLK_SRC(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_USB1_BYPASS_CLK_SRC) & BM_CCM_ANALOG_PLL_USB1_BYPASS_CLK_SRC)
  396. #ifndef __LANGUAGE_ASM__
  397. //! @brief Set the BYPASS_CLK_SRC field to a new value.
  398. #define BW_CCM_ANALOG_PLL_USB1_BYPASS_CLK_SRC(v) BF_CS1(CCM_ANALOG_PLL_USB1, BYPASS_CLK_SRC, v)
  399. #endif
  400. //! @brief Macro to simplify usage of value macros.
  401. #define BF_CCM_ANALOG_PLL_USB1_BYPASS_CLK_SRC_V(v) BF_CCM_ANALOG_PLL_USB1_BYPASS_CLK_SRC(BV_CCM_ANALOG_PLL_USB1_BYPASS_CLK_SRC__##v)
  402. #define BV_CCM_ANALOG_PLL_USB1_BYPASS_CLK_SRC__REF_CLK_24M (0x0) //!< Select the 24MHz oscillator as source.
  403. #define BV_CCM_ANALOG_PLL_USB1_BYPASS_CLK_SRC__CLK1 (0x1) //!< Select the CLK1_N / CLK1_P as source.
  404. #define BV_CCM_ANALOG_PLL_USB1_BYPASS_CLK_SRC__CLK2 (0x2) //!< Select the CLK2_N / CLK2_P as source.
  405. #define BV_CCM_ANALOG_PLL_USB1_BYPASS_CLK_SRC__XOR (0x3) //!< Select the XOR of CLK1_N / CLK1_P and CLK2_N / CLK2_P as source.
  406. //@}
  407. /*! @name Register CCM_ANALOG_PLL_USB1, field BYPASS[16] (RW)
  408. *
  409. * Bypass the pll.
  410. */
  411. //@{
  412. #define BP_CCM_ANALOG_PLL_USB1_BYPASS (16) //!< Bit position for CCM_ANALOG_PLL_USB1_BYPASS.
  413. #define BM_CCM_ANALOG_PLL_USB1_BYPASS (0x00010000) //!< Bit mask for CCM_ANALOG_PLL_USB1_BYPASS.
  414. //! @brief Get value of CCM_ANALOG_PLL_USB1_BYPASS from a register value.
  415. #define BG_CCM_ANALOG_PLL_USB1_BYPASS(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_USB1_BYPASS) >> BP_CCM_ANALOG_PLL_USB1_BYPASS)
  416. //! @brief Format value for bitfield CCM_ANALOG_PLL_USB1_BYPASS.
  417. #define BF_CCM_ANALOG_PLL_USB1_BYPASS(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_USB1_BYPASS) & BM_CCM_ANALOG_PLL_USB1_BYPASS)
  418. #ifndef __LANGUAGE_ASM__
  419. //! @brief Set the BYPASS field to a new value.
  420. #define BW_CCM_ANALOG_PLL_USB1_BYPASS(v) BF_CS1(CCM_ANALOG_PLL_USB1, BYPASS, v)
  421. #endif
  422. //@}
  423. /*! @name Register CCM_ANALOG_PLL_USB1, field LOCK[31] (RO)
  424. *
  425. * 1 - PLL is currently locked. 0 - PLL is not currently locked.
  426. */
  427. //@{
  428. #define BP_CCM_ANALOG_PLL_USB1_LOCK (31) //!< Bit position for CCM_ANALOG_PLL_USB1_LOCK.
  429. #define BM_CCM_ANALOG_PLL_USB1_LOCK (0x80000000) //!< Bit mask for CCM_ANALOG_PLL_USB1_LOCK.
  430. //! @brief Get value of CCM_ANALOG_PLL_USB1_LOCK from a register value.
  431. #define BG_CCM_ANALOG_PLL_USB1_LOCK(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_USB1_LOCK) >> BP_CCM_ANALOG_PLL_USB1_LOCK)
  432. //@}
  433. //-------------------------------------------------------------------------------------------
  434. // HW_CCM_ANALOG_PLL_USB2 - Analog USB2 480MHz PLL Control Register
  435. //-------------------------------------------------------------------------------------------
  436. #ifndef __LANGUAGE_ASM__
  437. /*!
  438. * @brief HW_CCM_ANALOG_PLL_USB2 - Analog USB2 480MHz PLL Control Register (RW)
  439. *
  440. * Reset value: 0x00012000
  441. *
  442. * The control register provides control for USBPHY1 480MHz PLL.
  443. */
  444. typedef union _hw_ccm_analog_pll_usb2
  445. {
  446. reg32_t U;
  447. struct _hw_ccm_analog_pll_usb2_bitfields
  448. {
  449. unsigned DIV_SELECT : 2; //!< [1:0] This field controls the pll loop divider.
  450. unsigned RESERVED0 : 4; //!< [5:2] Always set to zero (0).
  451. unsigned EN_USB_CLKS : 1; //!< [6] 0: 8-phase PLL outputs for USBPHY1 are powered down.
  452. unsigned RESERVED1 : 5; //!< [11:7] Always set to zero (0).
  453. unsigned POWER : 1; //!< [12] Powers up the PLL.
  454. unsigned ENABLE : 1; //!< [13] Enable the PLL clock output.
  455. unsigned BYPASS_CLK_SRC : 2; //!< [15:14] Determines the bypass source.
  456. unsigned BYPASS : 1; //!< [16] Bypass the pll.
  457. unsigned RESERVED2 : 14; //!< [30:17] Always set to zero (0).
  458. unsigned LOCK : 1; //!< [31] 1 - PLL is currently locked.
  459. } B;
  460. } hw_ccm_analog_pll_usb2_t;
  461. #endif
  462. /*!
  463. * @name Constants and macros for entire CCM_ANALOG_PLL_USB2 register
  464. */
  465. //@{
  466. #define HW_CCM_ANALOG_PLL_USB2_ADDR (REGS_CCM_ANALOG_BASE + 0x20)
  467. #define HW_CCM_ANALOG_PLL_USB2_SET_ADDR (HW_CCM_ANALOG_PLL_USB2_ADDR + 0x4)
  468. #define HW_CCM_ANALOG_PLL_USB2_CLR_ADDR (HW_CCM_ANALOG_PLL_USB2_ADDR + 0x8)
  469. #define HW_CCM_ANALOG_PLL_USB2_TOG_ADDR (HW_CCM_ANALOG_PLL_USB2_ADDR + 0xC)
  470. #ifndef __LANGUAGE_ASM__
  471. #define HW_CCM_ANALOG_PLL_USB2 (*(volatile hw_ccm_analog_pll_usb2_t *) HW_CCM_ANALOG_PLL_USB2_ADDR)
  472. #define HW_CCM_ANALOG_PLL_USB2_RD() (HW_CCM_ANALOG_PLL_USB2.U)
  473. #define HW_CCM_ANALOG_PLL_USB2_WR(v) (HW_CCM_ANALOG_PLL_USB2.U = (v))
  474. #define HW_CCM_ANALOG_PLL_USB2_SET(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PLL_USB2_SET_ADDR) = (v))
  475. #define HW_CCM_ANALOG_PLL_USB2_CLR(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PLL_USB2_CLR_ADDR) = (v))
  476. #define HW_CCM_ANALOG_PLL_USB2_TOG(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PLL_USB2_TOG_ADDR) = (v))
  477. #endif
  478. //@}
  479. /*
  480. * constants & macros for individual CCM_ANALOG_PLL_USB2 bitfields
  481. */
  482. /*! @name Register CCM_ANALOG_PLL_USB2, field DIV_SELECT[1:0] (RW)
  483. *
  484. * This field controls the pll loop divider. 0 - Fout=Fref*20; 1 - Fout=Fref*22.
  485. */
  486. //@{
  487. #define BP_CCM_ANALOG_PLL_USB2_DIV_SELECT (0) //!< Bit position for CCM_ANALOG_PLL_USB2_DIV_SELECT.
  488. #define BM_CCM_ANALOG_PLL_USB2_DIV_SELECT (0x00000003) //!< Bit mask for CCM_ANALOG_PLL_USB2_DIV_SELECT.
  489. //! @brief Get value of CCM_ANALOG_PLL_USB2_DIV_SELECT from a register value.
  490. #define BG_CCM_ANALOG_PLL_USB2_DIV_SELECT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_USB2_DIV_SELECT) >> BP_CCM_ANALOG_PLL_USB2_DIV_SELECT)
  491. //! @brief Format value for bitfield CCM_ANALOG_PLL_USB2_DIV_SELECT.
  492. #define BF_CCM_ANALOG_PLL_USB2_DIV_SELECT(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_USB2_DIV_SELECT) & BM_CCM_ANALOG_PLL_USB2_DIV_SELECT)
  493. #ifndef __LANGUAGE_ASM__
  494. //! @brief Set the DIV_SELECT field to a new value.
  495. #define BW_CCM_ANALOG_PLL_USB2_DIV_SELECT(v) BF_CS1(CCM_ANALOG_PLL_USB2, DIV_SELECT, v)
  496. #endif
  497. //@}
  498. /*! @name Register CCM_ANALOG_PLL_USB2, field EN_USB_CLKS[6] (RW)
  499. *
  500. * 0: 8-phase PLL outputs for USBPHY1 are powered down. If set to 1, 8-phase PLL outputs for USBPHY1
  501. * are powered up. Additionally, the utmi clock gate must be deasserted in the USBPHY1 to enable
  502. * USB0 operation (clear CLKGATE bit in USBPHY1_CTRL).This bit will be set automatically when
  503. * USBPHY1 remote wakeup event happens.
  504. */
  505. //@{
  506. #define BP_CCM_ANALOG_PLL_USB2_EN_USB_CLKS (6) //!< Bit position for CCM_ANALOG_PLL_USB2_EN_USB_CLKS.
  507. #define BM_CCM_ANALOG_PLL_USB2_EN_USB_CLKS (0x00000040) //!< Bit mask for CCM_ANALOG_PLL_USB2_EN_USB_CLKS.
  508. //! @brief Get value of CCM_ANALOG_PLL_USB2_EN_USB_CLKS from a register value.
  509. #define BG_CCM_ANALOG_PLL_USB2_EN_USB_CLKS(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_USB2_EN_USB_CLKS) >> BP_CCM_ANALOG_PLL_USB2_EN_USB_CLKS)
  510. //! @brief Format value for bitfield CCM_ANALOG_PLL_USB2_EN_USB_CLKS.
  511. #define BF_CCM_ANALOG_PLL_USB2_EN_USB_CLKS(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_USB2_EN_USB_CLKS) & BM_CCM_ANALOG_PLL_USB2_EN_USB_CLKS)
  512. #ifndef __LANGUAGE_ASM__
  513. //! @brief Set the EN_USB_CLKS field to a new value.
  514. #define BW_CCM_ANALOG_PLL_USB2_EN_USB_CLKS(v) BF_CS1(CCM_ANALOG_PLL_USB2, EN_USB_CLKS, v)
  515. #endif
  516. //@}
  517. /*! @name Register CCM_ANALOG_PLL_USB2, field POWER[12] (RW)
  518. *
  519. * Powers up the PLL. This bit will be set automatically when USBPHY1 remote wakeup event happens.
  520. */
  521. //@{
  522. #define BP_CCM_ANALOG_PLL_USB2_POWER (12) //!< Bit position for CCM_ANALOG_PLL_USB2_POWER.
  523. #define BM_CCM_ANALOG_PLL_USB2_POWER (0x00001000) //!< Bit mask for CCM_ANALOG_PLL_USB2_POWER.
  524. //! @brief Get value of CCM_ANALOG_PLL_USB2_POWER from a register value.
  525. #define BG_CCM_ANALOG_PLL_USB2_POWER(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_USB2_POWER) >> BP_CCM_ANALOG_PLL_USB2_POWER)
  526. //! @brief Format value for bitfield CCM_ANALOG_PLL_USB2_POWER.
  527. #define BF_CCM_ANALOG_PLL_USB2_POWER(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_USB2_POWER) & BM_CCM_ANALOG_PLL_USB2_POWER)
  528. #ifndef __LANGUAGE_ASM__
  529. //! @brief Set the POWER field to a new value.
  530. #define BW_CCM_ANALOG_PLL_USB2_POWER(v) BF_CS1(CCM_ANALOG_PLL_USB2, POWER, v)
  531. #endif
  532. //@}
  533. /*! @name Register CCM_ANALOG_PLL_USB2, field ENABLE[13] (RW)
  534. *
  535. * Enable the PLL clock output.
  536. */
  537. //@{
  538. #define BP_CCM_ANALOG_PLL_USB2_ENABLE (13) //!< Bit position for CCM_ANALOG_PLL_USB2_ENABLE.
  539. #define BM_CCM_ANALOG_PLL_USB2_ENABLE (0x00002000) //!< Bit mask for CCM_ANALOG_PLL_USB2_ENABLE.
  540. //! @brief Get value of CCM_ANALOG_PLL_USB2_ENABLE from a register value.
  541. #define BG_CCM_ANALOG_PLL_USB2_ENABLE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_USB2_ENABLE) >> BP_CCM_ANALOG_PLL_USB2_ENABLE)
  542. //! @brief Format value for bitfield CCM_ANALOG_PLL_USB2_ENABLE.
  543. #define BF_CCM_ANALOG_PLL_USB2_ENABLE(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_USB2_ENABLE) & BM_CCM_ANALOG_PLL_USB2_ENABLE)
  544. #ifndef __LANGUAGE_ASM__
  545. //! @brief Set the ENABLE field to a new value.
  546. #define BW_CCM_ANALOG_PLL_USB2_ENABLE(v) BF_CS1(CCM_ANALOG_PLL_USB2, ENABLE, v)
  547. #endif
  548. //@}
  549. /*! @name Register CCM_ANALOG_PLL_USB2, field BYPASS_CLK_SRC[15:14] (RW)
  550. *
  551. * Determines the bypass source.
  552. *
  553. * Values:
  554. * - REF_CLK_24M = 0x0 - Select the 24MHz oscillator as source.
  555. * - CLK1 = 0x1 - Select the CLK1_N / CLK1_P as source.
  556. * - CLK2 = 0x2 - Select the CLK2_N / CLK2_P as source.
  557. * - XOR = 0x3 - Select the XOR of CLK1_N / CLK1_P and CLK2_N / CLK2_P as source.
  558. */
  559. //@{
  560. #define BP_CCM_ANALOG_PLL_USB2_BYPASS_CLK_SRC (14) //!< Bit position for CCM_ANALOG_PLL_USB2_BYPASS_CLK_SRC.
  561. #define BM_CCM_ANALOG_PLL_USB2_BYPASS_CLK_SRC (0x0000c000) //!< Bit mask for CCM_ANALOG_PLL_USB2_BYPASS_CLK_SRC.
  562. //! @brief Get value of CCM_ANALOG_PLL_USB2_BYPASS_CLK_SRC from a register value.
  563. #define BG_CCM_ANALOG_PLL_USB2_BYPASS_CLK_SRC(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_USB2_BYPASS_CLK_SRC) >> BP_CCM_ANALOG_PLL_USB2_BYPASS_CLK_SRC)
  564. //! @brief Format value for bitfield CCM_ANALOG_PLL_USB2_BYPASS_CLK_SRC.
  565. #define BF_CCM_ANALOG_PLL_USB2_BYPASS_CLK_SRC(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_USB2_BYPASS_CLK_SRC) & BM_CCM_ANALOG_PLL_USB2_BYPASS_CLK_SRC)
  566. #ifndef __LANGUAGE_ASM__
  567. //! @brief Set the BYPASS_CLK_SRC field to a new value.
  568. #define BW_CCM_ANALOG_PLL_USB2_BYPASS_CLK_SRC(v) BF_CS1(CCM_ANALOG_PLL_USB2, BYPASS_CLK_SRC, v)
  569. #endif
  570. //! @brief Macro to simplify usage of value macros.
  571. #define BF_CCM_ANALOG_PLL_USB2_BYPASS_CLK_SRC_V(v) BF_CCM_ANALOG_PLL_USB2_BYPASS_CLK_SRC(BV_CCM_ANALOG_PLL_USB2_BYPASS_CLK_SRC__##v)
  572. #define BV_CCM_ANALOG_PLL_USB2_BYPASS_CLK_SRC__REF_CLK_24M (0x0) //!< Select the 24MHz oscillator as source.
  573. #define BV_CCM_ANALOG_PLL_USB2_BYPASS_CLK_SRC__CLK1 (0x1) //!< Select the CLK1_N / CLK1_P as source.
  574. #define BV_CCM_ANALOG_PLL_USB2_BYPASS_CLK_SRC__CLK2 (0x2) //!< Select the CLK2_N / CLK2_P as source.
  575. #define BV_CCM_ANALOG_PLL_USB2_BYPASS_CLK_SRC__XOR (0x3) //!< Select the XOR of CLK1_N / CLK1_P and CLK2_N / CLK2_P as source.
  576. //@}
  577. /*! @name Register CCM_ANALOG_PLL_USB2, field BYPASS[16] (RW)
  578. *
  579. * Bypass the pll.
  580. */
  581. //@{
  582. #define BP_CCM_ANALOG_PLL_USB2_BYPASS (16) //!< Bit position for CCM_ANALOG_PLL_USB2_BYPASS.
  583. #define BM_CCM_ANALOG_PLL_USB2_BYPASS (0x00010000) //!< Bit mask for CCM_ANALOG_PLL_USB2_BYPASS.
  584. //! @brief Get value of CCM_ANALOG_PLL_USB2_BYPASS from a register value.
  585. #define BG_CCM_ANALOG_PLL_USB2_BYPASS(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_USB2_BYPASS) >> BP_CCM_ANALOG_PLL_USB2_BYPASS)
  586. //! @brief Format value for bitfield CCM_ANALOG_PLL_USB2_BYPASS.
  587. #define BF_CCM_ANALOG_PLL_USB2_BYPASS(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_USB2_BYPASS) & BM_CCM_ANALOG_PLL_USB2_BYPASS)
  588. #ifndef __LANGUAGE_ASM__
  589. //! @brief Set the BYPASS field to a new value.
  590. #define BW_CCM_ANALOG_PLL_USB2_BYPASS(v) BF_CS1(CCM_ANALOG_PLL_USB2, BYPASS, v)
  591. #endif
  592. //@}
  593. /*! @name Register CCM_ANALOG_PLL_USB2, field LOCK[31] (RO)
  594. *
  595. * 1 - PLL is currently locked. 0 - PLL is not currently locked.
  596. */
  597. //@{
  598. #define BP_CCM_ANALOG_PLL_USB2_LOCK (31) //!< Bit position for CCM_ANALOG_PLL_USB2_LOCK.
  599. #define BM_CCM_ANALOG_PLL_USB2_LOCK (0x80000000) //!< Bit mask for CCM_ANALOG_PLL_USB2_LOCK.
  600. //! @brief Get value of CCM_ANALOG_PLL_USB2_LOCK from a register value.
  601. #define BG_CCM_ANALOG_PLL_USB2_LOCK(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_USB2_LOCK) >> BP_CCM_ANALOG_PLL_USB2_LOCK)
  602. //@}
  603. //-------------------------------------------------------------------------------------------
  604. // HW_CCM_ANALOG_PLL_SYS - Analog System PLL Control Register
  605. //-------------------------------------------------------------------------------------------
  606. #ifndef __LANGUAGE_ASM__
  607. /*!
  608. * @brief HW_CCM_ANALOG_PLL_SYS - Analog System PLL Control Register (RW)
  609. *
  610. * Reset value: 0x00013001
  611. *
  612. * The control register provides control for the 528MHz PLL.
  613. */
  614. typedef union _hw_ccm_analog_pll_sys
  615. {
  616. reg32_t U;
  617. struct _hw_ccm_analog_pll_sys_bitfields
  618. {
  619. unsigned DIV_SELECT : 1; //!< [0] This field controls the pll loop divider.
  620. unsigned RESERVED0 : 11; //!< [11:1] Reserved.
  621. unsigned POWERDOWN : 1; //!< [12] Powers down the PLL.
  622. unsigned ENABLE : 1; //!< [13] Enable PLL output
  623. unsigned BYPASS_CLK_SRC : 2; //!< [15:14] Determines the bypass source.
  624. unsigned BYPASS : 1; //!< [16] Bypass the pll.
  625. unsigned RESERVED1 : 1; //!< [17] Reserved
  626. unsigned PFD_OFFSET_EN : 1; //!< [18] Enables an offset in the phase frequency detector.
  627. unsigned RESERVED2 : 12; //!< [30:19] Always set to zero (0).
  628. unsigned LOCK : 1; //!< [31] 1 - PLL is currently locked; 0 - PLL is not currently locked.
  629. } B;
  630. } hw_ccm_analog_pll_sys_t;
  631. #endif
  632. /*!
  633. * @name Constants and macros for entire CCM_ANALOG_PLL_SYS register
  634. */
  635. //@{
  636. #define HW_CCM_ANALOG_PLL_SYS_ADDR (REGS_CCM_ANALOG_BASE + 0x30)
  637. #define HW_CCM_ANALOG_PLL_SYS_SET_ADDR (HW_CCM_ANALOG_PLL_SYS_ADDR + 0x4)
  638. #define HW_CCM_ANALOG_PLL_SYS_CLR_ADDR (HW_CCM_ANALOG_PLL_SYS_ADDR + 0x8)
  639. #define HW_CCM_ANALOG_PLL_SYS_TOG_ADDR (HW_CCM_ANALOG_PLL_SYS_ADDR + 0xC)
  640. #ifndef __LANGUAGE_ASM__
  641. #define HW_CCM_ANALOG_PLL_SYS (*(volatile hw_ccm_analog_pll_sys_t *) HW_CCM_ANALOG_PLL_SYS_ADDR)
  642. #define HW_CCM_ANALOG_PLL_SYS_RD() (HW_CCM_ANALOG_PLL_SYS.U)
  643. #define HW_CCM_ANALOG_PLL_SYS_WR(v) (HW_CCM_ANALOG_PLL_SYS.U = (v))
  644. #define HW_CCM_ANALOG_PLL_SYS_SET(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PLL_SYS_SET_ADDR) = (v))
  645. #define HW_CCM_ANALOG_PLL_SYS_CLR(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PLL_SYS_CLR_ADDR) = (v))
  646. #define HW_CCM_ANALOG_PLL_SYS_TOG(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PLL_SYS_TOG_ADDR) = (v))
  647. #endif
  648. //@}
  649. /*
  650. * constants & macros for individual CCM_ANALOG_PLL_SYS bitfields
  651. */
  652. /*! @name Register CCM_ANALOG_PLL_SYS, field DIV_SELECT[0] (RW)
  653. *
  654. * This field controls the pll loop divider. 0 - Fout=Fref*20; 1 - Fout=Fref*22.
  655. */
  656. //@{
  657. #define BP_CCM_ANALOG_PLL_SYS_DIV_SELECT (0) //!< Bit position for CCM_ANALOG_PLL_SYS_DIV_SELECT.
  658. #define BM_CCM_ANALOG_PLL_SYS_DIV_SELECT (0x00000001) //!< Bit mask for CCM_ANALOG_PLL_SYS_DIV_SELECT.
  659. //! @brief Get value of CCM_ANALOG_PLL_SYS_DIV_SELECT from a register value.
  660. #define BG_CCM_ANALOG_PLL_SYS_DIV_SELECT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_SYS_DIV_SELECT) >> BP_CCM_ANALOG_PLL_SYS_DIV_SELECT)
  661. //! @brief Format value for bitfield CCM_ANALOG_PLL_SYS_DIV_SELECT.
  662. #define BF_CCM_ANALOG_PLL_SYS_DIV_SELECT(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_SYS_DIV_SELECT) & BM_CCM_ANALOG_PLL_SYS_DIV_SELECT)
  663. #ifndef __LANGUAGE_ASM__
  664. //! @brief Set the DIV_SELECT field to a new value.
  665. #define BW_CCM_ANALOG_PLL_SYS_DIV_SELECT(v) BF_CS1(CCM_ANALOG_PLL_SYS, DIV_SELECT, v)
  666. #endif
  667. //@}
  668. /*! @name Register CCM_ANALOG_PLL_SYS, field POWERDOWN[12] (RW)
  669. *
  670. * Powers down the PLL.
  671. */
  672. //@{
  673. #define BP_CCM_ANALOG_PLL_SYS_POWERDOWN (12) //!< Bit position for CCM_ANALOG_PLL_SYS_POWERDOWN.
  674. #define BM_CCM_ANALOG_PLL_SYS_POWERDOWN (0x00001000) //!< Bit mask for CCM_ANALOG_PLL_SYS_POWERDOWN.
  675. //! @brief Get value of CCM_ANALOG_PLL_SYS_POWERDOWN from a register value.
  676. #define BG_CCM_ANALOG_PLL_SYS_POWERDOWN(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_SYS_POWERDOWN) >> BP_CCM_ANALOG_PLL_SYS_POWERDOWN)
  677. //! @brief Format value for bitfield CCM_ANALOG_PLL_SYS_POWERDOWN.
  678. #define BF_CCM_ANALOG_PLL_SYS_POWERDOWN(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_SYS_POWERDOWN) & BM_CCM_ANALOG_PLL_SYS_POWERDOWN)
  679. #ifndef __LANGUAGE_ASM__
  680. //! @brief Set the POWERDOWN field to a new value.
  681. #define BW_CCM_ANALOG_PLL_SYS_POWERDOWN(v) BF_CS1(CCM_ANALOG_PLL_SYS, POWERDOWN, v)
  682. #endif
  683. //@}
  684. /*! @name Register CCM_ANALOG_PLL_SYS, field ENABLE[13] (RW)
  685. *
  686. * Enable PLL output
  687. */
  688. //@{
  689. #define BP_CCM_ANALOG_PLL_SYS_ENABLE (13) //!< Bit position for CCM_ANALOG_PLL_SYS_ENABLE.
  690. #define BM_CCM_ANALOG_PLL_SYS_ENABLE (0x00002000) //!< Bit mask for CCM_ANALOG_PLL_SYS_ENABLE.
  691. //! @brief Get value of CCM_ANALOG_PLL_SYS_ENABLE from a register value.
  692. #define BG_CCM_ANALOG_PLL_SYS_ENABLE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_SYS_ENABLE) >> BP_CCM_ANALOG_PLL_SYS_ENABLE)
  693. //! @brief Format value for bitfield CCM_ANALOG_PLL_SYS_ENABLE.
  694. #define BF_CCM_ANALOG_PLL_SYS_ENABLE(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_SYS_ENABLE) & BM_CCM_ANALOG_PLL_SYS_ENABLE)
  695. #ifndef __LANGUAGE_ASM__
  696. //! @brief Set the ENABLE field to a new value.
  697. #define BW_CCM_ANALOG_PLL_SYS_ENABLE(v) BF_CS1(CCM_ANALOG_PLL_SYS, ENABLE, v)
  698. #endif
  699. //@}
  700. /*! @name Register CCM_ANALOG_PLL_SYS, field BYPASS_CLK_SRC[15:14] (RW)
  701. *
  702. * Determines the bypass source.
  703. *
  704. * Values:
  705. * - REF_CLK_24M = 0x0 - Select the 24MHz oscillator as source.
  706. * - CLK1 = 0x1 - Select the CLK1_N / CLK1_P as source.
  707. * - CLK2 = 0x2 - Select the CLK2_N / CLK2_P as source.
  708. * - XOR = 0x3 - Select the XOR of CLK1_N / CLK1_P and CLK2_N / CLK2_P as source.
  709. */
  710. //@{
  711. #define BP_CCM_ANALOG_PLL_SYS_BYPASS_CLK_SRC (14) //!< Bit position for CCM_ANALOG_PLL_SYS_BYPASS_CLK_SRC.
  712. #define BM_CCM_ANALOG_PLL_SYS_BYPASS_CLK_SRC (0x0000c000) //!< Bit mask for CCM_ANALOG_PLL_SYS_BYPASS_CLK_SRC.
  713. //! @brief Get value of CCM_ANALOG_PLL_SYS_BYPASS_CLK_SRC from a register value.
  714. #define BG_CCM_ANALOG_PLL_SYS_BYPASS_CLK_SRC(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_SYS_BYPASS_CLK_SRC) >> BP_CCM_ANALOG_PLL_SYS_BYPASS_CLK_SRC)
  715. //! @brief Format value for bitfield CCM_ANALOG_PLL_SYS_BYPASS_CLK_SRC.
  716. #define BF_CCM_ANALOG_PLL_SYS_BYPASS_CLK_SRC(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_SYS_BYPASS_CLK_SRC) & BM_CCM_ANALOG_PLL_SYS_BYPASS_CLK_SRC)
  717. #ifndef __LANGUAGE_ASM__
  718. //! @brief Set the BYPASS_CLK_SRC field to a new value.
  719. #define BW_CCM_ANALOG_PLL_SYS_BYPASS_CLK_SRC(v) BF_CS1(CCM_ANALOG_PLL_SYS, BYPASS_CLK_SRC, v)
  720. #endif
  721. //! @brief Macro to simplify usage of value macros.
  722. #define BF_CCM_ANALOG_PLL_SYS_BYPASS_CLK_SRC_V(v) BF_CCM_ANALOG_PLL_SYS_BYPASS_CLK_SRC(BV_CCM_ANALOG_PLL_SYS_BYPASS_CLK_SRC__##v)
  723. #define BV_CCM_ANALOG_PLL_SYS_BYPASS_CLK_SRC__REF_CLK_24M (0x0) //!< Select the 24MHz oscillator as source.
  724. #define BV_CCM_ANALOG_PLL_SYS_BYPASS_CLK_SRC__CLK1 (0x1) //!< Select the CLK1_N / CLK1_P as source.
  725. #define BV_CCM_ANALOG_PLL_SYS_BYPASS_CLK_SRC__CLK2 (0x2) //!< Select the CLK2_N / CLK2_P as source.
  726. #define BV_CCM_ANALOG_PLL_SYS_BYPASS_CLK_SRC__XOR (0x3) //!< Select the XOR of CLK1_N / CLK1_P and CLK2_N / CLK2_P as source.
  727. //@}
  728. /*! @name Register CCM_ANALOG_PLL_SYS, field BYPASS[16] (RW)
  729. *
  730. * Bypass the pll.
  731. */
  732. //@{
  733. #define BP_CCM_ANALOG_PLL_SYS_BYPASS (16) //!< Bit position for CCM_ANALOG_PLL_SYS_BYPASS.
  734. #define BM_CCM_ANALOG_PLL_SYS_BYPASS (0x00010000) //!< Bit mask for CCM_ANALOG_PLL_SYS_BYPASS.
  735. //! @brief Get value of CCM_ANALOG_PLL_SYS_BYPASS from a register value.
  736. #define BG_CCM_ANALOG_PLL_SYS_BYPASS(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_SYS_BYPASS) >> BP_CCM_ANALOG_PLL_SYS_BYPASS)
  737. //! @brief Format value for bitfield CCM_ANALOG_PLL_SYS_BYPASS.
  738. #define BF_CCM_ANALOG_PLL_SYS_BYPASS(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_SYS_BYPASS) & BM_CCM_ANALOG_PLL_SYS_BYPASS)
  739. #ifndef __LANGUAGE_ASM__
  740. //! @brief Set the BYPASS field to a new value.
  741. #define BW_CCM_ANALOG_PLL_SYS_BYPASS(v) BF_CS1(CCM_ANALOG_PLL_SYS, BYPASS, v)
  742. #endif
  743. //@}
  744. /*! @name Register CCM_ANALOG_PLL_SYS, field PFD_OFFSET_EN[18] (RW)
  745. *
  746. * Enables an offset in the phase frequency detector.
  747. */
  748. //@{
  749. #define BP_CCM_ANALOG_PLL_SYS_PFD_OFFSET_EN (18) //!< Bit position for CCM_ANALOG_PLL_SYS_PFD_OFFSET_EN.
  750. #define BM_CCM_ANALOG_PLL_SYS_PFD_OFFSET_EN (0x00040000) //!< Bit mask for CCM_ANALOG_PLL_SYS_PFD_OFFSET_EN.
  751. //! @brief Get value of CCM_ANALOG_PLL_SYS_PFD_OFFSET_EN from a register value.
  752. #define BG_CCM_ANALOG_PLL_SYS_PFD_OFFSET_EN(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_SYS_PFD_OFFSET_EN) >> BP_CCM_ANALOG_PLL_SYS_PFD_OFFSET_EN)
  753. //! @brief Format value for bitfield CCM_ANALOG_PLL_SYS_PFD_OFFSET_EN.
  754. #define BF_CCM_ANALOG_PLL_SYS_PFD_OFFSET_EN(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_SYS_PFD_OFFSET_EN) & BM_CCM_ANALOG_PLL_SYS_PFD_OFFSET_EN)
  755. #ifndef __LANGUAGE_ASM__
  756. //! @brief Set the PFD_OFFSET_EN field to a new value.
  757. #define BW_CCM_ANALOG_PLL_SYS_PFD_OFFSET_EN(v) BF_CS1(CCM_ANALOG_PLL_SYS, PFD_OFFSET_EN, v)
  758. #endif
  759. //@}
  760. /*! @name Register CCM_ANALOG_PLL_SYS, field LOCK[31] (RO)
  761. *
  762. * 1 - PLL is currently locked; 0 - PLL is not currently locked.
  763. */
  764. //@{
  765. #define BP_CCM_ANALOG_PLL_SYS_LOCK (31) //!< Bit position for CCM_ANALOG_PLL_SYS_LOCK.
  766. #define BM_CCM_ANALOG_PLL_SYS_LOCK (0x80000000) //!< Bit mask for CCM_ANALOG_PLL_SYS_LOCK.
  767. //! @brief Get value of CCM_ANALOG_PLL_SYS_LOCK from a register value.
  768. #define BG_CCM_ANALOG_PLL_SYS_LOCK(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_SYS_LOCK) >> BP_CCM_ANALOG_PLL_SYS_LOCK)
  769. //@}
  770. //-------------------------------------------------------------------------------------------
  771. // HW_CCM_ANALOG_PLL_SYS_SS - 528MHz System PLL Spread Spectrum Register.
  772. //-------------------------------------------------------------------------------------------
  773. #ifndef __LANGUAGE_ASM__
  774. /*!
  775. * @brief HW_CCM_ANALOG_PLL_SYS_SS - 528MHz System PLL Spread Spectrum Register. (RW)
  776. *
  777. * Reset value: 0x00000000
  778. *
  779. * This register contains the 528 PLL spread spectrum controls.
  780. */
  781. typedef union _hw_ccm_analog_pll_sys_ss
  782. {
  783. reg32_t U;
  784. struct _hw_ccm_analog_pll_sys_ss_bitfields
  785. {
  786. unsigned STEP : 15; //!< [14:0] frequency change step = step/B*24MHz.
  787. unsigned ENABLE : 1; //!< [15] This bit enables the spread spectrum modulation.
  788. unsigned STOP : 16; //!< [31:16] Frequency change = stop/B*24MHz.
  789. } B;
  790. } hw_ccm_analog_pll_sys_ss_t;
  791. #endif
  792. /*!
  793. * @name Constants and macros for entire CCM_ANALOG_PLL_SYS_SS register
  794. */
  795. //@{
  796. #define HW_CCM_ANALOG_PLL_SYS_SS_ADDR (REGS_CCM_ANALOG_BASE + 0x40)
  797. #ifndef __LANGUAGE_ASM__
  798. #define HW_CCM_ANALOG_PLL_SYS_SS (*(volatile hw_ccm_analog_pll_sys_ss_t *) HW_CCM_ANALOG_PLL_SYS_SS_ADDR)
  799. #define HW_CCM_ANALOG_PLL_SYS_SS_RD() (HW_CCM_ANALOG_PLL_SYS_SS.U)
  800. #define HW_CCM_ANALOG_PLL_SYS_SS_WR(v) (HW_CCM_ANALOG_PLL_SYS_SS.U = (v))
  801. #define HW_CCM_ANALOG_PLL_SYS_SS_SET(v) (HW_CCM_ANALOG_PLL_SYS_SS_WR(HW_CCM_ANALOG_PLL_SYS_SS_RD() | (v)))
  802. #define HW_CCM_ANALOG_PLL_SYS_SS_CLR(v) (HW_CCM_ANALOG_PLL_SYS_SS_WR(HW_CCM_ANALOG_PLL_SYS_SS_RD() & ~(v)))
  803. #define HW_CCM_ANALOG_PLL_SYS_SS_TOG(v) (HW_CCM_ANALOG_PLL_SYS_SS_WR(HW_CCM_ANALOG_PLL_SYS_SS_RD() ^ (v)))
  804. #endif
  805. //@}
  806. /*
  807. * constants & macros for individual CCM_ANALOG_PLL_SYS_SS bitfields
  808. */
  809. /*! @name Register CCM_ANALOG_PLL_SYS_SS, field STEP[14:0] (RW)
  810. *
  811. * frequency change step = step/B*24MHz.
  812. */
  813. //@{
  814. #define BP_CCM_ANALOG_PLL_SYS_SS_STEP (0) //!< Bit position for CCM_ANALOG_PLL_SYS_SS_STEP.
  815. #define BM_CCM_ANALOG_PLL_SYS_SS_STEP (0x00007fff) //!< Bit mask for CCM_ANALOG_PLL_SYS_SS_STEP.
  816. //! @brief Get value of CCM_ANALOG_PLL_SYS_SS_STEP from a register value.
  817. #define BG_CCM_ANALOG_PLL_SYS_SS_STEP(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_SYS_SS_STEP) >> BP_CCM_ANALOG_PLL_SYS_SS_STEP)
  818. //! @brief Format value for bitfield CCM_ANALOG_PLL_SYS_SS_STEP.
  819. #define BF_CCM_ANALOG_PLL_SYS_SS_STEP(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_SYS_SS_STEP) & BM_CCM_ANALOG_PLL_SYS_SS_STEP)
  820. #ifndef __LANGUAGE_ASM__
  821. //! @brief Set the STEP field to a new value.
  822. #define BW_CCM_ANALOG_PLL_SYS_SS_STEP(v) (HW_CCM_ANALOG_PLL_SYS_SS_WR((HW_CCM_ANALOG_PLL_SYS_SS_RD() & ~BM_CCM_ANALOG_PLL_SYS_SS_STEP) | BF_CCM_ANALOG_PLL_SYS_SS_STEP(v)))
  823. #endif
  824. //@}
  825. /*! @name Register CCM_ANALOG_PLL_SYS_SS, field ENABLE[15] (RW)
  826. *
  827. * This bit enables the spread spectrum modulation.
  828. */
  829. //@{
  830. #define BP_CCM_ANALOG_PLL_SYS_SS_ENABLE (15) //!< Bit position for CCM_ANALOG_PLL_SYS_SS_ENABLE.
  831. #define BM_CCM_ANALOG_PLL_SYS_SS_ENABLE (0x00008000) //!< Bit mask for CCM_ANALOG_PLL_SYS_SS_ENABLE.
  832. //! @brief Get value of CCM_ANALOG_PLL_SYS_SS_ENABLE from a register value.
  833. #define BG_CCM_ANALOG_PLL_SYS_SS_ENABLE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_SYS_SS_ENABLE) >> BP_CCM_ANALOG_PLL_SYS_SS_ENABLE)
  834. //! @brief Format value for bitfield CCM_ANALOG_PLL_SYS_SS_ENABLE.
  835. #define BF_CCM_ANALOG_PLL_SYS_SS_ENABLE(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_SYS_SS_ENABLE) & BM_CCM_ANALOG_PLL_SYS_SS_ENABLE)
  836. #ifndef __LANGUAGE_ASM__
  837. //! @brief Set the ENABLE field to a new value.
  838. #define BW_CCM_ANALOG_PLL_SYS_SS_ENABLE(v) (HW_CCM_ANALOG_PLL_SYS_SS_WR((HW_CCM_ANALOG_PLL_SYS_SS_RD() & ~BM_CCM_ANALOG_PLL_SYS_SS_ENABLE) | BF_CCM_ANALOG_PLL_SYS_SS_ENABLE(v)))
  839. #endif
  840. //@}
  841. /*! @name Register CCM_ANALOG_PLL_SYS_SS, field STOP[31:16] (RW)
  842. *
  843. * Frequency change = stop/B*24MHz.
  844. */
  845. //@{
  846. #define BP_CCM_ANALOG_PLL_SYS_SS_STOP (16) //!< Bit position for CCM_ANALOG_PLL_SYS_SS_STOP.
  847. #define BM_CCM_ANALOG_PLL_SYS_SS_STOP (0xffff0000) //!< Bit mask for CCM_ANALOG_PLL_SYS_SS_STOP.
  848. //! @brief Get value of CCM_ANALOG_PLL_SYS_SS_STOP from a register value.
  849. #define BG_CCM_ANALOG_PLL_SYS_SS_STOP(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_SYS_SS_STOP) >> BP_CCM_ANALOG_PLL_SYS_SS_STOP)
  850. //! @brief Format value for bitfield CCM_ANALOG_PLL_SYS_SS_STOP.
  851. #define BF_CCM_ANALOG_PLL_SYS_SS_STOP(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_SYS_SS_STOP) & BM_CCM_ANALOG_PLL_SYS_SS_STOP)
  852. #ifndef __LANGUAGE_ASM__
  853. //! @brief Set the STOP field to a new value.
  854. #define BW_CCM_ANALOG_PLL_SYS_SS_STOP(v) (HW_CCM_ANALOG_PLL_SYS_SS_WR((HW_CCM_ANALOG_PLL_SYS_SS_RD() & ~BM_CCM_ANALOG_PLL_SYS_SS_STOP) | BF_CCM_ANALOG_PLL_SYS_SS_STOP(v)))
  855. #endif
  856. //@}
  857. //-------------------------------------------------------------------------------------------
  858. // HW_CCM_ANALOG_PLL_SYS_NUM - Numerator of 528MHz System PLL Fractional Loop Divider Register
  859. //-------------------------------------------------------------------------------------------
  860. #ifndef __LANGUAGE_ASM__
  861. /*!
  862. * @brief HW_CCM_ANALOG_PLL_SYS_NUM - Numerator of 528MHz System PLL Fractional Loop Divider Register (RW)
  863. *
  864. * Reset value: 0x00000000
  865. *
  866. * This register contains the numerator of 528MHz PLL fractional loop divider (signed number).
  867. * Absoulte value should be less than denominator
  868. */
  869. typedef union _hw_ccm_analog_pll_sys_num
  870. {
  871. reg32_t U;
  872. struct _hw_ccm_analog_pll_sys_num_bitfields
  873. {
  874. unsigned A : 30; //!< [29:0] 30 bit numerator (A) of fractional loop divider (signed integer).
  875. unsigned RESERVED0 : 2; //!< [31:30] Always set to zero (0).
  876. } B;
  877. } hw_ccm_analog_pll_sys_num_t;
  878. #endif
  879. /*!
  880. * @name Constants and macros for entire CCM_ANALOG_PLL_SYS_NUM register
  881. */
  882. //@{
  883. #define HW_CCM_ANALOG_PLL_SYS_NUM_ADDR (REGS_CCM_ANALOG_BASE + 0x50)
  884. #ifndef __LANGUAGE_ASM__
  885. #define HW_CCM_ANALOG_PLL_SYS_NUM (*(volatile hw_ccm_analog_pll_sys_num_t *) HW_CCM_ANALOG_PLL_SYS_NUM_ADDR)
  886. #define HW_CCM_ANALOG_PLL_SYS_NUM_RD() (HW_CCM_ANALOG_PLL_SYS_NUM.U)
  887. #define HW_CCM_ANALOG_PLL_SYS_NUM_WR(v) (HW_CCM_ANALOG_PLL_SYS_NUM.U = (v))
  888. #define HW_CCM_ANALOG_PLL_SYS_NUM_SET(v) (HW_CCM_ANALOG_PLL_SYS_NUM_WR(HW_CCM_ANALOG_PLL_SYS_NUM_RD() | (v)))
  889. #define HW_CCM_ANALOG_PLL_SYS_NUM_CLR(v) (HW_CCM_ANALOG_PLL_SYS_NUM_WR(HW_CCM_ANALOG_PLL_SYS_NUM_RD() & ~(v)))
  890. #define HW_CCM_ANALOG_PLL_SYS_NUM_TOG(v) (HW_CCM_ANALOG_PLL_SYS_NUM_WR(HW_CCM_ANALOG_PLL_SYS_NUM_RD() ^ (v)))
  891. #endif
  892. //@}
  893. /*
  894. * constants & macros for individual CCM_ANALOG_PLL_SYS_NUM bitfields
  895. */
  896. /*! @name Register CCM_ANALOG_PLL_SYS_NUM, field A[29:0] (RW)
  897. *
  898. * 30 bit numerator (A) of fractional loop divider (signed integer).
  899. */
  900. //@{
  901. #define BP_CCM_ANALOG_PLL_SYS_NUM_A (0) //!< Bit position for CCM_ANALOG_PLL_SYS_NUM_A.
  902. #define BM_CCM_ANALOG_PLL_SYS_NUM_A (0x3fffffff) //!< Bit mask for CCM_ANALOG_PLL_SYS_NUM_A.
  903. //! @brief Get value of CCM_ANALOG_PLL_SYS_NUM_A from a register value.
  904. #define BG_CCM_ANALOG_PLL_SYS_NUM_A(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_SYS_NUM_A) >> BP_CCM_ANALOG_PLL_SYS_NUM_A)
  905. //! @brief Format value for bitfield CCM_ANALOG_PLL_SYS_NUM_A.
  906. #define BF_CCM_ANALOG_PLL_SYS_NUM_A(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_SYS_NUM_A) & BM_CCM_ANALOG_PLL_SYS_NUM_A)
  907. #ifndef __LANGUAGE_ASM__
  908. //! @brief Set the A field to a new value.
  909. #define BW_CCM_ANALOG_PLL_SYS_NUM_A(v) (HW_CCM_ANALOG_PLL_SYS_NUM_WR((HW_CCM_ANALOG_PLL_SYS_NUM_RD() & ~BM_CCM_ANALOG_PLL_SYS_NUM_A) | BF_CCM_ANALOG_PLL_SYS_NUM_A(v)))
  910. #endif
  911. //@}
  912. //-------------------------------------------------------------------------------------------
  913. // HW_CCM_ANALOG_PLL_SYS_DENOM - Denominator of 528MHz System PLL Fractional Loop Divider Register
  914. //-------------------------------------------------------------------------------------------
  915. #ifndef __LANGUAGE_ASM__
  916. /*!
  917. * @brief HW_CCM_ANALOG_PLL_SYS_DENOM - Denominator of 528MHz System PLL Fractional Loop Divider Register (RW)
  918. *
  919. * Reset value: 0x00000012
  920. *
  921. * This register contains the Denominator of 528MHz PLL fractional loop divider.
  922. */
  923. typedef union _hw_ccm_analog_pll_sys_denom
  924. {
  925. reg32_t U;
  926. struct _hw_ccm_analog_pll_sys_denom_bitfields
  927. {
  928. unsigned B : 30; //!< [29:0] 30 bit Denominator (B) of fractional loop divider (unsigned integer).
  929. unsigned RESERVED0 : 2; //!< [31:30] Always set to zero (0).
  930. } B;
  931. } hw_ccm_analog_pll_sys_denom_t;
  932. #endif
  933. /*!
  934. * @name Constants and macros for entire CCM_ANALOG_PLL_SYS_DENOM register
  935. */
  936. //@{
  937. #define HW_CCM_ANALOG_PLL_SYS_DENOM_ADDR (REGS_CCM_ANALOG_BASE + 0x60)
  938. #ifndef __LANGUAGE_ASM__
  939. #define HW_CCM_ANALOG_PLL_SYS_DENOM (*(volatile hw_ccm_analog_pll_sys_denom_t *) HW_CCM_ANALOG_PLL_SYS_DENOM_ADDR)
  940. #define HW_CCM_ANALOG_PLL_SYS_DENOM_RD() (HW_CCM_ANALOG_PLL_SYS_DENOM.U)
  941. #define HW_CCM_ANALOG_PLL_SYS_DENOM_WR(v) (HW_CCM_ANALOG_PLL_SYS_DENOM.U = (v))
  942. #define HW_CCM_ANALOG_PLL_SYS_DENOM_SET(v) (HW_CCM_ANALOG_PLL_SYS_DENOM_WR(HW_CCM_ANALOG_PLL_SYS_DENOM_RD() | (v)))
  943. #define HW_CCM_ANALOG_PLL_SYS_DENOM_CLR(v) (HW_CCM_ANALOG_PLL_SYS_DENOM_WR(HW_CCM_ANALOG_PLL_SYS_DENOM_RD() & ~(v)))
  944. #define HW_CCM_ANALOG_PLL_SYS_DENOM_TOG(v) (HW_CCM_ANALOG_PLL_SYS_DENOM_WR(HW_CCM_ANALOG_PLL_SYS_DENOM_RD() ^ (v)))
  945. #endif
  946. //@}
  947. /*
  948. * constants & macros for individual CCM_ANALOG_PLL_SYS_DENOM bitfields
  949. */
  950. /*! @name Register CCM_ANALOG_PLL_SYS_DENOM, field B[29:0] (RW)
  951. *
  952. * 30 bit Denominator (B) of fractional loop divider (unsigned integer).
  953. */
  954. //@{
  955. #define BP_CCM_ANALOG_PLL_SYS_DENOM_B (0) //!< Bit position for CCM_ANALOG_PLL_SYS_DENOM_B.
  956. #define BM_CCM_ANALOG_PLL_SYS_DENOM_B (0x3fffffff) //!< Bit mask for CCM_ANALOG_PLL_SYS_DENOM_B.
  957. //! @brief Get value of CCM_ANALOG_PLL_SYS_DENOM_B from a register value.
  958. #define BG_CCM_ANALOG_PLL_SYS_DENOM_B(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_SYS_DENOM_B) >> BP_CCM_ANALOG_PLL_SYS_DENOM_B)
  959. //! @brief Format value for bitfield CCM_ANALOG_PLL_SYS_DENOM_B.
  960. #define BF_CCM_ANALOG_PLL_SYS_DENOM_B(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_SYS_DENOM_B) & BM_CCM_ANALOG_PLL_SYS_DENOM_B)
  961. #ifndef __LANGUAGE_ASM__
  962. //! @brief Set the B field to a new value.
  963. #define BW_CCM_ANALOG_PLL_SYS_DENOM_B(v) (HW_CCM_ANALOG_PLL_SYS_DENOM_WR((HW_CCM_ANALOG_PLL_SYS_DENOM_RD() & ~BM_CCM_ANALOG_PLL_SYS_DENOM_B) | BF_CCM_ANALOG_PLL_SYS_DENOM_B(v)))
  964. #endif
  965. //@}
  966. //-------------------------------------------------------------------------------------------
  967. // HW_CCM_ANALOG_PLL_AUDIO - Analog Audio PLL control Register
  968. //-------------------------------------------------------------------------------------------
  969. #ifndef __LANGUAGE_ASM__
  970. /*!
  971. * @brief HW_CCM_ANALOG_PLL_AUDIO - Analog Audio PLL control Register (RW)
  972. *
  973. * Reset value: 0x00011006
  974. *
  975. * The control register provides control for the audio PLL.
  976. */
  977. typedef union _hw_ccm_analog_pll_audio
  978. {
  979. reg32_t U;
  980. struct _hw_ccm_analog_pll_audio_bitfields
  981. {
  982. unsigned DIV_SELECT : 7; //!< [6:0] This field controls the pll loop divider.
  983. unsigned RESERVED0 : 5; //!< [11:7] Reserved.
  984. unsigned POWERDOWN : 1; //!< [12] Powers down the PLL.
  985. unsigned ENABLE : 1; //!< [13] Enable PLL output
  986. unsigned BYPASS_CLK_SRC : 2; //!< [15:14] Determines the bypass source.
  987. unsigned BYPASS : 1; //!< [16] Bypass the pll.
  988. unsigned RESERVED1 : 1; //!< [17] Revsered
  989. unsigned PFD_OFFSET_EN : 1; //!< [18] Enables an offset in the phase frequency detector.
  990. unsigned POST_DIV_SELECT : 2; //!< [20:19] These bits implement a divider after the PLL, but before the enable and bypass mux.
  991. unsigned SSC_EN : 1; //!< [21] Reserved Bit
  992. unsigned RESERVED2 : 9; //!< [30:22] Always set to zero (0).
  993. unsigned LOCK : 1; //!< [31] 1 - PLL is currently locked.
  994. } B;
  995. } hw_ccm_analog_pll_audio_t;
  996. #endif
  997. /*!
  998. * @name Constants and macros for entire CCM_ANALOG_PLL_AUDIO register
  999. */
  1000. //@{
  1001. #define HW_CCM_ANALOG_PLL_AUDIO_ADDR (REGS_CCM_ANALOG_BASE + 0x70)
  1002. #define HW_CCM_ANALOG_PLL_AUDIO_SET_ADDR (HW_CCM_ANALOG_PLL_AUDIO_ADDR + 0x4)
  1003. #define HW_CCM_ANALOG_PLL_AUDIO_CLR_ADDR (HW_CCM_ANALOG_PLL_AUDIO_ADDR + 0x8)
  1004. #define HW_CCM_ANALOG_PLL_AUDIO_TOG_ADDR (HW_CCM_ANALOG_PLL_AUDIO_ADDR + 0xC)
  1005. #ifndef __LANGUAGE_ASM__
  1006. #define HW_CCM_ANALOG_PLL_AUDIO (*(volatile hw_ccm_analog_pll_audio_t *) HW_CCM_ANALOG_PLL_AUDIO_ADDR)
  1007. #define HW_CCM_ANALOG_PLL_AUDIO_RD() (HW_CCM_ANALOG_PLL_AUDIO.U)
  1008. #define HW_CCM_ANALOG_PLL_AUDIO_WR(v) (HW_CCM_ANALOG_PLL_AUDIO.U = (v))
  1009. #define HW_CCM_ANALOG_PLL_AUDIO_SET(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PLL_AUDIO_SET_ADDR) = (v))
  1010. #define HW_CCM_ANALOG_PLL_AUDIO_CLR(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PLL_AUDIO_CLR_ADDR) = (v))
  1011. #define HW_CCM_ANALOG_PLL_AUDIO_TOG(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PLL_AUDIO_TOG_ADDR) = (v))
  1012. #endif
  1013. //@}
  1014. /*
  1015. * constants & macros for individual CCM_ANALOG_PLL_AUDIO bitfields
  1016. */
  1017. /*! @name Register CCM_ANALOG_PLL_AUDIO, field DIV_SELECT[6:0] (RW)
  1018. *
  1019. * This field controls the pll loop divider. Valid range for DIV_SELECT divider value: 27~54.
  1020. */
  1021. //@{
  1022. #define BP_CCM_ANALOG_PLL_AUDIO_DIV_SELECT (0) //!< Bit position for CCM_ANALOG_PLL_AUDIO_DIV_SELECT.
  1023. #define BM_CCM_ANALOG_PLL_AUDIO_DIV_SELECT (0x0000007f) //!< Bit mask for CCM_ANALOG_PLL_AUDIO_DIV_SELECT.
  1024. //! @brief Get value of CCM_ANALOG_PLL_AUDIO_DIV_SELECT from a register value.
  1025. #define BG_CCM_ANALOG_PLL_AUDIO_DIV_SELECT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_AUDIO_DIV_SELECT) >> BP_CCM_ANALOG_PLL_AUDIO_DIV_SELECT)
  1026. //! @brief Format value for bitfield CCM_ANALOG_PLL_AUDIO_DIV_SELECT.
  1027. #define BF_CCM_ANALOG_PLL_AUDIO_DIV_SELECT(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_AUDIO_DIV_SELECT) & BM_CCM_ANALOG_PLL_AUDIO_DIV_SELECT)
  1028. #ifndef __LANGUAGE_ASM__
  1029. //! @brief Set the DIV_SELECT field to a new value.
  1030. #define BW_CCM_ANALOG_PLL_AUDIO_DIV_SELECT(v) BF_CS1(CCM_ANALOG_PLL_AUDIO, DIV_SELECT, v)
  1031. #endif
  1032. //@}
  1033. /*! @name Register CCM_ANALOG_PLL_AUDIO, field POWERDOWN[12] (RW)
  1034. *
  1035. * Powers down the PLL.
  1036. */
  1037. //@{
  1038. #define BP_CCM_ANALOG_PLL_AUDIO_POWERDOWN (12) //!< Bit position for CCM_ANALOG_PLL_AUDIO_POWERDOWN.
  1039. #define BM_CCM_ANALOG_PLL_AUDIO_POWERDOWN (0x00001000) //!< Bit mask for CCM_ANALOG_PLL_AUDIO_POWERDOWN.
  1040. //! @brief Get value of CCM_ANALOG_PLL_AUDIO_POWERDOWN from a register value.
  1041. #define BG_CCM_ANALOG_PLL_AUDIO_POWERDOWN(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_AUDIO_POWERDOWN) >> BP_CCM_ANALOG_PLL_AUDIO_POWERDOWN)
  1042. //! @brief Format value for bitfield CCM_ANALOG_PLL_AUDIO_POWERDOWN.
  1043. #define BF_CCM_ANALOG_PLL_AUDIO_POWERDOWN(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_AUDIO_POWERDOWN) & BM_CCM_ANALOG_PLL_AUDIO_POWERDOWN)
  1044. #ifndef __LANGUAGE_ASM__
  1045. //! @brief Set the POWERDOWN field to a new value.
  1046. #define BW_CCM_ANALOG_PLL_AUDIO_POWERDOWN(v) BF_CS1(CCM_ANALOG_PLL_AUDIO, POWERDOWN, v)
  1047. #endif
  1048. //@}
  1049. /*! @name Register CCM_ANALOG_PLL_AUDIO, field ENABLE[13] (RW)
  1050. *
  1051. * Enable PLL output
  1052. */
  1053. //@{
  1054. #define BP_CCM_ANALOG_PLL_AUDIO_ENABLE (13) //!< Bit position for CCM_ANALOG_PLL_AUDIO_ENABLE.
  1055. #define BM_CCM_ANALOG_PLL_AUDIO_ENABLE (0x00002000) //!< Bit mask for CCM_ANALOG_PLL_AUDIO_ENABLE.
  1056. //! @brief Get value of CCM_ANALOG_PLL_AUDIO_ENABLE from a register value.
  1057. #define BG_CCM_ANALOG_PLL_AUDIO_ENABLE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_AUDIO_ENABLE) >> BP_CCM_ANALOG_PLL_AUDIO_ENABLE)
  1058. //! @brief Format value for bitfield CCM_ANALOG_PLL_AUDIO_ENABLE.
  1059. #define BF_CCM_ANALOG_PLL_AUDIO_ENABLE(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_AUDIO_ENABLE) & BM_CCM_ANALOG_PLL_AUDIO_ENABLE)
  1060. #ifndef __LANGUAGE_ASM__
  1061. //! @brief Set the ENABLE field to a new value.
  1062. #define BW_CCM_ANALOG_PLL_AUDIO_ENABLE(v) BF_CS1(CCM_ANALOG_PLL_AUDIO, ENABLE, v)
  1063. #endif
  1064. //@}
  1065. /*! @name Register CCM_ANALOG_PLL_AUDIO, field BYPASS_CLK_SRC[15:14] (RW)
  1066. *
  1067. * Determines the bypass source.
  1068. *
  1069. * Values:
  1070. * - REF_CLK_24M = 0x0 - Select the 24MHz oscillator as source.
  1071. * - CLK1 = 0x1 - Select the CLK1_N / CLK1_P as source.
  1072. * - CLK2 = 0x2 - Select the CLK2_N / CLK2_P as source.
  1073. * - XOR = 0x3 - Select the XOR of CLK1_N / CLK1_P and CLK2_N / CLK2_P as source.
  1074. */
  1075. //@{
  1076. #define BP_CCM_ANALOG_PLL_AUDIO_BYPASS_CLK_SRC (14) //!< Bit position for CCM_ANALOG_PLL_AUDIO_BYPASS_CLK_SRC.
  1077. #define BM_CCM_ANALOG_PLL_AUDIO_BYPASS_CLK_SRC (0x0000c000) //!< Bit mask for CCM_ANALOG_PLL_AUDIO_BYPASS_CLK_SRC.
  1078. //! @brief Get value of CCM_ANALOG_PLL_AUDIO_BYPASS_CLK_SRC from a register value.
  1079. #define BG_CCM_ANALOG_PLL_AUDIO_BYPASS_CLK_SRC(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_AUDIO_BYPASS_CLK_SRC) >> BP_CCM_ANALOG_PLL_AUDIO_BYPASS_CLK_SRC)
  1080. //! @brief Format value for bitfield CCM_ANALOG_PLL_AUDIO_BYPASS_CLK_SRC.
  1081. #define BF_CCM_ANALOG_PLL_AUDIO_BYPASS_CLK_SRC(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_AUDIO_BYPASS_CLK_SRC) & BM_CCM_ANALOG_PLL_AUDIO_BYPASS_CLK_SRC)
  1082. #ifndef __LANGUAGE_ASM__
  1083. //! @brief Set the BYPASS_CLK_SRC field to a new value.
  1084. #define BW_CCM_ANALOG_PLL_AUDIO_BYPASS_CLK_SRC(v) BF_CS1(CCM_ANALOG_PLL_AUDIO, BYPASS_CLK_SRC, v)
  1085. #endif
  1086. //! @brief Macro to simplify usage of value macros.
  1087. #define BF_CCM_ANALOG_PLL_AUDIO_BYPASS_CLK_SRC_V(v) BF_CCM_ANALOG_PLL_AUDIO_BYPASS_CLK_SRC(BV_CCM_ANALOG_PLL_AUDIO_BYPASS_CLK_SRC__##v)
  1088. #define BV_CCM_ANALOG_PLL_AUDIO_BYPASS_CLK_SRC__REF_CLK_24M (0x0) //!< Select the 24MHz oscillator as source.
  1089. #define BV_CCM_ANALOG_PLL_AUDIO_BYPASS_CLK_SRC__CLK1 (0x1) //!< Select the CLK1_N / CLK1_P as source.
  1090. #define BV_CCM_ANALOG_PLL_AUDIO_BYPASS_CLK_SRC__CLK2 (0x2) //!< Select the CLK2_N / CLK2_P as source.
  1091. #define BV_CCM_ANALOG_PLL_AUDIO_BYPASS_CLK_SRC__XOR (0x3) //!< Select the XOR of CLK1_N / CLK1_P and CLK2_N / CLK2_P as source.
  1092. //@}
  1093. /*! @name Register CCM_ANALOG_PLL_AUDIO, field BYPASS[16] (RW)
  1094. *
  1095. * Bypass the pll.
  1096. */
  1097. //@{
  1098. #define BP_CCM_ANALOG_PLL_AUDIO_BYPASS (16) //!< Bit position for CCM_ANALOG_PLL_AUDIO_BYPASS.
  1099. #define BM_CCM_ANALOG_PLL_AUDIO_BYPASS (0x00010000) //!< Bit mask for CCM_ANALOG_PLL_AUDIO_BYPASS.
  1100. //! @brief Get value of CCM_ANALOG_PLL_AUDIO_BYPASS from a register value.
  1101. #define BG_CCM_ANALOG_PLL_AUDIO_BYPASS(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_AUDIO_BYPASS) >> BP_CCM_ANALOG_PLL_AUDIO_BYPASS)
  1102. //! @brief Format value for bitfield CCM_ANALOG_PLL_AUDIO_BYPASS.
  1103. #define BF_CCM_ANALOG_PLL_AUDIO_BYPASS(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_AUDIO_BYPASS) & BM_CCM_ANALOG_PLL_AUDIO_BYPASS)
  1104. #ifndef __LANGUAGE_ASM__
  1105. //! @brief Set the BYPASS field to a new value.
  1106. #define BW_CCM_ANALOG_PLL_AUDIO_BYPASS(v) BF_CS1(CCM_ANALOG_PLL_AUDIO, BYPASS, v)
  1107. #endif
  1108. //@}
  1109. /*! @name Register CCM_ANALOG_PLL_AUDIO, field PFD_OFFSET_EN[18] (RW)
  1110. *
  1111. * Enables an offset in the phase frequency detector.
  1112. */
  1113. //@{
  1114. #define BP_CCM_ANALOG_PLL_AUDIO_PFD_OFFSET_EN (18) //!< Bit position for CCM_ANALOG_PLL_AUDIO_PFD_OFFSET_EN.
  1115. #define BM_CCM_ANALOG_PLL_AUDIO_PFD_OFFSET_EN (0x00040000) //!< Bit mask for CCM_ANALOG_PLL_AUDIO_PFD_OFFSET_EN.
  1116. //! @brief Get value of CCM_ANALOG_PLL_AUDIO_PFD_OFFSET_EN from a register value.
  1117. #define BG_CCM_ANALOG_PLL_AUDIO_PFD_OFFSET_EN(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_AUDIO_PFD_OFFSET_EN) >> BP_CCM_ANALOG_PLL_AUDIO_PFD_OFFSET_EN)
  1118. //! @brief Format value for bitfield CCM_ANALOG_PLL_AUDIO_PFD_OFFSET_EN.
  1119. #define BF_CCM_ANALOG_PLL_AUDIO_PFD_OFFSET_EN(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_AUDIO_PFD_OFFSET_EN) & BM_CCM_ANALOG_PLL_AUDIO_PFD_OFFSET_EN)
  1120. #ifndef __LANGUAGE_ASM__
  1121. //! @brief Set the PFD_OFFSET_EN field to a new value.
  1122. #define BW_CCM_ANALOG_PLL_AUDIO_PFD_OFFSET_EN(v) BF_CS1(CCM_ANALOG_PLL_AUDIO, PFD_OFFSET_EN, v)
  1123. #endif
  1124. //@}
  1125. /*! @name Register CCM_ANALOG_PLL_AUDIO, field POST_DIV_SELECT[20:19] (RW)
  1126. *
  1127. * These bits implement a divider after the PLL, but before the enable and bypass mux.
  1128. *
  1129. * Values:
  1130. * - 00 - Divide by 4.
  1131. * - 01 - Divide by 2.
  1132. * - 10 - Divide by 1.
  1133. * - 11 - Reserved
  1134. */
  1135. //@{
  1136. #define BP_CCM_ANALOG_PLL_AUDIO_POST_DIV_SELECT (19) //!< Bit position for CCM_ANALOG_PLL_AUDIO_POST_DIV_SELECT.
  1137. #define BM_CCM_ANALOG_PLL_AUDIO_POST_DIV_SELECT (0x00180000) //!< Bit mask for CCM_ANALOG_PLL_AUDIO_POST_DIV_SELECT.
  1138. //! @brief Get value of CCM_ANALOG_PLL_AUDIO_POST_DIV_SELECT from a register value.
  1139. #define BG_CCM_ANALOG_PLL_AUDIO_POST_DIV_SELECT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_AUDIO_POST_DIV_SELECT) >> BP_CCM_ANALOG_PLL_AUDIO_POST_DIV_SELECT)
  1140. //! @brief Format value for bitfield CCM_ANALOG_PLL_AUDIO_POST_DIV_SELECT.
  1141. #define BF_CCM_ANALOG_PLL_AUDIO_POST_DIV_SELECT(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_AUDIO_POST_DIV_SELECT) & BM_CCM_ANALOG_PLL_AUDIO_POST_DIV_SELECT)
  1142. #ifndef __LANGUAGE_ASM__
  1143. //! @brief Set the POST_DIV_SELECT field to a new value.
  1144. #define BW_CCM_ANALOG_PLL_AUDIO_POST_DIV_SELECT(v) BF_CS1(CCM_ANALOG_PLL_AUDIO, POST_DIV_SELECT, v)
  1145. #endif
  1146. //@}
  1147. /*! @name Register CCM_ANALOG_PLL_AUDIO, field SSC_EN[21] (RW)
  1148. *
  1149. * Reserved Bit
  1150. */
  1151. //@{
  1152. #define BP_CCM_ANALOG_PLL_AUDIO_SSC_EN (21) //!< Bit position for CCM_ANALOG_PLL_AUDIO_SSC_EN.
  1153. #define BM_CCM_ANALOG_PLL_AUDIO_SSC_EN (0x00200000) //!< Bit mask for CCM_ANALOG_PLL_AUDIO_SSC_EN.
  1154. //! @brief Get value of CCM_ANALOG_PLL_AUDIO_SSC_EN from a register value.
  1155. #define BG_CCM_ANALOG_PLL_AUDIO_SSC_EN(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_AUDIO_SSC_EN) >> BP_CCM_ANALOG_PLL_AUDIO_SSC_EN)
  1156. //! @brief Format value for bitfield CCM_ANALOG_PLL_AUDIO_SSC_EN.
  1157. #define BF_CCM_ANALOG_PLL_AUDIO_SSC_EN(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_AUDIO_SSC_EN) & BM_CCM_ANALOG_PLL_AUDIO_SSC_EN)
  1158. #ifndef __LANGUAGE_ASM__
  1159. //! @brief Set the SSC_EN field to a new value.
  1160. #define BW_CCM_ANALOG_PLL_AUDIO_SSC_EN(v) BF_CS1(CCM_ANALOG_PLL_AUDIO, SSC_EN, v)
  1161. #endif
  1162. //@}
  1163. /*! @name Register CCM_ANALOG_PLL_AUDIO, field LOCK[31] (RO)
  1164. *
  1165. * 1 - PLL is currently locked. 0 - PLL is not currently locked.
  1166. */
  1167. //@{
  1168. #define BP_CCM_ANALOG_PLL_AUDIO_LOCK (31) //!< Bit position for CCM_ANALOG_PLL_AUDIO_LOCK.
  1169. #define BM_CCM_ANALOG_PLL_AUDIO_LOCK (0x80000000) //!< Bit mask for CCM_ANALOG_PLL_AUDIO_LOCK.
  1170. //! @brief Get value of CCM_ANALOG_PLL_AUDIO_LOCK from a register value.
  1171. #define BG_CCM_ANALOG_PLL_AUDIO_LOCK(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_AUDIO_LOCK) >> BP_CCM_ANALOG_PLL_AUDIO_LOCK)
  1172. //@}
  1173. //-------------------------------------------------------------------------------------------
  1174. // HW_CCM_ANALOG_PLL_AUDIO_NUM - Numerator of Audio PLL Fractional Loop Divider Register
  1175. //-------------------------------------------------------------------------------------------
  1176. #ifndef __LANGUAGE_ASM__
  1177. /*!
  1178. * @brief HW_CCM_ANALOG_PLL_AUDIO_NUM - Numerator of Audio PLL Fractional Loop Divider Register (RW)
  1179. *
  1180. * Reset value: 0x05f5e100
  1181. *
  1182. * This register contains the numerator (A) of Audio PLL fractional loop divider.(Signed number),
  1183. * absolute value should be less than denominator Absolute value should be less than denominator
  1184. */
  1185. typedef union _hw_ccm_analog_pll_audio_num
  1186. {
  1187. reg32_t U;
  1188. struct _hw_ccm_analog_pll_audio_num_bitfields
  1189. {
  1190. unsigned A : 30; //!< [29:0] 30 bit numerator of fractional loop divider.
  1191. unsigned RESERVED0 : 2; //!< [31:30] Always set to zero (0).
  1192. } B;
  1193. } hw_ccm_analog_pll_audio_num_t;
  1194. #endif
  1195. /*!
  1196. * @name Constants and macros for entire CCM_ANALOG_PLL_AUDIO_NUM register
  1197. */
  1198. //@{
  1199. #define HW_CCM_ANALOG_PLL_AUDIO_NUM_ADDR (REGS_CCM_ANALOG_BASE + 0x80)
  1200. #ifndef __LANGUAGE_ASM__
  1201. #define HW_CCM_ANALOG_PLL_AUDIO_NUM (*(volatile hw_ccm_analog_pll_audio_num_t *) HW_CCM_ANALOG_PLL_AUDIO_NUM_ADDR)
  1202. #define HW_CCM_ANALOG_PLL_AUDIO_NUM_RD() (HW_CCM_ANALOG_PLL_AUDIO_NUM.U)
  1203. #define HW_CCM_ANALOG_PLL_AUDIO_NUM_WR(v) (HW_CCM_ANALOG_PLL_AUDIO_NUM.U = (v))
  1204. #define HW_CCM_ANALOG_PLL_AUDIO_NUM_SET(v) (HW_CCM_ANALOG_PLL_AUDIO_NUM_WR(HW_CCM_ANALOG_PLL_AUDIO_NUM_RD() | (v)))
  1205. #define HW_CCM_ANALOG_PLL_AUDIO_NUM_CLR(v) (HW_CCM_ANALOG_PLL_AUDIO_NUM_WR(HW_CCM_ANALOG_PLL_AUDIO_NUM_RD() & ~(v)))
  1206. #define HW_CCM_ANALOG_PLL_AUDIO_NUM_TOG(v) (HW_CCM_ANALOG_PLL_AUDIO_NUM_WR(HW_CCM_ANALOG_PLL_AUDIO_NUM_RD() ^ (v)))
  1207. #endif
  1208. //@}
  1209. /*
  1210. * constants & macros for individual CCM_ANALOG_PLL_AUDIO_NUM bitfields
  1211. */
  1212. /*! @name Register CCM_ANALOG_PLL_AUDIO_NUM, field A[29:0] (RW)
  1213. *
  1214. * 30 bit numerator of fractional loop divider.
  1215. */
  1216. //@{
  1217. #define BP_CCM_ANALOG_PLL_AUDIO_NUM_A (0) //!< Bit position for CCM_ANALOG_PLL_AUDIO_NUM_A.
  1218. #define BM_CCM_ANALOG_PLL_AUDIO_NUM_A (0x3fffffff) //!< Bit mask for CCM_ANALOG_PLL_AUDIO_NUM_A.
  1219. //! @brief Get value of CCM_ANALOG_PLL_AUDIO_NUM_A from a register value.
  1220. #define BG_CCM_ANALOG_PLL_AUDIO_NUM_A(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_AUDIO_NUM_A) >> BP_CCM_ANALOG_PLL_AUDIO_NUM_A)
  1221. //! @brief Format value for bitfield CCM_ANALOG_PLL_AUDIO_NUM_A.
  1222. #define BF_CCM_ANALOG_PLL_AUDIO_NUM_A(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_AUDIO_NUM_A) & BM_CCM_ANALOG_PLL_AUDIO_NUM_A)
  1223. #ifndef __LANGUAGE_ASM__
  1224. //! @brief Set the A field to a new value.
  1225. #define BW_CCM_ANALOG_PLL_AUDIO_NUM_A(v) (HW_CCM_ANALOG_PLL_AUDIO_NUM_WR((HW_CCM_ANALOG_PLL_AUDIO_NUM_RD() & ~BM_CCM_ANALOG_PLL_AUDIO_NUM_A) | BF_CCM_ANALOG_PLL_AUDIO_NUM_A(v)))
  1226. #endif
  1227. //@}
  1228. //-------------------------------------------------------------------------------------------
  1229. // HW_CCM_ANALOG_PLL_AUDIO_DENOM - Denominator of Audio PLL Fractional Loop Divider Register
  1230. //-------------------------------------------------------------------------------------------
  1231. #ifndef __LANGUAGE_ASM__
  1232. /*!
  1233. * @brief HW_CCM_ANALOG_PLL_AUDIO_DENOM - Denominator of Audio PLL Fractional Loop Divider Register (RW)
  1234. *
  1235. * Reset value: 0x2964619c
  1236. *
  1237. * This register contains the Denominator (B) of Audio PLL fractional loop divider.(unsigned number)
  1238. */
  1239. typedef union _hw_ccm_analog_pll_audio_denom
  1240. {
  1241. reg32_t U;
  1242. struct _hw_ccm_analog_pll_audio_denom_bitfields
  1243. {
  1244. unsigned B : 30; //!< [29:0] 30 bit Denominator of fractional loop divider.
  1245. unsigned RESERVED0 : 2; //!< [31:30] Always set to zero (0).
  1246. } B;
  1247. } hw_ccm_analog_pll_audio_denom_t;
  1248. #endif
  1249. /*!
  1250. * @name Constants and macros for entire CCM_ANALOG_PLL_AUDIO_DENOM register
  1251. */
  1252. //@{
  1253. #define HW_CCM_ANALOG_PLL_AUDIO_DENOM_ADDR (REGS_CCM_ANALOG_BASE + 0x90)
  1254. #ifndef __LANGUAGE_ASM__
  1255. #define HW_CCM_ANALOG_PLL_AUDIO_DENOM (*(volatile hw_ccm_analog_pll_audio_denom_t *) HW_CCM_ANALOG_PLL_AUDIO_DENOM_ADDR)
  1256. #define HW_CCM_ANALOG_PLL_AUDIO_DENOM_RD() (HW_CCM_ANALOG_PLL_AUDIO_DENOM.U)
  1257. #define HW_CCM_ANALOG_PLL_AUDIO_DENOM_WR(v) (HW_CCM_ANALOG_PLL_AUDIO_DENOM.U = (v))
  1258. #define HW_CCM_ANALOG_PLL_AUDIO_DENOM_SET(v) (HW_CCM_ANALOG_PLL_AUDIO_DENOM_WR(HW_CCM_ANALOG_PLL_AUDIO_DENOM_RD() | (v)))
  1259. #define HW_CCM_ANALOG_PLL_AUDIO_DENOM_CLR(v) (HW_CCM_ANALOG_PLL_AUDIO_DENOM_WR(HW_CCM_ANALOG_PLL_AUDIO_DENOM_RD() & ~(v)))
  1260. #define HW_CCM_ANALOG_PLL_AUDIO_DENOM_TOG(v) (HW_CCM_ANALOG_PLL_AUDIO_DENOM_WR(HW_CCM_ANALOG_PLL_AUDIO_DENOM_RD() ^ (v)))
  1261. #endif
  1262. //@}
  1263. /*
  1264. * constants & macros for individual CCM_ANALOG_PLL_AUDIO_DENOM bitfields
  1265. */
  1266. /*! @name Register CCM_ANALOG_PLL_AUDIO_DENOM, field B[29:0] (RW)
  1267. *
  1268. * 30 bit Denominator of fractional loop divider.
  1269. */
  1270. //@{
  1271. #define BP_CCM_ANALOG_PLL_AUDIO_DENOM_B (0) //!< Bit position for CCM_ANALOG_PLL_AUDIO_DENOM_B.
  1272. #define BM_CCM_ANALOG_PLL_AUDIO_DENOM_B (0x3fffffff) //!< Bit mask for CCM_ANALOG_PLL_AUDIO_DENOM_B.
  1273. //! @brief Get value of CCM_ANALOG_PLL_AUDIO_DENOM_B from a register value.
  1274. #define BG_CCM_ANALOG_PLL_AUDIO_DENOM_B(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_AUDIO_DENOM_B) >> BP_CCM_ANALOG_PLL_AUDIO_DENOM_B)
  1275. //! @brief Format value for bitfield CCM_ANALOG_PLL_AUDIO_DENOM_B.
  1276. #define BF_CCM_ANALOG_PLL_AUDIO_DENOM_B(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_AUDIO_DENOM_B) & BM_CCM_ANALOG_PLL_AUDIO_DENOM_B)
  1277. #ifndef __LANGUAGE_ASM__
  1278. //! @brief Set the B field to a new value.
  1279. #define BW_CCM_ANALOG_PLL_AUDIO_DENOM_B(v) (HW_CCM_ANALOG_PLL_AUDIO_DENOM_WR((HW_CCM_ANALOG_PLL_AUDIO_DENOM_RD() & ~BM_CCM_ANALOG_PLL_AUDIO_DENOM_B) | BF_CCM_ANALOG_PLL_AUDIO_DENOM_B(v)))
  1280. #endif
  1281. //@}
  1282. //-------------------------------------------------------------------------------------------
  1283. // HW_CCM_ANALOG_PLL_VIDEO - Analog Video PLL control Register
  1284. //-------------------------------------------------------------------------------------------
  1285. #ifndef __LANGUAGE_ASM__
  1286. /*!
  1287. * @brief HW_CCM_ANALOG_PLL_VIDEO - Analog Video PLL control Register (RW)
  1288. *
  1289. * Reset value: 0x0001100c
  1290. *
  1291. * The control register provides control for the Video PLL.
  1292. */
  1293. typedef union _hw_ccm_analog_pll_video
  1294. {
  1295. reg32_t U;
  1296. struct _hw_ccm_analog_pll_video_bitfields
  1297. {
  1298. unsigned DIV_SELECT : 7; //!< [6:0] This field controls the pll loop divider.
  1299. unsigned RESERVED0 : 5; //!< [11:7] Reserved.
  1300. unsigned POWERDOWN : 1; //!< [12] Powers down the PLL.
  1301. unsigned ENABLE : 1; //!< [13] Enalbe PLL output
  1302. unsigned BYPASS_CLK_SRC : 2; //!< [15:14] Determines the bypass source.
  1303. unsigned BYPASS : 1; //!< [16] Bypass the pll.
  1304. unsigned RESERVED1 : 1; //!< [17] Reserved
  1305. unsigned PFD_OFFSET_EN : 1; //!< [18] Enables an offset in the phase frequency detector.
  1306. unsigned POST_DIV_SELECT : 2; //!< [20:19] These bits implement a divider after the PLL, but before the enable and bypass mux.
  1307. unsigned SSC_EN : 1; //!< [21] Revserved BIt
  1308. unsigned RESERVED2 : 9; //!< [30:22] Always set to zero (0).
  1309. unsigned LOCK : 1; //!< [31] 1 - PLL is currently locked;
  1310. } B;
  1311. } hw_ccm_analog_pll_video_t;
  1312. #endif
  1313. /*!
  1314. * @name Constants and macros for entire CCM_ANALOG_PLL_VIDEO register
  1315. */
  1316. //@{
  1317. #define HW_CCM_ANALOG_PLL_VIDEO_ADDR (REGS_CCM_ANALOG_BASE + 0xa0)
  1318. #define HW_CCM_ANALOG_PLL_VIDEO_SET_ADDR (HW_CCM_ANALOG_PLL_VIDEO_ADDR + 0x4)
  1319. #define HW_CCM_ANALOG_PLL_VIDEO_CLR_ADDR (HW_CCM_ANALOG_PLL_VIDEO_ADDR + 0x8)
  1320. #define HW_CCM_ANALOG_PLL_VIDEO_TOG_ADDR (HW_CCM_ANALOG_PLL_VIDEO_ADDR + 0xC)
  1321. #ifndef __LANGUAGE_ASM__
  1322. #define HW_CCM_ANALOG_PLL_VIDEO (*(volatile hw_ccm_analog_pll_video_t *) HW_CCM_ANALOG_PLL_VIDEO_ADDR)
  1323. #define HW_CCM_ANALOG_PLL_VIDEO_RD() (HW_CCM_ANALOG_PLL_VIDEO.U)
  1324. #define HW_CCM_ANALOG_PLL_VIDEO_WR(v) (HW_CCM_ANALOG_PLL_VIDEO.U = (v))
  1325. #define HW_CCM_ANALOG_PLL_VIDEO_SET(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PLL_VIDEO_SET_ADDR) = (v))
  1326. #define HW_CCM_ANALOG_PLL_VIDEO_CLR(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PLL_VIDEO_CLR_ADDR) = (v))
  1327. #define HW_CCM_ANALOG_PLL_VIDEO_TOG(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PLL_VIDEO_TOG_ADDR) = (v))
  1328. #endif
  1329. //@}
  1330. /*
  1331. * constants & macros for individual CCM_ANALOG_PLL_VIDEO bitfields
  1332. */
  1333. /*! @name Register CCM_ANALOG_PLL_VIDEO, field DIV_SELECT[6:0] (RW)
  1334. *
  1335. * This field controls the pll loop divider. Valid range for DIV_SELECT divider value: 27~54.
  1336. */
  1337. //@{
  1338. #define BP_CCM_ANALOG_PLL_VIDEO_DIV_SELECT (0) //!< Bit position for CCM_ANALOG_PLL_VIDEO_DIV_SELECT.
  1339. #define BM_CCM_ANALOG_PLL_VIDEO_DIV_SELECT (0x0000007f) //!< Bit mask for CCM_ANALOG_PLL_VIDEO_DIV_SELECT.
  1340. //! @brief Get value of CCM_ANALOG_PLL_VIDEO_DIV_SELECT from a register value.
  1341. #define BG_CCM_ANALOG_PLL_VIDEO_DIV_SELECT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_VIDEO_DIV_SELECT) >> BP_CCM_ANALOG_PLL_VIDEO_DIV_SELECT)
  1342. //! @brief Format value for bitfield CCM_ANALOG_PLL_VIDEO_DIV_SELECT.
  1343. #define BF_CCM_ANALOG_PLL_VIDEO_DIV_SELECT(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_VIDEO_DIV_SELECT) & BM_CCM_ANALOG_PLL_VIDEO_DIV_SELECT)
  1344. #ifndef __LANGUAGE_ASM__
  1345. //! @brief Set the DIV_SELECT field to a new value.
  1346. #define BW_CCM_ANALOG_PLL_VIDEO_DIV_SELECT(v) BF_CS1(CCM_ANALOG_PLL_VIDEO, DIV_SELECT, v)
  1347. #endif
  1348. //@}
  1349. /*! @name Register CCM_ANALOG_PLL_VIDEO, field POWERDOWN[12] (RW)
  1350. *
  1351. * Powers down the PLL.
  1352. */
  1353. //@{
  1354. #define BP_CCM_ANALOG_PLL_VIDEO_POWERDOWN (12) //!< Bit position for CCM_ANALOG_PLL_VIDEO_POWERDOWN.
  1355. #define BM_CCM_ANALOG_PLL_VIDEO_POWERDOWN (0x00001000) //!< Bit mask for CCM_ANALOG_PLL_VIDEO_POWERDOWN.
  1356. //! @brief Get value of CCM_ANALOG_PLL_VIDEO_POWERDOWN from a register value.
  1357. #define BG_CCM_ANALOG_PLL_VIDEO_POWERDOWN(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_VIDEO_POWERDOWN) >> BP_CCM_ANALOG_PLL_VIDEO_POWERDOWN)
  1358. //! @brief Format value for bitfield CCM_ANALOG_PLL_VIDEO_POWERDOWN.
  1359. #define BF_CCM_ANALOG_PLL_VIDEO_POWERDOWN(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_VIDEO_POWERDOWN) & BM_CCM_ANALOG_PLL_VIDEO_POWERDOWN)
  1360. #ifndef __LANGUAGE_ASM__
  1361. //! @brief Set the POWERDOWN field to a new value.
  1362. #define BW_CCM_ANALOG_PLL_VIDEO_POWERDOWN(v) BF_CS1(CCM_ANALOG_PLL_VIDEO, POWERDOWN, v)
  1363. #endif
  1364. //@}
  1365. /*! @name Register CCM_ANALOG_PLL_VIDEO, field ENABLE[13] (RW)
  1366. *
  1367. * Enalbe PLL output
  1368. */
  1369. //@{
  1370. #define BP_CCM_ANALOG_PLL_VIDEO_ENABLE (13) //!< Bit position for CCM_ANALOG_PLL_VIDEO_ENABLE.
  1371. #define BM_CCM_ANALOG_PLL_VIDEO_ENABLE (0x00002000) //!< Bit mask for CCM_ANALOG_PLL_VIDEO_ENABLE.
  1372. //! @brief Get value of CCM_ANALOG_PLL_VIDEO_ENABLE from a register value.
  1373. #define BG_CCM_ANALOG_PLL_VIDEO_ENABLE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_VIDEO_ENABLE) >> BP_CCM_ANALOG_PLL_VIDEO_ENABLE)
  1374. //! @brief Format value for bitfield CCM_ANALOG_PLL_VIDEO_ENABLE.
  1375. #define BF_CCM_ANALOG_PLL_VIDEO_ENABLE(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_VIDEO_ENABLE) & BM_CCM_ANALOG_PLL_VIDEO_ENABLE)
  1376. #ifndef __LANGUAGE_ASM__
  1377. //! @brief Set the ENABLE field to a new value.
  1378. #define BW_CCM_ANALOG_PLL_VIDEO_ENABLE(v) BF_CS1(CCM_ANALOG_PLL_VIDEO, ENABLE, v)
  1379. #endif
  1380. //@}
  1381. /*! @name Register CCM_ANALOG_PLL_VIDEO, field BYPASS_CLK_SRC[15:14] (RW)
  1382. *
  1383. * Determines the bypass source.
  1384. *
  1385. * Values:
  1386. * - REF_CLK_24M = 0x0 - Select the 24MHz oscillator as source.
  1387. * - CLK1 = 0x1 - Select the CLK1_N / CLK1_P as source.
  1388. * - CLK2 = 0x2 - Select the CLK2_N / CLK2_P as source.
  1389. * - XOR = 0x3 - Select the XOR of CLK1_N / CLK1_P and CLK2_N / CLK2_P as source.
  1390. */
  1391. //@{
  1392. #define BP_CCM_ANALOG_PLL_VIDEO_BYPASS_CLK_SRC (14) //!< Bit position for CCM_ANALOG_PLL_VIDEO_BYPASS_CLK_SRC.
  1393. #define BM_CCM_ANALOG_PLL_VIDEO_BYPASS_CLK_SRC (0x0000c000) //!< Bit mask for CCM_ANALOG_PLL_VIDEO_BYPASS_CLK_SRC.
  1394. //! @brief Get value of CCM_ANALOG_PLL_VIDEO_BYPASS_CLK_SRC from a register value.
  1395. #define BG_CCM_ANALOG_PLL_VIDEO_BYPASS_CLK_SRC(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_VIDEO_BYPASS_CLK_SRC) >> BP_CCM_ANALOG_PLL_VIDEO_BYPASS_CLK_SRC)
  1396. //! @brief Format value for bitfield CCM_ANALOG_PLL_VIDEO_BYPASS_CLK_SRC.
  1397. #define BF_CCM_ANALOG_PLL_VIDEO_BYPASS_CLK_SRC(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_VIDEO_BYPASS_CLK_SRC) & BM_CCM_ANALOG_PLL_VIDEO_BYPASS_CLK_SRC)
  1398. #ifndef __LANGUAGE_ASM__
  1399. //! @brief Set the BYPASS_CLK_SRC field to a new value.
  1400. #define BW_CCM_ANALOG_PLL_VIDEO_BYPASS_CLK_SRC(v) BF_CS1(CCM_ANALOG_PLL_VIDEO, BYPASS_CLK_SRC, v)
  1401. #endif
  1402. //! @brief Macro to simplify usage of value macros.
  1403. #define BF_CCM_ANALOG_PLL_VIDEO_BYPASS_CLK_SRC_V(v) BF_CCM_ANALOG_PLL_VIDEO_BYPASS_CLK_SRC(BV_CCM_ANALOG_PLL_VIDEO_BYPASS_CLK_SRC__##v)
  1404. #define BV_CCM_ANALOG_PLL_VIDEO_BYPASS_CLK_SRC__REF_CLK_24M (0x0) //!< Select the 24MHz oscillator as source.
  1405. #define BV_CCM_ANALOG_PLL_VIDEO_BYPASS_CLK_SRC__CLK1 (0x1) //!< Select the CLK1_N / CLK1_P as source.
  1406. #define BV_CCM_ANALOG_PLL_VIDEO_BYPASS_CLK_SRC__CLK2 (0x2) //!< Select the CLK2_N / CLK2_P as source.
  1407. #define BV_CCM_ANALOG_PLL_VIDEO_BYPASS_CLK_SRC__XOR (0x3) //!< Select the XOR of CLK1_N / CLK1_P and CLK2_N / CLK2_P as source.
  1408. //@}
  1409. /*! @name Register CCM_ANALOG_PLL_VIDEO, field BYPASS[16] (RW)
  1410. *
  1411. * Bypass the pll.
  1412. */
  1413. //@{
  1414. #define BP_CCM_ANALOG_PLL_VIDEO_BYPASS (16) //!< Bit position for CCM_ANALOG_PLL_VIDEO_BYPASS.
  1415. #define BM_CCM_ANALOG_PLL_VIDEO_BYPASS (0x00010000) //!< Bit mask for CCM_ANALOG_PLL_VIDEO_BYPASS.
  1416. //! @brief Get value of CCM_ANALOG_PLL_VIDEO_BYPASS from a register value.
  1417. #define BG_CCM_ANALOG_PLL_VIDEO_BYPASS(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_VIDEO_BYPASS) >> BP_CCM_ANALOG_PLL_VIDEO_BYPASS)
  1418. //! @brief Format value for bitfield CCM_ANALOG_PLL_VIDEO_BYPASS.
  1419. #define BF_CCM_ANALOG_PLL_VIDEO_BYPASS(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_VIDEO_BYPASS) & BM_CCM_ANALOG_PLL_VIDEO_BYPASS)
  1420. #ifndef __LANGUAGE_ASM__
  1421. //! @brief Set the BYPASS field to a new value.
  1422. #define BW_CCM_ANALOG_PLL_VIDEO_BYPASS(v) BF_CS1(CCM_ANALOG_PLL_VIDEO, BYPASS, v)
  1423. #endif
  1424. //@}
  1425. /*! @name Register CCM_ANALOG_PLL_VIDEO, field PFD_OFFSET_EN[18] (RW)
  1426. *
  1427. * Enables an offset in the phase frequency detector.
  1428. */
  1429. //@{
  1430. #define BP_CCM_ANALOG_PLL_VIDEO_PFD_OFFSET_EN (18) //!< Bit position for CCM_ANALOG_PLL_VIDEO_PFD_OFFSET_EN.
  1431. #define BM_CCM_ANALOG_PLL_VIDEO_PFD_OFFSET_EN (0x00040000) //!< Bit mask for CCM_ANALOG_PLL_VIDEO_PFD_OFFSET_EN.
  1432. //! @brief Get value of CCM_ANALOG_PLL_VIDEO_PFD_OFFSET_EN from a register value.
  1433. #define BG_CCM_ANALOG_PLL_VIDEO_PFD_OFFSET_EN(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_VIDEO_PFD_OFFSET_EN) >> BP_CCM_ANALOG_PLL_VIDEO_PFD_OFFSET_EN)
  1434. //! @brief Format value for bitfield CCM_ANALOG_PLL_VIDEO_PFD_OFFSET_EN.
  1435. #define BF_CCM_ANALOG_PLL_VIDEO_PFD_OFFSET_EN(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_VIDEO_PFD_OFFSET_EN) & BM_CCM_ANALOG_PLL_VIDEO_PFD_OFFSET_EN)
  1436. #ifndef __LANGUAGE_ASM__
  1437. //! @brief Set the PFD_OFFSET_EN field to a new value.
  1438. #define BW_CCM_ANALOG_PLL_VIDEO_PFD_OFFSET_EN(v) BF_CS1(CCM_ANALOG_PLL_VIDEO, PFD_OFFSET_EN, v)
  1439. #endif
  1440. //@}
  1441. /*! @name Register CCM_ANALOG_PLL_VIDEO, field POST_DIV_SELECT[20:19] (RW)
  1442. *
  1443. * These bits implement a divider after the PLL, but before the enable and bypass mux.
  1444. *
  1445. * Values:
  1446. * - 00 - Divide by 4.
  1447. * - 01 - Divide by 2.
  1448. * - 10 - Divide by 1.
  1449. * - 11 - Reserved
  1450. */
  1451. //@{
  1452. #define BP_CCM_ANALOG_PLL_VIDEO_POST_DIV_SELECT (19) //!< Bit position for CCM_ANALOG_PLL_VIDEO_POST_DIV_SELECT.
  1453. #define BM_CCM_ANALOG_PLL_VIDEO_POST_DIV_SELECT (0x00180000) //!< Bit mask for CCM_ANALOG_PLL_VIDEO_POST_DIV_SELECT.
  1454. //! @brief Get value of CCM_ANALOG_PLL_VIDEO_POST_DIV_SELECT from a register value.
  1455. #define BG_CCM_ANALOG_PLL_VIDEO_POST_DIV_SELECT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_VIDEO_POST_DIV_SELECT) >> BP_CCM_ANALOG_PLL_VIDEO_POST_DIV_SELECT)
  1456. //! @brief Format value for bitfield CCM_ANALOG_PLL_VIDEO_POST_DIV_SELECT.
  1457. #define BF_CCM_ANALOG_PLL_VIDEO_POST_DIV_SELECT(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_VIDEO_POST_DIV_SELECT) & BM_CCM_ANALOG_PLL_VIDEO_POST_DIV_SELECT)
  1458. #ifndef __LANGUAGE_ASM__
  1459. //! @brief Set the POST_DIV_SELECT field to a new value.
  1460. #define BW_CCM_ANALOG_PLL_VIDEO_POST_DIV_SELECT(v) BF_CS1(CCM_ANALOG_PLL_VIDEO, POST_DIV_SELECT, v)
  1461. #endif
  1462. //@}
  1463. /*! @name Register CCM_ANALOG_PLL_VIDEO, field SSC_EN[21] (RW)
  1464. *
  1465. * Revserved BIt
  1466. */
  1467. //@{
  1468. #define BP_CCM_ANALOG_PLL_VIDEO_SSC_EN (21) //!< Bit position for CCM_ANALOG_PLL_VIDEO_SSC_EN.
  1469. #define BM_CCM_ANALOG_PLL_VIDEO_SSC_EN (0x00200000) //!< Bit mask for CCM_ANALOG_PLL_VIDEO_SSC_EN.
  1470. //! @brief Get value of CCM_ANALOG_PLL_VIDEO_SSC_EN from a register value.
  1471. #define BG_CCM_ANALOG_PLL_VIDEO_SSC_EN(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_VIDEO_SSC_EN) >> BP_CCM_ANALOG_PLL_VIDEO_SSC_EN)
  1472. //! @brief Format value for bitfield CCM_ANALOG_PLL_VIDEO_SSC_EN.
  1473. #define BF_CCM_ANALOG_PLL_VIDEO_SSC_EN(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_VIDEO_SSC_EN) & BM_CCM_ANALOG_PLL_VIDEO_SSC_EN)
  1474. #ifndef __LANGUAGE_ASM__
  1475. //! @brief Set the SSC_EN field to a new value.
  1476. #define BW_CCM_ANALOG_PLL_VIDEO_SSC_EN(v) BF_CS1(CCM_ANALOG_PLL_VIDEO, SSC_EN, v)
  1477. #endif
  1478. //@}
  1479. /*! @name Register CCM_ANALOG_PLL_VIDEO, field LOCK[31] (RO)
  1480. *
  1481. * 1 - PLL is currently locked; 0 - PLL is not currently locked.
  1482. */
  1483. //@{
  1484. #define BP_CCM_ANALOG_PLL_VIDEO_LOCK (31) //!< Bit position for CCM_ANALOG_PLL_VIDEO_LOCK.
  1485. #define BM_CCM_ANALOG_PLL_VIDEO_LOCK (0x80000000) //!< Bit mask for CCM_ANALOG_PLL_VIDEO_LOCK.
  1486. //! @brief Get value of CCM_ANALOG_PLL_VIDEO_LOCK from a register value.
  1487. #define BG_CCM_ANALOG_PLL_VIDEO_LOCK(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_VIDEO_LOCK) >> BP_CCM_ANALOG_PLL_VIDEO_LOCK)
  1488. //@}
  1489. //-------------------------------------------------------------------------------------------
  1490. // HW_CCM_ANALOG_PLL_VIDEO_NUM - Numerator of Video PLL Fractional Loop Divider Register
  1491. //-------------------------------------------------------------------------------------------
  1492. #ifndef __LANGUAGE_ASM__
  1493. /*!
  1494. * @brief HW_CCM_ANALOG_PLL_VIDEO_NUM - Numerator of Video PLL Fractional Loop Divider Register (RW)
  1495. *
  1496. * Reset value: 0x05f5e100
  1497. *
  1498. * This register contains the numerator (A) of Video PLL fractional loop divider.(Signed number)
  1499. * Absolute value should be less than denominator
  1500. */
  1501. typedef union _hw_ccm_analog_pll_video_num
  1502. {
  1503. reg32_t U;
  1504. struct _hw_ccm_analog_pll_video_num_bitfields
  1505. {
  1506. unsigned A : 30; //!< [29:0] 30 bit numerator of fractional loop divider(Signed number), absolute value should be less than denominator
  1507. unsigned RESERVED0 : 2; //!< [31:30] Always set to zero (0).
  1508. } B;
  1509. } hw_ccm_analog_pll_video_num_t;
  1510. #endif
  1511. /*!
  1512. * @name Constants and macros for entire CCM_ANALOG_PLL_VIDEO_NUM register
  1513. */
  1514. //@{
  1515. #define HW_CCM_ANALOG_PLL_VIDEO_NUM_ADDR (REGS_CCM_ANALOG_BASE + 0xb0)
  1516. #ifndef __LANGUAGE_ASM__
  1517. #define HW_CCM_ANALOG_PLL_VIDEO_NUM (*(volatile hw_ccm_analog_pll_video_num_t *) HW_CCM_ANALOG_PLL_VIDEO_NUM_ADDR)
  1518. #define HW_CCM_ANALOG_PLL_VIDEO_NUM_RD() (HW_CCM_ANALOG_PLL_VIDEO_NUM.U)
  1519. #define HW_CCM_ANALOG_PLL_VIDEO_NUM_WR(v) (HW_CCM_ANALOG_PLL_VIDEO_NUM.U = (v))
  1520. #define HW_CCM_ANALOG_PLL_VIDEO_NUM_SET(v) (HW_CCM_ANALOG_PLL_VIDEO_NUM_WR(HW_CCM_ANALOG_PLL_VIDEO_NUM_RD() | (v)))
  1521. #define HW_CCM_ANALOG_PLL_VIDEO_NUM_CLR(v) (HW_CCM_ANALOG_PLL_VIDEO_NUM_WR(HW_CCM_ANALOG_PLL_VIDEO_NUM_RD() & ~(v)))
  1522. #define HW_CCM_ANALOG_PLL_VIDEO_NUM_TOG(v) (HW_CCM_ANALOG_PLL_VIDEO_NUM_WR(HW_CCM_ANALOG_PLL_VIDEO_NUM_RD() ^ (v)))
  1523. #endif
  1524. //@}
  1525. /*
  1526. * constants & macros for individual CCM_ANALOG_PLL_VIDEO_NUM bitfields
  1527. */
  1528. /*! @name Register CCM_ANALOG_PLL_VIDEO_NUM, field A[29:0] (RW)
  1529. *
  1530. * 30 bit numerator of fractional loop divider(Signed number), absolute value should be less than
  1531. * denominator
  1532. */
  1533. //@{
  1534. #define BP_CCM_ANALOG_PLL_VIDEO_NUM_A (0) //!< Bit position for CCM_ANALOG_PLL_VIDEO_NUM_A.
  1535. #define BM_CCM_ANALOG_PLL_VIDEO_NUM_A (0x3fffffff) //!< Bit mask for CCM_ANALOG_PLL_VIDEO_NUM_A.
  1536. //! @brief Get value of CCM_ANALOG_PLL_VIDEO_NUM_A from a register value.
  1537. #define BG_CCM_ANALOG_PLL_VIDEO_NUM_A(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_VIDEO_NUM_A) >> BP_CCM_ANALOG_PLL_VIDEO_NUM_A)
  1538. //! @brief Format value for bitfield CCM_ANALOG_PLL_VIDEO_NUM_A.
  1539. #define BF_CCM_ANALOG_PLL_VIDEO_NUM_A(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_VIDEO_NUM_A) & BM_CCM_ANALOG_PLL_VIDEO_NUM_A)
  1540. #ifndef __LANGUAGE_ASM__
  1541. //! @brief Set the A field to a new value.
  1542. #define BW_CCM_ANALOG_PLL_VIDEO_NUM_A(v) (HW_CCM_ANALOG_PLL_VIDEO_NUM_WR((HW_CCM_ANALOG_PLL_VIDEO_NUM_RD() & ~BM_CCM_ANALOG_PLL_VIDEO_NUM_A) | BF_CCM_ANALOG_PLL_VIDEO_NUM_A(v)))
  1543. #endif
  1544. //@}
  1545. //-------------------------------------------------------------------------------------------
  1546. // HW_CCM_ANALOG_PLL_VIDEO_DENOM - Denominator of Video PLL Fractional Loop Divider Register
  1547. //-------------------------------------------------------------------------------------------
  1548. #ifndef __LANGUAGE_ASM__
  1549. /*!
  1550. * @brief HW_CCM_ANALOG_PLL_VIDEO_DENOM - Denominator of Video PLL Fractional Loop Divider Register (RW)
  1551. *
  1552. * Reset value: 0x10a24447
  1553. *
  1554. * This register contains the Denominator (B) of Video PLL fractional loop divider.(Unsigned number)
  1555. */
  1556. typedef union _hw_ccm_analog_pll_video_denom
  1557. {
  1558. reg32_t U;
  1559. struct _hw_ccm_analog_pll_video_denom_bitfields
  1560. {
  1561. unsigned B : 30; //!< [29:0] 30 bit Denominator of fractional loop divider.
  1562. unsigned RESERVED0 : 2; //!< [31:30] Always set to zero (0).
  1563. } B;
  1564. } hw_ccm_analog_pll_video_denom_t;
  1565. #endif
  1566. /*!
  1567. * @name Constants and macros for entire CCM_ANALOG_PLL_VIDEO_DENOM register
  1568. */
  1569. //@{
  1570. #define HW_CCM_ANALOG_PLL_VIDEO_DENOM_ADDR (REGS_CCM_ANALOG_BASE + 0xc0)
  1571. #ifndef __LANGUAGE_ASM__
  1572. #define HW_CCM_ANALOG_PLL_VIDEO_DENOM (*(volatile hw_ccm_analog_pll_video_denom_t *) HW_CCM_ANALOG_PLL_VIDEO_DENOM_ADDR)
  1573. #define HW_CCM_ANALOG_PLL_VIDEO_DENOM_RD() (HW_CCM_ANALOG_PLL_VIDEO_DENOM.U)
  1574. #define HW_CCM_ANALOG_PLL_VIDEO_DENOM_WR(v) (HW_CCM_ANALOG_PLL_VIDEO_DENOM.U = (v))
  1575. #define HW_CCM_ANALOG_PLL_VIDEO_DENOM_SET(v) (HW_CCM_ANALOG_PLL_VIDEO_DENOM_WR(HW_CCM_ANALOG_PLL_VIDEO_DENOM_RD() | (v)))
  1576. #define HW_CCM_ANALOG_PLL_VIDEO_DENOM_CLR(v) (HW_CCM_ANALOG_PLL_VIDEO_DENOM_WR(HW_CCM_ANALOG_PLL_VIDEO_DENOM_RD() & ~(v)))
  1577. #define HW_CCM_ANALOG_PLL_VIDEO_DENOM_TOG(v) (HW_CCM_ANALOG_PLL_VIDEO_DENOM_WR(HW_CCM_ANALOG_PLL_VIDEO_DENOM_RD() ^ (v)))
  1578. #endif
  1579. //@}
  1580. /*
  1581. * constants & macros for individual CCM_ANALOG_PLL_VIDEO_DENOM bitfields
  1582. */
  1583. /*! @name Register CCM_ANALOG_PLL_VIDEO_DENOM, field B[29:0] (RW)
  1584. *
  1585. * 30 bit Denominator of fractional loop divider.
  1586. */
  1587. //@{
  1588. #define BP_CCM_ANALOG_PLL_VIDEO_DENOM_B (0) //!< Bit position for CCM_ANALOG_PLL_VIDEO_DENOM_B.
  1589. #define BM_CCM_ANALOG_PLL_VIDEO_DENOM_B (0x3fffffff) //!< Bit mask for CCM_ANALOG_PLL_VIDEO_DENOM_B.
  1590. //! @brief Get value of CCM_ANALOG_PLL_VIDEO_DENOM_B from a register value.
  1591. #define BG_CCM_ANALOG_PLL_VIDEO_DENOM_B(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_VIDEO_DENOM_B) >> BP_CCM_ANALOG_PLL_VIDEO_DENOM_B)
  1592. //! @brief Format value for bitfield CCM_ANALOG_PLL_VIDEO_DENOM_B.
  1593. #define BF_CCM_ANALOG_PLL_VIDEO_DENOM_B(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_VIDEO_DENOM_B) & BM_CCM_ANALOG_PLL_VIDEO_DENOM_B)
  1594. #ifndef __LANGUAGE_ASM__
  1595. //! @brief Set the B field to a new value.
  1596. #define BW_CCM_ANALOG_PLL_VIDEO_DENOM_B(v) (HW_CCM_ANALOG_PLL_VIDEO_DENOM_WR((HW_CCM_ANALOG_PLL_VIDEO_DENOM_RD() & ~BM_CCM_ANALOG_PLL_VIDEO_DENOM_B) | BF_CCM_ANALOG_PLL_VIDEO_DENOM_B(v)))
  1597. #endif
  1598. //@}
  1599. //-------------------------------------------------------------------------------------------
  1600. // HW_CCM_ANALOG_PLL_MLB - MLB PLL Control Register
  1601. //-------------------------------------------------------------------------------------------
  1602. #ifndef __LANGUAGE_ASM__
  1603. /*!
  1604. * @brief HW_CCM_ANALOG_PLL_MLB - MLB PLL Control Register (RW)
  1605. *
  1606. * Reset value: 0x00010000
  1607. *
  1608. * This register defines the control bits for the MLB PLL.
  1609. */
  1610. typedef union _hw_ccm_analog_pll_mlb
  1611. {
  1612. reg32_t U;
  1613. struct _hw_ccm_analog_pll_mlb_bitfields
  1614. {
  1615. unsigned RESERVED0 : 11; //!< [10:0] Reserved.
  1616. unsigned HOLD_RING_OFF : 1; //!< [11] Analog debug bit.
  1617. unsigned PHASE_SEL : 2; //!< [13:12] Analog debut bit.
  1618. unsigned RESERVED1 : 2; //!< [15:14] Reserved.
  1619. unsigned BYPASS : 1; //!< [16] Bypass the PLL.
  1620. unsigned VDDA_DELAY_CFG : 3; //!< [19:17] Configure the phase delay of the MLB PLL by adjusting the delay line in Vddio power domain.
  1621. unsigned VDDD_DELAY_CFG : 3; //!< [22:20] Configure the phase delay of the MLB PLL by adjusting the delay line in core Vdd poser domain.
  1622. unsigned RX_CLK_DELAY_CFG : 3; //!< [25:23] Configure the phase delay of the MLB PLL RX Clock.
  1623. unsigned MLB_FLT_RES_CFG : 3; //!< [28:26] Configure the filter resistor for different divider ratio of MLB PLL.
  1624. unsigned RESERVED2 : 2; //!< [30:29] Reserved.
  1625. unsigned LOCK : 1; //!< [31] Lock bit
  1626. } B;
  1627. } hw_ccm_analog_pll_mlb_t;
  1628. #endif
  1629. /*!
  1630. * @name Constants and macros for entire CCM_ANALOG_PLL_MLB register
  1631. */
  1632. //@{
  1633. #define HW_CCM_ANALOG_PLL_MLB_ADDR (REGS_CCM_ANALOG_BASE + 0xd0)
  1634. #define HW_CCM_ANALOG_PLL_MLB_SET_ADDR (HW_CCM_ANALOG_PLL_MLB_ADDR + 0x4)
  1635. #define HW_CCM_ANALOG_PLL_MLB_CLR_ADDR (HW_CCM_ANALOG_PLL_MLB_ADDR + 0x8)
  1636. #define HW_CCM_ANALOG_PLL_MLB_TOG_ADDR (HW_CCM_ANALOG_PLL_MLB_ADDR + 0xC)
  1637. #ifndef __LANGUAGE_ASM__
  1638. #define HW_CCM_ANALOG_PLL_MLB (*(volatile hw_ccm_analog_pll_mlb_t *) HW_CCM_ANALOG_PLL_MLB_ADDR)
  1639. #define HW_CCM_ANALOG_PLL_MLB_RD() (HW_CCM_ANALOG_PLL_MLB.U)
  1640. #define HW_CCM_ANALOG_PLL_MLB_WR(v) (HW_CCM_ANALOG_PLL_MLB.U = (v))
  1641. #define HW_CCM_ANALOG_PLL_MLB_SET(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PLL_MLB_SET_ADDR) = (v))
  1642. #define HW_CCM_ANALOG_PLL_MLB_CLR(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PLL_MLB_CLR_ADDR) = (v))
  1643. #define HW_CCM_ANALOG_PLL_MLB_TOG(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PLL_MLB_TOG_ADDR) = (v))
  1644. #endif
  1645. //@}
  1646. /*
  1647. * constants & macros for individual CCM_ANALOG_PLL_MLB bitfields
  1648. */
  1649. /*! @name Register CCM_ANALOG_PLL_MLB, field HOLD_RING_OFF[11] (RW)
  1650. *
  1651. * Analog debug bit.
  1652. */
  1653. //@{
  1654. #define BP_CCM_ANALOG_PLL_MLB_HOLD_RING_OFF (11) //!< Bit position for CCM_ANALOG_PLL_MLB_HOLD_RING_OFF.
  1655. #define BM_CCM_ANALOG_PLL_MLB_HOLD_RING_OFF (0x00000800) //!< Bit mask for CCM_ANALOG_PLL_MLB_HOLD_RING_OFF.
  1656. //! @brief Get value of CCM_ANALOG_PLL_MLB_HOLD_RING_OFF from a register value.
  1657. #define BG_CCM_ANALOG_PLL_MLB_HOLD_RING_OFF(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_MLB_HOLD_RING_OFF) >> BP_CCM_ANALOG_PLL_MLB_HOLD_RING_OFF)
  1658. //! @brief Format value for bitfield CCM_ANALOG_PLL_MLB_HOLD_RING_OFF.
  1659. #define BF_CCM_ANALOG_PLL_MLB_HOLD_RING_OFF(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_MLB_HOLD_RING_OFF) & BM_CCM_ANALOG_PLL_MLB_HOLD_RING_OFF)
  1660. #ifndef __LANGUAGE_ASM__
  1661. //! @brief Set the HOLD_RING_OFF field to a new value.
  1662. #define BW_CCM_ANALOG_PLL_MLB_HOLD_RING_OFF(v) BF_CS1(CCM_ANALOG_PLL_MLB, HOLD_RING_OFF, v)
  1663. #endif
  1664. //@}
  1665. /*! @name Register CCM_ANALOG_PLL_MLB, field PHASE_SEL[13:12] (RW)
  1666. *
  1667. * Analog debut bit.
  1668. */
  1669. //@{
  1670. #define BP_CCM_ANALOG_PLL_MLB_PHASE_SEL (12) //!< Bit position for CCM_ANALOG_PLL_MLB_PHASE_SEL.
  1671. #define BM_CCM_ANALOG_PLL_MLB_PHASE_SEL (0x00003000) //!< Bit mask for CCM_ANALOG_PLL_MLB_PHASE_SEL.
  1672. //! @brief Get value of CCM_ANALOG_PLL_MLB_PHASE_SEL from a register value.
  1673. #define BG_CCM_ANALOG_PLL_MLB_PHASE_SEL(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_MLB_PHASE_SEL) >> BP_CCM_ANALOG_PLL_MLB_PHASE_SEL)
  1674. //! @brief Format value for bitfield CCM_ANALOG_PLL_MLB_PHASE_SEL.
  1675. #define BF_CCM_ANALOG_PLL_MLB_PHASE_SEL(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_MLB_PHASE_SEL) & BM_CCM_ANALOG_PLL_MLB_PHASE_SEL)
  1676. #ifndef __LANGUAGE_ASM__
  1677. //! @brief Set the PHASE_SEL field to a new value.
  1678. #define BW_CCM_ANALOG_PLL_MLB_PHASE_SEL(v) BF_CS1(CCM_ANALOG_PLL_MLB, PHASE_SEL, v)
  1679. #endif
  1680. //@}
  1681. /*! @name Register CCM_ANALOG_PLL_MLB, field BYPASS[16] (RW)
  1682. *
  1683. * Bypass the PLL.
  1684. */
  1685. //@{
  1686. #define BP_CCM_ANALOG_PLL_MLB_BYPASS (16) //!< Bit position for CCM_ANALOG_PLL_MLB_BYPASS.
  1687. #define BM_CCM_ANALOG_PLL_MLB_BYPASS (0x00010000) //!< Bit mask for CCM_ANALOG_PLL_MLB_BYPASS.
  1688. //! @brief Get value of CCM_ANALOG_PLL_MLB_BYPASS from a register value.
  1689. #define BG_CCM_ANALOG_PLL_MLB_BYPASS(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_MLB_BYPASS) >> BP_CCM_ANALOG_PLL_MLB_BYPASS)
  1690. //! @brief Format value for bitfield CCM_ANALOG_PLL_MLB_BYPASS.
  1691. #define BF_CCM_ANALOG_PLL_MLB_BYPASS(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_MLB_BYPASS) & BM_CCM_ANALOG_PLL_MLB_BYPASS)
  1692. #ifndef __LANGUAGE_ASM__
  1693. //! @brief Set the BYPASS field to a new value.
  1694. #define BW_CCM_ANALOG_PLL_MLB_BYPASS(v) BF_CS1(CCM_ANALOG_PLL_MLB, BYPASS, v)
  1695. #endif
  1696. //@}
  1697. /*! @name Register CCM_ANALOG_PLL_MLB, field VDDA_DELAY_CFG[19:17] (RW)
  1698. *
  1699. * Configure the phase delay of the MLB PLL by adjusting the delay line in Vddio power domain.
  1700. */
  1701. //@{
  1702. #define BP_CCM_ANALOG_PLL_MLB_VDDA_DELAY_CFG (17) //!< Bit position for CCM_ANALOG_PLL_MLB_VDDA_DELAY_CFG.
  1703. #define BM_CCM_ANALOG_PLL_MLB_VDDA_DELAY_CFG (0x000e0000) //!< Bit mask for CCM_ANALOG_PLL_MLB_VDDA_DELAY_CFG.
  1704. //! @brief Get value of CCM_ANALOG_PLL_MLB_VDDA_DELAY_CFG from a register value.
  1705. #define BG_CCM_ANALOG_PLL_MLB_VDDA_DELAY_CFG(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_MLB_VDDA_DELAY_CFG) >> BP_CCM_ANALOG_PLL_MLB_VDDA_DELAY_CFG)
  1706. //! @brief Format value for bitfield CCM_ANALOG_PLL_MLB_VDDA_DELAY_CFG.
  1707. #define BF_CCM_ANALOG_PLL_MLB_VDDA_DELAY_CFG(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_MLB_VDDA_DELAY_CFG) & BM_CCM_ANALOG_PLL_MLB_VDDA_DELAY_CFG)
  1708. #ifndef __LANGUAGE_ASM__
  1709. //! @brief Set the VDDA_DELAY_CFG field to a new value.
  1710. #define BW_CCM_ANALOG_PLL_MLB_VDDA_DELAY_CFG(v) BF_CS1(CCM_ANALOG_PLL_MLB, VDDA_DELAY_CFG, v)
  1711. #endif
  1712. //@}
  1713. /*! @name Register CCM_ANALOG_PLL_MLB, field VDDD_DELAY_CFG[22:20] (RW)
  1714. *
  1715. * Configure the phase delay of the MLB PLL by adjusting the delay line in core Vdd poser domain.
  1716. */
  1717. //@{
  1718. #define BP_CCM_ANALOG_PLL_MLB_VDDD_DELAY_CFG (20) //!< Bit position for CCM_ANALOG_PLL_MLB_VDDD_DELAY_CFG.
  1719. #define BM_CCM_ANALOG_PLL_MLB_VDDD_DELAY_CFG (0x00700000) //!< Bit mask for CCM_ANALOG_PLL_MLB_VDDD_DELAY_CFG.
  1720. //! @brief Get value of CCM_ANALOG_PLL_MLB_VDDD_DELAY_CFG from a register value.
  1721. #define BG_CCM_ANALOG_PLL_MLB_VDDD_DELAY_CFG(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_MLB_VDDD_DELAY_CFG) >> BP_CCM_ANALOG_PLL_MLB_VDDD_DELAY_CFG)
  1722. //! @brief Format value for bitfield CCM_ANALOG_PLL_MLB_VDDD_DELAY_CFG.
  1723. #define BF_CCM_ANALOG_PLL_MLB_VDDD_DELAY_CFG(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_MLB_VDDD_DELAY_CFG) & BM_CCM_ANALOG_PLL_MLB_VDDD_DELAY_CFG)
  1724. #ifndef __LANGUAGE_ASM__
  1725. //! @brief Set the VDDD_DELAY_CFG field to a new value.
  1726. #define BW_CCM_ANALOG_PLL_MLB_VDDD_DELAY_CFG(v) BF_CS1(CCM_ANALOG_PLL_MLB, VDDD_DELAY_CFG, v)
  1727. #endif
  1728. //@}
  1729. /*! @name Register CCM_ANALOG_PLL_MLB, field RX_CLK_DELAY_CFG[25:23] (RW)
  1730. *
  1731. * Configure the phase delay of the MLB PLL RX Clock.
  1732. */
  1733. //@{
  1734. #define BP_CCM_ANALOG_PLL_MLB_RX_CLK_DELAY_CFG (23) //!< Bit position for CCM_ANALOG_PLL_MLB_RX_CLK_DELAY_CFG.
  1735. #define BM_CCM_ANALOG_PLL_MLB_RX_CLK_DELAY_CFG (0x03800000) //!< Bit mask for CCM_ANALOG_PLL_MLB_RX_CLK_DELAY_CFG.
  1736. //! @brief Get value of CCM_ANALOG_PLL_MLB_RX_CLK_DELAY_CFG from a register value.
  1737. #define BG_CCM_ANALOG_PLL_MLB_RX_CLK_DELAY_CFG(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_MLB_RX_CLK_DELAY_CFG) >> BP_CCM_ANALOG_PLL_MLB_RX_CLK_DELAY_CFG)
  1738. //! @brief Format value for bitfield CCM_ANALOG_PLL_MLB_RX_CLK_DELAY_CFG.
  1739. #define BF_CCM_ANALOG_PLL_MLB_RX_CLK_DELAY_CFG(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_MLB_RX_CLK_DELAY_CFG) & BM_CCM_ANALOG_PLL_MLB_RX_CLK_DELAY_CFG)
  1740. #ifndef __LANGUAGE_ASM__
  1741. //! @brief Set the RX_CLK_DELAY_CFG field to a new value.
  1742. #define BW_CCM_ANALOG_PLL_MLB_RX_CLK_DELAY_CFG(v) BF_CS1(CCM_ANALOG_PLL_MLB, RX_CLK_DELAY_CFG, v)
  1743. #endif
  1744. //@}
  1745. /*! @name Register CCM_ANALOG_PLL_MLB, field MLB_FLT_RES_CFG[28:26] (RW)
  1746. *
  1747. * Configure the filter resistor for different divider ratio of MLB PLL.
  1748. */
  1749. //@{
  1750. #define BP_CCM_ANALOG_PLL_MLB_MLB_FLT_RES_CFG (26) //!< Bit position for CCM_ANALOG_PLL_MLB_MLB_FLT_RES_CFG.
  1751. #define BM_CCM_ANALOG_PLL_MLB_MLB_FLT_RES_CFG (0x1c000000) //!< Bit mask for CCM_ANALOG_PLL_MLB_MLB_FLT_RES_CFG.
  1752. //! @brief Get value of CCM_ANALOG_PLL_MLB_MLB_FLT_RES_CFG from a register value.
  1753. #define BG_CCM_ANALOG_PLL_MLB_MLB_FLT_RES_CFG(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_MLB_MLB_FLT_RES_CFG) >> BP_CCM_ANALOG_PLL_MLB_MLB_FLT_RES_CFG)
  1754. //! @brief Format value for bitfield CCM_ANALOG_PLL_MLB_MLB_FLT_RES_CFG.
  1755. #define BF_CCM_ANALOG_PLL_MLB_MLB_FLT_RES_CFG(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_MLB_MLB_FLT_RES_CFG) & BM_CCM_ANALOG_PLL_MLB_MLB_FLT_RES_CFG)
  1756. #ifndef __LANGUAGE_ASM__
  1757. //! @brief Set the MLB_FLT_RES_CFG field to a new value.
  1758. #define BW_CCM_ANALOG_PLL_MLB_MLB_FLT_RES_CFG(v) BF_CS1(CCM_ANALOG_PLL_MLB, MLB_FLT_RES_CFG, v)
  1759. #endif
  1760. //@}
  1761. /*! @name Register CCM_ANALOG_PLL_MLB, field LOCK[31] (RO)
  1762. *
  1763. * Lock bit
  1764. *
  1765. * Values:
  1766. * - 0 - PLL is not currently locked
  1767. * - 1 - PLL is currently locked.
  1768. */
  1769. //@{
  1770. #define BP_CCM_ANALOG_PLL_MLB_LOCK (31) //!< Bit position for CCM_ANALOG_PLL_MLB_LOCK.
  1771. #define BM_CCM_ANALOG_PLL_MLB_LOCK (0x80000000) //!< Bit mask for CCM_ANALOG_PLL_MLB_LOCK.
  1772. //! @brief Get value of CCM_ANALOG_PLL_MLB_LOCK from a register value.
  1773. #define BG_CCM_ANALOG_PLL_MLB_LOCK(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_MLB_LOCK) >> BP_CCM_ANALOG_PLL_MLB_LOCK)
  1774. //@}
  1775. //-------------------------------------------------------------------------------------------
  1776. // HW_CCM_ANALOG_PLL_ENET - Analog ENET PLL Control Register
  1777. //-------------------------------------------------------------------------------------------
  1778. #ifndef __LANGUAGE_ASM__
  1779. /*!
  1780. * @brief HW_CCM_ANALOG_PLL_ENET - Analog ENET PLL Control Register (RW)
  1781. *
  1782. * Reset value: 0x00011001
  1783. *
  1784. * The control register provides control for the ENET PLL.
  1785. */
  1786. typedef union _hw_ccm_analog_pll_enet
  1787. {
  1788. reg32_t U;
  1789. struct _hw_ccm_analog_pll_enet_bitfields
  1790. {
  1791. unsigned DIV_SELECT : 2; //!< [1:0] Controls the frequency of the ethernet reference clock.00 - 25MHz; 01 - 50MHz; 10 - 100MHz (not 50% duty cycle); 11 - 125MHz;
  1792. unsigned RESERVED0 : 10; //!< [11:2] Reserved.
  1793. unsigned POWERDOWN : 1; //!< [12] Powers down the PLL.
  1794. unsigned ENABLE : 1; //!< [13] Enable the ethernet clock output.
  1795. unsigned BYPASS_CLK_SRC : 2; //!< [15:14] Determines the bypass source.
  1796. unsigned BYPASS : 1; //!< [16] Bypass the pll.
  1797. unsigned RESERVED1 : 1; //!< [17] Reserved
  1798. unsigned PFD_OFFSET_EN : 1; //!< [18] Enables an offset in the phase frequency detector.
  1799. unsigned ENABLE_125M : 1; //!< [19] Enables an offset in the phase frequency detector.
  1800. unsigned ENABLE_100M : 1; //!< [20] Enables an offset in the phase frequency detector.
  1801. unsigned RESERVED2 : 10; //!< [30:21] Always set to zero (0).
  1802. unsigned LOCK : 1; //!< [31] 1 - PLL is currently locked; 0 - PLL is not currently locked.
  1803. } B;
  1804. } hw_ccm_analog_pll_enet_t;
  1805. #endif
  1806. /*!
  1807. * @name Constants and macros for entire CCM_ANALOG_PLL_ENET register
  1808. */
  1809. //@{
  1810. #define HW_CCM_ANALOG_PLL_ENET_ADDR (REGS_CCM_ANALOG_BASE + 0xe0)
  1811. #define HW_CCM_ANALOG_PLL_ENET_SET_ADDR (HW_CCM_ANALOG_PLL_ENET_ADDR + 0x4)
  1812. #define HW_CCM_ANALOG_PLL_ENET_CLR_ADDR (HW_CCM_ANALOG_PLL_ENET_ADDR + 0x8)
  1813. #define HW_CCM_ANALOG_PLL_ENET_TOG_ADDR (HW_CCM_ANALOG_PLL_ENET_ADDR + 0xC)
  1814. #ifndef __LANGUAGE_ASM__
  1815. #define HW_CCM_ANALOG_PLL_ENET (*(volatile hw_ccm_analog_pll_enet_t *) HW_CCM_ANALOG_PLL_ENET_ADDR)
  1816. #define HW_CCM_ANALOG_PLL_ENET_RD() (HW_CCM_ANALOG_PLL_ENET.U)
  1817. #define HW_CCM_ANALOG_PLL_ENET_WR(v) (HW_CCM_ANALOG_PLL_ENET.U = (v))
  1818. #define HW_CCM_ANALOG_PLL_ENET_SET(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PLL_ENET_SET_ADDR) = (v))
  1819. #define HW_CCM_ANALOG_PLL_ENET_CLR(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PLL_ENET_CLR_ADDR) = (v))
  1820. #define HW_CCM_ANALOG_PLL_ENET_TOG(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PLL_ENET_TOG_ADDR) = (v))
  1821. #endif
  1822. //@}
  1823. /*
  1824. * constants & macros for individual CCM_ANALOG_PLL_ENET bitfields
  1825. */
  1826. /*! @name Register CCM_ANALOG_PLL_ENET, field DIV_SELECT[1:0] (RW)
  1827. *
  1828. * Controls the frequency of the ethernet reference clock.00 - 25MHz; 01 - 50MHz; 10 - 100MHz (not
  1829. * 50% duty cycle); 11 - 125MHz;
  1830. */
  1831. //@{
  1832. #define BP_CCM_ANALOG_PLL_ENET_DIV_SELECT (0) //!< Bit position for CCM_ANALOG_PLL_ENET_DIV_SELECT.
  1833. #define BM_CCM_ANALOG_PLL_ENET_DIV_SELECT (0x00000003) //!< Bit mask for CCM_ANALOG_PLL_ENET_DIV_SELECT.
  1834. //! @brief Get value of CCM_ANALOG_PLL_ENET_DIV_SELECT from a register value.
  1835. #define BG_CCM_ANALOG_PLL_ENET_DIV_SELECT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_ENET_DIV_SELECT) >> BP_CCM_ANALOG_PLL_ENET_DIV_SELECT)
  1836. //! @brief Format value for bitfield CCM_ANALOG_PLL_ENET_DIV_SELECT.
  1837. #define BF_CCM_ANALOG_PLL_ENET_DIV_SELECT(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_ENET_DIV_SELECT) & BM_CCM_ANALOG_PLL_ENET_DIV_SELECT)
  1838. #ifndef __LANGUAGE_ASM__
  1839. //! @brief Set the DIV_SELECT field to a new value.
  1840. #define BW_CCM_ANALOG_PLL_ENET_DIV_SELECT(v) BF_CS1(CCM_ANALOG_PLL_ENET, DIV_SELECT, v)
  1841. #endif
  1842. //@}
  1843. /*! @name Register CCM_ANALOG_PLL_ENET, field POWERDOWN[12] (RW)
  1844. *
  1845. * Powers down the PLL.
  1846. */
  1847. //@{
  1848. #define BP_CCM_ANALOG_PLL_ENET_POWERDOWN (12) //!< Bit position for CCM_ANALOG_PLL_ENET_POWERDOWN.
  1849. #define BM_CCM_ANALOG_PLL_ENET_POWERDOWN (0x00001000) //!< Bit mask for CCM_ANALOG_PLL_ENET_POWERDOWN.
  1850. //! @brief Get value of CCM_ANALOG_PLL_ENET_POWERDOWN from a register value.
  1851. #define BG_CCM_ANALOG_PLL_ENET_POWERDOWN(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_ENET_POWERDOWN) >> BP_CCM_ANALOG_PLL_ENET_POWERDOWN)
  1852. //! @brief Format value for bitfield CCM_ANALOG_PLL_ENET_POWERDOWN.
  1853. #define BF_CCM_ANALOG_PLL_ENET_POWERDOWN(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_ENET_POWERDOWN) & BM_CCM_ANALOG_PLL_ENET_POWERDOWN)
  1854. #ifndef __LANGUAGE_ASM__
  1855. //! @brief Set the POWERDOWN field to a new value.
  1856. #define BW_CCM_ANALOG_PLL_ENET_POWERDOWN(v) BF_CS1(CCM_ANALOG_PLL_ENET, POWERDOWN, v)
  1857. #endif
  1858. //@}
  1859. /*! @name Register CCM_ANALOG_PLL_ENET, field ENABLE[13] (RW)
  1860. *
  1861. * Enable the ethernet clock output.
  1862. */
  1863. //@{
  1864. #define BP_CCM_ANALOG_PLL_ENET_ENABLE (13) //!< Bit position for CCM_ANALOG_PLL_ENET_ENABLE.
  1865. #define BM_CCM_ANALOG_PLL_ENET_ENABLE (0x00002000) //!< Bit mask for CCM_ANALOG_PLL_ENET_ENABLE.
  1866. //! @brief Get value of CCM_ANALOG_PLL_ENET_ENABLE from a register value.
  1867. #define BG_CCM_ANALOG_PLL_ENET_ENABLE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_ENET_ENABLE) >> BP_CCM_ANALOG_PLL_ENET_ENABLE)
  1868. //! @brief Format value for bitfield CCM_ANALOG_PLL_ENET_ENABLE.
  1869. #define BF_CCM_ANALOG_PLL_ENET_ENABLE(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_ENET_ENABLE) & BM_CCM_ANALOG_PLL_ENET_ENABLE)
  1870. #ifndef __LANGUAGE_ASM__
  1871. //! @brief Set the ENABLE field to a new value.
  1872. #define BW_CCM_ANALOG_PLL_ENET_ENABLE(v) BF_CS1(CCM_ANALOG_PLL_ENET, ENABLE, v)
  1873. #endif
  1874. //@}
  1875. /*! @name Register CCM_ANALOG_PLL_ENET, field BYPASS_CLK_SRC[15:14] (RW)
  1876. *
  1877. * Determines the bypass source.
  1878. *
  1879. * Values:
  1880. * - REF_CLK_24M = 0x0 - Select the 24MHz oscillator as source.
  1881. * - CLK1 = 0x1 - Select the CLK1_N / CLK1_P as source.
  1882. * - CLK2 = 0x2 - Select the CLK2_N / CLK2_P as source.
  1883. * - XOR = 0x3 - Select the XOR of CLK1_N / CLK1_P and CLK2_N / CLK2_P as source.
  1884. */
  1885. //@{
  1886. #define BP_CCM_ANALOG_PLL_ENET_BYPASS_CLK_SRC (14) //!< Bit position for CCM_ANALOG_PLL_ENET_BYPASS_CLK_SRC.
  1887. #define BM_CCM_ANALOG_PLL_ENET_BYPASS_CLK_SRC (0x0000c000) //!< Bit mask for CCM_ANALOG_PLL_ENET_BYPASS_CLK_SRC.
  1888. //! @brief Get value of CCM_ANALOG_PLL_ENET_BYPASS_CLK_SRC from a register value.
  1889. #define BG_CCM_ANALOG_PLL_ENET_BYPASS_CLK_SRC(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_ENET_BYPASS_CLK_SRC) >> BP_CCM_ANALOG_PLL_ENET_BYPASS_CLK_SRC)
  1890. //! @brief Format value for bitfield CCM_ANALOG_PLL_ENET_BYPASS_CLK_SRC.
  1891. #define BF_CCM_ANALOG_PLL_ENET_BYPASS_CLK_SRC(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_ENET_BYPASS_CLK_SRC) & BM_CCM_ANALOG_PLL_ENET_BYPASS_CLK_SRC)
  1892. #ifndef __LANGUAGE_ASM__
  1893. //! @brief Set the BYPASS_CLK_SRC field to a new value.
  1894. #define BW_CCM_ANALOG_PLL_ENET_BYPASS_CLK_SRC(v) BF_CS1(CCM_ANALOG_PLL_ENET, BYPASS_CLK_SRC, v)
  1895. #endif
  1896. //! @brief Macro to simplify usage of value macros.
  1897. #define BF_CCM_ANALOG_PLL_ENET_BYPASS_CLK_SRC_V(v) BF_CCM_ANALOG_PLL_ENET_BYPASS_CLK_SRC(BV_CCM_ANALOG_PLL_ENET_BYPASS_CLK_SRC__##v)
  1898. #define BV_CCM_ANALOG_PLL_ENET_BYPASS_CLK_SRC__REF_CLK_24M (0x0) //!< Select the 24MHz oscillator as source.
  1899. #define BV_CCM_ANALOG_PLL_ENET_BYPASS_CLK_SRC__CLK1 (0x1) //!< Select the CLK1_N / CLK1_P as source.
  1900. #define BV_CCM_ANALOG_PLL_ENET_BYPASS_CLK_SRC__CLK2 (0x2) //!< Select the CLK2_N / CLK2_P as source.
  1901. #define BV_CCM_ANALOG_PLL_ENET_BYPASS_CLK_SRC__XOR (0x3) //!< Select the XOR of CLK1_N / CLK1_P and CLK2_N / CLK2_P as source.
  1902. //@}
  1903. /*! @name Register CCM_ANALOG_PLL_ENET, field BYPASS[16] (RW)
  1904. *
  1905. * Bypass the pll.
  1906. */
  1907. //@{
  1908. #define BP_CCM_ANALOG_PLL_ENET_BYPASS (16) //!< Bit position for CCM_ANALOG_PLL_ENET_BYPASS.
  1909. #define BM_CCM_ANALOG_PLL_ENET_BYPASS (0x00010000) //!< Bit mask for CCM_ANALOG_PLL_ENET_BYPASS.
  1910. //! @brief Get value of CCM_ANALOG_PLL_ENET_BYPASS from a register value.
  1911. #define BG_CCM_ANALOG_PLL_ENET_BYPASS(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_ENET_BYPASS) >> BP_CCM_ANALOG_PLL_ENET_BYPASS)
  1912. //! @brief Format value for bitfield CCM_ANALOG_PLL_ENET_BYPASS.
  1913. #define BF_CCM_ANALOG_PLL_ENET_BYPASS(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_ENET_BYPASS) & BM_CCM_ANALOG_PLL_ENET_BYPASS)
  1914. #ifndef __LANGUAGE_ASM__
  1915. //! @brief Set the BYPASS field to a new value.
  1916. #define BW_CCM_ANALOG_PLL_ENET_BYPASS(v) BF_CS1(CCM_ANALOG_PLL_ENET, BYPASS, v)
  1917. #endif
  1918. //@}
  1919. /*! @name Register CCM_ANALOG_PLL_ENET, field PFD_OFFSET_EN[18] (RW)
  1920. *
  1921. * Enables an offset in the phase frequency detector.
  1922. */
  1923. //@{
  1924. #define BP_CCM_ANALOG_PLL_ENET_PFD_OFFSET_EN (18) //!< Bit position for CCM_ANALOG_PLL_ENET_PFD_OFFSET_EN.
  1925. #define BM_CCM_ANALOG_PLL_ENET_PFD_OFFSET_EN (0x00040000) //!< Bit mask for CCM_ANALOG_PLL_ENET_PFD_OFFSET_EN.
  1926. //! @brief Get value of CCM_ANALOG_PLL_ENET_PFD_OFFSET_EN from a register value.
  1927. #define BG_CCM_ANALOG_PLL_ENET_PFD_OFFSET_EN(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_ENET_PFD_OFFSET_EN) >> BP_CCM_ANALOG_PLL_ENET_PFD_OFFSET_EN)
  1928. //! @brief Format value for bitfield CCM_ANALOG_PLL_ENET_PFD_OFFSET_EN.
  1929. #define BF_CCM_ANALOG_PLL_ENET_PFD_OFFSET_EN(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_ENET_PFD_OFFSET_EN) & BM_CCM_ANALOG_PLL_ENET_PFD_OFFSET_EN)
  1930. #ifndef __LANGUAGE_ASM__
  1931. //! @brief Set the PFD_OFFSET_EN field to a new value.
  1932. #define BW_CCM_ANALOG_PLL_ENET_PFD_OFFSET_EN(v) BF_CS1(CCM_ANALOG_PLL_ENET, PFD_OFFSET_EN, v)
  1933. #endif
  1934. //@}
  1935. /*! @name Register CCM_ANALOG_PLL_ENET, field ENABLE_125M[19] (RW)
  1936. *
  1937. * Enables an offset in the phase frequency detector.
  1938. */
  1939. //@{
  1940. #define BP_CCM_ANALOG_PLL_ENET_ENABLE_125M (19) //!< Bit position for CCM_ANALOG_PLL_ENET_ENABLE_125M.
  1941. #define BM_CCM_ANALOG_PLL_ENET_ENABLE_125M (0x00080000) //!< Bit mask for CCM_ANALOG_PLL_ENET_ENABLE_125M.
  1942. //! @brief Get value of CCM_ANALOG_PLL_ENET_ENABLE_125M from a register value.
  1943. #define BG_CCM_ANALOG_PLL_ENET_ENABLE_125M(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_ENET_ENABLE_125M) >> BP_CCM_ANALOG_PLL_ENET_ENABLE_125M)
  1944. //! @brief Format value for bitfield CCM_ANALOG_PLL_ENET_ENABLE_125M.
  1945. #define BF_CCM_ANALOG_PLL_ENET_ENABLE_125M(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_ENET_ENABLE_125M) & BM_CCM_ANALOG_PLL_ENET_ENABLE_125M)
  1946. #ifndef __LANGUAGE_ASM__
  1947. //! @brief Set the ENABLE_125M field to a new value.
  1948. #define BW_CCM_ANALOG_PLL_ENET_ENABLE_125M(v) BF_CS1(CCM_ANALOG_PLL_ENET, ENABLE_125M, v)
  1949. #endif
  1950. //@}
  1951. /*! @name Register CCM_ANALOG_PLL_ENET, field ENABLE_100M[20] (RW)
  1952. *
  1953. * Enables an offset in the phase frequency detector.
  1954. */
  1955. //@{
  1956. #define BP_CCM_ANALOG_PLL_ENET_ENABLE_100M (20) //!< Bit position for CCM_ANALOG_PLL_ENET_ENABLE_100M.
  1957. #define BM_CCM_ANALOG_PLL_ENET_ENABLE_100M (0x00100000) //!< Bit mask for CCM_ANALOG_PLL_ENET_ENABLE_100M.
  1958. //! @brief Get value of CCM_ANALOG_PLL_ENET_ENABLE_100M from a register value.
  1959. #define BG_CCM_ANALOG_PLL_ENET_ENABLE_100M(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_ENET_ENABLE_100M) >> BP_CCM_ANALOG_PLL_ENET_ENABLE_100M)
  1960. //! @brief Format value for bitfield CCM_ANALOG_PLL_ENET_ENABLE_100M.
  1961. #define BF_CCM_ANALOG_PLL_ENET_ENABLE_100M(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PLL_ENET_ENABLE_100M) & BM_CCM_ANALOG_PLL_ENET_ENABLE_100M)
  1962. #ifndef __LANGUAGE_ASM__
  1963. //! @brief Set the ENABLE_100M field to a new value.
  1964. #define BW_CCM_ANALOG_PLL_ENET_ENABLE_100M(v) BF_CS1(CCM_ANALOG_PLL_ENET, ENABLE_100M, v)
  1965. #endif
  1966. //@}
  1967. /*! @name Register CCM_ANALOG_PLL_ENET, field LOCK[31] (RO)
  1968. *
  1969. * 1 - PLL is currently locked; 0 - PLL is not currently locked.
  1970. */
  1971. //@{
  1972. #define BP_CCM_ANALOG_PLL_ENET_LOCK (31) //!< Bit position for CCM_ANALOG_PLL_ENET_LOCK.
  1973. #define BM_CCM_ANALOG_PLL_ENET_LOCK (0x80000000) //!< Bit mask for CCM_ANALOG_PLL_ENET_LOCK.
  1974. //! @brief Get value of CCM_ANALOG_PLL_ENET_LOCK from a register value.
  1975. #define BG_CCM_ANALOG_PLL_ENET_LOCK(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PLL_ENET_LOCK) >> BP_CCM_ANALOG_PLL_ENET_LOCK)
  1976. //@}
  1977. //-------------------------------------------------------------------------------------------
  1978. // HW_CCM_ANALOG_PFD_480 - 480MHz Clock (from PLL_USB2) Phase Fractional Divider Control Register
  1979. //-------------------------------------------------------------------------------------------
  1980. #ifndef __LANGUAGE_ASM__
  1981. /*!
  1982. * @brief HW_CCM_ANALOG_PFD_480 - 480MHz Clock (from PLL_USB2) Phase Fractional Divider Control Register (RW)
  1983. *
  1984. * Reset value: 0x1311100c
  1985. *
  1986. * The PFD_480 control register provides control for PFD clock generation. This register controls
  1987. * the 4-phase fractional clock dividers. The fractional clock frequencies are a product of the
  1988. * values in these registers.
  1989. */
  1990. typedef union _hw_ccm_analog_pfd_480
  1991. {
  1992. reg32_t U;
  1993. struct _hw_ccm_analog_pfd_480_bitfields
  1994. {
  1995. unsigned PFD0_FRAC : 6; //!< [5:0] This field controls the fractional divide value.
  1996. unsigned PFD0_STABLE : 1; //!< [6] This read-only bitfield is for DIAGNOSTIC PURPOSES ONLY since the fractional divider should become stable quickly enough that this field will never need to be used by either device driver or application code.
  1997. unsigned PFD0_CLKGATE : 1; //!< [7] If set to 1, the IO fractional divider clock (reference ref_pfd0) is off (power savings).
  1998. unsigned PFD1_FRAC : 6; //!< [13:8] This field controls the fractional divide value.
  1999. unsigned PFD1_STABLE : 1; //!< [14] This read-only bitfield is for DIAGNOSTIC PURPOSES ONLY since the fractional divider should become stable quickly enough that this field will never need to be used by either device driver or application code.
  2000. unsigned PFD1_CLKGATE : 1; //!< [15] IO Clock Gate.
  2001. unsigned PFD2_FRAC : 6; //!< [21:16] This field controls the fractional divide value.
  2002. unsigned PFD2_STABLE : 1; //!< [22] This read-only bitfield is for DIAGNOSTIC PURPOSES ONLY since the fractional divider should become stable quickly enough that this field will never need to be used by either device driver or application code.
  2003. unsigned PFD2_CLKGATE : 1; //!< [23] IO Clock Gate.
  2004. unsigned PFD3_FRAC : 6; //!< [29:24] This field controls the fractional divide value.
  2005. unsigned PFD3_STABLE : 1; //!< [30] This read-only bitfield is for DIAGNOSTIC PURPOSES ONLY since the fractional divider should become stable quickly enough that this field will never need to be used by either device driver or application code.
  2006. unsigned PFD3_CLKGATE : 1; //!< [31] IO Clock Gate.
  2007. } B;
  2008. } hw_ccm_analog_pfd_480_t;
  2009. #endif
  2010. /*!
  2011. * @name Constants and macros for entire CCM_ANALOG_PFD_480 register
  2012. */
  2013. //@{
  2014. #define HW_CCM_ANALOG_PFD_480_ADDR (REGS_CCM_ANALOG_BASE + 0xf0)
  2015. #define HW_CCM_ANALOG_PFD_480_SET_ADDR (HW_CCM_ANALOG_PFD_480_ADDR + 0x4)
  2016. #define HW_CCM_ANALOG_PFD_480_CLR_ADDR (HW_CCM_ANALOG_PFD_480_ADDR + 0x8)
  2017. #define HW_CCM_ANALOG_PFD_480_TOG_ADDR (HW_CCM_ANALOG_PFD_480_ADDR + 0xC)
  2018. #ifndef __LANGUAGE_ASM__
  2019. #define HW_CCM_ANALOG_PFD_480 (*(volatile hw_ccm_analog_pfd_480_t *) HW_CCM_ANALOG_PFD_480_ADDR)
  2020. #define HW_CCM_ANALOG_PFD_480_RD() (HW_CCM_ANALOG_PFD_480.U)
  2021. #define HW_CCM_ANALOG_PFD_480_WR(v) (HW_CCM_ANALOG_PFD_480.U = (v))
  2022. #define HW_CCM_ANALOG_PFD_480_SET(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PFD_480_SET_ADDR) = (v))
  2023. #define HW_CCM_ANALOG_PFD_480_CLR(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PFD_480_CLR_ADDR) = (v))
  2024. #define HW_CCM_ANALOG_PFD_480_TOG(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PFD_480_TOG_ADDR) = (v))
  2025. #endif
  2026. //@}
  2027. /*
  2028. * constants & macros for individual CCM_ANALOG_PFD_480 bitfields
  2029. */
  2030. /*! @name Register CCM_ANALOG_PFD_480, field PFD0_FRAC[5:0] (RW)
  2031. *
  2032. * This field controls the fractional divide value. The resulting frequency shall be
  2033. * 480*18/PFD0_FRAC where PFD0_FRAC is in the range 12-35.
  2034. */
  2035. //@{
  2036. #define BP_CCM_ANALOG_PFD_480_PFD0_FRAC (0) //!< Bit position for CCM_ANALOG_PFD_480_PFD0_FRAC.
  2037. #define BM_CCM_ANALOG_PFD_480_PFD0_FRAC (0x0000003f) //!< Bit mask for CCM_ANALOG_PFD_480_PFD0_FRAC.
  2038. //! @brief Get value of CCM_ANALOG_PFD_480_PFD0_FRAC from a register value.
  2039. #define BG_CCM_ANALOG_PFD_480_PFD0_FRAC(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PFD_480_PFD0_FRAC) >> BP_CCM_ANALOG_PFD_480_PFD0_FRAC)
  2040. //! @brief Format value for bitfield CCM_ANALOG_PFD_480_PFD0_FRAC.
  2041. #define BF_CCM_ANALOG_PFD_480_PFD0_FRAC(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PFD_480_PFD0_FRAC) & BM_CCM_ANALOG_PFD_480_PFD0_FRAC)
  2042. #ifndef __LANGUAGE_ASM__
  2043. //! @brief Set the PFD0_FRAC field to a new value.
  2044. #define BW_CCM_ANALOG_PFD_480_PFD0_FRAC(v) BF_CS1(CCM_ANALOG_PFD_480, PFD0_FRAC, v)
  2045. #endif
  2046. //@}
  2047. /*! @name Register CCM_ANALOG_PFD_480, field PFD0_STABLE[6] (RO)
  2048. *
  2049. * This read-only bitfield is for DIAGNOSTIC PURPOSES ONLY since the fractional divider should
  2050. * become stable quickly enough that this field will never need to be used by either device driver
  2051. * or application code. The value inverts when the new programmed fractional divide value has taken
  2052. * effect. Read this bit, program the new value, and when this bit inverts, the phase divider clock
  2053. * output is stable. Note that the value will not invert when the fractional divider is taken out of
  2054. * or placed into clock-gated state.
  2055. */
  2056. //@{
  2057. #define BP_CCM_ANALOG_PFD_480_PFD0_STABLE (6) //!< Bit position for CCM_ANALOG_PFD_480_PFD0_STABLE.
  2058. #define BM_CCM_ANALOG_PFD_480_PFD0_STABLE (0x00000040) //!< Bit mask for CCM_ANALOG_PFD_480_PFD0_STABLE.
  2059. //! @brief Get value of CCM_ANALOG_PFD_480_PFD0_STABLE from a register value.
  2060. #define BG_CCM_ANALOG_PFD_480_PFD0_STABLE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PFD_480_PFD0_STABLE) >> BP_CCM_ANALOG_PFD_480_PFD0_STABLE)
  2061. //@}
  2062. /*! @name Register CCM_ANALOG_PFD_480, field PFD0_CLKGATE[7] (RW)
  2063. *
  2064. * If set to 1, the IO fractional divider clock (reference ref_pfd0) is off (power savings). 0:
  2065. * ref_pfd0 fractional divider clock is enabled. Need to assert this bit before PLL is powered down
  2066. */
  2067. //@{
  2068. #define BP_CCM_ANALOG_PFD_480_PFD0_CLKGATE (7) //!< Bit position for CCM_ANALOG_PFD_480_PFD0_CLKGATE.
  2069. #define BM_CCM_ANALOG_PFD_480_PFD0_CLKGATE (0x00000080) //!< Bit mask for CCM_ANALOG_PFD_480_PFD0_CLKGATE.
  2070. //! @brief Get value of CCM_ANALOG_PFD_480_PFD0_CLKGATE from a register value.
  2071. #define BG_CCM_ANALOG_PFD_480_PFD0_CLKGATE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PFD_480_PFD0_CLKGATE) >> BP_CCM_ANALOG_PFD_480_PFD0_CLKGATE)
  2072. //! @brief Format value for bitfield CCM_ANALOG_PFD_480_PFD0_CLKGATE.
  2073. #define BF_CCM_ANALOG_PFD_480_PFD0_CLKGATE(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PFD_480_PFD0_CLKGATE) & BM_CCM_ANALOG_PFD_480_PFD0_CLKGATE)
  2074. #ifndef __LANGUAGE_ASM__
  2075. //! @brief Set the PFD0_CLKGATE field to a new value.
  2076. #define BW_CCM_ANALOG_PFD_480_PFD0_CLKGATE(v) BF_CS1(CCM_ANALOG_PFD_480, PFD0_CLKGATE, v)
  2077. #endif
  2078. //@}
  2079. /*! @name Register CCM_ANALOG_PFD_480, field PFD1_FRAC[13:8] (RW)
  2080. *
  2081. * This field controls the fractional divide value. The resulting frequency shall be
  2082. * 480*18/PFD1_FRAC where PFD1_FRAC is in the range 12-35.
  2083. */
  2084. //@{
  2085. #define BP_CCM_ANALOG_PFD_480_PFD1_FRAC (8) //!< Bit position for CCM_ANALOG_PFD_480_PFD1_FRAC.
  2086. #define BM_CCM_ANALOG_PFD_480_PFD1_FRAC (0x00003f00) //!< Bit mask for CCM_ANALOG_PFD_480_PFD1_FRAC.
  2087. //! @brief Get value of CCM_ANALOG_PFD_480_PFD1_FRAC from a register value.
  2088. #define BG_CCM_ANALOG_PFD_480_PFD1_FRAC(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PFD_480_PFD1_FRAC) >> BP_CCM_ANALOG_PFD_480_PFD1_FRAC)
  2089. //! @brief Format value for bitfield CCM_ANALOG_PFD_480_PFD1_FRAC.
  2090. #define BF_CCM_ANALOG_PFD_480_PFD1_FRAC(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PFD_480_PFD1_FRAC) & BM_CCM_ANALOG_PFD_480_PFD1_FRAC)
  2091. #ifndef __LANGUAGE_ASM__
  2092. //! @brief Set the PFD1_FRAC field to a new value.
  2093. #define BW_CCM_ANALOG_PFD_480_PFD1_FRAC(v) BF_CS1(CCM_ANALOG_PFD_480, PFD1_FRAC, v)
  2094. #endif
  2095. //@}
  2096. /*! @name Register CCM_ANALOG_PFD_480, field PFD1_STABLE[14] (RO)
  2097. *
  2098. * This read-only bitfield is for DIAGNOSTIC PURPOSES ONLY since the fractional divider should
  2099. * become stable quickly enough that this field will never need to be used by either device driver
  2100. * or application code. The value inverts when the new programmed fractional divide value has taken
  2101. * effect. Read this bit, program the new value, and when this bit inverts, the phase divider clock
  2102. * output is stable. Note that the value will not invert when the fractional divider is taken out of
  2103. * or placed into clock-gated state.
  2104. */
  2105. //@{
  2106. #define BP_CCM_ANALOG_PFD_480_PFD1_STABLE (14) //!< Bit position for CCM_ANALOG_PFD_480_PFD1_STABLE.
  2107. #define BM_CCM_ANALOG_PFD_480_PFD1_STABLE (0x00004000) //!< Bit mask for CCM_ANALOG_PFD_480_PFD1_STABLE.
  2108. //! @brief Get value of CCM_ANALOG_PFD_480_PFD1_STABLE from a register value.
  2109. #define BG_CCM_ANALOG_PFD_480_PFD1_STABLE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PFD_480_PFD1_STABLE) >> BP_CCM_ANALOG_PFD_480_PFD1_STABLE)
  2110. //@}
  2111. /*! @name Register CCM_ANALOG_PFD_480, field PFD1_CLKGATE[15] (RW)
  2112. *
  2113. * IO Clock Gate. If set to 1, the IO fractional divider clock (reference ref_pfd1) is off (power
  2114. * savings). 0: ref_pfd1 fractional divider clock is enabled. Need to assert this bit before PLL is
  2115. * powered down
  2116. */
  2117. //@{
  2118. #define BP_CCM_ANALOG_PFD_480_PFD1_CLKGATE (15) //!< Bit position for CCM_ANALOG_PFD_480_PFD1_CLKGATE.
  2119. #define BM_CCM_ANALOG_PFD_480_PFD1_CLKGATE (0x00008000) //!< Bit mask for CCM_ANALOG_PFD_480_PFD1_CLKGATE.
  2120. //! @brief Get value of CCM_ANALOG_PFD_480_PFD1_CLKGATE from a register value.
  2121. #define BG_CCM_ANALOG_PFD_480_PFD1_CLKGATE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PFD_480_PFD1_CLKGATE) >> BP_CCM_ANALOG_PFD_480_PFD1_CLKGATE)
  2122. //! @brief Format value for bitfield CCM_ANALOG_PFD_480_PFD1_CLKGATE.
  2123. #define BF_CCM_ANALOG_PFD_480_PFD1_CLKGATE(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PFD_480_PFD1_CLKGATE) & BM_CCM_ANALOG_PFD_480_PFD1_CLKGATE)
  2124. #ifndef __LANGUAGE_ASM__
  2125. //! @brief Set the PFD1_CLKGATE field to a new value.
  2126. #define BW_CCM_ANALOG_PFD_480_PFD1_CLKGATE(v) BF_CS1(CCM_ANALOG_PFD_480, PFD1_CLKGATE, v)
  2127. #endif
  2128. //@}
  2129. /*! @name Register CCM_ANALOG_PFD_480, field PFD2_FRAC[21:16] (RW)
  2130. *
  2131. * This field controls the fractional divide value. The resulting frequency shall be
  2132. * 480*18/PFD2_FRAC where PFD2_FRAC is in the range 12-35.
  2133. */
  2134. //@{
  2135. #define BP_CCM_ANALOG_PFD_480_PFD2_FRAC (16) //!< Bit position for CCM_ANALOG_PFD_480_PFD2_FRAC.
  2136. #define BM_CCM_ANALOG_PFD_480_PFD2_FRAC (0x003f0000) //!< Bit mask for CCM_ANALOG_PFD_480_PFD2_FRAC.
  2137. //! @brief Get value of CCM_ANALOG_PFD_480_PFD2_FRAC from a register value.
  2138. #define BG_CCM_ANALOG_PFD_480_PFD2_FRAC(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PFD_480_PFD2_FRAC) >> BP_CCM_ANALOG_PFD_480_PFD2_FRAC)
  2139. //! @brief Format value for bitfield CCM_ANALOG_PFD_480_PFD2_FRAC.
  2140. #define BF_CCM_ANALOG_PFD_480_PFD2_FRAC(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PFD_480_PFD2_FRAC) & BM_CCM_ANALOG_PFD_480_PFD2_FRAC)
  2141. #ifndef __LANGUAGE_ASM__
  2142. //! @brief Set the PFD2_FRAC field to a new value.
  2143. #define BW_CCM_ANALOG_PFD_480_PFD2_FRAC(v) BF_CS1(CCM_ANALOG_PFD_480, PFD2_FRAC, v)
  2144. #endif
  2145. //@}
  2146. /*! @name Register CCM_ANALOG_PFD_480, field PFD2_STABLE[22] (RO)
  2147. *
  2148. * This read-only bitfield is for DIAGNOSTIC PURPOSES ONLY since the fractional divider should
  2149. * become stable quickly enough that this field will never need to be used by either device driver
  2150. * or application code. The value inverts when the new programmed fractional divide value has taken
  2151. * effect. Read this bit, program the new value, and when this bit inverts, the phase divider clock
  2152. * output is stable. Note that the value will not invert when the fractional divider is taken out of
  2153. * or placed into clock-gated state.
  2154. */
  2155. //@{
  2156. #define BP_CCM_ANALOG_PFD_480_PFD2_STABLE (22) //!< Bit position for CCM_ANALOG_PFD_480_PFD2_STABLE.
  2157. #define BM_CCM_ANALOG_PFD_480_PFD2_STABLE (0x00400000) //!< Bit mask for CCM_ANALOG_PFD_480_PFD2_STABLE.
  2158. //! @brief Get value of CCM_ANALOG_PFD_480_PFD2_STABLE from a register value.
  2159. #define BG_CCM_ANALOG_PFD_480_PFD2_STABLE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PFD_480_PFD2_STABLE) >> BP_CCM_ANALOG_PFD_480_PFD2_STABLE)
  2160. //@}
  2161. /*! @name Register CCM_ANALOG_PFD_480, field PFD2_CLKGATE[23] (RW)
  2162. *
  2163. * IO Clock Gate. If set to 1, the IO fractional divider clock (reference ref_pfd2) is off (power
  2164. * savings). 0: ref_pfd2 fractional divider clock is enabled. Need to assert this bit before PLL is
  2165. * powered down
  2166. */
  2167. //@{
  2168. #define BP_CCM_ANALOG_PFD_480_PFD2_CLKGATE (23) //!< Bit position for CCM_ANALOG_PFD_480_PFD2_CLKGATE.
  2169. #define BM_CCM_ANALOG_PFD_480_PFD2_CLKGATE (0x00800000) //!< Bit mask for CCM_ANALOG_PFD_480_PFD2_CLKGATE.
  2170. //! @brief Get value of CCM_ANALOG_PFD_480_PFD2_CLKGATE from a register value.
  2171. #define BG_CCM_ANALOG_PFD_480_PFD2_CLKGATE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PFD_480_PFD2_CLKGATE) >> BP_CCM_ANALOG_PFD_480_PFD2_CLKGATE)
  2172. //! @brief Format value for bitfield CCM_ANALOG_PFD_480_PFD2_CLKGATE.
  2173. #define BF_CCM_ANALOG_PFD_480_PFD2_CLKGATE(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PFD_480_PFD2_CLKGATE) & BM_CCM_ANALOG_PFD_480_PFD2_CLKGATE)
  2174. #ifndef __LANGUAGE_ASM__
  2175. //! @brief Set the PFD2_CLKGATE field to a new value.
  2176. #define BW_CCM_ANALOG_PFD_480_PFD2_CLKGATE(v) BF_CS1(CCM_ANALOG_PFD_480, PFD2_CLKGATE, v)
  2177. #endif
  2178. //@}
  2179. /*! @name Register CCM_ANALOG_PFD_480, field PFD3_FRAC[29:24] (RW)
  2180. *
  2181. * This field controls the fractional divide value. The resulting frequency shall be
  2182. * 480*18/PFD3_FRAC where PFD3_FRAC is in the range 12-35.
  2183. */
  2184. //@{
  2185. #define BP_CCM_ANALOG_PFD_480_PFD3_FRAC (24) //!< Bit position for CCM_ANALOG_PFD_480_PFD3_FRAC.
  2186. #define BM_CCM_ANALOG_PFD_480_PFD3_FRAC (0x3f000000) //!< Bit mask for CCM_ANALOG_PFD_480_PFD3_FRAC.
  2187. //! @brief Get value of CCM_ANALOG_PFD_480_PFD3_FRAC from a register value.
  2188. #define BG_CCM_ANALOG_PFD_480_PFD3_FRAC(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PFD_480_PFD3_FRAC) >> BP_CCM_ANALOG_PFD_480_PFD3_FRAC)
  2189. //! @brief Format value for bitfield CCM_ANALOG_PFD_480_PFD3_FRAC.
  2190. #define BF_CCM_ANALOG_PFD_480_PFD3_FRAC(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PFD_480_PFD3_FRAC) & BM_CCM_ANALOG_PFD_480_PFD3_FRAC)
  2191. #ifndef __LANGUAGE_ASM__
  2192. //! @brief Set the PFD3_FRAC field to a new value.
  2193. #define BW_CCM_ANALOG_PFD_480_PFD3_FRAC(v) BF_CS1(CCM_ANALOG_PFD_480, PFD3_FRAC, v)
  2194. #endif
  2195. //@}
  2196. /*! @name Register CCM_ANALOG_PFD_480, field PFD3_STABLE[30] (RO)
  2197. *
  2198. * This read-only bitfield is for DIAGNOSTIC PURPOSES ONLY since the fractional divider should
  2199. * become stable quickly enough that this field will never need to be used by either device driver
  2200. * or application code. The value inverts when the new programmed fractional divide value has taken
  2201. * effect. Read this bit, program the new value, and when this bit inverts, the phase divider clock
  2202. * output is stable. Note that the value will not invert when the fractional divider is taken out of
  2203. * or placed into clock-gated state.
  2204. */
  2205. //@{
  2206. #define BP_CCM_ANALOG_PFD_480_PFD3_STABLE (30) //!< Bit position for CCM_ANALOG_PFD_480_PFD3_STABLE.
  2207. #define BM_CCM_ANALOG_PFD_480_PFD3_STABLE (0x40000000) //!< Bit mask for CCM_ANALOG_PFD_480_PFD3_STABLE.
  2208. //! @brief Get value of CCM_ANALOG_PFD_480_PFD3_STABLE from a register value.
  2209. #define BG_CCM_ANALOG_PFD_480_PFD3_STABLE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PFD_480_PFD3_STABLE) >> BP_CCM_ANALOG_PFD_480_PFD3_STABLE)
  2210. //@}
  2211. /*! @name Register CCM_ANALOG_PFD_480, field PFD3_CLKGATE[31] (RW)
  2212. *
  2213. * IO Clock Gate. If set to 1, the 3rd fractional divider clock (reference ref_pfd3) is off (power
  2214. * savings). 0: ref_pfd3 fractional divider clock is enabled. Need to assert this bit before PLL is
  2215. * powered down
  2216. */
  2217. //@{
  2218. #define BP_CCM_ANALOG_PFD_480_PFD3_CLKGATE (31) //!< Bit position for CCM_ANALOG_PFD_480_PFD3_CLKGATE.
  2219. #define BM_CCM_ANALOG_PFD_480_PFD3_CLKGATE (0x80000000) //!< Bit mask for CCM_ANALOG_PFD_480_PFD3_CLKGATE.
  2220. //! @brief Get value of CCM_ANALOG_PFD_480_PFD3_CLKGATE from a register value.
  2221. #define BG_CCM_ANALOG_PFD_480_PFD3_CLKGATE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PFD_480_PFD3_CLKGATE) >> BP_CCM_ANALOG_PFD_480_PFD3_CLKGATE)
  2222. //! @brief Format value for bitfield CCM_ANALOG_PFD_480_PFD3_CLKGATE.
  2223. #define BF_CCM_ANALOG_PFD_480_PFD3_CLKGATE(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PFD_480_PFD3_CLKGATE) & BM_CCM_ANALOG_PFD_480_PFD3_CLKGATE)
  2224. #ifndef __LANGUAGE_ASM__
  2225. //! @brief Set the PFD3_CLKGATE field to a new value.
  2226. #define BW_CCM_ANALOG_PFD_480_PFD3_CLKGATE(v) BF_CS1(CCM_ANALOG_PFD_480, PFD3_CLKGATE, v)
  2227. #endif
  2228. //@}
  2229. //-------------------------------------------------------------------------------------------
  2230. // HW_CCM_ANALOG_PFD_528 - 528MHz Clock (From PLL_SYS) Phase Fractional Divider Control Register
  2231. //-------------------------------------------------------------------------------------------
  2232. #ifndef __LANGUAGE_ASM__
  2233. /*!
  2234. * @brief HW_CCM_ANALOG_PFD_528 - 528MHz Clock (From PLL_SYS) Phase Fractional Divider Control Register (RW)
  2235. *
  2236. * Reset value: 0x1018101b
  2237. *
  2238. * The PFD_528 control register provides control for PFD clock generation. This register controls
  2239. * the 4-phase fractional clock dividers. The fractional clock frequencies are a product of the
  2240. * values in these registers.
  2241. */
  2242. typedef union _hw_ccm_analog_pfd_528
  2243. {
  2244. reg32_t U;
  2245. struct _hw_ccm_analog_pfd_528_bitfields
  2246. {
  2247. unsigned PFD0_FRAC : 6; //!< [5:0] This field controls the fractional divide value.
  2248. unsigned PFD0_STABLE : 1; //!< [6] This read-only bitfield is for DIAGNOSTIC PURPOSES ONLY since the fractional divider should become stable quickly enough that this field will never need to be used by either device driver or application code.
  2249. unsigned PFD0_CLKGATE : 1; //!< [7] If set to 1, the IO fractional divider clock (reference ref_pfd0) is off (power savings).
  2250. unsigned PFD1_FRAC : 6; //!< [13:8] This field controls the fractional divide value.
  2251. unsigned PFD1_STABLE : 1; //!< [14] This read-only bitfield is for DIAGNOSTIC PURPOSES ONLY since the fractional divider should become stable quickly enough that this field will never need to be used by either device driver or application code.
  2252. unsigned PFD1_CLKGATE : 1; //!< [15] IO Clock Gate.
  2253. unsigned PFD2_FRAC : 6; //!< [21:16] This field controls the fractional divide value.
  2254. unsigned PFD2_STABLE : 1; //!< [22] This read-only bitfield is for DIAGNOSTIC PURPOSES ONLY since the fractional divider should become stable quickly enough that this field will never need to be used by either device driver or application code.
  2255. unsigned PFD2_CLKGATE : 1; //!< [23] IO Clock Gate.
  2256. unsigned PFD3_FRAC : 6; //!< [29:24] This field controls the fractional divide value.
  2257. unsigned PFD3_STABLE : 1; //!< [30] This read-only bitfield is for DIAGNOSTIC PURPOSES ONLY since the fractional divider should become stable quickly enough that this field will never need to be used by either device driver or application code.
  2258. unsigned PFD3_CLKGATE : 1; //!< [31] IO Clock Gate.
  2259. } B;
  2260. } hw_ccm_analog_pfd_528_t;
  2261. #endif
  2262. /*!
  2263. * @name Constants and macros for entire CCM_ANALOG_PFD_528 register
  2264. */
  2265. //@{
  2266. #define HW_CCM_ANALOG_PFD_528_ADDR (REGS_CCM_ANALOG_BASE + 0x100)
  2267. #define HW_CCM_ANALOG_PFD_528_SET_ADDR (HW_CCM_ANALOG_PFD_528_ADDR + 0x4)
  2268. #define HW_CCM_ANALOG_PFD_528_CLR_ADDR (HW_CCM_ANALOG_PFD_528_ADDR + 0x8)
  2269. #define HW_CCM_ANALOG_PFD_528_TOG_ADDR (HW_CCM_ANALOG_PFD_528_ADDR + 0xC)
  2270. #ifndef __LANGUAGE_ASM__
  2271. #define HW_CCM_ANALOG_PFD_528 (*(volatile hw_ccm_analog_pfd_528_t *) HW_CCM_ANALOG_PFD_528_ADDR)
  2272. #define HW_CCM_ANALOG_PFD_528_RD() (HW_CCM_ANALOG_PFD_528.U)
  2273. #define HW_CCM_ANALOG_PFD_528_WR(v) (HW_CCM_ANALOG_PFD_528.U = (v))
  2274. #define HW_CCM_ANALOG_PFD_528_SET(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PFD_528_SET_ADDR) = (v))
  2275. #define HW_CCM_ANALOG_PFD_528_CLR(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PFD_528_CLR_ADDR) = (v))
  2276. #define HW_CCM_ANALOG_PFD_528_TOG(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_PFD_528_TOG_ADDR) = (v))
  2277. #endif
  2278. //@}
  2279. /*
  2280. * constants & macros for individual CCM_ANALOG_PFD_528 bitfields
  2281. */
  2282. /*! @name Register CCM_ANALOG_PFD_528, field PFD0_FRAC[5:0] (RW)
  2283. *
  2284. * This field controls the fractional divide value. The resulting frequency shall be
  2285. * 528*18/PFD0_FRAC where PFD0_FRAC is in the range 12-35.
  2286. */
  2287. //@{
  2288. #define BP_CCM_ANALOG_PFD_528_PFD0_FRAC (0) //!< Bit position for CCM_ANALOG_PFD_528_PFD0_FRAC.
  2289. #define BM_CCM_ANALOG_PFD_528_PFD0_FRAC (0x0000003f) //!< Bit mask for CCM_ANALOG_PFD_528_PFD0_FRAC.
  2290. //! @brief Get value of CCM_ANALOG_PFD_528_PFD0_FRAC from a register value.
  2291. #define BG_CCM_ANALOG_PFD_528_PFD0_FRAC(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PFD_528_PFD0_FRAC) >> BP_CCM_ANALOG_PFD_528_PFD0_FRAC)
  2292. //! @brief Format value for bitfield CCM_ANALOG_PFD_528_PFD0_FRAC.
  2293. #define BF_CCM_ANALOG_PFD_528_PFD0_FRAC(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PFD_528_PFD0_FRAC) & BM_CCM_ANALOG_PFD_528_PFD0_FRAC)
  2294. #ifndef __LANGUAGE_ASM__
  2295. //! @brief Set the PFD0_FRAC field to a new value.
  2296. #define BW_CCM_ANALOG_PFD_528_PFD0_FRAC(v) BF_CS1(CCM_ANALOG_PFD_528, PFD0_FRAC, v)
  2297. #endif
  2298. //@}
  2299. /*! @name Register CCM_ANALOG_PFD_528, field PFD0_STABLE[6] (RO)
  2300. *
  2301. * This read-only bitfield is for DIAGNOSTIC PURPOSES ONLY since the fractional divider should
  2302. * become stable quickly enough that this field will never need to be used by either device driver
  2303. * or application code. The value inverts when the new programmed fractional divide value has taken
  2304. * effect. Read this bit, program the new value, and when this bit inverts, the phase divider clock
  2305. * output is stable. Note that the value will not invert when the fractional divider is taken out of
  2306. * or placed into clock-gated state.
  2307. */
  2308. //@{
  2309. #define BP_CCM_ANALOG_PFD_528_PFD0_STABLE (6) //!< Bit position for CCM_ANALOG_PFD_528_PFD0_STABLE.
  2310. #define BM_CCM_ANALOG_PFD_528_PFD0_STABLE (0x00000040) //!< Bit mask for CCM_ANALOG_PFD_528_PFD0_STABLE.
  2311. //! @brief Get value of CCM_ANALOG_PFD_528_PFD0_STABLE from a register value.
  2312. #define BG_CCM_ANALOG_PFD_528_PFD0_STABLE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PFD_528_PFD0_STABLE) >> BP_CCM_ANALOG_PFD_528_PFD0_STABLE)
  2313. //@}
  2314. /*! @name Register CCM_ANALOG_PFD_528, field PFD0_CLKGATE[7] (RW)
  2315. *
  2316. * If set to 1, the IO fractional divider clock (reference ref_pfd0) is off (power savings). 0:
  2317. * ref_pfd0 fractional divider clock is enabled. Need to assert this bit before PLL powered down
  2318. */
  2319. //@{
  2320. #define BP_CCM_ANALOG_PFD_528_PFD0_CLKGATE (7) //!< Bit position for CCM_ANALOG_PFD_528_PFD0_CLKGATE.
  2321. #define BM_CCM_ANALOG_PFD_528_PFD0_CLKGATE (0x00000080) //!< Bit mask for CCM_ANALOG_PFD_528_PFD0_CLKGATE.
  2322. //! @brief Get value of CCM_ANALOG_PFD_528_PFD0_CLKGATE from a register value.
  2323. #define BG_CCM_ANALOG_PFD_528_PFD0_CLKGATE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PFD_528_PFD0_CLKGATE) >> BP_CCM_ANALOG_PFD_528_PFD0_CLKGATE)
  2324. //! @brief Format value for bitfield CCM_ANALOG_PFD_528_PFD0_CLKGATE.
  2325. #define BF_CCM_ANALOG_PFD_528_PFD0_CLKGATE(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PFD_528_PFD0_CLKGATE) & BM_CCM_ANALOG_PFD_528_PFD0_CLKGATE)
  2326. #ifndef __LANGUAGE_ASM__
  2327. //! @brief Set the PFD0_CLKGATE field to a new value.
  2328. #define BW_CCM_ANALOG_PFD_528_PFD0_CLKGATE(v) BF_CS1(CCM_ANALOG_PFD_528, PFD0_CLKGATE, v)
  2329. #endif
  2330. //@}
  2331. /*! @name Register CCM_ANALOG_PFD_528, field PFD1_FRAC[13:8] (RW)
  2332. *
  2333. * This field controls the fractional divide value. The resulting frequency shall be
  2334. * 528*18/PFD1_FRAC where PFD1_FRAC is in the range 12-35.
  2335. */
  2336. //@{
  2337. #define BP_CCM_ANALOG_PFD_528_PFD1_FRAC (8) //!< Bit position for CCM_ANALOG_PFD_528_PFD1_FRAC.
  2338. #define BM_CCM_ANALOG_PFD_528_PFD1_FRAC (0x00003f00) //!< Bit mask for CCM_ANALOG_PFD_528_PFD1_FRAC.
  2339. //! @brief Get value of CCM_ANALOG_PFD_528_PFD1_FRAC from a register value.
  2340. #define BG_CCM_ANALOG_PFD_528_PFD1_FRAC(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PFD_528_PFD1_FRAC) >> BP_CCM_ANALOG_PFD_528_PFD1_FRAC)
  2341. //! @brief Format value for bitfield CCM_ANALOG_PFD_528_PFD1_FRAC.
  2342. #define BF_CCM_ANALOG_PFD_528_PFD1_FRAC(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PFD_528_PFD1_FRAC) & BM_CCM_ANALOG_PFD_528_PFD1_FRAC)
  2343. #ifndef __LANGUAGE_ASM__
  2344. //! @brief Set the PFD1_FRAC field to a new value.
  2345. #define BW_CCM_ANALOG_PFD_528_PFD1_FRAC(v) BF_CS1(CCM_ANALOG_PFD_528, PFD1_FRAC, v)
  2346. #endif
  2347. //@}
  2348. /*! @name Register CCM_ANALOG_PFD_528, field PFD1_STABLE[14] (RO)
  2349. *
  2350. * This read-only bitfield is for DIAGNOSTIC PURPOSES ONLY since the fractional divider should
  2351. * become stable quickly enough that this field will never need to be used by either device driver
  2352. * or application code. The value inverts when the new programmed fractional divide value has taken
  2353. * effect. Read this bit, program the new value, and when this bit inverts, the phase divider clock
  2354. * output is stable. Note that the value will not invert when the fractional divider is taken out of
  2355. * or placed into clock-gated state.
  2356. */
  2357. //@{
  2358. #define BP_CCM_ANALOG_PFD_528_PFD1_STABLE (14) //!< Bit position for CCM_ANALOG_PFD_528_PFD1_STABLE.
  2359. #define BM_CCM_ANALOG_PFD_528_PFD1_STABLE (0x00004000) //!< Bit mask for CCM_ANALOG_PFD_528_PFD1_STABLE.
  2360. //! @brief Get value of CCM_ANALOG_PFD_528_PFD1_STABLE from a register value.
  2361. #define BG_CCM_ANALOG_PFD_528_PFD1_STABLE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PFD_528_PFD1_STABLE) >> BP_CCM_ANALOG_PFD_528_PFD1_STABLE)
  2362. //@}
  2363. /*! @name Register CCM_ANALOG_PFD_528, field PFD1_CLKGATE[15] (RW)
  2364. *
  2365. * IO Clock Gate. If set to 1, the IO fractional divider clock (reference ref_pfd1) is off (power
  2366. * savings). 0: ref_pfd1 fractional divider clock is enabled. Need to assert this bit before PLL
  2367. * powered down
  2368. */
  2369. //@{
  2370. #define BP_CCM_ANALOG_PFD_528_PFD1_CLKGATE (15) //!< Bit position for CCM_ANALOG_PFD_528_PFD1_CLKGATE.
  2371. #define BM_CCM_ANALOG_PFD_528_PFD1_CLKGATE (0x00008000) //!< Bit mask for CCM_ANALOG_PFD_528_PFD1_CLKGATE.
  2372. //! @brief Get value of CCM_ANALOG_PFD_528_PFD1_CLKGATE from a register value.
  2373. #define BG_CCM_ANALOG_PFD_528_PFD1_CLKGATE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PFD_528_PFD1_CLKGATE) >> BP_CCM_ANALOG_PFD_528_PFD1_CLKGATE)
  2374. //! @brief Format value for bitfield CCM_ANALOG_PFD_528_PFD1_CLKGATE.
  2375. #define BF_CCM_ANALOG_PFD_528_PFD1_CLKGATE(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PFD_528_PFD1_CLKGATE) & BM_CCM_ANALOG_PFD_528_PFD1_CLKGATE)
  2376. #ifndef __LANGUAGE_ASM__
  2377. //! @brief Set the PFD1_CLKGATE field to a new value.
  2378. #define BW_CCM_ANALOG_PFD_528_PFD1_CLKGATE(v) BF_CS1(CCM_ANALOG_PFD_528, PFD1_CLKGATE, v)
  2379. #endif
  2380. //@}
  2381. /*! @name Register CCM_ANALOG_PFD_528, field PFD2_FRAC[21:16] (RW)
  2382. *
  2383. * This field controls the fractional divide value. The resulting frequency shall be
  2384. * 528*18/PFD2_FRAC where PFD2_FRAC is in the range 12-35.
  2385. */
  2386. //@{
  2387. #define BP_CCM_ANALOG_PFD_528_PFD2_FRAC (16) //!< Bit position for CCM_ANALOG_PFD_528_PFD2_FRAC.
  2388. #define BM_CCM_ANALOG_PFD_528_PFD2_FRAC (0x003f0000) //!< Bit mask for CCM_ANALOG_PFD_528_PFD2_FRAC.
  2389. //! @brief Get value of CCM_ANALOG_PFD_528_PFD2_FRAC from a register value.
  2390. #define BG_CCM_ANALOG_PFD_528_PFD2_FRAC(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PFD_528_PFD2_FRAC) >> BP_CCM_ANALOG_PFD_528_PFD2_FRAC)
  2391. //! @brief Format value for bitfield CCM_ANALOG_PFD_528_PFD2_FRAC.
  2392. #define BF_CCM_ANALOG_PFD_528_PFD2_FRAC(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PFD_528_PFD2_FRAC) & BM_CCM_ANALOG_PFD_528_PFD2_FRAC)
  2393. #ifndef __LANGUAGE_ASM__
  2394. //! @brief Set the PFD2_FRAC field to a new value.
  2395. #define BW_CCM_ANALOG_PFD_528_PFD2_FRAC(v) BF_CS1(CCM_ANALOG_PFD_528, PFD2_FRAC, v)
  2396. #endif
  2397. //@}
  2398. /*! @name Register CCM_ANALOG_PFD_528, field PFD2_STABLE[22] (RO)
  2399. *
  2400. * This read-only bitfield is for DIAGNOSTIC PURPOSES ONLY since the fractional divider should
  2401. * become stable quickly enough that this field will never need to be used by either device driver
  2402. * or application code. The value inverts when the new programmed fractional divide value has taken
  2403. * effect. Read this bit, program the new value, and when this bit inverts, the phase divider clock
  2404. * output is stable. Note that the value will not invert when the fractional divider is taken out of
  2405. * or placed into clock-gated state.
  2406. */
  2407. //@{
  2408. #define BP_CCM_ANALOG_PFD_528_PFD2_STABLE (22) //!< Bit position for CCM_ANALOG_PFD_528_PFD2_STABLE.
  2409. #define BM_CCM_ANALOG_PFD_528_PFD2_STABLE (0x00400000) //!< Bit mask for CCM_ANALOG_PFD_528_PFD2_STABLE.
  2410. //! @brief Get value of CCM_ANALOG_PFD_528_PFD2_STABLE from a register value.
  2411. #define BG_CCM_ANALOG_PFD_528_PFD2_STABLE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PFD_528_PFD2_STABLE) >> BP_CCM_ANALOG_PFD_528_PFD2_STABLE)
  2412. //@}
  2413. /*! @name Register CCM_ANALOG_PFD_528, field PFD2_CLKGATE[23] (RW)
  2414. *
  2415. * IO Clock Gate. If set to 1, the IO fractional divider clock (reference ref_pfd2) is off (power
  2416. * savings). 0: ref_pfd2 fractional divider clock is enabled. Need to assert this bit before PLL
  2417. * powered down
  2418. */
  2419. //@{
  2420. #define BP_CCM_ANALOG_PFD_528_PFD2_CLKGATE (23) //!< Bit position for CCM_ANALOG_PFD_528_PFD2_CLKGATE.
  2421. #define BM_CCM_ANALOG_PFD_528_PFD2_CLKGATE (0x00800000) //!< Bit mask for CCM_ANALOG_PFD_528_PFD2_CLKGATE.
  2422. //! @brief Get value of CCM_ANALOG_PFD_528_PFD2_CLKGATE from a register value.
  2423. #define BG_CCM_ANALOG_PFD_528_PFD2_CLKGATE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PFD_528_PFD2_CLKGATE) >> BP_CCM_ANALOG_PFD_528_PFD2_CLKGATE)
  2424. //! @brief Format value for bitfield CCM_ANALOG_PFD_528_PFD2_CLKGATE.
  2425. #define BF_CCM_ANALOG_PFD_528_PFD2_CLKGATE(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PFD_528_PFD2_CLKGATE) & BM_CCM_ANALOG_PFD_528_PFD2_CLKGATE)
  2426. #ifndef __LANGUAGE_ASM__
  2427. //! @brief Set the PFD2_CLKGATE field to a new value.
  2428. #define BW_CCM_ANALOG_PFD_528_PFD2_CLKGATE(v) BF_CS1(CCM_ANALOG_PFD_528, PFD2_CLKGATE, v)
  2429. #endif
  2430. //@}
  2431. /*! @name Register CCM_ANALOG_PFD_528, field PFD3_FRAC[29:24] (RW)
  2432. *
  2433. * This field controls the fractional divide value. The resulting frequency shall be
  2434. * 528*18/PFD3_FRAC where PFD3_FRAC is in the range 12-35.
  2435. */
  2436. //@{
  2437. #define BP_CCM_ANALOG_PFD_528_PFD3_FRAC (24) //!< Bit position for CCM_ANALOG_PFD_528_PFD3_FRAC.
  2438. #define BM_CCM_ANALOG_PFD_528_PFD3_FRAC (0x3f000000) //!< Bit mask for CCM_ANALOG_PFD_528_PFD3_FRAC.
  2439. //! @brief Get value of CCM_ANALOG_PFD_528_PFD3_FRAC from a register value.
  2440. #define BG_CCM_ANALOG_PFD_528_PFD3_FRAC(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PFD_528_PFD3_FRAC) >> BP_CCM_ANALOG_PFD_528_PFD3_FRAC)
  2441. //! @brief Format value for bitfield CCM_ANALOG_PFD_528_PFD3_FRAC.
  2442. #define BF_CCM_ANALOG_PFD_528_PFD3_FRAC(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PFD_528_PFD3_FRAC) & BM_CCM_ANALOG_PFD_528_PFD3_FRAC)
  2443. #ifndef __LANGUAGE_ASM__
  2444. //! @brief Set the PFD3_FRAC field to a new value.
  2445. #define BW_CCM_ANALOG_PFD_528_PFD3_FRAC(v) BF_CS1(CCM_ANALOG_PFD_528, PFD3_FRAC, v)
  2446. #endif
  2447. //@}
  2448. /*! @name Register CCM_ANALOG_PFD_528, field PFD3_STABLE[30] (RO)
  2449. *
  2450. * This read-only bitfield is for DIAGNOSTIC PURPOSES ONLY since the fractional divider should
  2451. * become stable quickly enough that this field will never need to be used by either device driver
  2452. * or application code. The value inverts when the new programmed fractional divide value has taken
  2453. * effect. Read this bit, program the new value, and when this bit inverts, the phase divider clock
  2454. * output is stable. Note that the value will not invert when the fractional divider is taken out of
  2455. * or placed into clock-gated state.
  2456. */
  2457. //@{
  2458. #define BP_CCM_ANALOG_PFD_528_PFD3_STABLE (30) //!< Bit position for CCM_ANALOG_PFD_528_PFD3_STABLE.
  2459. #define BM_CCM_ANALOG_PFD_528_PFD3_STABLE (0x40000000) //!< Bit mask for CCM_ANALOG_PFD_528_PFD3_STABLE.
  2460. //! @brief Get value of CCM_ANALOG_PFD_528_PFD3_STABLE from a register value.
  2461. #define BG_CCM_ANALOG_PFD_528_PFD3_STABLE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PFD_528_PFD3_STABLE) >> BP_CCM_ANALOG_PFD_528_PFD3_STABLE)
  2462. //@}
  2463. /*! @name Register CCM_ANALOG_PFD_528, field PFD3_CLKGATE[31] (RW)
  2464. *
  2465. * IO Clock Gate. If set to 1, the 3rd fractional divider clock (reference ref_pfd3) is off (power
  2466. * savings). 0: ref_pfd3 fractional divider clock is enabled. Need to assert this bit before PLL
  2467. * powered down
  2468. */
  2469. //@{
  2470. #define BP_CCM_ANALOG_PFD_528_PFD3_CLKGATE (31) //!< Bit position for CCM_ANALOG_PFD_528_PFD3_CLKGATE.
  2471. #define BM_CCM_ANALOG_PFD_528_PFD3_CLKGATE (0x80000000) //!< Bit mask for CCM_ANALOG_PFD_528_PFD3_CLKGATE.
  2472. //! @brief Get value of CCM_ANALOG_PFD_528_PFD3_CLKGATE from a register value.
  2473. #define BG_CCM_ANALOG_PFD_528_PFD3_CLKGATE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_PFD_528_PFD3_CLKGATE) >> BP_CCM_ANALOG_PFD_528_PFD3_CLKGATE)
  2474. //! @brief Format value for bitfield CCM_ANALOG_PFD_528_PFD3_CLKGATE.
  2475. #define BF_CCM_ANALOG_PFD_528_PFD3_CLKGATE(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_PFD_528_PFD3_CLKGATE) & BM_CCM_ANALOG_PFD_528_PFD3_CLKGATE)
  2476. #ifndef __LANGUAGE_ASM__
  2477. //! @brief Set the PFD3_CLKGATE field to a new value.
  2478. #define BW_CCM_ANALOG_PFD_528_PFD3_CLKGATE(v) BF_CS1(CCM_ANALOG_PFD_528, PFD3_CLKGATE, v)
  2479. #endif
  2480. //@}
  2481. //-------------------------------------------------------------------------------------------
  2482. // HW_CCM_ANALOG_MISC0 - Miscellaneous Control Register
  2483. //-------------------------------------------------------------------------------------------
  2484. #ifndef __LANGUAGE_ASM__
  2485. /*!
  2486. * @brief HW_CCM_ANALOG_MISC0 - Miscellaneous Control Register (RW)
  2487. *
  2488. * Reset value: 0x02000000
  2489. *
  2490. * This register defines the control for miscellaneous CCM Analog blocks.
  2491. */
  2492. typedef union _hw_ccm_analog_misc0
  2493. {
  2494. reg32_t U;
  2495. struct _hw_ccm_analog_misc0_bitfields
  2496. {
  2497. unsigned RESERVED0 : 12; //!< [11:0]
  2498. unsigned STOP_MODE_CONFIG : 1; //!< [12] Configure the analog behavior in stop mode.
  2499. unsigned RESERVED1 : 19; //!< [31:13]
  2500. } B;
  2501. } hw_ccm_analog_misc0_t;
  2502. #endif
  2503. /*!
  2504. * @name Constants and macros for entire CCM_ANALOG_MISC0 register
  2505. */
  2506. //@{
  2507. #define HW_CCM_ANALOG_MISC0_ADDR (REGS_CCM_ANALOG_BASE + 0x150)
  2508. #define HW_CCM_ANALOG_MISC0_SET_ADDR (HW_CCM_ANALOG_MISC0_ADDR + 0x4)
  2509. #define HW_CCM_ANALOG_MISC0_CLR_ADDR (HW_CCM_ANALOG_MISC0_ADDR + 0x8)
  2510. #define HW_CCM_ANALOG_MISC0_TOG_ADDR (HW_CCM_ANALOG_MISC0_ADDR + 0xC)
  2511. #ifndef __LANGUAGE_ASM__
  2512. #define HW_CCM_ANALOG_MISC0 (*(volatile hw_ccm_analog_misc0_t *) HW_CCM_ANALOG_MISC0_ADDR)
  2513. #define HW_CCM_ANALOG_MISC0_RD() (HW_CCM_ANALOG_MISC0.U)
  2514. #define HW_CCM_ANALOG_MISC0_WR(v) (HW_CCM_ANALOG_MISC0.U = (v))
  2515. #define HW_CCM_ANALOG_MISC0_SET(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_MISC0_SET_ADDR) = (v))
  2516. #define HW_CCM_ANALOG_MISC0_CLR(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_MISC0_CLR_ADDR) = (v))
  2517. #define HW_CCM_ANALOG_MISC0_TOG(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_MISC0_TOG_ADDR) = (v))
  2518. #endif
  2519. //@}
  2520. /*
  2521. * constants & macros for individual CCM_ANALOG_MISC0 bitfields
  2522. */
  2523. /*! @name Register CCM_ANALOG_MISC0, field STOP_MODE_CONFIG[12] (RW)
  2524. *
  2525. * Configure the analog behavior in stop mode.
  2526. *
  2527. * Values:
  2528. * - 0 - All the analog domain except the RTC is powered down on STOP mode assertion
  2529. * - 1 - All the analog domain except the LDO_1P1 and LDO_2P5 regulators are powered down on STOP mode
  2530. * assertion. If required the CCM can be configured to not power down the oscillator (XTALOSC).
  2531. */
  2532. //@{
  2533. #define BP_CCM_ANALOG_MISC0_STOP_MODE_CONFIG (12) //!< Bit position for CCM_ANALOG_MISC0_STOP_MODE_CONFIG.
  2534. #define BM_CCM_ANALOG_MISC0_STOP_MODE_CONFIG (0x00001000) //!< Bit mask for CCM_ANALOG_MISC0_STOP_MODE_CONFIG.
  2535. //! @brief Get value of CCM_ANALOG_MISC0_STOP_MODE_CONFIG from a register value.
  2536. #define BG_CCM_ANALOG_MISC0_STOP_MODE_CONFIG(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_MISC0_STOP_MODE_CONFIG) >> BP_CCM_ANALOG_MISC0_STOP_MODE_CONFIG)
  2537. //! @brief Format value for bitfield CCM_ANALOG_MISC0_STOP_MODE_CONFIG.
  2538. #define BF_CCM_ANALOG_MISC0_STOP_MODE_CONFIG(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_MISC0_STOP_MODE_CONFIG) & BM_CCM_ANALOG_MISC0_STOP_MODE_CONFIG)
  2539. #ifndef __LANGUAGE_ASM__
  2540. //! @brief Set the STOP_MODE_CONFIG field to a new value.
  2541. #define BW_CCM_ANALOG_MISC0_STOP_MODE_CONFIG(v) BF_CS1(CCM_ANALOG_MISC0, STOP_MODE_CONFIG, v)
  2542. #endif
  2543. //@}
  2544. //-------------------------------------------------------------------------------------------
  2545. // HW_CCM_ANALOG_MISC2 - Miscellaneous Control Register
  2546. //-------------------------------------------------------------------------------------------
  2547. #ifndef __LANGUAGE_ASM__
  2548. /*!
  2549. * @brief HW_CCM_ANALOG_MISC2 - Miscellaneous Control Register (RW)
  2550. *
  2551. * Reset value: 0x00272727
  2552. *
  2553. * This register defines the control for miscellaneous CCM Analog blocks.
  2554. */
  2555. typedef union _hw_ccm_analog_misc2
  2556. {
  2557. reg32_t U;
  2558. struct _hw_ccm_analog_misc2_bitfields
  2559. {
  2560. unsigned RESERVED0 : 7; //!< [6:0]
  2561. unsigned PLL3_DISABLE : 1; //!< [7] Default value of "0".
  2562. unsigned RESERVED1 : 7; //!< [14:8]
  2563. unsigned AUDIO_DIV_LSB : 1; //!< [15] LSB of Post-divider for Audio PLL.
  2564. unsigned RESERVED2 : 7; //!< [22:16]
  2565. unsigned AUDIO_DIV_MSB : 1; //!< [23] MSB of Post-divider for Audio PLL.
  2566. unsigned RESERVED3 : 6; //!< [29:24]
  2567. unsigned VIDEO_DIV : 2; //!< [31:30] Post-divider for video.
  2568. } B;
  2569. } hw_ccm_analog_misc2_t;
  2570. #endif
  2571. /*!
  2572. * @name Constants and macros for entire CCM_ANALOG_MISC2 register
  2573. */
  2574. //@{
  2575. #define HW_CCM_ANALOG_MISC2_ADDR (REGS_CCM_ANALOG_BASE + 0x170)
  2576. #define HW_CCM_ANALOG_MISC2_SET_ADDR (HW_CCM_ANALOG_MISC2_ADDR + 0x4)
  2577. #define HW_CCM_ANALOG_MISC2_CLR_ADDR (HW_CCM_ANALOG_MISC2_ADDR + 0x8)
  2578. #define HW_CCM_ANALOG_MISC2_TOG_ADDR (HW_CCM_ANALOG_MISC2_ADDR + 0xC)
  2579. #ifndef __LANGUAGE_ASM__
  2580. #define HW_CCM_ANALOG_MISC2 (*(volatile hw_ccm_analog_misc2_t *) HW_CCM_ANALOG_MISC2_ADDR)
  2581. #define HW_CCM_ANALOG_MISC2_RD() (HW_CCM_ANALOG_MISC2.U)
  2582. #define HW_CCM_ANALOG_MISC2_WR(v) (HW_CCM_ANALOG_MISC2.U = (v))
  2583. #define HW_CCM_ANALOG_MISC2_SET(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_MISC2_SET_ADDR) = (v))
  2584. #define HW_CCM_ANALOG_MISC2_CLR(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_MISC2_CLR_ADDR) = (v))
  2585. #define HW_CCM_ANALOG_MISC2_TOG(v) ((*(volatile reg32_t *) HW_CCM_ANALOG_MISC2_TOG_ADDR) = (v))
  2586. #endif
  2587. //@}
  2588. /*
  2589. * constants & macros for individual CCM_ANALOG_MISC2 bitfields
  2590. */
  2591. /*! @name Register CCM_ANALOG_MISC2, field PLL3_DISABLE[7] (RW)
  2592. *
  2593. * Default value of "0". Should be set to "1" to turn off the USB-PLL(PLL3) in run mode
  2594. */
  2595. //@{
  2596. #define BP_CCM_ANALOG_MISC2_PLL3_DISABLE (7) //!< Bit position for CCM_ANALOG_MISC2_PLL3_DISABLE.
  2597. #define BM_CCM_ANALOG_MISC2_PLL3_DISABLE (0x00000080) //!< Bit mask for CCM_ANALOG_MISC2_PLL3_DISABLE.
  2598. //! @brief Get value of CCM_ANALOG_MISC2_PLL3_DISABLE from a register value.
  2599. #define BG_CCM_ANALOG_MISC2_PLL3_DISABLE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_MISC2_PLL3_DISABLE) >> BP_CCM_ANALOG_MISC2_PLL3_DISABLE)
  2600. //! @brief Format value for bitfield CCM_ANALOG_MISC2_PLL3_DISABLE.
  2601. #define BF_CCM_ANALOG_MISC2_PLL3_DISABLE(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_MISC2_PLL3_DISABLE) & BM_CCM_ANALOG_MISC2_PLL3_DISABLE)
  2602. #ifndef __LANGUAGE_ASM__
  2603. //! @brief Set the PLL3_DISABLE field to a new value.
  2604. #define BW_CCM_ANALOG_MISC2_PLL3_DISABLE(v) BF_CS1(CCM_ANALOG_MISC2, PLL3_DISABLE, v)
  2605. #endif
  2606. //@}
  2607. /*! @name Register CCM_ANALOG_MISC2, field AUDIO_DIV_LSB[15] (RW)
  2608. *
  2609. * LSB of Post-divider for Audio PLL. The output clock of the video PLL should be gated prior to
  2610. * changing this divider to prevent glitches.
  2611. *
  2612. * Values:
  2613. * - 00 - divide by 1 (Default)
  2614. * - 01 - divide by 2
  2615. * - 10 - divide by 1
  2616. * - 11 - divide by 4
  2617. */
  2618. //@{
  2619. #define BP_CCM_ANALOG_MISC2_AUDIO_DIV_LSB (15) //!< Bit position for CCM_ANALOG_MISC2_AUDIO_DIV_LSB.
  2620. #define BM_CCM_ANALOG_MISC2_AUDIO_DIV_LSB (0x00008000) //!< Bit mask for CCM_ANALOG_MISC2_AUDIO_DIV_LSB.
  2621. //! @brief Get value of CCM_ANALOG_MISC2_AUDIO_DIV_LSB from a register value.
  2622. #define BG_CCM_ANALOG_MISC2_AUDIO_DIV_LSB(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_MISC2_AUDIO_DIV_LSB) >> BP_CCM_ANALOG_MISC2_AUDIO_DIV_LSB)
  2623. //! @brief Format value for bitfield CCM_ANALOG_MISC2_AUDIO_DIV_LSB.
  2624. #define BF_CCM_ANALOG_MISC2_AUDIO_DIV_LSB(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_MISC2_AUDIO_DIV_LSB) & BM_CCM_ANALOG_MISC2_AUDIO_DIV_LSB)
  2625. #ifndef __LANGUAGE_ASM__
  2626. //! @brief Set the AUDIO_DIV_LSB field to a new value.
  2627. #define BW_CCM_ANALOG_MISC2_AUDIO_DIV_LSB(v) BF_CS1(CCM_ANALOG_MISC2, AUDIO_DIV_LSB, v)
  2628. #endif
  2629. //@}
  2630. /*! @name Register CCM_ANALOG_MISC2, field AUDIO_DIV_MSB[23] (RW)
  2631. *
  2632. * MSB of Post-divider for Audio PLL. The output clock of the video PLL should be gated prior to
  2633. * changing this divider to prevent glitches.
  2634. *
  2635. * Values:
  2636. * - 00 - divide by 1 (Default)
  2637. * - 01 - divide by 2
  2638. * - 10 - divide by 1
  2639. * - 11 - divide by 4
  2640. */
  2641. //@{
  2642. #define BP_CCM_ANALOG_MISC2_AUDIO_DIV_MSB (23) //!< Bit position for CCM_ANALOG_MISC2_AUDIO_DIV_MSB.
  2643. #define BM_CCM_ANALOG_MISC2_AUDIO_DIV_MSB (0x00800000) //!< Bit mask for CCM_ANALOG_MISC2_AUDIO_DIV_MSB.
  2644. //! @brief Get value of CCM_ANALOG_MISC2_AUDIO_DIV_MSB from a register value.
  2645. #define BG_CCM_ANALOG_MISC2_AUDIO_DIV_MSB(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_MISC2_AUDIO_DIV_MSB) >> BP_CCM_ANALOG_MISC2_AUDIO_DIV_MSB)
  2646. //! @brief Format value for bitfield CCM_ANALOG_MISC2_AUDIO_DIV_MSB.
  2647. #define BF_CCM_ANALOG_MISC2_AUDIO_DIV_MSB(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_MISC2_AUDIO_DIV_MSB) & BM_CCM_ANALOG_MISC2_AUDIO_DIV_MSB)
  2648. #ifndef __LANGUAGE_ASM__
  2649. //! @brief Set the AUDIO_DIV_MSB field to a new value.
  2650. #define BW_CCM_ANALOG_MISC2_AUDIO_DIV_MSB(v) BF_CS1(CCM_ANALOG_MISC2, AUDIO_DIV_MSB, v)
  2651. #endif
  2652. //@}
  2653. /*! @name Register CCM_ANALOG_MISC2, field VIDEO_DIV[31:30] (RW)
  2654. *
  2655. * Post-divider for video. The output clock of the video PLL should be gated prior to changing this
  2656. * divider to prevent glitches.
  2657. *
  2658. * Values:
  2659. * - 00 - divide by 1 (Default)
  2660. * - 01 - divide by 2
  2661. * - 10 - divide by 1
  2662. * - 11 - divide by 4
  2663. */
  2664. //@{
  2665. #define BP_CCM_ANALOG_MISC2_VIDEO_DIV (30) //!< Bit position for CCM_ANALOG_MISC2_VIDEO_DIV.
  2666. #define BM_CCM_ANALOG_MISC2_VIDEO_DIV (0xc0000000) //!< Bit mask for CCM_ANALOG_MISC2_VIDEO_DIV.
  2667. //! @brief Get value of CCM_ANALOG_MISC2_VIDEO_DIV from a register value.
  2668. #define BG_CCM_ANALOG_MISC2_VIDEO_DIV(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_CCM_ANALOG_MISC2_VIDEO_DIV) >> BP_CCM_ANALOG_MISC2_VIDEO_DIV)
  2669. //! @brief Format value for bitfield CCM_ANALOG_MISC2_VIDEO_DIV.
  2670. #define BF_CCM_ANALOG_MISC2_VIDEO_DIV(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_CCM_ANALOG_MISC2_VIDEO_DIV) & BM_CCM_ANALOG_MISC2_VIDEO_DIV)
  2671. #ifndef __LANGUAGE_ASM__
  2672. //! @brief Set the VIDEO_DIV field to a new value.
  2673. #define BW_CCM_ANALOG_MISC2_VIDEO_DIV(v) BF_CS1(CCM_ANALOG_MISC2, VIDEO_DIV, v)
  2674. #endif
  2675. //@}
  2676. //-------------------------------------------------------------------------------------------
  2677. // hw_ccm_analog_t - module struct
  2678. //-------------------------------------------------------------------------------------------
  2679. /*!
  2680. * @brief All CCM_ANALOG module registers.
  2681. */
  2682. #ifndef __LANGUAGE_ASM__
  2683. #pragma pack(1)
  2684. typedef struct _hw_ccm_analog
  2685. {
  2686. volatile hw_ccm_analog_pll_arm_t PLL_ARM; //!< Analog ARM PLL control Register
  2687. volatile reg32_t PLL_ARM_SET; //!< Analog ARM PLL control Register Set
  2688. volatile reg32_t PLL_ARM_CLR; //!< Analog ARM PLL control Register Clear
  2689. volatile reg32_t PLL_ARM_TOG; //!< Analog ARM PLL control Register Toggle
  2690. volatile hw_ccm_analog_pll_usb1_t PLL_USB1; //!< Analog USB1 480MHz PLL Control Register
  2691. volatile reg32_t PLL_USB1_SET; //!< Analog USB1 480MHz PLL Control Register Set
  2692. volatile reg32_t PLL_USB1_CLR; //!< Analog USB1 480MHz PLL Control Register Clear
  2693. volatile reg32_t PLL_USB1_TOG; //!< Analog USB1 480MHz PLL Control Register Toggle
  2694. volatile hw_ccm_analog_pll_usb2_t PLL_USB2; //!< Analog USB2 480MHz PLL Control Register
  2695. volatile reg32_t PLL_USB2_SET; //!< Analog USB2 480MHz PLL Control Register Set
  2696. volatile reg32_t PLL_USB2_CLR; //!< Analog USB2 480MHz PLL Control Register Clear
  2697. volatile reg32_t PLL_USB2_TOG; //!< Analog USB2 480MHz PLL Control Register Toggle
  2698. volatile hw_ccm_analog_pll_sys_t PLL_SYS; //!< Analog System PLL Control Register
  2699. volatile reg32_t PLL_SYS_SET; //!< Analog System PLL Control Register Set
  2700. volatile reg32_t PLL_SYS_CLR; //!< Analog System PLL Control Register Clear
  2701. volatile reg32_t PLL_SYS_TOG; //!< Analog System PLL Control Register Toggle
  2702. volatile hw_ccm_analog_pll_sys_ss_t PLL_SYS_SS; //!< 528MHz System PLL Spread Spectrum Register.
  2703. reg32_t _reserved0[3];
  2704. volatile hw_ccm_analog_pll_sys_num_t PLL_SYS_NUM; //!< Numerator of 528MHz System PLL Fractional Loop Divider Register
  2705. reg32_t _reserved1[3];
  2706. volatile hw_ccm_analog_pll_sys_denom_t PLL_SYS_DENOM; //!< Denominator of 528MHz System PLL Fractional Loop Divider Register
  2707. reg32_t _reserved2[3];
  2708. volatile hw_ccm_analog_pll_audio_t PLL_AUDIO; //!< Analog Audio PLL control Register
  2709. volatile reg32_t PLL_AUDIO_SET; //!< Analog Audio PLL control Register Set
  2710. volatile reg32_t PLL_AUDIO_CLR; //!< Analog Audio PLL control Register Clear
  2711. volatile reg32_t PLL_AUDIO_TOG; //!< Analog Audio PLL control Register Toggle
  2712. volatile hw_ccm_analog_pll_audio_num_t PLL_AUDIO_NUM; //!< Numerator of Audio PLL Fractional Loop Divider Register
  2713. reg32_t _reserved3[3];
  2714. volatile hw_ccm_analog_pll_audio_denom_t PLL_AUDIO_DENOM; //!< Denominator of Audio PLL Fractional Loop Divider Register
  2715. reg32_t _reserved4[3];
  2716. volatile hw_ccm_analog_pll_video_t PLL_VIDEO; //!< Analog Video PLL control Register
  2717. volatile reg32_t PLL_VIDEO_SET; //!< Analog Video PLL control Register Set
  2718. volatile reg32_t PLL_VIDEO_CLR; //!< Analog Video PLL control Register Clear
  2719. volatile reg32_t PLL_VIDEO_TOG; //!< Analog Video PLL control Register Toggle
  2720. volatile hw_ccm_analog_pll_video_num_t PLL_VIDEO_NUM; //!< Numerator of Video PLL Fractional Loop Divider Register
  2721. reg32_t _reserved5[3];
  2722. volatile hw_ccm_analog_pll_video_denom_t PLL_VIDEO_DENOM; //!< Denominator of Video PLL Fractional Loop Divider Register
  2723. reg32_t _reserved6[3];
  2724. volatile hw_ccm_analog_pll_mlb_t PLL_MLB; //!< MLB PLL Control Register
  2725. volatile reg32_t PLL_MLB_SET; //!< MLB PLL Control Register Set
  2726. volatile reg32_t PLL_MLB_CLR; //!< MLB PLL Control Register Clear
  2727. volatile reg32_t PLL_MLB_TOG; //!< MLB PLL Control Register Toggle
  2728. volatile hw_ccm_analog_pll_enet_t PLL_ENET; //!< Analog ENET PLL Control Register
  2729. volatile reg32_t PLL_ENET_SET; //!< Analog ENET PLL Control Register Set
  2730. volatile reg32_t PLL_ENET_CLR; //!< Analog ENET PLL Control Register Clear
  2731. volatile reg32_t PLL_ENET_TOG; //!< Analog ENET PLL Control Register Toggle
  2732. volatile hw_ccm_analog_pfd_480_t PFD_480; //!< 480MHz Clock (from PLL_USB2) Phase Fractional Divider Control Register
  2733. volatile reg32_t PFD_480_SET; //!< 480MHz Clock (from PLL_USB2) Phase Fractional Divider Control Register Set
  2734. volatile reg32_t PFD_480_CLR; //!< 480MHz Clock (from PLL_USB2) Phase Fractional Divider Control Register Clear
  2735. volatile reg32_t PFD_480_TOG; //!< 480MHz Clock (from PLL_USB2) Phase Fractional Divider Control Register Toggle
  2736. volatile hw_ccm_analog_pfd_528_t PFD_528; //!< 528MHz Clock (From PLL_SYS) Phase Fractional Divider Control Register
  2737. volatile reg32_t PFD_528_SET; //!< 528MHz Clock (From PLL_SYS) Phase Fractional Divider Control Register Set
  2738. volatile reg32_t PFD_528_CLR; //!< 528MHz Clock (From PLL_SYS) Phase Fractional Divider Control Register Clear
  2739. volatile reg32_t PFD_528_TOG; //!< 528MHz Clock (From PLL_SYS) Phase Fractional Divider Control Register Toggle
  2740. reg32_t _reserved7[16];
  2741. volatile hw_ccm_analog_misc0_t MISC0; //!< Miscellaneous Control Register
  2742. volatile reg32_t MISC0_SET; //!< Miscellaneous Control Register Set
  2743. volatile reg32_t MISC0_CLR; //!< Miscellaneous Control Register Clear
  2744. volatile reg32_t MISC0_TOG; //!< Miscellaneous Control Register Toggle
  2745. reg32_t _reserved8[4];
  2746. volatile hw_ccm_analog_misc2_t MISC2; //!< Miscellaneous Control Register
  2747. volatile reg32_t MISC2_SET; //!< Miscellaneous Control Register Set
  2748. volatile reg32_t MISC2_CLR; //!< Miscellaneous Control Register Clear
  2749. volatile reg32_t MISC2_TOG; //!< Miscellaneous Control Register Toggle
  2750. } hw_ccm_analog_t;
  2751. #pragma pack()
  2752. //! @brief Macro to access all CCM_ANALOG registers.
  2753. //! @return Reference (not a pointer) to the registers struct. To get a pointer to the struct,
  2754. //! use the '&' operator, like <code>&HW_CCM_ANALOG</code>.
  2755. #define HW_CCM_ANALOG (*(hw_ccm_analog_t *) REGS_CCM_ANALOG_BASE)
  2756. #endif
  2757. #endif // __HW_CCM_ANALOG_REGISTERS_H__
  2758. // v18/121106/1.2.2
  2759. // EOF