regsusbanalog.h 68 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325
  1. /*
  2. * Copyright (C) 2012, Freescale Semiconductor, Inc. All Rights Reserved
  3. * THIS SOURCE CODE IS CONFIDENTIAL AND PROPRIETARY AND MAY NOT
  4. * BE USED OR DISTRIBUTED WITHOUT THE WRITTEN PERMISSION OF
  5. * Freescale Semiconductor, Inc.
  6. */
  7. #ifndef __HW_USB_ANALOG_REGISTERS_H__
  8. #define __HW_USB_ANALOG_REGISTERS_H__
  9. #include "regs.h"
  10. /*
  11. * i.MX6UL USB_ANALOG registers defined in this header file.
  12. *
  13. * - HW_USB_ANALOG_USB1_VBUS_DETECT - USB VBUS Detect Register
  14. * - HW_USB_ANALOG_USB1_CHRG_DETECT - USB Charger Detect Register
  15. * - HW_USB_ANALOG_USB1_VBUS_DETECT_STAT - USB VBUS Detect Status Register
  16. * - HW_USB_ANALOG_USB1_CHRG_DETECT_STAT - USB Charger Detect Status Register
  17. * - HW_USB_ANALOG_USB1_MISC - USB Misc Register
  18. * - HW_USB_ANALOG_USB2_VBUS_DETECT - USB VBUS Detect Register
  19. * - HW_USB_ANALOG_USB2_CHRG_DETECT - USB Charger Detect Register
  20. * - HW_USB_ANALOG_USB2_VBUS_DETECT_STAT - USB VBUS Detect Status Register
  21. * - HW_USB_ANALOG_USB2_CHRG_DETECT_STAT - USB Charger Detect Status Register
  22. * - HW_USB_ANALOG_USB2_MISC - USB Misc Register
  23. * - HW_USB_ANALOG_DIGPROG - Chip Silicon Version
  24. *
  25. * - hw_usb_analog_t - Struct containing all module registers.
  26. */
  27. //! @name Module base addresses
  28. //@{
  29. #ifndef REGS_USB_ANALOG_BASE
  30. #define HW_USB_ANALOG_INSTANCE_COUNT (1) //!< Number of instances of the USB_ANALOG module.
  31. #define REGS_USB_ANALOG_BASE (0x020c8000) //!< Base address for USB_ANALOG.
  32. #endif
  33. //@}
  34. //-------------------------------------------------------------------------------------------
  35. // HW_USB_ANALOG_USB1_VBUS_DETECT - USB VBUS Detect Register
  36. //-------------------------------------------------------------------------------------------
  37. #ifndef __LANGUAGE_ASM__
  38. /*!
  39. * @brief HW_USB_ANALOG_USB1_VBUS_DETECT - USB VBUS Detect Register (RW)
  40. *
  41. * Reset value: 0x00100004
  42. *
  43. * This register defines controls for USB VBUS detect.
  44. */
  45. typedef union _hw_usb_analog_usb1_vbus_detect
  46. {
  47. reg32_t U;
  48. struct _hw_usb_analog_usb1_vbus_detect_bitfields
  49. {
  50. unsigned VBUSVALID_THRESH : 3; //!< [2:0] Set the threshold for the VBUSVALID comparator.
  51. unsigned RESERVED0 : 17; //!< [19:3] Reserved.
  52. unsigned VBUSVALID_PWRUP_CMPS : 1; //!< [20] Powers up comparators for vbus_valid detector.
  53. unsigned RESERVED1 : 5; //!< [25:21] Reserved.
  54. unsigned DISCHARGE_VBUS : 1; //!< [26] USB OTG discharge VBUS.
  55. unsigned CHARGE_VBUS : 1; //!< [27] USB OTG charge VBUS.
  56. unsigned RESERVED2 : 3; //!< [30:28] Reserved.
  57. unsigned EN_CHARGER_RESISTOR : 1; //!< [31] Enable 125k pullup on USB_DP and 375k on USB_DN to provide USB_CHARGER functionality for USB.
  58. } B;
  59. } hw_usb_analog_usb1_vbus_detect_t;
  60. #endif
  61. /*
  62. * constants & macros for entire USB_ANALOG_USB1_VBUS_DETECT register
  63. */
  64. #define HW_USB_ANALOG_USB1_VBUS_DETECT_ADDR (REGS_USB_ANALOG_BASE + 0x1a0)
  65. #define HW_USB_ANALOG_USB1_VBUS_DETECT_SET_ADDR (HW_USB_ANALOG_USB1_VBUS_DETECT_ADDR + 0x4)
  66. #define HW_USB_ANALOG_USB1_VBUS_DETECT_CLR_ADDR (HW_USB_ANALOG_USB1_VBUS_DETECT_ADDR + 0x8)
  67. #define HW_USB_ANALOG_USB1_VBUS_DETECT_TOG_ADDR (HW_USB_ANALOG_USB1_VBUS_DETECT_ADDR + 0xC)
  68. #ifndef __LANGUAGE_ASM__
  69. #define HW_USB_ANALOG_USB1_VBUS_DETECT (*(volatile hw_usb_analog_usb1_vbus_detect_t *) HW_USB_ANALOG_USB1_VBUS_DETECT_ADDR)
  70. #define HW_USB_ANALOG_USB1_VBUS_DETECT_RD() (HW_USB_ANALOG_USB1_VBUS_DETECT.U)
  71. #define HW_USB_ANALOG_USB1_VBUS_DETECT_WR(v) (HW_USB_ANALOG_USB1_VBUS_DETECT.U = (v))
  72. #define HW_USB_ANALOG_USB1_VBUS_DETECT_SET(v) ((*(volatile reg32_t *) HW_USB_ANALOG_USB1_VBUS_DETECT_SET_ADDR) = (v))
  73. #define HW_USB_ANALOG_USB1_VBUS_DETECT_CLR(v) ((*(volatile reg32_t *) HW_USB_ANALOG_USB1_VBUS_DETECT_CLR_ADDR) = (v))
  74. #define HW_USB_ANALOG_USB1_VBUS_DETECT_TOG(v) ((*(volatile reg32_t *) HW_USB_ANALOG_USB1_VBUS_DETECT_TOG_ADDR) = (v))
  75. #endif
  76. /*
  77. * constants & macros for individual USB_ANALOG_USB1_VBUS_DETECT bitfields
  78. */
  79. /* --- Register HW_USB_ANALOG_USB1_VBUS_DETECT, field VBUSVALID_THRESH[2:0] (RW)
  80. *
  81. * Set the threshold for the VBUSVALID comparator. This comparator is the most accurate method to
  82. * determine the presence of 5v, and includes hystersis to minimize the need for software debounce
  83. * of the detection. This comparator has ~50mV of hystersis to prevent chattering at the comparator
  84. * trip point.
  85. *
  86. * Values:
  87. * 4V0 = 000 - 4.0V
  88. * 4V1 = 001 - 4.1V
  89. * 4V2 = 010 - 4.2V
  90. * 4V3 = 011 - 4.3V
  91. * 4V4 = 100 - 4.4V (default)
  92. * 4V5 = 101 - 4.5V
  93. * 4V6 = 110 - 4.6V
  94. * 4V7 = 111 - 4.7V
  95. */
  96. #define BP_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_THRESH (0) //!< Bit position for USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_THRESH.
  97. #define BM_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_THRESH (0x00000007) //!< Bit mask for USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_THRESH.
  98. //! @brief Get value of USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_THRESH from a register value.
  99. #define BG_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_THRESH(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_THRESH) >> BP_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_THRESH)
  100. //! @brief Format value for bitfield USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_THRESH.
  101. #define BF_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_THRESH(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_THRESH) & BM_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_THRESH)
  102. #ifndef __LANGUAGE_ASM__
  103. //! @brief Set the VBUSVALID_THRESH field to a new value.
  104. #define BW_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_THRESH(v) BF_CS1(USB_ANALOG_USB1_VBUS_DETECT, VBUSVALID_THRESH, v)
  105. #endif
  106. #define BV_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_THRESH__4V0 (0x0) //!< 4.0V
  107. #define BV_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_THRESH__4V1 (0x1) //!< 4.1V
  108. #define BV_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_THRESH__4V2 (0x2) //!< 4.2V
  109. #define BV_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_THRESH__4V3 (0x3) //!< 4.3V
  110. #define BV_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_THRESH__4V4 (0x4) //!< 4.4V (default)
  111. #define BV_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_THRESH__4V5 (0x5) //!< 4.5V
  112. #define BV_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_THRESH__4V6 (0x6) //!< 4.6V
  113. #define BV_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_THRESH__4V7 (0x7) //!< 4.7V
  114. /* --- Register HW_USB_ANALOG_USB1_VBUS_DETECT, field VBUSVALID_PWRUP_CMPS[20] (RW)
  115. *
  116. * Powers up comparators for vbus_valid detector.
  117. */
  118. #define BP_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_PWRUP_CMPS (20) //!< Bit position for USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_PWRUP_CMPS.
  119. #define BM_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_PWRUP_CMPS (0x00100000) //!< Bit mask for USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_PWRUP_CMPS.
  120. //! @brief Get value of USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_PWRUP_CMPS from a register value.
  121. #define BG_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_PWRUP_CMPS(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_PWRUP_CMPS) >> BP_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_PWRUP_CMPS)
  122. //! @brief Format value for bitfield USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_PWRUP_CMPS.
  123. #define BF_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_PWRUP_CMPS(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_PWRUP_CMPS) & BM_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_PWRUP_CMPS)
  124. #ifndef __LANGUAGE_ASM__
  125. //! @brief Set the VBUSVALID_PWRUP_CMPS field to a new value.
  126. #define BW_USB_ANALOG_USB1_VBUS_DETECT_VBUSVALID_PWRUP_CMPS(v) BF_CS1(USB_ANALOG_USB1_VBUS_DETECT, VBUSVALID_PWRUP_CMPS, v)
  127. #endif
  128. /* --- Register HW_USB_ANALOG_USB1_VBUS_DETECT, field DISCHARGE_VBUS[26] (RW)
  129. *
  130. * USB OTG discharge VBUS.
  131. */
  132. #define BP_USB_ANALOG_USB1_VBUS_DETECT_DISCHARGE_VBUS (26) //!< Bit position for USB_ANALOG_USB1_VBUS_DETECT_DISCHARGE_VBUS.
  133. #define BM_USB_ANALOG_USB1_VBUS_DETECT_DISCHARGE_VBUS (0x04000000) //!< Bit mask for USB_ANALOG_USB1_VBUS_DETECT_DISCHARGE_VBUS.
  134. //! @brief Get value of USB_ANALOG_USB1_VBUS_DETECT_DISCHARGE_VBUS from a register value.
  135. #define BG_USB_ANALOG_USB1_VBUS_DETECT_DISCHARGE_VBUS(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB1_VBUS_DETECT_DISCHARGE_VBUS) >> BP_USB_ANALOG_USB1_VBUS_DETECT_DISCHARGE_VBUS)
  136. //! @brief Format value for bitfield USB_ANALOG_USB1_VBUS_DETECT_DISCHARGE_VBUS.
  137. #define BF_USB_ANALOG_USB1_VBUS_DETECT_DISCHARGE_VBUS(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_USB_ANALOG_USB1_VBUS_DETECT_DISCHARGE_VBUS) & BM_USB_ANALOG_USB1_VBUS_DETECT_DISCHARGE_VBUS)
  138. #ifndef __LANGUAGE_ASM__
  139. //! @brief Set the DISCHARGE_VBUS field to a new value.
  140. #define BW_USB_ANALOG_USB1_VBUS_DETECT_DISCHARGE_VBUS(v) BF_CS1(USB_ANALOG_USB1_VBUS_DETECT, DISCHARGE_VBUS, v)
  141. #endif
  142. /* --- Register HW_USB_ANALOG_USB1_VBUS_DETECT, field CHARGE_VBUS[27] (RW)
  143. *
  144. * USB OTG charge VBUS.
  145. */
  146. #define BP_USB_ANALOG_USB1_VBUS_DETECT_CHARGE_VBUS (27) //!< Bit position for USB_ANALOG_USB1_VBUS_DETECT_CHARGE_VBUS.
  147. #define BM_USB_ANALOG_USB1_VBUS_DETECT_CHARGE_VBUS (0x08000000) //!< Bit mask for USB_ANALOG_USB1_VBUS_DETECT_CHARGE_VBUS.
  148. //! @brief Get value of USB_ANALOG_USB1_VBUS_DETECT_CHARGE_VBUS from a register value.
  149. #define BG_USB_ANALOG_USB1_VBUS_DETECT_CHARGE_VBUS(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB1_VBUS_DETECT_CHARGE_VBUS) >> BP_USB_ANALOG_USB1_VBUS_DETECT_CHARGE_VBUS)
  150. //! @brief Format value for bitfield USB_ANALOG_USB1_VBUS_DETECT_CHARGE_VBUS.
  151. #define BF_USB_ANALOG_USB1_VBUS_DETECT_CHARGE_VBUS(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_USB_ANALOG_USB1_VBUS_DETECT_CHARGE_VBUS) & BM_USB_ANALOG_USB1_VBUS_DETECT_CHARGE_VBUS)
  152. #ifndef __LANGUAGE_ASM__
  153. //! @brief Set the CHARGE_VBUS field to a new value.
  154. #define BW_USB_ANALOG_USB1_VBUS_DETECT_CHARGE_VBUS(v) BF_CS1(USB_ANALOG_USB1_VBUS_DETECT, CHARGE_VBUS, v)
  155. #endif
  156. /* --- Register HW_USB_ANALOG_USB1_VBUS_DETECT, field EN_CHARGER_RESISTOR[31] (RW)
  157. *
  158. * Enable 125k pullup on USB_DP and 375k on USB_DN to provide USB_CHARGER functionality for USB.
  159. * This functionality is a new USB spec and should not be enabled unless recommended by Freescale.
  160. */
  161. #define BP_USB_ANALOG_USB1_VBUS_DETECT_EN_CHARGER_RESISTOR (31) //!< Bit position for USB_ANALOG_USB1_VBUS_DETECT_EN_CHARGER_RESISTOR.
  162. #define BM_USB_ANALOG_USB1_VBUS_DETECT_EN_CHARGER_RESISTOR (0x80000000) //!< Bit mask for USB_ANALOG_USB1_VBUS_DETECT_EN_CHARGER_RESISTOR.
  163. //! @brief Get value of USB_ANALOG_USB1_VBUS_DETECT_EN_CHARGER_RESISTOR from a register value.
  164. #define BG_USB_ANALOG_USB1_VBUS_DETECT_EN_CHARGER_RESISTOR(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB1_VBUS_DETECT_EN_CHARGER_RESISTOR) >> BP_USB_ANALOG_USB1_VBUS_DETECT_EN_CHARGER_RESISTOR)
  165. //! @brief Format value for bitfield USB_ANALOG_USB1_VBUS_DETECT_EN_CHARGER_RESISTOR.
  166. #define BF_USB_ANALOG_USB1_VBUS_DETECT_EN_CHARGER_RESISTOR(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_USB_ANALOG_USB1_VBUS_DETECT_EN_CHARGER_RESISTOR) & BM_USB_ANALOG_USB1_VBUS_DETECT_EN_CHARGER_RESISTOR)
  167. #ifndef __LANGUAGE_ASM__
  168. //! @brief Set the EN_CHARGER_RESISTOR field to a new value.
  169. #define BW_USB_ANALOG_USB1_VBUS_DETECT_EN_CHARGER_RESISTOR(v) BF_CS1(USB_ANALOG_USB1_VBUS_DETECT, EN_CHARGER_RESISTOR, v)
  170. #endif
  171. //-------------------------------------------------------------------------------------------
  172. // HW_USB_ANALOG_USB1_CHRG_DETECT - USB Charger Detect Register
  173. //-------------------------------------------------------------------------------------------
  174. #ifndef __LANGUAGE_ASM__
  175. /*!
  176. * @brief HW_USB_ANALOG_USB1_CHRG_DETECT - USB Charger Detect Register (RW)
  177. *
  178. * Reset value: 0x00000000
  179. *
  180. * This register defines controls for USB charger detect.
  181. */
  182. typedef union _hw_usb_analog_usb1_chrg_detect
  183. {
  184. reg32_t U;
  185. struct _hw_usb_analog_usb1_chrg_detect_bitfields
  186. {
  187. unsigned RESERVED0 : 18; //!< [17:0] Reserved.
  188. unsigned CHK_CONTACT : 1; //!< [18]
  189. unsigned CHK_CHRG_B : 1; //!< [19]
  190. unsigned EN_B : 1; //!< [20] Control the charger detector.
  191. unsigned RESERVED1 : 3; //!< [23:21] Reserved.
  192. unsigned RESERVED2 : 8; //!< [31:24] Reserved.
  193. } B;
  194. } hw_usb_analog_usb1_chrg_detect_t;
  195. #endif
  196. /*
  197. * constants & macros for entire USB_ANALOG_USB1_CHRG_DETECT register
  198. */
  199. #define HW_USB_ANALOG_USB1_CHRG_DETECT_ADDR (REGS_USB_ANALOG_BASE + 0x1b0)
  200. #define HW_USB_ANALOG_USB1_CHRG_DETECT_SET_ADDR (HW_USB_ANALOG_USB1_CHRG_DETECT_ADDR + 0x4)
  201. #define HW_USB_ANALOG_USB1_CHRG_DETECT_CLR_ADDR (HW_USB_ANALOG_USB1_CHRG_DETECT_ADDR + 0x8)
  202. #define HW_USB_ANALOG_USB1_CHRG_DETECT_TOG_ADDR (HW_USB_ANALOG_USB1_CHRG_DETECT_ADDR + 0xC)
  203. #ifndef __LANGUAGE_ASM__
  204. #define HW_USB_ANALOG_USB1_CHRG_DETECT (*(volatile hw_usb_analog_usb1_chrg_detect_t *) HW_USB_ANALOG_USB1_CHRG_DETECT_ADDR)
  205. #define HW_USB_ANALOG_USB1_CHRG_DETECT_RD() (HW_USB_ANALOG_USB1_CHRG_DETECT.U)
  206. #define HW_USB_ANALOG_USB1_CHRG_DETECT_WR(v) (HW_USB_ANALOG_USB1_CHRG_DETECT.U = (v))
  207. #define HW_USB_ANALOG_USB1_CHRG_DETECT_SET(v) ((*(volatile reg32_t *) HW_USB_ANALOG_USB1_CHRG_DETECT_SET_ADDR) = (v))
  208. #define HW_USB_ANALOG_USB1_CHRG_DETECT_CLR(v) ((*(volatile reg32_t *) HW_USB_ANALOG_USB1_CHRG_DETECT_CLR_ADDR) = (v))
  209. #define HW_USB_ANALOG_USB1_CHRG_DETECT_TOG(v) ((*(volatile reg32_t *) HW_USB_ANALOG_USB1_CHRG_DETECT_TOG_ADDR) = (v))
  210. #endif
  211. /*
  212. * constants & macros for individual USB_ANALOG_USB1_CHRG_DETECT bitfields
  213. */
  214. /* --- Register HW_USB_ANALOG_USB1_CHRG_DETECT, field CHK_CONTACT[18] (RW)
  215. *
  216. *
  217. * Values:
  218. * NO_CHECK = 0 - Do not check the contact of USB plug.
  219. * CHECK = 1 - Check whether the USB plug has been in contact with each other
  220. */
  221. #define BP_USB_ANALOG_USB1_CHRG_DETECT_CHK_CONTACT (18) //!< Bit position for USB_ANALOG_USB1_CHRG_DETECT_CHK_CONTACT.
  222. #define BM_USB_ANALOG_USB1_CHRG_DETECT_CHK_CONTACT (0x00040000) //!< Bit mask for USB_ANALOG_USB1_CHRG_DETECT_CHK_CONTACT.
  223. //! @brief Get value of USB_ANALOG_USB1_CHRG_DETECT_CHK_CONTACT from a register value.
  224. #define BG_USB_ANALOG_USB1_CHRG_DETECT_CHK_CONTACT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB1_CHRG_DETECT_CHK_CONTACT) >> BP_USB_ANALOG_USB1_CHRG_DETECT_CHK_CONTACT)
  225. //! @brief Format value for bitfield USB_ANALOG_USB1_CHRG_DETECT_CHK_CONTACT.
  226. #define BF_USB_ANALOG_USB1_CHRG_DETECT_CHK_CONTACT(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_USB_ANALOG_USB1_CHRG_DETECT_CHK_CONTACT) & BM_USB_ANALOG_USB1_CHRG_DETECT_CHK_CONTACT)
  227. #ifndef __LANGUAGE_ASM__
  228. //! @brief Set the CHK_CONTACT field to a new value.
  229. #define BW_USB_ANALOG_USB1_CHRG_DETECT_CHK_CONTACT(v) BF_CS1(USB_ANALOG_USB1_CHRG_DETECT, CHK_CONTACT, v)
  230. #endif
  231. #define BV_USB_ANALOG_USB1_CHRG_DETECT_CHK_CONTACT__NO_CHECK (0x0) //!< Do not check the contact of USB plug.
  232. #define BV_USB_ANALOG_USB1_CHRG_DETECT_CHK_CONTACT__CHECK (0x1) //!< Check whether the USB plug has been in contact with each other
  233. /* --- Register HW_USB_ANALOG_USB1_CHRG_DETECT, field CHK_CHRG_B[19] (RW)
  234. *
  235. *
  236. * Values:
  237. * CHECK = 0 - Check whether a charger (either a dedicated charger or a host charger) is connected to USB port.
  238. * NO_CHECK = 1 - Do not check whether a charger is connected to the USB port.
  239. */
  240. #define BP_USB_ANALOG_USB1_CHRG_DETECT_CHK_CHRG_B (19) //!< Bit position for USB_ANALOG_USB1_CHRG_DETECT_CHK_CHRG_B.
  241. #define BM_USB_ANALOG_USB1_CHRG_DETECT_CHK_CHRG_B (0x00080000) //!< Bit mask for USB_ANALOG_USB1_CHRG_DETECT_CHK_CHRG_B.
  242. //! @brief Get value of USB_ANALOG_USB1_CHRG_DETECT_CHK_CHRG_B from a register value.
  243. #define BG_USB_ANALOG_USB1_CHRG_DETECT_CHK_CHRG_B(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB1_CHRG_DETECT_CHK_CHRG_B) >> BP_USB_ANALOG_USB1_CHRG_DETECT_CHK_CHRG_B)
  244. //! @brief Format value for bitfield USB_ANALOG_USB1_CHRG_DETECT_CHK_CHRG_B.
  245. #define BF_USB_ANALOG_USB1_CHRG_DETECT_CHK_CHRG_B(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_USB_ANALOG_USB1_CHRG_DETECT_CHK_CHRG_B) & BM_USB_ANALOG_USB1_CHRG_DETECT_CHK_CHRG_B)
  246. #ifndef __LANGUAGE_ASM__
  247. //! @brief Set the CHK_CHRG_B field to a new value.
  248. #define BW_USB_ANALOG_USB1_CHRG_DETECT_CHK_CHRG_B(v) BF_CS1(USB_ANALOG_USB1_CHRG_DETECT, CHK_CHRG_B, v)
  249. #endif
  250. #define BV_USB_ANALOG_USB1_CHRG_DETECT_CHK_CHRG_B__CHECK (0x0) //!< Check whether a charger (either a dedicated charger or a host charger) is connected to USB port.
  251. #define BV_USB_ANALOG_USB1_CHRG_DETECT_CHK_CHRG_B__NO_CHECK (0x1) //!< Do not check whether a charger is connected to the USB port.
  252. /* --- Register HW_USB_ANALOG_USB1_CHRG_DETECT, field EN_B[20] (RW)
  253. *
  254. * Control the charger detector.
  255. *
  256. * Values:
  257. * ENABLE = 0 - Enable the charger detector.
  258. * DISABLE = 1 - Disable the charger detector.
  259. */
  260. #define BP_USB_ANALOG_USB1_CHRG_DETECT_EN_B (20) //!< Bit position for USB_ANALOG_USB1_CHRG_DETECT_EN_B.
  261. #define BM_USB_ANALOG_USB1_CHRG_DETECT_EN_B (0x00100000) //!< Bit mask for USB_ANALOG_USB1_CHRG_DETECT_EN_B.
  262. //! @brief Get value of USB_ANALOG_USB1_CHRG_DETECT_EN_B from a register value.
  263. #define BG_USB_ANALOG_USB1_CHRG_DETECT_EN_B(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB1_CHRG_DETECT_EN_B) >> BP_USB_ANALOG_USB1_CHRG_DETECT_EN_B)
  264. //! @brief Format value for bitfield USB_ANALOG_USB1_CHRG_DETECT_EN_B.
  265. #define BF_USB_ANALOG_USB1_CHRG_DETECT_EN_B(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_USB_ANALOG_USB1_CHRG_DETECT_EN_B) & BM_USB_ANALOG_USB1_CHRG_DETECT_EN_B)
  266. #ifndef __LANGUAGE_ASM__
  267. //! @brief Set the EN_B field to a new value.
  268. #define BW_USB_ANALOG_USB1_CHRG_DETECT_EN_B(v) BF_CS1(USB_ANALOG_USB1_CHRG_DETECT, EN_B, v)
  269. #endif
  270. #define BV_USB_ANALOG_USB1_CHRG_DETECT_EN_B__ENABLE (0x0) //!< Enable the charger detector.
  271. #define BV_USB_ANALOG_USB1_CHRG_DETECT_EN_B__DISABLE (0x1) //!< Disable the charger detector.
  272. //-------------------------------------------------------------------------------------------
  273. // HW_USB_ANALOG_USB1_VBUS_DETECT_STAT - USB VBUS Detect Status Register
  274. //-------------------------------------------------------------------------------------------
  275. #ifndef __LANGUAGE_ASM__
  276. /*!
  277. * @brief HW_USB_ANALOG_USB1_VBUS_DETECT_STAT - USB VBUS Detect Status Register (RO)
  278. *
  279. * Reset value: 0x00000000
  280. *
  281. * This register defines fields for USB VBUS Detect status.
  282. */
  283. typedef union _hw_usb_analog_usb1_vbus_detect_stat
  284. {
  285. reg32_t U;
  286. struct _hw_usb_analog_usb1_vbus_detect_stat_bitfields
  287. {
  288. unsigned SESSEND : 1; //!< [0] Session End for USB OTG.
  289. unsigned BVALID : 1; //!< [1] Indicates VBus is valid for a B-peripheral.
  290. unsigned AVALID : 1; //!< [2] Indicates VBus is valid for a A-peripheral.
  291. unsigned VBUS_VALID : 1; //!< [3] VBus valid for USB OTG.
  292. unsigned RESERVED0 : 28; //!< [31:4] Reserved.
  293. } B;
  294. } hw_usb_analog_usb1_vbus_detect_stat_t;
  295. #endif
  296. /*
  297. * constants & macros for entire USB_ANALOG_USB1_VBUS_DETECT_STAT register
  298. */
  299. #define HW_USB_ANALOG_USB1_VBUS_DETECT_STAT_ADDR (REGS_USB_ANALOG_BASE + 0x1c0)
  300. #ifndef __LANGUAGE_ASM__
  301. #define HW_USB_ANALOG_USB1_VBUS_DETECT_STAT (*(volatile hw_usb_analog_usb1_vbus_detect_stat_t *) HW_USB_ANALOG_USB1_VBUS_DETECT_STAT_ADDR)
  302. #define HW_USB_ANALOG_USB1_VBUS_DETECT_STAT_RD() (HW_USB_ANALOG_USB1_VBUS_DETECT_STAT.U)
  303. #endif
  304. /*
  305. * constants & macros for individual USB_ANALOG_USB1_VBUS_DETECT_STAT bitfields
  306. */
  307. /* --- Register HW_USB_ANALOG_USB1_VBUS_DETECT_STAT, field SESSEND[0] (RO)
  308. *
  309. * Session End for USB OTG. This bit is a read only version of the state of the analog signal. It
  310. * can not be overwritten by software like the SESSEND bit below. NOTE: This bit's default value
  311. * depends on whether VDD5V is present, 0 if VDD5V is present, 1 if VDD5V is not present.
  312. */
  313. #define BP_USB_ANALOG_USB1_VBUS_DETECT_STAT_SESSEND (0) //!< Bit position for USB_ANALOG_USB1_VBUS_DETECT_STAT_SESSEND.
  314. #define BM_USB_ANALOG_USB1_VBUS_DETECT_STAT_SESSEND (0x00000001) //!< Bit mask for USB_ANALOG_USB1_VBUS_DETECT_STAT_SESSEND.
  315. //! @brief Get value of USB_ANALOG_USB1_VBUS_DETECT_STAT_SESSEND from a register value.
  316. #define BG_USB_ANALOG_USB1_VBUS_DETECT_STAT_SESSEND(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB1_VBUS_DETECT_STAT_SESSEND) >> BP_USB_ANALOG_USB1_VBUS_DETECT_STAT_SESSEND)
  317. /* --- Register HW_USB_ANALOG_USB1_VBUS_DETECT_STAT, field BVALID[1] (RO)
  318. *
  319. * Indicates VBus is valid for a B-peripheral. This bit is a read only version of the state of the
  320. * analog signal. It can not be overritten by software.
  321. */
  322. #define BP_USB_ANALOG_USB1_VBUS_DETECT_STAT_BVALID (1) //!< Bit position for USB_ANALOG_USB1_VBUS_DETECT_STAT_BVALID.
  323. #define BM_USB_ANALOG_USB1_VBUS_DETECT_STAT_BVALID (0x00000002) //!< Bit mask for USB_ANALOG_USB1_VBUS_DETECT_STAT_BVALID.
  324. //! @brief Get value of USB_ANALOG_USB1_VBUS_DETECT_STAT_BVALID from a register value.
  325. #define BG_USB_ANALOG_USB1_VBUS_DETECT_STAT_BVALID(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB1_VBUS_DETECT_STAT_BVALID) >> BP_USB_ANALOG_USB1_VBUS_DETECT_STAT_BVALID)
  326. /* --- Register HW_USB_ANALOG_USB1_VBUS_DETECT_STAT, field AVALID[2] (RO)
  327. *
  328. * Indicates VBus is valid for a A-peripheral. This bit is a read only version of the state of the
  329. * analog signal. It can not be overritten by software.
  330. */
  331. #define BP_USB_ANALOG_USB1_VBUS_DETECT_STAT_AVALID (2) //!< Bit position for USB_ANALOG_USB1_VBUS_DETECT_STAT_AVALID.
  332. #define BM_USB_ANALOG_USB1_VBUS_DETECT_STAT_AVALID (0x00000004) //!< Bit mask for USB_ANALOG_USB1_VBUS_DETECT_STAT_AVALID.
  333. //! @brief Get value of USB_ANALOG_USB1_VBUS_DETECT_STAT_AVALID from a register value.
  334. #define BG_USB_ANALOG_USB1_VBUS_DETECT_STAT_AVALID(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB1_VBUS_DETECT_STAT_AVALID) >> BP_USB_ANALOG_USB1_VBUS_DETECT_STAT_AVALID)
  335. /* --- Register HW_USB_ANALOG_USB1_VBUS_DETECT_STAT, field VBUS_VALID[3] (RO)
  336. *
  337. * VBus valid for USB OTG. This bit is a read only version of the state of the analog signal. It can
  338. * not be overwritten by software.
  339. */
  340. #define BP_USB_ANALOG_USB1_VBUS_DETECT_STAT_VBUS_VALID (3) //!< Bit position for USB_ANALOG_USB1_VBUS_DETECT_STAT_VBUS_VALID.
  341. #define BM_USB_ANALOG_USB1_VBUS_DETECT_STAT_VBUS_VALID (0x00000008) //!< Bit mask for USB_ANALOG_USB1_VBUS_DETECT_STAT_VBUS_VALID.
  342. //! @brief Get value of USB_ANALOG_USB1_VBUS_DETECT_STAT_VBUS_VALID from a register value.
  343. #define BG_USB_ANALOG_USB1_VBUS_DETECT_STAT_VBUS_VALID(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB1_VBUS_DETECT_STAT_VBUS_VALID) >> BP_USB_ANALOG_USB1_VBUS_DETECT_STAT_VBUS_VALID)
  344. //-------------------------------------------------------------------------------------------
  345. // HW_USB_ANALOG_USB1_CHRG_DETECT_STAT - USB Charger Detect Status Register
  346. //-------------------------------------------------------------------------------------------
  347. #ifndef __LANGUAGE_ASM__
  348. /*!
  349. * @brief HW_USB_ANALOG_USB1_CHRG_DETECT_STAT - USB Charger Detect Status Register (RO)
  350. *
  351. * Reset value: 0x00000000
  352. *
  353. * This register defines fields for USB charger detect status.
  354. */
  355. typedef union _hw_usb_analog_usb1_chrg_detect_stat
  356. {
  357. reg32_t U;
  358. struct _hw_usb_analog_usb1_chrg_detect_stat_bitfields
  359. {
  360. unsigned PLUG_CONTACT : 1; //!< [0] State of the USB plug contact detector.
  361. unsigned CHRG_DETECTED : 1; //!< [1] State of charger detection.
  362. unsigned DM_STATE : 1; //!< [2] DM line state output of the charger detector.
  363. unsigned DP_STATE : 1; //!< [3] DP line state output of the charger detector.
  364. unsigned RESERVED0 : 28; //!< [31:4] Reserved.
  365. } B;
  366. } hw_usb_analog_usb1_chrg_detect_stat_t;
  367. #endif
  368. /*
  369. * constants & macros for entire USB_ANALOG_USB1_CHRG_DETECT_STAT register
  370. */
  371. #define HW_USB_ANALOG_USB1_CHRG_DETECT_STAT_ADDR (REGS_USB_ANALOG_BASE + 0x1d0)
  372. #ifndef __LANGUAGE_ASM__
  373. #define HW_USB_ANALOG_USB1_CHRG_DETECT_STAT (*(volatile hw_usb_analog_usb1_chrg_detect_stat_t *) HW_USB_ANALOG_USB1_CHRG_DETECT_STAT_ADDR)
  374. #define HW_USB_ANALOG_USB1_CHRG_DETECT_STAT_RD() (HW_USB_ANALOG_USB1_CHRG_DETECT_STAT.U)
  375. #endif
  376. /*
  377. * constants & macros for individual USB_ANALOG_USB1_CHRG_DETECT_STAT bitfields
  378. */
  379. /* --- Register HW_USB_ANALOG_USB1_CHRG_DETECT_STAT, field PLUG_CONTACT[0] (RO)
  380. *
  381. * State of the USB plug contact detector.
  382. *
  383. * Values:
  384. * NO_CONTACT = 0 - The USB plug has not made contact.
  385. * GOOD_CONTACT = 1 - The USB plug has made good contact.
  386. */
  387. #define BP_USB_ANALOG_USB1_CHRG_DETECT_STAT_PLUG_CONTACT (0) //!< Bit position for USB_ANALOG_USB1_CHRG_DETECT_STAT_PLUG_CONTACT.
  388. #define BM_USB_ANALOG_USB1_CHRG_DETECT_STAT_PLUG_CONTACT (0x00000001) //!< Bit mask for USB_ANALOG_USB1_CHRG_DETECT_STAT_PLUG_CONTACT.
  389. //! @brief Get value of USB_ANALOG_USB1_CHRG_DETECT_STAT_PLUG_CONTACT from a register value.
  390. #define BG_USB_ANALOG_USB1_CHRG_DETECT_STAT_PLUG_CONTACT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB1_CHRG_DETECT_STAT_PLUG_CONTACT) >> BP_USB_ANALOG_USB1_CHRG_DETECT_STAT_PLUG_CONTACT)
  391. #define BV_USB_ANALOG_USB1_CHRG_DETECT_STAT_PLUG_CONTACT__NO_CONTACT (0x0) //!< The USB plug has not made contact.
  392. #define BV_USB_ANALOG_USB1_CHRG_DETECT_STAT_PLUG_CONTACT__GOOD_CONTACT (0x1) //!< The USB plug has made good contact.
  393. /* --- Register HW_USB_ANALOG_USB1_CHRG_DETECT_STAT, field CHRG_DETECTED[1] (RO)
  394. *
  395. * State of charger detection. This bit is a read only version of the state of the analog signal.
  396. *
  397. * Values:
  398. * CHARGER_NOT_PRESENT = 0 - The USB port is not connected to a charger.
  399. * CHARGER_PRESENT = 1 - A charger (either a dedicated charger or a host charger) is connected to the USB port.
  400. */
  401. #define BP_USB_ANALOG_USB1_CHRG_DETECT_STAT_CHRG_DETECTED (1) //!< Bit position for USB_ANALOG_USB1_CHRG_DETECT_STAT_CHRG_DETECTED.
  402. #define BM_USB_ANALOG_USB1_CHRG_DETECT_STAT_CHRG_DETECTED (0x00000002) //!< Bit mask for USB_ANALOG_USB1_CHRG_DETECT_STAT_CHRG_DETECTED.
  403. //! @brief Get value of USB_ANALOG_USB1_CHRG_DETECT_STAT_CHRG_DETECTED from a register value.
  404. #define BG_USB_ANALOG_USB1_CHRG_DETECT_STAT_CHRG_DETECTED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB1_CHRG_DETECT_STAT_CHRG_DETECTED) >> BP_USB_ANALOG_USB1_CHRG_DETECT_STAT_CHRG_DETECTED)
  405. #define BV_USB_ANALOG_USB1_CHRG_DETECT_STAT_CHRG_DETECTED__CHARGER_NOT_PRESENT (0x0) //!< The USB port is not connected to a charger.
  406. #define BV_USB_ANALOG_USB1_CHRG_DETECT_STAT_CHRG_DETECTED__CHARGER_PRESENT (0x1) //!< A charger (either a dedicated charger or a host charger) is connected to the USB port.
  407. /* --- Register HW_USB_ANALOG_USB1_CHRG_DETECT_STAT, field DM_STATE[2] (RO)
  408. *
  409. * DM line state output of the charger detector.
  410. */
  411. #define BP_USB_ANALOG_USB1_CHRG_DETECT_STAT_DM_STATE (2) //!< Bit position for USB_ANALOG_USB1_CHRG_DETECT_STAT_DM_STATE.
  412. #define BM_USB_ANALOG_USB1_CHRG_DETECT_STAT_DM_STATE (0x00000004) //!< Bit mask for USB_ANALOG_USB1_CHRG_DETECT_STAT_DM_STATE.
  413. //! @brief Get value of USB_ANALOG_USB1_CHRG_DETECT_STAT_DM_STATE from a register value.
  414. #define BG_USB_ANALOG_USB1_CHRG_DETECT_STAT_DM_STATE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB1_CHRG_DETECT_STAT_DM_STATE) >> BP_USB_ANALOG_USB1_CHRG_DETECT_STAT_DM_STATE)
  415. /* --- Register HW_USB_ANALOG_USB1_CHRG_DETECT_STAT, field DP_STATE[3] (RO)
  416. *
  417. * DP line state output of the charger detector.
  418. */
  419. #define BP_USB_ANALOG_USB1_CHRG_DETECT_STAT_DP_STATE (3) //!< Bit position for USB_ANALOG_USB1_CHRG_DETECT_STAT_DP_STATE.
  420. #define BM_USB_ANALOG_USB1_CHRG_DETECT_STAT_DP_STATE (0x00000008) //!< Bit mask for USB_ANALOG_USB1_CHRG_DETECT_STAT_DP_STATE.
  421. //! @brief Get value of USB_ANALOG_USB1_CHRG_DETECT_STAT_DP_STATE from a register value.
  422. #define BG_USB_ANALOG_USB1_CHRG_DETECT_STAT_DP_STATE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB1_CHRG_DETECT_STAT_DP_STATE) >> BP_USB_ANALOG_USB1_CHRG_DETECT_STAT_DP_STATE)
  423. //-------------------------------------------------------------------------------------------
  424. // HW_USB_ANALOG_USB1_MISC - USB Misc Register
  425. //-------------------------------------------------------------------------------------------
  426. #ifndef __LANGUAGE_ASM__
  427. /*!
  428. * @brief HW_USB_ANALOG_USB1_MISC - USB Misc Register (RW)
  429. *
  430. * Reset value: 0x00000002
  431. *
  432. * This register defines controls for USB.
  433. */
  434. typedef union _hw_usb_analog_usb1_misc
  435. {
  436. reg32_t U;
  437. struct _hw_usb_analog_usb1_misc_bitfields
  438. {
  439. unsigned HS_USE_EXTERNAL_R : 1; //!< [0] Use external resistor to generate the current bias for the high speed transmitter.
  440. unsigned EN_DEGLITCH : 1; //!< [1] Enable the deglitching circuit of the USB PLL output.
  441. unsigned RESERVED0 : 28; //!< [29:2] Reserved.
  442. unsigned EN_CLK_UTMI : 1; //!< [30] Enables the clk to the UTMI block.
  443. unsigned RESERVED1 : 1; //!< [31] Reserved.
  444. } B;
  445. } hw_usb_analog_usb1_misc_t;
  446. #endif
  447. /*
  448. * constants & macros for entire USB_ANALOG_USB1_MISC register
  449. */
  450. #define HW_USB_ANALOG_USB1_MISC_ADDR (REGS_USB_ANALOG_BASE + 0x1f0)
  451. #define HW_USB_ANALOG_USB1_MISC_SET_ADDR (HW_USB_ANALOG_USB1_MISC_ADDR + 0x4)
  452. #define HW_USB_ANALOG_USB1_MISC_CLR_ADDR (HW_USB_ANALOG_USB1_MISC_ADDR + 0x8)
  453. #define HW_USB_ANALOG_USB1_MISC_TOG_ADDR (HW_USB_ANALOG_USB1_MISC_ADDR + 0xC)
  454. #ifndef __LANGUAGE_ASM__
  455. #define HW_USB_ANALOG_USB1_MISC (*(volatile hw_usb_analog_usb1_misc_t *) HW_USB_ANALOG_USB1_MISC_ADDR)
  456. #define HW_USB_ANALOG_USB1_MISC_RD() (HW_USB_ANALOG_USB1_MISC.U)
  457. #define HW_USB_ANALOG_USB1_MISC_WR(v) (HW_USB_ANALOG_USB1_MISC.U = (v))
  458. #define HW_USB_ANALOG_USB1_MISC_SET(v) ((*(volatile reg32_t *) HW_USB_ANALOG_USB1_MISC_SET_ADDR) = (v))
  459. #define HW_USB_ANALOG_USB1_MISC_CLR(v) ((*(volatile reg32_t *) HW_USB_ANALOG_USB1_MISC_CLR_ADDR) = (v))
  460. #define HW_USB_ANALOG_USB1_MISC_TOG(v) ((*(volatile reg32_t *) HW_USB_ANALOG_USB1_MISC_TOG_ADDR) = (v))
  461. #endif
  462. /*
  463. * constants & macros for individual USB_ANALOG_USB1_MISC bitfields
  464. */
  465. /* --- Register HW_USB_ANALOG_USB1_MISC, field HS_USE_EXTERNAL_R[0] (RW)
  466. *
  467. * Use external resistor to generate the current bias for the high speed transmitter. This bit
  468. * should not be changed unless recommended by Freescale.
  469. */
  470. #define BP_USB_ANALOG_USB1_MISC_HS_USE_EXTERNAL_R (0) //!< Bit position for USB_ANALOG_USB1_MISC_HS_USE_EXTERNAL_R.
  471. #define BM_USB_ANALOG_USB1_MISC_HS_USE_EXTERNAL_R (0x00000001) //!< Bit mask for USB_ANALOG_USB1_MISC_HS_USE_EXTERNAL_R.
  472. //! @brief Get value of USB_ANALOG_USB1_MISC_HS_USE_EXTERNAL_R from a register value.
  473. #define BG_USB_ANALOG_USB1_MISC_HS_USE_EXTERNAL_R(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB1_MISC_HS_USE_EXTERNAL_R) >> BP_USB_ANALOG_USB1_MISC_HS_USE_EXTERNAL_R)
  474. //! @brief Format value for bitfield USB_ANALOG_USB1_MISC_HS_USE_EXTERNAL_R.
  475. #define BF_USB_ANALOG_USB1_MISC_HS_USE_EXTERNAL_R(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_USB_ANALOG_USB1_MISC_HS_USE_EXTERNAL_R) & BM_USB_ANALOG_USB1_MISC_HS_USE_EXTERNAL_R)
  476. #ifndef __LANGUAGE_ASM__
  477. //! @brief Set the HS_USE_EXTERNAL_R field to a new value.
  478. #define BW_USB_ANALOG_USB1_MISC_HS_USE_EXTERNAL_R(v) BF_CS1(USB_ANALOG_USB1_MISC, HS_USE_EXTERNAL_R, v)
  479. #endif
  480. /* --- Register HW_USB_ANALOG_USB1_MISC, field EN_DEGLITCH[1] (RW)
  481. *
  482. * Enable the deglitching circuit of the USB PLL output.
  483. */
  484. #define BP_USB_ANALOG_USB1_MISC_EN_DEGLITCH (1) //!< Bit position for USB_ANALOG_USB1_MISC_EN_DEGLITCH.
  485. #define BM_USB_ANALOG_USB1_MISC_EN_DEGLITCH (0x00000002) //!< Bit mask for USB_ANALOG_USB1_MISC_EN_DEGLITCH.
  486. //! @brief Get value of USB_ANALOG_USB1_MISC_EN_DEGLITCH from a register value.
  487. #define BG_USB_ANALOG_USB1_MISC_EN_DEGLITCH(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB1_MISC_EN_DEGLITCH) >> BP_USB_ANALOG_USB1_MISC_EN_DEGLITCH)
  488. //! @brief Format value for bitfield USB_ANALOG_USB1_MISC_EN_DEGLITCH.
  489. #define BF_USB_ANALOG_USB1_MISC_EN_DEGLITCH(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_USB_ANALOG_USB1_MISC_EN_DEGLITCH) & BM_USB_ANALOG_USB1_MISC_EN_DEGLITCH)
  490. #ifndef __LANGUAGE_ASM__
  491. //! @brief Set the EN_DEGLITCH field to a new value.
  492. #define BW_USB_ANALOG_USB1_MISC_EN_DEGLITCH(v) BF_CS1(USB_ANALOG_USB1_MISC, EN_DEGLITCH, v)
  493. #endif
  494. /* --- Register HW_USB_ANALOG_USB1_MISC, field EN_CLK_UTMI[30] (RW)
  495. *
  496. * Enables the clk to the UTMI block.
  497. */
  498. #define BP_USB_ANALOG_USB1_MISC_EN_CLK_UTMI (30) //!< Bit position for USB_ANALOG_USB1_MISC_EN_CLK_UTMI.
  499. #define BM_USB_ANALOG_USB1_MISC_EN_CLK_UTMI (0x40000000) //!< Bit mask for USB_ANALOG_USB1_MISC_EN_CLK_UTMI.
  500. //! @brief Get value of USB_ANALOG_USB1_MISC_EN_CLK_UTMI from a register value.
  501. #define BG_USB_ANALOG_USB1_MISC_EN_CLK_UTMI(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB1_MISC_EN_CLK_UTMI) >> BP_USB_ANALOG_USB1_MISC_EN_CLK_UTMI)
  502. //! @brief Format value for bitfield USB_ANALOG_USB1_MISC_EN_CLK_UTMI.
  503. #define BF_USB_ANALOG_USB1_MISC_EN_CLK_UTMI(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_USB_ANALOG_USB1_MISC_EN_CLK_UTMI) & BM_USB_ANALOG_USB1_MISC_EN_CLK_UTMI)
  504. #ifndef __LANGUAGE_ASM__
  505. //! @brief Set the EN_CLK_UTMI field to a new value.
  506. #define BW_USB_ANALOG_USB1_MISC_EN_CLK_UTMI(v) BF_CS1(USB_ANALOG_USB1_MISC, EN_CLK_UTMI, v)
  507. #endif
  508. //-------------------------------------------------------------------------------------------
  509. // HW_USB_ANALOG_USB2_VBUS_DETECT - USB VBUS Detect Register
  510. //-------------------------------------------------------------------------------------------
  511. #ifndef __LANGUAGE_ASM__
  512. /*!
  513. * @brief HW_USB_ANALOG_USB2_VBUS_DETECT - USB VBUS Detect Register (RW)
  514. *
  515. * Reset value: 0x00100004
  516. *
  517. * This register defines controls for USB VBUS detect.
  518. */
  519. typedef union _hw_usb_analog_usb2_vbus_detect
  520. {
  521. reg32_t U;
  522. struct _hw_usb_analog_usb2_vbus_detect_bitfields
  523. {
  524. unsigned VBUSVALID_THRESH : 3; //!< [2:0] Set the threshold for the VBUSVALID comparator.
  525. unsigned RESERVED0 : 17; //!< [19:3] Reserved.
  526. unsigned VBUSVALID_PWRUP_CMPS : 1; //!< [20] Powers up comparators for vbus_valid detector.
  527. unsigned RESERVED1 : 5; //!< [25:21] Reserved.
  528. unsigned DISCHARGE_VBUS : 1; //!< [26] USB OTG discharge VBUS.
  529. unsigned CHARGE_VBUS : 1; //!< [27] USB OTG charge VBUS.
  530. unsigned RESERVED2 : 3; //!< [30:28] Reserved.
  531. unsigned EN_CHARGER_RESISTOR : 1; //!< [31] Enable 125k pullup on USB_DP and 375k on USB_DN to provide USB_CHARGER functionality for USB.
  532. } B;
  533. } hw_usb_analog_usb2_vbus_detect_t;
  534. #endif
  535. /*
  536. * constants & macros for entire USB_ANALOG_USB2_VBUS_DETECT register
  537. */
  538. #define HW_USB_ANALOG_USB2_VBUS_DETECT_ADDR (REGS_USB_ANALOG_BASE + 0x200)
  539. #define HW_USB_ANALOG_USB2_VBUS_DETECT_SET_ADDR (HW_USB_ANALOG_USB2_VBUS_DETECT_ADDR + 0x4)
  540. #define HW_USB_ANALOG_USB2_VBUS_DETECT_CLR_ADDR (HW_USB_ANALOG_USB2_VBUS_DETECT_ADDR + 0x8)
  541. #define HW_USB_ANALOG_USB2_VBUS_DETECT_TOG_ADDR (HW_USB_ANALOG_USB2_VBUS_DETECT_ADDR + 0xC)
  542. #ifndef __LANGUAGE_ASM__
  543. #define HW_USB_ANALOG_USB2_VBUS_DETECT (*(volatile hw_usb_analog_usb2_vbus_detect_t *) HW_USB_ANALOG_USB2_VBUS_DETECT_ADDR)
  544. #define HW_USB_ANALOG_USB2_VBUS_DETECT_RD() (HW_USB_ANALOG_USB2_VBUS_DETECT.U)
  545. #define HW_USB_ANALOG_USB2_VBUS_DETECT_WR(v) (HW_USB_ANALOG_USB2_VBUS_DETECT.U = (v))
  546. #define HW_USB_ANALOG_USB2_VBUS_DETECT_SET(v) ((*(volatile reg32_t *) HW_USB_ANALOG_USB2_VBUS_DETECT_SET_ADDR) = (v))
  547. #define HW_USB_ANALOG_USB2_VBUS_DETECT_CLR(v) ((*(volatile reg32_t *) HW_USB_ANALOG_USB2_VBUS_DETECT_CLR_ADDR) = (v))
  548. #define HW_USB_ANALOG_USB2_VBUS_DETECT_TOG(v) ((*(volatile reg32_t *) HW_USB_ANALOG_USB2_VBUS_DETECT_TOG_ADDR) = (v))
  549. #endif
  550. /*
  551. * constants & macros for individual USB_ANALOG_USB2_VBUS_DETECT bitfields
  552. */
  553. /* --- Register HW_USB_ANALOG_USB2_VBUS_DETECT, field VBUSVALID_THRESH[2:0] (RW)
  554. *
  555. * Set the threshold for the VBUSVALID comparator. This comparator is the most accurate method to
  556. * determine the presence of 5v, and includes hystersis to minimize the need for software debounce
  557. * of the detection. This comparator has ~50mV of hystersis to prevent chattering at the comparator
  558. * trip point.
  559. *
  560. * Values:
  561. * 4V0 = 000 - 4.0V
  562. * 4V1 = 001 - 4.1V
  563. * 4V2 = 010 - 4.2V
  564. * 4V3 = 011 - 4.3V
  565. * 4V4 = 100 - 4.4V (default)
  566. * 4V5 = 101 - 4.5V
  567. * 4V6 = 110 - 4.6V
  568. * 4V7 = 111 - 4.7V
  569. */
  570. #define BP_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_THRESH (0) //!< Bit position for USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_THRESH.
  571. #define BM_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_THRESH (0x00000007) //!< Bit mask for USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_THRESH.
  572. //! @brief Get value of USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_THRESH from a register value.
  573. #define BG_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_THRESH(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_THRESH) >> BP_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_THRESH)
  574. //! @brief Format value for bitfield USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_THRESH.
  575. #define BF_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_THRESH(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_THRESH) & BM_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_THRESH)
  576. #ifndef __LANGUAGE_ASM__
  577. //! @brief Set the VBUSVALID_THRESH field to a new value.
  578. #define BW_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_THRESH(v) BF_CS1(USB_ANALOG_USB2_VBUS_DETECT, VBUSVALID_THRESH, v)
  579. #endif
  580. #define BV_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_THRESH__4V0 (0x0) //!< 4.0V
  581. #define BV_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_THRESH__4V1 (0x1) //!< 4.1V
  582. #define BV_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_THRESH__4V2 (0x2) //!< 4.2V
  583. #define BV_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_THRESH__4V3 (0x3) //!< 4.3V
  584. #define BV_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_THRESH__4V4 (0x4) //!< 4.4V (default)
  585. #define BV_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_THRESH__4V5 (0x5) //!< 4.5V
  586. #define BV_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_THRESH__4V6 (0x6) //!< 4.6V
  587. #define BV_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_THRESH__4V7 (0x7) //!< 4.7V
  588. /* --- Register HW_USB_ANALOG_USB2_VBUS_DETECT, field VBUSVALID_PWRUP_CMPS[20] (RW)
  589. *
  590. * Powers up comparators for vbus_valid detector.
  591. */
  592. #define BP_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_PWRUP_CMPS (20) //!< Bit position for USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_PWRUP_CMPS.
  593. #define BM_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_PWRUP_CMPS (0x00100000) //!< Bit mask for USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_PWRUP_CMPS.
  594. //! @brief Get value of USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_PWRUP_CMPS from a register value.
  595. #define BG_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_PWRUP_CMPS(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_PWRUP_CMPS) >> BP_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_PWRUP_CMPS)
  596. //! @brief Format value for bitfield USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_PWRUP_CMPS.
  597. #define BF_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_PWRUP_CMPS(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_PWRUP_CMPS) & BM_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_PWRUP_CMPS)
  598. #ifndef __LANGUAGE_ASM__
  599. //! @brief Set the VBUSVALID_PWRUP_CMPS field to a new value.
  600. #define BW_USB_ANALOG_USB2_VBUS_DETECT_VBUSVALID_PWRUP_CMPS(v) BF_CS1(USB_ANALOG_USB2_VBUS_DETECT, VBUSVALID_PWRUP_CMPS, v)
  601. #endif
  602. /* --- Register HW_USB_ANALOG_USB2_VBUS_DETECT, field DISCHARGE_VBUS[26] (RW)
  603. *
  604. * USB OTG discharge VBUS.
  605. */
  606. #define BP_USB_ANALOG_USB2_VBUS_DETECT_DISCHARGE_VBUS (26) //!< Bit position for USB_ANALOG_USB2_VBUS_DETECT_DISCHARGE_VBUS.
  607. #define BM_USB_ANALOG_USB2_VBUS_DETECT_DISCHARGE_VBUS (0x04000000) //!< Bit mask for USB_ANALOG_USB2_VBUS_DETECT_DISCHARGE_VBUS.
  608. //! @brief Get value of USB_ANALOG_USB2_VBUS_DETECT_DISCHARGE_VBUS from a register value.
  609. #define BG_USB_ANALOG_USB2_VBUS_DETECT_DISCHARGE_VBUS(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB2_VBUS_DETECT_DISCHARGE_VBUS) >> BP_USB_ANALOG_USB2_VBUS_DETECT_DISCHARGE_VBUS)
  610. //! @brief Format value for bitfield USB_ANALOG_USB2_VBUS_DETECT_DISCHARGE_VBUS.
  611. #define BF_USB_ANALOG_USB2_VBUS_DETECT_DISCHARGE_VBUS(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_USB_ANALOG_USB2_VBUS_DETECT_DISCHARGE_VBUS) & BM_USB_ANALOG_USB2_VBUS_DETECT_DISCHARGE_VBUS)
  612. #ifndef __LANGUAGE_ASM__
  613. //! @brief Set the DISCHARGE_VBUS field to a new value.
  614. #define BW_USB_ANALOG_USB2_VBUS_DETECT_DISCHARGE_VBUS(v) BF_CS1(USB_ANALOG_USB2_VBUS_DETECT, DISCHARGE_VBUS, v)
  615. #endif
  616. /* --- Register HW_USB_ANALOG_USB2_VBUS_DETECT, field CHARGE_VBUS[27] (RW)
  617. *
  618. * USB OTG charge VBUS.
  619. */
  620. #define BP_USB_ANALOG_USB2_VBUS_DETECT_CHARGE_VBUS (27) //!< Bit position for USB_ANALOG_USB2_VBUS_DETECT_CHARGE_VBUS.
  621. #define BM_USB_ANALOG_USB2_VBUS_DETECT_CHARGE_VBUS (0x08000000) //!< Bit mask for USB_ANALOG_USB2_VBUS_DETECT_CHARGE_VBUS.
  622. //! @brief Get value of USB_ANALOG_USB2_VBUS_DETECT_CHARGE_VBUS from a register value.
  623. #define BG_USB_ANALOG_USB2_VBUS_DETECT_CHARGE_VBUS(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB2_VBUS_DETECT_CHARGE_VBUS) >> BP_USB_ANALOG_USB2_VBUS_DETECT_CHARGE_VBUS)
  624. //! @brief Format value for bitfield USB_ANALOG_USB2_VBUS_DETECT_CHARGE_VBUS.
  625. #define BF_USB_ANALOG_USB2_VBUS_DETECT_CHARGE_VBUS(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_USB_ANALOG_USB2_VBUS_DETECT_CHARGE_VBUS) & BM_USB_ANALOG_USB2_VBUS_DETECT_CHARGE_VBUS)
  626. #ifndef __LANGUAGE_ASM__
  627. //! @brief Set the CHARGE_VBUS field to a new value.
  628. #define BW_USB_ANALOG_USB2_VBUS_DETECT_CHARGE_VBUS(v) BF_CS1(USB_ANALOG_USB2_VBUS_DETECT, CHARGE_VBUS, v)
  629. #endif
  630. /* --- Register HW_USB_ANALOG_USB2_VBUS_DETECT, field EN_CHARGER_RESISTOR[31] (RW)
  631. *
  632. * Enable 125k pullup on USB_DP and 375k on USB_DN to provide USB_CHARGER functionality for USB.
  633. * This functionality is a new USB spec and should not be enabled unless recommended by Freescale.
  634. */
  635. #define BP_USB_ANALOG_USB2_VBUS_DETECT_EN_CHARGER_RESISTOR (31) //!< Bit position for USB_ANALOG_USB2_VBUS_DETECT_EN_CHARGER_RESISTOR.
  636. #define BM_USB_ANALOG_USB2_VBUS_DETECT_EN_CHARGER_RESISTOR (0x80000000) //!< Bit mask for USB_ANALOG_USB2_VBUS_DETECT_EN_CHARGER_RESISTOR.
  637. //! @brief Get value of USB_ANALOG_USB2_VBUS_DETECT_EN_CHARGER_RESISTOR from a register value.
  638. #define BG_USB_ANALOG_USB2_VBUS_DETECT_EN_CHARGER_RESISTOR(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB2_VBUS_DETECT_EN_CHARGER_RESISTOR) >> BP_USB_ANALOG_USB2_VBUS_DETECT_EN_CHARGER_RESISTOR)
  639. //! @brief Format value for bitfield USB_ANALOG_USB2_VBUS_DETECT_EN_CHARGER_RESISTOR.
  640. #define BF_USB_ANALOG_USB2_VBUS_DETECT_EN_CHARGER_RESISTOR(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_USB_ANALOG_USB2_VBUS_DETECT_EN_CHARGER_RESISTOR) & BM_USB_ANALOG_USB2_VBUS_DETECT_EN_CHARGER_RESISTOR)
  641. #ifndef __LANGUAGE_ASM__
  642. //! @brief Set the EN_CHARGER_RESISTOR field to a new value.
  643. #define BW_USB_ANALOG_USB2_VBUS_DETECT_EN_CHARGER_RESISTOR(v) BF_CS1(USB_ANALOG_USB2_VBUS_DETECT, EN_CHARGER_RESISTOR, v)
  644. #endif
  645. //-------------------------------------------------------------------------------------------
  646. // HW_USB_ANALOG_USB2_CHRG_DETECT - USB Charger Detect Register
  647. //-------------------------------------------------------------------------------------------
  648. #ifndef __LANGUAGE_ASM__
  649. /*!
  650. * @brief HW_USB_ANALOG_USB2_CHRG_DETECT - USB Charger Detect Register (RW)
  651. *
  652. * Reset value: 0x00000000
  653. *
  654. * This register defines controls for USB charger detect.
  655. */
  656. typedef union _hw_usb_analog_usb2_chrg_detect
  657. {
  658. reg32_t U;
  659. struct _hw_usb_analog_usb2_chrg_detect_bitfields
  660. {
  661. unsigned RESERVED0 : 18; //!< [17:0] Reserved.
  662. unsigned CHK_CONTACT : 1; //!< [18]
  663. unsigned CHK_CHRG_B : 1; //!< [19]
  664. unsigned EN_B : 1; //!< [20] Control the charger detector.
  665. unsigned RESERVED1 : 3; //!< [23:21] Reserved.
  666. unsigned RESERVED2 : 8; //!< [31:24] Reserved.
  667. } B;
  668. } hw_usb_analog_usb2_chrg_detect_t;
  669. #endif
  670. /*
  671. * constants & macros for entire USB_ANALOG_USB2_CHRG_DETECT register
  672. */
  673. #define HW_USB_ANALOG_USB2_CHRG_DETECT_ADDR (REGS_USB_ANALOG_BASE + 0x210)
  674. #define HW_USB_ANALOG_USB2_CHRG_DETECT_SET_ADDR (HW_USB_ANALOG_USB2_CHRG_DETECT_ADDR + 0x4)
  675. #define HW_USB_ANALOG_USB2_CHRG_DETECT_CLR_ADDR (HW_USB_ANALOG_USB2_CHRG_DETECT_ADDR + 0x8)
  676. #define HW_USB_ANALOG_USB2_CHRG_DETECT_TOG_ADDR (HW_USB_ANALOG_USB2_CHRG_DETECT_ADDR + 0xC)
  677. #ifndef __LANGUAGE_ASM__
  678. #define HW_USB_ANALOG_USB2_CHRG_DETECT (*(volatile hw_usb_analog_usb2_chrg_detect_t *) HW_USB_ANALOG_USB2_CHRG_DETECT_ADDR)
  679. #define HW_USB_ANALOG_USB2_CHRG_DETECT_RD() (HW_USB_ANALOG_USB2_CHRG_DETECT.U)
  680. #define HW_USB_ANALOG_USB2_CHRG_DETECT_WR(v) (HW_USB_ANALOG_USB2_CHRG_DETECT.U = (v))
  681. #define HW_USB_ANALOG_USB2_CHRG_DETECT_SET(v) ((*(volatile reg32_t *) HW_USB_ANALOG_USB2_CHRG_DETECT_SET_ADDR) = (v))
  682. #define HW_USB_ANALOG_USB2_CHRG_DETECT_CLR(v) ((*(volatile reg32_t *) HW_USB_ANALOG_USB2_CHRG_DETECT_CLR_ADDR) = (v))
  683. #define HW_USB_ANALOG_USB2_CHRG_DETECT_TOG(v) ((*(volatile reg32_t *) HW_USB_ANALOG_USB2_CHRG_DETECT_TOG_ADDR) = (v))
  684. #endif
  685. /*
  686. * constants & macros for individual USB_ANALOG_USB2_CHRG_DETECT bitfields
  687. */
  688. /* --- Register HW_USB_ANALOG_USB2_CHRG_DETECT, field CHK_CONTACT[18] (RW)
  689. *
  690. *
  691. * Values:
  692. * NO_CHECK = 0 - Do not check the contact of USB plug.
  693. * CHECK = 1 - Check whether the USB plug has been in contact with each other
  694. */
  695. #define BP_USB_ANALOG_USB2_CHRG_DETECT_CHK_CONTACT (18) //!< Bit position for USB_ANALOG_USB2_CHRG_DETECT_CHK_CONTACT.
  696. #define BM_USB_ANALOG_USB2_CHRG_DETECT_CHK_CONTACT (0x00040000) //!< Bit mask for USB_ANALOG_USB2_CHRG_DETECT_CHK_CONTACT.
  697. //! @brief Get value of USB_ANALOG_USB2_CHRG_DETECT_CHK_CONTACT from a register value.
  698. #define BG_USB_ANALOG_USB2_CHRG_DETECT_CHK_CONTACT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB2_CHRG_DETECT_CHK_CONTACT) >> BP_USB_ANALOG_USB2_CHRG_DETECT_CHK_CONTACT)
  699. //! @brief Format value for bitfield USB_ANALOG_USB2_CHRG_DETECT_CHK_CONTACT.
  700. #define BF_USB_ANALOG_USB2_CHRG_DETECT_CHK_CONTACT(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_USB_ANALOG_USB2_CHRG_DETECT_CHK_CONTACT) & BM_USB_ANALOG_USB2_CHRG_DETECT_CHK_CONTACT)
  701. #ifndef __LANGUAGE_ASM__
  702. //! @brief Set the CHK_CONTACT field to a new value.
  703. #define BW_USB_ANALOG_USB2_CHRG_DETECT_CHK_CONTACT(v) BF_CS1(USB_ANALOG_USB2_CHRG_DETECT, CHK_CONTACT, v)
  704. #endif
  705. #define BV_USB_ANALOG_USB2_CHRG_DETECT_CHK_CONTACT__NO_CHECK (0x0) //!< Do not check the contact of USB plug.
  706. #define BV_USB_ANALOG_USB2_CHRG_DETECT_CHK_CONTACT__CHECK (0x1) //!< Check whether the USB plug has been in contact with each other
  707. /* --- Register HW_USB_ANALOG_USB2_CHRG_DETECT, field CHK_CHRG_B[19] (RW)
  708. *
  709. *
  710. * Values:
  711. * CHECK = 0 - Check whether a charger (either a dedicated charger or a host charger) is connected to USB port.
  712. * NO_CHECK = 1 - Do not check whether a charger is connected to the USB port.
  713. */
  714. #define BP_USB_ANALOG_USB2_CHRG_DETECT_CHK_CHRG_B (19) //!< Bit position for USB_ANALOG_USB2_CHRG_DETECT_CHK_CHRG_B.
  715. #define BM_USB_ANALOG_USB2_CHRG_DETECT_CHK_CHRG_B (0x00080000) //!< Bit mask for USB_ANALOG_USB2_CHRG_DETECT_CHK_CHRG_B.
  716. //! @brief Get value of USB_ANALOG_USB2_CHRG_DETECT_CHK_CHRG_B from a register value.
  717. #define BG_USB_ANALOG_USB2_CHRG_DETECT_CHK_CHRG_B(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB2_CHRG_DETECT_CHK_CHRG_B) >> BP_USB_ANALOG_USB2_CHRG_DETECT_CHK_CHRG_B)
  718. //! @brief Format value for bitfield USB_ANALOG_USB2_CHRG_DETECT_CHK_CHRG_B.
  719. #define BF_USB_ANALOG_USB2_CHRG_DETECT_CHK_CHRG_B(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_USB_ANALOG_USB2_CHRG_DETECT_CHK_CHRG_B) & BM_USB_ANALOG_USB2_CHRG_DETECT_CHK_CHRG_B)
  720. #ifndef __LANGUAGE_ASM__
  721. //! @brief Set the CHK_CHRG_B field to a new value.
  722. #define BW_USB_ANALOG_USB2_CHRG_DETECT_CHK_CHRG_B(v) BF_CS1(USB_ANALOG_USB2_CHRG_DETECT, CHK_CHRG_B, v)
  723. #endif
  724. #define BV_USB_ANALOG_USB2_CHRG_DETECT_CHK_CHRG_B__CHECK (0x0) //!< Check whether a charger (either a dedicated charger or a host charger) is connected to USB port.
  725. #define BV_USB_ANALOG_USB2_CHRG_DETECT_CHK_CHRG_B__NO_CHECK (0x1) //!< Do not check whether a charger is connected to the USB port.
  726. /* --- Register HW_USB_ANALOG_USB2_CHRG_DETECT, field EN_B[20] (RW)
  727. *
  728. * Control the charger detector.
  729. *
  730. * Values:
  731. * ENABLE = 0 - Enable the charger detector.
  732. * DISABLE = 1 - Disable the charger detector.
  733. */
  734. #define BP_USB_ANALOG_USB2_CHRG_DETECT_EN_B (20) //!< Bit position for USB_ANALOG_USB2_CHRG_DETECT_EN_B.
  735. #define BM_USB_ANALOG_USB2_CHRG_DETECT_EN_B (0x00100000) //!< Bit mask for USB_ANALOG_USB2_CHRG_DETECT_EN_B.
  736. //! @brief Get value of USB_ANALOG_USB2_CHRG_DETECT_EN_B from a register value.
  737. #define BG_USB_ANALOG_USB2_CHRG_DETECT_EN_B(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB2_CHRG_DETECT_EN_B) >> BP_USB_ANALOG_USB2_CHRG_DETECT_EN_B)
  738. //! @brief Format value for bitfield USB_ANALOG_USB2_CHRG_DETECT_EN_B.
  739. #define BF_USB_ANALOG_USB2_CHRG_DETECT_EN_B(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_USB_ANALOG_USB2_CHRG_DETECT_EN_B) & BM_USB_ANALOG_USB2_CHRG_DETECT_EN_B)
  740. #ifndef __LANGUAGE_ASM__
  741. //! @brief Set the EN_B field to a new value.
  742. #define BW_USB_ANALOG_USB2_CHRG_DETECT_EN_B(v) BF_CS1(USB_ANALOG_USB2_CHRG_DETECT, EN_B, v)
  743. #endif
  744. #define BV_USB_ANALOG_USB2_CHRG_DETECT_EN_B__ENABLE (0x0) //!< Enable the charger detector.
  745. #define BV_USB_ANALOG_USB2_CHRG_DETECT_EN_B__DISABLE (0x1) //!< Disable the charger detector.
  746. //-------------------------------------------------------------------------------------------
  747. // HW_USB_ANALOG_USB2_VBUS_DETECT_STAT - USB VBUS Detect Status Register
  748. //-------------------------------------------------------------------------------------------
  749. #ifndef __LANGUAGE_ASM__
  750. /*!
  751. * @brief HW_USB_ANALOG_USB2_VBUS_DETECT_STAT - USB VBUS Detect Status Register (RO)
  752. *
  753. * Reset value: 0x00000000
  754. *
  755. * This register defines fields for USB VBUS Detect status.
  756. */
  757. typedef union _hw_usb_analog_usb2_vbus_detect_stat
  758. {
  759. reg32_t U;
  760. struct _hw_usb_analog_usb2_vbus_detect_stat_bitfields
  761. {
  762. unsigned SESSEND : 1; //!< [0] Session End for USB OTG.
  763. unsigned BVALID : 1; //!< [1] Indicates VBus is valid for a B-peripheral.
  764. unsigned AVALID : 1; //!< [2] Indicates VBus is valid for a A-peripheral.
  765. unsigned VBUS_VALID : 1; //!< [3] VBus valid for USB OTG.
  766. unsigned RESERVED0 : 28; //!< [31:4] Reserved.
  767. } B;
  768. } hw_usb_analog_usb2_vbus_detect_stat_t;
  769. #endif
  770. /*
  771. * constants & macros for entire USB_ANALOG_USB2_VBUS_DETECT_STAT register
  772. */
  773. #define HW_USB_ANALOG_USB2_VBUS_DETECT_STAT_ADDR (REGS_USB_ANALOG_BASE + 0x220)
  774. #ifndef __LANGUAGE_ASM__
  775. #define HW_USB_ANALOG_USB2_VBUS_DETECT_STAT (*(volatile hw_usb_analog_usb2_vbus_detect_stat_t *) HW_USB_ANALOG_USB2_VBUS_DETECT_STAT_ADDR)
  776. #define HW_USB_ANALOG_USB2_VBUS_DETECT_STAT_RD() (HW_USB_ANALOG_USB2_VBUS_DETECT_STAT.U)
  777. #endif
  778. /*
  779. * constants & macros for individual USB_ANALOG_USB2_VBUS_DETECT_STAT bitfields
  780. */
  781. /* --- Register HW_USB_ANALOG_USB2_VBUS_DETECT_STAT, field SESSEND[0] (RO)
  782. *
  783. * Session End for USB OTG. This bit is a read only version of the state of the analog signal. It
  784. * can not be overwritten by software like the SESSEND bit below. NOTE: This bit's default value
  785. * depends on whether VDD5V is present, 0 if VDD5V is present, 1 if VDD5V is not present.
  786. */
  787. #define BP_USB_ANALOG_USB2_VBUS_DETECT_STAT_SESSEND (0) //!< Bit position for USB_ANALOG_USB2_VBUS_DETECT_STAT_SESSEND.
  788. #define BM_USB_ANALOG_USB2_VBUS_DETECT_STAT_SESSEND (0x00000001) //!< Bit mask for USB_ANALOG_USB2_VBUS_DETECT_STAT_SESSEND.
  789. //! @brief Get value of USB_ANALOG_USB2_VBUS_DETECT_STAT_SESSEND from a register value.
  790. #define BG_USB_ANALOG_USB2_VBUS_DETECT_STAT_SESSEND(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB2_VBUS_DETECT_STAT_SESSEND) >> BP_USB_ANALOG_USB2_VBUS_DETECT_STAT_SESSEND)
  791. /* --- Register HW_USB_ANALOG_USB2_VBUS_DETECT_STAT, field BVALID[1] (RO)
  792. *
  793. * Indicates VBus is valid for a B-peripheral. This bit is a read only version of the state of the
  794. * analog signal. It can not be overritten by software.
  795. */
  796. #define BP_USB_ANALOG_USB2_VBUS_DETECT_STAT_BVALID (1) //!< Bit position for USB_ANALOG_USB2_VBUS_DETECT_STAT_BVALID.
  797. #define BM_USB_ANALOG_USB2_VBUS_DETECT_STAT_BVALID (0x00000002) //!< Bit mask for USB_ANALOG_USB2_VBUS_DETECT_STAT_BVALID.
  798. //! @brief Get value of USB_ANALOG_USB2_VBUS_DETECT_STAT_BVALID from a register value.
  799. #define BG_USB_ANALOG_USB2_VBUS_DETECT_STAT_BVALID(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB2_VBUS_DETECT_STAT_BVALID) >> BP_USB_ANALOG_USB2_VBUS_DETECT_STAT_BVALID)
  800. /* --- Register HW_USB_ANALOG_USB2_VBUS_DETECT_STAT, field AVALID[2] (RO)
  801. *
  802. * Indicates VBus is valid for a A-peripheral. This bit is a read only version of the state of the
  803. * analog signal. It can not be overritten by software.
  804. */
  805. #define BP_USB_ANALOG_USB2_VBUS_DETECT_STAT_AVALID (2) //!< Bit position for USB_ANALOG_USB2_VBUS_DETECT_STAT_AVALID.
  806. #define BM_USB_ANALOG_USB2_VBUS_DETECT_STAT_AVALID (0x00000004) //!< Bit mask for USB_ANALOG_USB2_VBUS_DETECT_STAT_AVALID.
  807. //! @brief Get value of USB_ANALOG_USB2_VBUS_DETECT_STAT_AVALID from a register value.
  808. #define BG_USB_ANALOG_USB2_VBUS_DETECT_STAT_AVALID(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB2_VBUS_DETECT_STAT_AVALID) >> BP_USB_ANALOG_USB2_VBUS_DETECT_STAT_AVALID)
  809. /* --- Register HW_USB_ANALOG_USB2_VBUS_DETECT_STAT, field VBUS_VALID[3] (RO)
  810. *
  811. * VBus valid for USB OTG. This bit is a read only version of the state of the analog signal. It can
  812. * not be overwritten by software.
  813. */
  814. #define BP_USB_ANALOG_USB2_VBUS_DETECT_STAT_VBUS_VALID (3) //!< Bit position for USB_ANALOG_USB2_VBUS_DETECT_STAT_VBUS_VALID.
  815. #define BM_USB_ANALOG_USB2_VBUS_DETECT_STAT_VBUS_VALID (0x00000008) //!< Bit mask for USB_ANALOG_USB2_VBUS_DETECT_STAT_VBUS_VALID.
  816. //! @brief Get value of USB_ANALOG_USB2_VBUS_DETECT_STAT_VBUS_VALID from a register value.
  817. #define BG_USB_ANALOG_USB2_VBUS_DETECT_STAT_VBUS_VALID(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB2_VBUS_DETECT_STAT_VBUS_VALID) >> BP_USB_ANALOG_USB2_VBUS_DETECT_STAT_VBUS_VALID)
  818. //-------------------------------------------------------------------------------------------
  819. // HW_USB_ANALOG_USB2_CHRG_DETECT_STAT - USB Charger Detect Status Register
  820. //-------------------------------------------------------------------------------------------
  821. #ifndef __LANGUAGE_ASM__
  822. /*!
  823. * @brief HW_USB_ANALOG_USB2_CHRG_DETECT_STAT - USB Charger Detect Status Register (RO)
  824. *
  825. * Reset value: 0x00000000
  826. *
  827. * This register defines fields for USB charger detect status.
  828. */
  829. typedef union _hw_usb_analog_usb2_chrg_detect_stat
  830. {
  831. reg32_t U;
  832. struct _hw_usb_analog_usb2_chrg_detect_stat_bitfields
  833. {
  834. unsigned PLUG_CONTACT : 1; //!< [0] State of the USB plug contact detector.
  835. unsigned CHRG_DETECTED : 1; //!< [1] State of charger detection.
  836. unsigned DM_STATE : 1; //!< [2] DM line state output of the charger detector.
  837. unsigned DP_STATE : 1; //!< [3] DP line state output of the charger detector.
  838. unsigned RESERVED0 : 28; //!< [31:4] Reserved.
  839. } B;
  840. } hw_usb_analog_usb2_chrg_detect_stat_t;
  841. #endif
  842. /*
  843. * constants & macros for entire USB_ANALOG_USB2_CHRG_DETECT_STAT register
  844. */
  845. #define HW_USB_ANALOG_USB2_CHRG_DETECT_STAT_ADDR (REGS_USB_ANALOG_BASE + 0x230)
  846. #ifndef __LANGUAGE_ASM__
  847. #define HW_USB_ANALOG_USB2_CHRG_DETECT_STAT (*(volatile hw_usb_analog_usb2_chrg_detect_stat_t *) HW_USB_ANALOG_USB2_CHRG_DETECT_STAT_ADDR)
  848. #define HW_USB_ANALOG_USB2_CHRG_DETECT_STAT_RD() (HW_USB_ANALOG_USB2_CHRG_DETECT_STAT.U)
  849. #endif
  850. /*
  851. * constants & macros for individual USB_ANALOG_USB2_CHRG_DETECT_STAT bitfields
  852. */
  853. /* --- Register HW_USB_ANALOG_USB2_CHRG_DETECT_STAT, field PLUG_CONTACT[0] (RO)
  854. *
  855. * State of the USB plug contact detector.
  856. *
  857. * Values:
  858. * NO_CONTACT = 0 - The USB plug has not made contact.
  859. * GOOD_CONTACT = 1 - The USB plug has made good contact.
  860. */
  861. #define BP_USB_ANALOG_USB2_CHRG_DETECT_STAT_PLUG_CONTACT (0) //!< Bit position for USB_ANALOG_USB2_CHRG_DETECT_STAT_PLUG_CONTACT.
  862. #define BM_USB_ANALOG_USB2_CHRG_DETECT_STAT_PLUG_CONTACT (0x00000001) //!< Bit mask for USB_ANALOG_USB2_CHRG_DETECT_STAT_PLUG_CONTACT.
  863. //! @brief Get value of USB_ANALOG_USB2_CHRG_DETECT_STAT_PLUG_CONTACT from a register value.
  864. #define BG_USB_ANALOG_USB2_CHRG_DETECT_STAT_PLUG_CONTACT(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB2_CHRG_DETECT_STAT_PLUG_CONTACT) >> BP_USB_ANALOG_USB2_CHRG_DETECT_STAT_PLUG_CONTACT)
  865. #define BV_USB_ANALOG_USB2_CHRG_DETECT_STAT_PLUG_CONTACT__NO_CONTACT (0x0) //!< The USB plug has not made contact.
  866. #define BV_USB_ANALOG_USB2_CHRG_DETECT_STAT_PLUG_CONTACT__GOOD_CONTACT (0x1) //!< The USB plug has made good contact.
  867. /* --- Register HW_USB_ANALOG_USB2_CHRG_DETECT_STAT, field CHRG_DETECTED[1] (RO)
  868. *
  869. * State of charger detection. This bit is a read only version of the state of the analog signal.
  870. *
  871. * Values:
  872. * CHARGER_NOT_PRESENT = 0 - The USB port is not connected to a charger.
  873. * CHARGER_PRESENT = 1 - A charger (either a dedicated charger or a host charger) is connected to the USB port.
  874. */
  875. #define BP_USB_ANALOG_USB2_CHRG_DETECT_STAT_CHRG_DETECTED (1) //!< Bit position for USB_ANALOG_USB2_CHRG_DETECT_STAT_CHRG_DETECTED.
  876. #define BM_USB_ANALOG_USB2_CHRG_DETECT_STAT_CHRG_DETECTED (0x00000002) //!< Bit mask for USB_ANALOG_USB2_CHRG_DETECT_STAT_CHRG_DETECTED.
  877. //! @brief Get value of USB_ANALOG_USB2_CHRG_DETECT_STAT_CHRG_DETECTED from a register value.
  878. #define BG_USB_ANALOG_USB2_CHRG_DETECT_STAT_CHRG_DETECTED(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB2_CHRG_DETECT_STAT_CHRG_DETECTED) >> BP_USB_ANALOG_USB2_CHRG_DETECT_STAT_CHRG_DETECTED)
  879. #define BV_USB_ANALOG_USB2_CHRG_DETECT_STAT_CHRG_DETECTED__CHARGER_NOT_PRESENT (0x0) //!< The USB port is not connected to a charger.
  880. #define BV_USB_ANALOG_USB2_CHRG_DETECT_STAT_CHRG_DETECTED__CHARGER_PRESENT (0x1) //!< A charger (either a dedicated charger or a host charger) is connected to the USB port.
  881. /* --- Register HW_USB_ANALOG_USB2_CHRG_DETECT_STAT, field DM_STATE[2] (RO)
  882. *
  883. * DM line state output of the charger detector.
  884. */
  885. #define BP_USB_ANALOG_USB2_CHRG_DETECT_STAT_DM_STATE (2) //!< Bit position for USB_ANALOG_USB2_CHRG_DETECT_STAT_DM_STATE.
  886. #define BM_USB_ANALOG_USB2_CHRG_DETECT_STAT_DM_STATE (0x00000004) //!< Bit mask for USB_ANALOG_USB2_CHRG_DETECT_STAT_DM_STATE.
  887. //! @brief Get value of USB_ANALOG_USB2_CHRG_DETECT_STAT_DM_STATE from a register value.
  888. #define BG_USB_ANALOG_USB2_CHRG_DETECT_STAT_DM_STATE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB2_CHRG_DETECT_STAT_DM_STATE) >> BP_USB_ANALOG_USB2_CHRG_DETECT_STAT_DM_STATE)
  889. /* --- Register HW_USB_ANALOG_USB2_CHRG_DETECT_STAT, field DP_STATE[3] (RO)
  890. *
  891. * DP line state output of the charger detector.
  892. */
  893. #define BP_USB_ANALOG_USB2_CHRG_DETECT_STAT_DP_STATE (3) //!< Bit position for USB_ANALOG_USB2_CHRG_DETECT_STAT_DP_STATE.
  894. #define BM_USB_ANALOG_USB2_CHRG_DETECT_STAT_DP_STATE (0x00000008) //!< Bit mask for USB_ANALOG_USB2_CHRG_DETECT_STAT_DP_STATE.
  895. //! @brief Get value of USB_ANALOG_USB2_CHRG_DETECT_STAT_DP_STATE from a register value.
  896. #define BG_USB_ANALOG_USB2_CHRG_DETECT_STAT_DP_STATE(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB2_CHRG_DETECT_STAT_DP_STATE) >> BP_USB_ANALOG_USB2_CHRG_DETECT_STAT_DP_STATE)
  897. //-------------------------------------------------------------------------------------------
  898. // HW_USB_ANALOG_USB2_MISC - USB Misc Register
  899. //-------------------------------------------------------------------------------------------
  900. #ifndef __LANGUAGE_ASM__
  901. /*!
  902. * @brief HW_USB_ANALOG_USB2_MISC - USB Misc Register (RW)
  903. *
  904. * Reset value: 0x00000002
  905. *
  906. * This register defines controls for USB.
  907. */
  908. typedef union _hw_usb_analog_usb2_misc
  909. {
  910. reg32_t U;
  911. struct _hw_usb_analog_usb2_misc_bitfields
  912. {
  913. unsigned HS_USE_EXTERNAL_R : 1; //!< [0] Use external resistor to generate the current bias for the high speed transmitter.
  914. unsigned EN_DEGLITCH : 1; //!< [1] Enable the deglitching circuit of the USB PLL output.
  915. unsigned RESERVED0 : 28; //!< [29:2] Reserved.
  916. unsigned EN_CLK_UTMI : 1; //!< [30] Enables the clk to the UTMI block.
  917. unsigned RESERVED1 : 1; //!< [31] Reserved.
  918. } B;
  919. } hw_usb_analog_usb2_misc_t;
  920. #endif
  921. /*
  922. * constants & macros for entire USB_ANALOG_USB2_MISC register
  923. */
  924. #define HW_USB_ANALOG_USB2_MISC_ADDR (REGS_USB_ANALOG_BASE + 0x250)
  925. #define HW_USB_ANALOG_USB2_MISC_SET_ADDR (HW_USB_ANALOG_USB2_MISC_ADDR + 0x4)
  926. #define HW_USB_ANALOG_USB2_MISC_CLR_ADDR (HW_USB_ANALOG_USB2_MISC_ADDR + 0x8)
  927. #define HW_USB_ANALOG_USB2_MISC_TOG_ADDR (HW_USB_ANALOG_USB2_MISC_ADDR + 0xC)
  928. #ifndef __LANGUAGE_ASM__
  929. #define HW_USB_ANALOG_USB2_MISC (*(volatile hw_usb_analog_usb2_misc_t *) HW_USB_ANALOG_USB2_MISC_ADDR)
  930. #define HW_USB_ANALOG_USB2_MISC_RD() (HW_USB_ANALOG_USB2_MISC.U)
  931. #define HW_USB_ANALOG_USB2_MISC_WR(v) (HW_USB_ANALOG_USB2_MISC.U = (v))
  932. #define HW_USB_ANALOG_USB2_MISC_SET(v) ((*(volatile reg32_t *) HW_USB_ANALOG_USB2_MISC_SET_ADDR) = (v))
  933. #define HW_USB_ANALOG_USB2_MISC_CLR(v) ((*(volatile reg32_t *) HW_USB_ANALOG_USB2_MISC_CLR_ADDR) = (v))
  934. #define HW_USB_ANALOG_USB2_MISC_TOG(v) ((*(volatile reg32_t *) HW_USB_ANALOG_USB2_MISC_TOG_ADDR) = (v))
  935. #endif
  936. /*
  937. * constants & macros for individual USB_ANALOG_USB2_MISC bitfields
  938. */
  939. /* --- Register HW_USB_ANALOG_USB2_MISC, field HS_USE_EXTERNAL_R[0] (RW)
  940. *
  941. * Use external resistor to generate the current bias for the high speed transmitter. This bit
  942. * should not be changed unless recommended by Freescale.
  943. */
  944. #define BP_USB_ANALOG_USB2_MISC_HS_USE_EXTERNAL_R (0) //!< Bit position for USB_ANALOG_USB2_MISC_HS_USE_EXTERNAL_R.
  945. #define BM_USB_ANALOG_USB2_MISC_HS_USE_EXTERNAL_R (0x00000001) //!< Bit mask for USB_ANALOG_USB2_MISC_HS_USE_EXTERNAL_R.
  946. //! @brief Get value of USB_ANALOG_USB2_MISC_HS_USE_EXTERNAL_R from a register value.
  947. #define BG_USB_ANALOG_USB2_MISC_HS_USE_EXTERNAL_R(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB2_MISC_HS_USE_EXTERNAL_R) >> BP_USB_ANALOG_USB2_MISC_HS_USE_EXTERNAL_R)
  948. //! @brief Format value for bitfield USB_ANALOG_USB2_MISC_HS_USE_EXTERNAL_R.
  949. #define BF_USB_ANALOG_USB2_MISC_HS_USE_EXTERNAL_R(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_USB_ANALOG_USB2_MISC_HS_USE_EXTERNAL_R) & BM_USB_ANALOG_USB2_MISC_HS_USE_EXTERNAL_R)
  950. #ifndef __LANGUAGE_ASM__
  951. //! @brief Set the HS_USE_EXTERNAL_R field to a new value.
  952. #define BW_USB_ANALOG_USB2_MISC_HS_USE_EXTERNAL_R(v) BF_CS1(USB_ANALOG_USB2_MISC, HS_USE_EXTERNAL_R, v)
  953. #endif
  954. /* --- Register HW_USB_ANALOG_USB2_MISC, field EN_DEGLITCH[1] (RW)
  955. *
  956. * Enable the deglitching circuit of the USB PLL output.
  957. */
  958. #define BP_USB_ANALOG_USB2_MISC_EN_DEGLITCH (1) //!< Bit position for USB_ANALOG_USB2_MISC_EN_DEGLITCH.
  959. #define BM_USB_ANALOG_USB2_MISC_EN_DEGLITCH (0x00000002) //!< Bit mask for USB_ANALOG_USB2_MISC_EN_DEGLITCH.
  960. //! @brief Get value of USB_ANALOG_USB2_MISC_EN_DEGLITCH from a register value.
  961. #define BG_USB_ANALOG_USB2_MISC_EN_DEGLITCH(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB2_MISC_EN_DEGLITCH) >> BP_USB_ANALOG_USB2_MISC_EN_DEGLITCH)
  962. //! @brief Format value for bitfield USB_ANALOG_USB2_MISC_EN_DEGLITCH.
  963. #define BF_USB_ANALOG_USB2_MISC_EN_DEGLITCH(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_USB_ANALOG_USB2_MISC_EN_DEGLITCH) & BM_USB_ANALOG_USB2_MISC_EN_DEGLITCH)
  964. #ifndef __LANGUAGE_ASM__
  965. //! @brief Set the EN_DEGLITCH field to a new value.
  966. #define BW_USB_ANALOG_USB2_MISC_EN_DEGLITCH(v) BF_CS1(USB_ANALOG_USB2_MISC, EN_DEGLITCH, v)
  967. #endif
  968. /* --- Register HW_USB_ANALOG_USB2_MISC, field EN_CLK_UTMI[30] (RW)
  969. *
  970. * Enables the clk to the UTMI block.
  971. */
  972. #define BP_USB_ANALOG_USB2_MISC_EN_CLK_UTMI (30) //!< Bit position for USB_ANALOG_USB2_MISC_EN_CLK_UTMI.
  973. #define BM_USB_ANALOG_USB2_MISC_EN_CLK_UTMI (0x40000000) //!< Bit mask for USB_ANALOG_USB2_MISC_EN_CLK_UTMI.
  974. //! @brief Get value of USB_ANALOG_USB2_MISC_EN_CLK_UTMI from a register value.
  975. #define BG_USB_ANALOG_USB2_MISC_EN_CLK_UTMI(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_USB2_MISC_EN_CLK_UTMI) >> BP_USB_ANALOG_USB2_MISC_EN_CLK_UTMI)
  976. //! @brief Format value for bitfield USB_ANALOG_USB2_MISC_EN_CLK_UTMI.
  977. #define BF_USB_ANALOG_USB2_MISC_EN_CLK_UTMI(v) ((__REG_VALUE_TYPE((v), reg32_t) << BP_USB_ANALOG_USB2_MISC_EN_CLK_UTMI) & BM_USB_ANALOG_USB2_MISC_EN_CLK_UTMI)
  978. #ifndef __LANGUAGE_ASM__
  979. //! @brief Set the EN_CLK_UTMI field to a new value.
  980. #define BW_USB_ANALOG_USB2_MISC_EN_CLK_UTMI(v) BF_CS1(USB_ANALOG_USB2_MISC, EN_CLK_UTMI, v)
  981. #endif
  982. //-------------------------------------------------------------------------------------------
  983. // HW_USB_ANALOG_DIGPROG - Chip Silicon Version
  984. //-------------------------------------------------------------------------------------------
  985. #ifndef __LANGUAGE_ASM__
  986. /*!
  987. * @brief HW_USB_ANALOG_DIGPROG - Chip Silicon Version (RO)
  988. *
  989. * Reset value: 0x00000000
  990. *
  991. * The DIGPROG register returns the digital program ID for the silicon.
  992. */
  993. typedef union _hw_usb_analog_digprog
  994. {
  995. reg32_t U;
  996. struct _hw_usb_analog_digprog_bitfields
  997. {
  998. unsigned MINOR : 8; //!< [7:0] Fixed read-only value reflecting the MINOR field of the RTL version.
  999. unsigned MAJOR : 16; //!< [23:8] Fixed read-only value reflecting the MAJOR field of the RTL version.
  1000. unsigned RESERVED0 : 8; //!< [31:24] Reserved.
  1001. } B;
  1002. } hw_usb_analog_digprog_t;
  1003. #endif
  1004. /*
  1005. * constants & macros for entire USB_ANALOG_DIGPROG register
  1006. */
  1007. #define HW_USB_ANALOG_DIGPROG_ADDR (REGS_USB_ANALOG_BASE + 0x260)
  1008. #ifndef __LANGUAGE_ASM__
  1009. #define HW_USB_ANALOG_DIGPROG (*(volatile hw_usb_analog_digprog_t *) HW_USB_ANALOG_DIGPROG_ADDR)
  1010. #define HW_USB_ANALOG_DIGPROG_RD() (HW_USB_ANALOG_DIGPROG.U)
  1011. #endif
  1012. /*
  1013. * constants & macros for individual USB_ANALOG_DIGPROG bitfields
  1014. */
  1015. /* --- Register HW_USB_ANALOG_DIGPROG, field MINOR[7:0] (RO)
  1016. *
  1017. * Fixed read-only value reflecting the MINOR field of the RTL version.
  1018. */
  1019. #define BP_USB_ANALOG_DIGPROG_MINOR (0) //!< Bit position for USB_ANALOG_DIGPROG_MINOR.
  1020. #define BM_USB_ANALOG_DIGPROG_MINOR (0x000000ff) //!< Bit mask for USB_ANALOG_DIGPROG_MINOR.
  1021. //! @brief Get value of USB_ANALOG_DIGPROG_MINOR from a register value.
  1022. #define BG_USB_ANALOG_DIGPROG_MINOR(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_DIGPROG_MINOR) >> BP_USB_ANALOG_DIGPROG_MINOR)
  1023. /* --- Register HW_USB_ANALOG_DIGPROG, field MAJOR[23:8] (RO)
  1024. *
  1025. * Fixed read-only value reflecting the MAJOR field of the RTL version.
  1026. */
  1027. #define BP_USB_ANALOG_DIGPROG_MAJOR (8) //!< Bit position for USB_ANALOG_DIGPROG_MAJOR.
  1028. #define BM_USB_ANALOG_DIGPROG_MAJOR (0x00ffff00) //!< Bit mask for USB_ANALOG_DIGPROG_MAJOR.
  1029. //! @brief Get value of USB_ANALOG_DIGPROG_MAJOR from a register value.
  1030. #define BG_USB_ANALOG_DIGPROG_MAJOR(r) ((__REG_VALUE_TYPE((r), reg32_t) & BM_USB_ANALOG_DIGPROG_MAJOR) >> BP_USB_ANALOG_DIGPROG_MAJOR)
  1031. /*!
  1032. * @brief All USB_ANALOG module registers.
  1033. */
  1034. #ifndef __LANGUAGE_ASM__
  1035. #pragma pack(1)
  1036. typedef struct _hw_usb_analog
  1037. {
  1038. reg32_t _reserved0[104];
  1039. volatile hw_usb_analog_usb1_vbus_detect_t USB1_VBUS_DETECT; //!< USB VBUS Detect Register
  1040. volatile reg32_t USB1_VBUS_DETECT_SET; //!< USB VBUS Detect Register Set
  1041. volatile reg32_t USB1_VBUS_DETECT_CLR; //!< USB VBUS Detect Register Clear
  1042. volatile reg32_t USB1_VBUS_DETECT_TOG; //!< USB VBUS Detect Register Toggle
  1043. volatile hw_usb_analog_usb1_chrg_detect_t USB1_CHRG_DETECT; //!< USB Charger Detect Register
  1044. volatile reg32_t USB1_CHRG_DETECT_SET; //!< USB Charger Detect Register Set
  1045. volatile reg32_t USB1_CHRG_DETECT_CLR; //!< USB Charger Detect Register Clear
  1046. volatile reg32_t USB1_CHRG_DETECT_TOG; //!< USB Charger Detect Register Toggle
  1047. volatile hw_usb_analog_usb1_vbus_detect_stat_t USB1_VBUS_DETECT_STAT; //!< USB VBUS Detect Status Register
  1048. reg32_t _reserved1[3];
  1049. volatile hw_usb_analog_usb1_chrg_detect_stat_t USB1_CHRG_DETECT_STAT; //!< USB Charger Detect Status Register
  1050. reg32_t _reserved2[7];
  1051. volatile hw_usb_analog_usb1_misc_t USB1_MISC; //!< USB Misc Register
  1052. volatile reg32_t USB1_MISC_SET; //!< USB Misc Register Set
  1053. volatile reg32_t USB1_MISC_CLR; //!< USB Misc Register Clear
  1054. volatile reg32_t USB1_MISC_TOG; //!< USB Misc Register Toggle
  1055. volatile hw_usb_analog_usb2_vbus_detect_t USB2_VBUS_DETECT; //!< USB VBUS Detect Register
  1056. volatile reg32_t USB2_VBUS_DETECT_SET; //!< USB VBUS Detect Register Set
  1057. volatile reg32_t USB2_VBUS_DETECT_CLR; //!< USB VBUS Detect Register Clear
  1058. volatile reg32_t USB2_VBUS_DETECT_TOG; //!< USB VBUS Detect Register Toggle
  1059. volatile hw_usb_analog_usb2_chrg_detect_t USB2_CHRG_DETECT; //!< USB Charger Detect Register
  1060. volatile reg32_t USB2_CHRG_DETECT_SET; //!< USB Charger Detect Register Set
  1061. volatile reg32_t USB2_CHRG_DETECT_CLR; //!< USB Charger Detect Register Clear
  1062. volatile reg32_t USB2_CHRG_DETECT_TOG; //!< USB Charger Detect Register Toggle
  1063. volatile hw_usb_analog_usb2_vbus_detect_stat_t USB2_VBUS_DETECT_STAT; //!< USB VBUS Detect Status Register
  1064. reg32_t _reserved3[3];
  1065. volatile hw_usb_analog_usb2_chrg_detect_stat_t USB2_CHRG_DETECT_STAT; //!< USB Charger Detect Status Register
  1066. reg32_t _reserved4[7];
  1067. volatile hw_usb_analog_usb2_misc_t USB2_MISC; //!< USB Misc Register
  1068. volatile reg32_t USB2_MISC_SET; //!< USB Misc Register Set
  1069. volatile reg32_t USB2_MISC_CLR; //!< USB Misc Register Clear
  1070. volatile reg32_t USB2_MISC_TOG; //!< USB Misc Register Toggle
  1071. volatile hw_usb_analog_digprog_t DIGPROG; //!< Chip Silicon Version
  1072. } hw_usb_analog_t;
  1073. #pragma pack()
  1074. //! @brief Macro to access all USB_ANALOG registers.
  1075. //! @return Reference (not a pointer) to the registers struct. To get a pointer to the struct,
  1076. //! use the '&' operator, like <code>&HW_USB_ANALOG(0)</code>.
  1077. #define HW_USB_ANALOG (*(volatile hw_usb_analog_t *) REGS_USB_ANALOG_BASE)
  1078. #endif
  1079. #endif // __HW_USB_ANALOG_REGISTERS_H__