1 /*
2  * Copyright (c) 2024 Microchip
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 
7 #ifndef _MICROCHIP_PIC32CXSG_ADC_COMPONENT_FIXUP_H_
8 #define _MICROCHIP_PIC32CXSG_ADC_COMPONENT_FIXUP_H_
9 
10 /* -------- ADC_CTRLA : (ADC Offset: 0x00) (R/W 16) Control A -------- */
11 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
12 typedef union {
13   struct {
14     uint16_t SWRST:1;          /*!< bit:      0  Software Reset                     */
15     uint16_t ENABLE:1;         /*!< bit:      1  Enable                             */
16     uint16_t :1;               /*!< bit:      2  Reserved                           */
17     uint16_t DUALSEL:2;        /*!< bit:  3.. 4  Dual Mode Trigger Selection        */
18     uint16_t SLAVEEN:1;        /*!< bit:      5  Slave Enable                       */
19     uint16_t RUNSTDBY:1;       /*!< bit:      6  Run in Standby                     */
20     uint16_t ONDEMAND:1;       /*!< bit:      7  On Demand Control                  */
21     uint16_t PRESCALER:3;      /*!< bit:  8..10  Prescaler Configuration            */
22     uint16_t :4;               /*!< bit: 11..14  Reserved                           */
23     uint16_t R2R:1;            /*!< bit:     15  Rail to Rail Operation Enable      */
24   } bit;                       /*!< Structure used for bit  access                  */
25   uint16_t reg;                /*!< Type      used for register access              */
26 } ADC_CTRLA_Type;
27 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
28 
29 /* -------- ADC_EVCTRL : (ADC Offset: 0x02) (R/W 8) Event Control -------- */
30 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
31 typedef union {
32   struct {
33     uint8_t  FLUSHEI:1;        /*!< bit:      0  Flush Event Input Enable           */
34     uint8_t  STARTEI:1;        /*!< bit:      1  Start Conversion Event Input Enable */
35     uint8_t  FLUSHINV:1;       /*!< bit:      2  Flush Event Invert Enable          */
36     uint8_t  STARTINV:1;       /*!< bit:      3  Start Conversion Event Invert Enable */
37     uint8_t  RESRDYEO:1;       /*!< bit:      4  Result Ready Event Out             */
38     uint8_t  WINMONEO:1;       /*!< bit:      5  Window Monitor Event Out           */
39     uint8_t  :2;               /*!< bit:  6.. 7  Reserved                           */
40   } bit;                       /*!< Structure used for bit  access                  */
41   uint8_t reg;                 /*!< Type      used for register access              */
42 } ADC_EVCTRL_Type;
43 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
44 
45 /* -------- ADC_DBGCTRL : (ADC Offset: 0x03) (R/W 8) Debug Control -------- */
46 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
47 typedef union {
48   struct {
49     uint8_t  DBGRUN:1;         /*!< bit:      0  Debug Run                          */
50     uint8_t  :7;               /*!< bit:  1.. 7  Reserved                           */
51   } bit;                       /*!< Structure used for bit  access                  */
52   uint8_t reg;                 /*!< Type      used for register access              */
53 } ADC_DBGCTRL_Type;
54 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
55 /* -------- ADC_INPUTCTRL : (ADC Offset: 0x04) (R/W 16) Input Control -------- */
56 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
57 typedef union {
58   struct {
59     uint16_t MUXPOS:5;         /*!< bit:  0.. 4  Positive Mux Input Selection       */
60     uint16_t :2;               /*!< bit:  5.. 6  Reserved                           */
61     uint16_t DIFFMODE:1;       /*!< bit:      7  Differential Mode                  */
62     uint16_t MUXNEG:5;         /*!< bit:  8..12  Negative Mux Input Selection       */
63     uint16_t :2;               /*!< bit: 13..14  Reserved                           */
64     uint16_t DSEQSTOP:1;       /*!< bit:     15  Stop DMA Sequencing                */
65   } bit;                       /*!< Structure used for bit  access                  */
66   uint16_t reg;                /*!< Type      used for register access              */
67 } ADC_INPUTCTRL_Type;
68 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
69 
70 /* -------- ADC_CTRLB : (ADC Offset: 0x06) (R/W 16) Control B -------- */
71 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
72 typedef union {
73   struct {
74     uint16_t LEFTADJ:1;        /*!< bit:      0  Left-Adjusted Result               */
75     uint16_t FREERUN:1;        /*!< bit:      1  Free Running Mode                  */
76     uint16_t CORREN:1;         /*!< bit:      2  Digital Correction Logic Enable    */
77     uint16_t RESSEL:2;         /*!< bit:  3.. 4  Conversion Result Resolution       */
78     uint16_t :3;               /*!< bit:  5.. 7  Reserved                           */
79     uint16_t WINMODE:3;        /*!< bit:  8..10  Window Monitor Mode                */
80     uint16_t WINSS:1;          /*!< bit:     11  Window Single Sample               */
81     uint16_t :4;               /*!< bit: 12..15  Reserved                           */
82   } bit;                       /*!< Structure used for bit  access                  */
83   uint16_t reg;                /*!< Type      used for register access              */
84 } ADC_CTRLB_Type;
85 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
86 
87 /* -------- ADC_REFCTRL : (ADC Offset: 0x08) (R/W 8) Reference Control -------- */
88 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
89 typedef union {
90   struct {
91     uint8_t  REFSEL:4;         /*!< bit:  0.. 3  Reference Selection                */
92     uint8_t  :3;               /*!< bit:  4.. 6  Reserved                           */
93     uint8_t  REFCOMP:1;        /*!< bit:      7  Reference Buffer Offset Compensation Enable */
94   } bit;                       /*!< Structure used for bit  access                  */
95   uint8_t reg;                 /*!< Type      used for register access              */
96 } ADC_REFCTRL_Type;
97 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
98 
99 /* -------- ADC_AVGCTRL : (ADC Offset: 0x0A) (R/W 8) Average Control -------- */
100 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
101 typedef union {
102   struct {
103     uint8_t  SAMPLENUM:4;      /*!< bit:  0.. 3  Number of Samples to be Collected  */
104     uint8_t  ADJRES:3;         /*!< bit:  4.. 6  Adjusting Result / Division Coefficient */
105     uint8_t  :1;               /*!< bit:      7  Reserved                           */
106   } bit;                       /*!< Structure used for bit  access                  */
107   uint8_t reg;                 /*!< Type      used for register access              */
108 } ADC_AVGCTRL_Type;
109 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
110 
111 /* -------- ADC_SAMPCTRL : (ADC Offset: 0x0B) (R/W 8) Sample Time Control -------- */
112 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
113 typedef union {
114   struct {
115     uint8_t  SAMPLEN:6;        /*!< bit:  0.. 5  Sampling Time Length               */
116     uint8_t  :1;               /*!< bit:      6  Reserved                           */
117     uint8_t  OFFCOMP:1;        /*!< bit:      7  Comparator Offset Compensation Enable */
118   } bit;                       /*!< Structure used for bit  access                  */
119   uint8_t reg;                 /*!< Type      used for register access              */
120 } ADC_SAMPCTRL_Type;
121 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
122 
123 /* -------- ADC_WINLT : (ADC Offset: 0x0C) (R/W 16) Window Monitor Lower Threshold -------- */
124 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
125 typedef union {
126   struct {
127     uint16_t WINLT:16;         /*!< bit:  0..15  Window Lower Threshold             */
128   } bit;                       /*!< Structure used for bit  access                  */
129   uint16_t reg;                /*!< Type      used for register access              */
130 } ADC_WINLT_Type;
131 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
132 
133 /* -------- ADC_WINUT : (ADC Offset: 0x0E) (R/W 16) Window Monitor Upper Threshold -------- */
134 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
135 typedef union {
136   struct {
137     uint16_t WINUT:16;         /*!< bit:  0..15  Window Upper Threshold             */
138   } bit;                       /*!< Structure used for bit  access                  */
139   uint16_t reg;                /*!< Type      used for register access              */
140 } ADC_WINUT_Type;
141 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
142 /* -------- ADC_GAINCORR : (ADC Offset: 0x10) (R/W 16) Gain Correction -------- */
143 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
144 typedef union {
145   struct {
146     uint16_t GAINCORR:12;      /*!< bit:  0..11  Gain Correction Value              */
147     uint16_t :4;               /*!< bit: 12..15  Reserved                           */
148   } bit;                       /*!< Structure used for bit  access                  */
149   uint16_t reg;                /*!< Type      used for register access              */
150 } ADC_GAINCORR_Type;
151 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
152 /* -------- ADC_OFFSETCORR : (ADC Offset: 0x12) (R/W 16) Offset Correction -------- */
153 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
154 typedef union {
155   struct {
156     uint16_t OFFSETCORR:12;    /*!< bit:  0..11  Offset Correction Value            */
157     uint16_t :4;               /*!< bit: 12..15  Reserved                           */
158   } bit;                       /*!< Structure used for bit  access                  */
159   uint16_t reg;                /*!< Type      used for register access              */
160 } ADC_OFFSETCORR_Type;
161 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
162 
163 /* -------- ADC_SWTRIG : (ADC Offset: 0x14) (R/W 8) Software Trigger -------- */
164 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
165 typedef union {
166   struct {
167     uint8_t  FLUSH:1;          /*!< bit:      0  ADC Conversion Flush               */
168     uint8_t  START:1;          /*!< bit:      1  Start ADC Conversion               */
169     uint8_t  :6;               /*!< bit:  2.. 7  Reserved                           */
170   } bit;                       /*!< Structure used for bit  access                  */
171   uint8_t reg;                 /*!< Type      used for register access              */
172 } ADC_SWTRIG_Type;
173 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
174 
175 /* -------- ADC_INTENCLR : (ADC Offset: 0x2C) (R/W 8) Interrupt Enable Clear -------- */
176 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
177 typedef union {
178   struct {
179     uint8_t  RESRDY:1;         /*!< bit:      0  Result Ready Interrupt Disable     */
180     uint8_t  OVERRUN:1;        /*!< bit:      1  Overrun Interrupt Disable          */
181     uint8_t  WINMON:1;         /*!< bit:      2  Window Monitor Interrupt Disable   */
182     uint8_t  :5;               /*!< bit:  3.. 7  Reserved                           */
183   } bit;                       /*!< Structure used for bit  access                  */
184   uint8_t reg;                 /*!< Type      used for register access              */
185 } ADC_INTENCLR_Type;
186 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
187 
188 /* -------- ADC_INTENSET : (ADC Offset: 0x2D) (R/W 8) Interrupt Enable Set -------- */
189 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
190 typedef union {
191   struct {
192     uint8_t  RESRDY:1;         /*!< bit:      0  Result Ready Interrupt Enable      */
193     uint8_t  OVERRUN:1;        /*!< bit:      1  Overrun Interrupt Enable           */
194     uint8_t  WINMON:1;         /*!< bit:      2  Window Monitor Interrupt Enable    */
195     uint8_t  :5;               /*!< bit:  3.. 7  Reserved                           */
196   } bit;                       /*!< Structure used for bit  access                  */
197   uint8_t reg;                 /*!< Type      used for register access              */
198 } ADC_INTENSET_Type;
199 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
200 
201 /* -------- ADC_INTFLAG : (ADC Offset: 0x2E) (R/W 8) Interrupt Flag Status and Clear -------- */
202 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
203 typedef union { // __I to avoid read-modify-write on write-to-clear register
204   struct {
205     __I uint8_t  RESRDY:1;         /*!< bit:      0  Result Ready Interrupt Flag        */
206     __I uint8_t  OVERRUN:1;        /*!< bit:      1  Overrun Interrupt Flag             */
207     __I uint8_t  WINMON:1;         /*!< bit:      2  Window Monitor Interrupt Flag      */
208     __I uint8_t  :5;               /*!< bit:  3.. 7  Reserved                           */
209   } bit;                       /*!< Structure used for bit  access                  */
210   uint8_t reg;                 /*!< Type      used for register access              */
211 } ADC_INTFLAG_Type;
212 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
213 
214 /* -------- ADC_STATUS : (ADC Offset: 0x2F) ( R/ 8) Status -------- */
215 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
216 typedef union {
217   struct {
218     uint8_t  ADCBUSY:1;        /*!< bit:      0  ADC Busy Status                    */
219     uint8_t  :1;               /*!< bit:      1  Reserved                           */
220     uint8_t  WCC:6;            /*!< bit:  2.. 7  Window Comparator Counter          */
221   } bit;                       /*!< Structure used for bit  access                  */
222   uint8_t reg;                 /*!< Type      used for register access              */
223 } ADC_STATUS_Type;
224 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
225 
226 /* -------- ADC_SYNCBUSY : (ADC Offset: 0x30) ( R/ 32) Synchronization Busy -------- */
227 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
228 typedef union {
229   struct {
230     uint32_t SWRST:1;          /*!< bit:      0  SWRST Synchronization Busy         */
231     uint32_t ENABLE:1;         /*!< bit:      1  ENABLE Synchronization Busy        */
232     uint32_t INPUTCTRL:1;      /*!< bit:      2  Input Control Synchronization Busy */
233     uint32_t CTRLB:1;          /*!< bit:      3  Control B Synchronization Busy     */
234     uint32_t REFCTRL:1;        /*!< bit:      4  Reference Control Synchronization Busy */
235     uint32_t AVGCTRL:1;        /*!< bit:      5  Average Control Synchronization Busy */
236     uint32_t SAMPCTRL:1;       /*!< bit:      6  Sampling Time Control Synchronization Busy */
237     uint32_t WINLT:1;          /*!< bit:      7  Window Monitor Lower Threshold Synchronization Busy */
238     uint32_t WINUT:1;          /*!< bit:      8  Window Monitor Upper Threshold Synchronization Busy */
239     uint32_t GAINCORR:1;       /*!< bit:      9  Gain Correction Synchronization Busy */
240     uint32_t OFFSETCORR:1;     /*!< bit:     10  Offset Correction Synchronization Busy */
241     uint32_t SWTRIG:1;         /*!< bit:     11  Software Trigger Synchronization Busy */
242     uint32_t :20;              /*!< bit: 12..31  Reserved                           */
243   } bit;                       /*!< Structure used for bit  access                  */
244   uint32_t reg;                /*!< Type      used for register access              */
245 } ADC_SYNCBUSY_Type;
246 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
247 
248 /* -------- ADC_DSEQDATA : (ADC Offset: 0x34) ( /W 32) DMA Sequencial Data -------- */
249 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
250 typedef union {
251   struct {
252     uint32_t DATA:32;          /*!< bit:  0..31  DMA Sequential Data                */
253   } bit;                       /*!< Structure used for bit  access                  */
254   uint32_t reg;                /*!< Type      used for register access              */
255 } ADC_DSEQDATA_Type;
256 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
257 
258 /* -------- ADC_DSEQCTRL : (ADC Offset: 0x38) (R/W 32) DMA Sequential Control -------- */
259 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
260 typedef union {
261   struct {
262     uint32_t INPUTCTRL:1;      /*!< bit:      0  Input Control                      */
263     uint32_t CTRLB:1;          /*!< bit:      1  Control B                          */
264     uint32_t REFCTRL:1;        /*!< bit:      2  Reference Control                  */
265     uint32_t AVGCTRL:1;        /*!< bit:      3  Average Control                    */
266     uint32_t SAMPCTRL:1;       /*!< bit:      4  Sampling Time Control              */
267     uint32_t WINLT:1;          /*!< bit:      5  Window Monitor Lower Threshold     */
268     uint32_t WINUT:1;          /*!< bit:      6  Window Monitor Upper Threshold     */
269     uint32_t GAINCORR:1;       /*!< bit:      7  Gain Correction                    */
270     uint32_t OFFSETCORR:1;     /*!< bit:      8  Offset Correction                  */
271     uint32_t :22;              /*!< bit:  9..30  Reserved                           */
272     uint32_t AUTOSTART:1;      /*!< bit:     31  ADC Auto-Start Conversion          */
273   } bit;                       /*!< Structure used for bit  access                  */
274   uint32_t reg;                /*!< Type      used for register access              */
275 } ADC_DSEQCTRL_Type;
276 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
277 
278 /* -------- ADC_DSEQSTAT : (ADC Offset: 0x3C) ( R/ 32) DMA Sequencial Status -------- */
279 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
280 typedef union {
281   struct {
282     uint32_t INPUTCTRL:1;      /*!< bit:      0  Input Control                      */
283     uint32_t CTRLB:1;          /*!< bit:      1  Control B                          */
284     uint32_t REFCTRL:1;        /*!< bit:      2  Reference Control                  */
285     uint32_t AVGCTRL:1;        /*!< bit:      3  Average Control                    */
286     uint32_t SAMPCTRL:1;       /*!< bit:      4  Sampling Time Control              */
287     uint32_t WINLT:1;          /*!< bit:      5  Window Monitor Lower Threshold     */
288     uint32_t WINUT:1;          /*!< bit:      6  Window Monitor Upper Threshold     */
289     uint32_t GAINCORR:1;       /*!< bit:      7  Gain Correction                    */
290     uint32_t OFFSETCORR:1;     /*!< bit:      8  Offset Correction                  */
291     uint32_t :22;              /*!< bit:  9..30  Reserved                           */
292     uint32_t BUSY:1;           /*!< bit:     31  DMA Sequencing Busy                */
293   } bit;                       /*!< Structure used for bit  access                  */
294   uint32_t reg;                /*!< Type      used for register access              */
295 } ADC_DSEQSTAT_Type;
296 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
297 
298 /* -------- ADC_RESULT : (ADC Offset: 0x40) ( R/ 16) Result Conversion Value -------- */
299 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
300 typedef union {
301   struct {
302     uint16_t RESULT:16;        /*!< bit:  0..15  Result Conversion Value            */
303   } bit;                       /*!< Structure used for bit  access                  */
304   uint16_t reg;                /*!< Type      used for register access              */
305 } ADC_RESULT_Type;
306 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
307 
308 /* -------- ADC_RESS : (ADC Offset: 0x44) ( R/ 16) Last Sample Result -------- */
309 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
310 typedef union {
311   struct {
312     uint16_t RESS:16;          /*!< bit:  0..15  Last ADC conversion result         */
313   } bit;                       /*!< Structure used for bit  access                  */
314   uint16_t reg;                /*!< Type      used for register access              */
315 } ADC_RESS_Type;
316 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
317 
318 /* -------- ADC_CALIB : (ADC Offset: 0x48) (R/W 16) Calibration -------- */
319 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
320 typedef union {
321   struct {
322     uint16_t BIASCOMP:3;       /*!< bit:  0.. 2  Bias Comparator Scaling            */
323     uint16_t :1;               /*!< bit:      3  Reserved                           */
324     uint16_t BIASR2R:3;        /*!< bit:  4.. 6  Bias R2R Ampli scaling             */
325     uint16_t :1;               /*!< bit:      7  Reserved                           */
326     uint16_t BIASREFBUF:3;     /*!< bit:  8..10  Bias  Reference Buffer Scaling     */
327     uint16_t :5;               /*!< bit: 11..15  Reserved                           */
328   } bit;                       /*!< Structure used for bit  access                  */
329   uint16_t reg;                /*!< Type      used for register access              */
330 } ADC_CALIB_Type;
331 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
332 
333 /** \brief ADC hardware registers */
334 #if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
335 typedef struct {
336   __IO ADC_CTRLA_Type            CTRLA;       /**< \brief Offset: 0x00 (R/W 16) Control A */
337   __IO ADC_EVCTRL_Type           EVCTRL;      /**< \brief Offset: 0x02 (R/W  8) Event Control */
338   __IO ADC_DBGCTRL_Type          DBGCTRL;     /**< \brief Offset: 0x03 (R/W  8) Debug Control */
339   __IO ADC_INPUTCTRL_Type        INPUTCTRL;   /**< \brief Offset: 0x04 (R/W 16) Input Control */
340   __IO ADC_CTRLB_Type            CTRLB;       /**< \brief Offset: 0x06 (R/W 16) Control B */
341   __IO ADC_REFCTRL_Type          REFCTRL;     /**< \brief Offset: 0x08 (R/W  8) Reference Control */
342        RoReg8                    Reserved1[0x1];
343   __IO ADC_AVGCTRL_Type          AVGCTRL;     /**< \brief Offset: 0x0A (R/W  8) Average Control */
344   __IO ADC_SAMPCTRL_Type         SAMPCTRL;    /**< \brief Offset: 0x0B (R/W  8) Sample Time Control */
345   __IO ADC_WINLT_Type            WINLT;       /**< \brief Offset: 0x0C (R/W 16) Window Monitor Lower Threshold */
346   __IO ADC_WINUT_Type            WINUT;       /**< \brief Offset: 0x0E (R/W 16) Window Monitor Upper Threshold */
347   __IO ADC_GAINCORR_Type         GAINCORR;    /**< \brief Offset: 0x10 (R/W 16) Gain Correction */
348   __IO ADC_OFFSETCORR_Type       OFFSETCORR;  /**< \brief Offset: 0x12 (R/W 16) Offset Correction */
349   __IO ADC_SWTRIG_Type           SWTRIG;      /**< \brief Offset: 0x14 (R/W  8) Software Trigger */
350        RoReg8                    Reserved2[0x17];
351   __IO ADC_INTENCLR_Type         INTENCLR;    /**< \brief Offset: 0x2C (R/W  8) Interrupt Enable Clear */
352   __IO ADC_INTENSET_Type         INTENSET;    /**< \brief Offset: 0x2D (R/W  8) Interrupt Enable Set */
353   __IO ADC_INTFLAG_Type          INTFLAG;     /**< \brief Offset: 0x2E (R/W  8) Interrupt Flag Status and Clear */
354   __I  ADC_STATUS_Type           STATUS;      /**< \brief Offset: 0x2F (R/   8) Status */
355   __I  ADC_SYNCBUSY_Type         SYNCBUSY;    /**< \brief Offset: 0x30 (R/  32) Synchronization Busy */
356   __O  ADC_DSEQDATA_Type         DSEQDATA;    /**< \brief Offset: 0x34 ( /W 32) DMA Sequencial Data */
357   __IO ADC_DSEQCTRL_Type         DSEQCTRL;    /**< \brief Offset: 0x38 (R/W 32) DMA Sequential Control */
358   __I  ADC_DSEQSTAT_Type         DSEQSTAT;    /**< \brief Offset: 0x3C (R/  32) DMA Sequencial Status */
359   __I  ADC_RESULT_Type           RESULT;      /**< \brief Offset: 0x40 (R/  16) Result Conversion Value */
360        RoReg8                    Reserved3[0x2];
361   __I  ADC_RESS_Type             RESS;        /**< \brief Offset: 0x44 (R/  16) Last Sample Result */
362        RoReg8                    Reserved4[0x2];
363   __IO ADC_CALIB_Type            CALIB;       /**< \brief Offset: 0x48 (R/W 16) Calibration */
364 } Adc;
365 #endif /* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
366 
367 #endif /* _MICROCHIP_PIC32CXSG_ADC_COMPONENT_FIXUP_H_ */
368