blob: 588499e4561f4a0a9445522d421bee988c163db2 [file] [log] [blame]
Kévin Redon69b92d92019-01-24 16:39:20 +01001/**
2 * \file
3 *
4 * \brief SAM AC
5 *
6 * Copyright (c) 2016-2018 Microchip Technology Inc. and its subsidiaries.
7 *
8 * \asf_license_start
9 *
10 * \page License
11 *
12 * Subject to your compliance with these terms, you may use Microchip
13 * software and any derivatives exclusively with Microchip products.
14 * It is your responsibility to comply with third party license terms applicable
15 * to your use of third party software (including open source software) that
16 * may accompany Microchip software.
17 *
18 * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES,
19 * WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE,
20 * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY,
21 * AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT WILL MICROCHIP BE
22 * LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, INCIDENTAL OR CONSEQUENTIAL
23 * LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND WHATSOEVER RELATED TO THE
24 * SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS BEEN ADVISED OF THE
25 * POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE FULLEST EXTENT
26 * ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN ANY WAY
27 * RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
28 * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
29 *
30 * \asf_license_stop
31 *
32 */
33
34#ifdef _SAME54_AC_COMPONENT_
35#ifndef _HRI_AC_E54_H_INCLUDED_
36#define _HRI_AC_E54_H_INCLUDED_
37
38#ifdef __cplusplus
39extern "C" {
40#endif
41
42#include <stdbool.h>
43#include <hal_atomic.h>
44
45#if defined(ENABLE_AC_CRITICAL_SECTIONS)
46#define AC_CRITICAL_SECTION_ENTER() CRITICAL_SECTION_ENTER()
47#define AC_CRITICAL_SECTION_LEAVE() CRITICAL_SECTION_LEAVE()
48#else
49#define AC_CRITICAL_SECTION_ENTER()
50#define AC_CRITICAL_SECTION_LEAVE()
51#endif
52
53typedef uint16_t hri_ac_calib_reg_t;
54typedef uint16_t hri_ac_evctrl_reg_t;
55typedef uint32_t hri_ac_compctrl_reg_t;
56typedef uint32_t hri_ac_syncbusy_reg_t;
57typedef uint8_t hri_ac_ctrla_reg_t;
58typedef uint8_t hri_ac_ctrlb_reg_t;
59typedef uint8_t hri_ac_dbgctrl_reg_t;
60typedef uint8_t hri_ac_intenset_reg_t;
61typedef uint8_t hri_ac_intflag_reg_t;
62typedef uint8_t hri_ac_scaler_reg_t;
63typedef uint8_t hri_ac_statusa_reg_t;
64typedef uint8_t hri_ac_statusb_reg_t;
65typedef uint8_t hri_ac_winctrl_reg_t;
66
67static inline void hri_ac_wait_for_sync(const void *const hw, hri_ac_syncbusy_reg_t reg)
68{
69 while (((Ac *)hw)->SYNCBUSY.reg & reg) {
70 };
71}
72
73static inline bool hri_ac_is_syncing(const void *const hw, hri_ac_syncbusy_reg_t reg)
74{
75 return ((Ac *)hw)->SYNCBUSY.reg & reg;
76}
77
78static inline bool hri_ac_get_INTFLAG_COMP0_bit(const void *const hw)
79{
80 return (((Ac *)hw)->INTFLAG.reg & AC_INTFLAG_COMP0) >> AC_INTFLAG_COMP0_Pos;
81}
82
83static inline void hri_ac_clear_INTFLAG_COMP0_bit(const void *const hw)
84{
85 ((Ac *)hw)->INTFLAG.reg = AC_INTFLAG_COMP0;
86}
87
88static inline bool hri_ac_get_INTFLAG_COMP1_bit(const void *const hw)
89{
90 return (((Ac *)hw)->INTFLAG.reg & AC_INTFLAG_COMP1) >> AC_INTFLAG_COMP1_Pos;
91}
92
93static inline void hri_ac_clear_INTFLAG_COMP1_bit(const void *const hw)
94{
95 ((Ac *)hw)->INTFLAG.reg = AC_INTFLAG_COMP1;
96}
97
98static inline bool hri_ac_get_INTFLAG_WIN0_bit(const void *const hw)
99{
100 return (((Ac *)hw)->INTFLAG.reg & AC_INTFLAG_WIN0) >> AC_INTFLAG_WIN0_Pos;
101}
102
103static inline void hri_ac_clear_INTFLAG_WIN0_bit(const void *const hw)
104{
105 ((Ac *)hw)->INTFLAG.reg = AC_INTFLAG_WIN0;
106}
107
108static inline bool hri_ac_get_interrupt_COMP0_bit(const void *const hw)
109{
110 return (((Ac *)hw)->INTFLAG.reg & AC_INTFLAG_COMP0) >> AC_INTFLAG_COMP0_Pos;
111}
112
113static inline void hri_ac_clear_interrupt_COMP0_bit(const void *const hw)
114{
115 ((Ac *)hw)->INTFLAG.reg = AC_INTFLAG_COMP0;
116}
117
118static inline bool hri_ac_get_interrupt_COMP1_bit(const void *const hw)
119{
120 return (((Ac *)hw)->INTFLAG.reg & AC_INTFLAG_COMP1) >> AC_INTFLAG_COMP1_Pos;
121}
122
123static inline void hri_ac_clear_interrupt_COMP1_bit(const void *const hw)
124{
125 ((Ac *)hw)->INTFLAG.reg = AC_INTFLAG_COMP1;
126}
127
128static inline bool hri_ac_get_interrupt_WIN0_bit(const void *const hw)
129{
130 return (((Ac *)hw)->INTFLAG.reg & AC_INTFLAG_WIN0) >> AC_INTFLAG_WIN0_Pos;
131}
132
133static inline void hri_ac_clear_interrupt_WIN0_bit(const void *const hw)
134{
135 ((Ac *)hw)->INTFLAG.reg = AC_INTFLAG_WIN0;
136}
137
138static inline hri_ac_intflag_reg_t hri_ac_get_INTFLAG_reg(const void *const hw, hri_ac_intflag_reg_t mask)
139{
140 uint8_t tmp;
141 tmp = ((Ac *)hw)->INTFLAG.reg;
142 tmp &= mask;
143 return tmp;
144}
145
146static inline hri_ac_intflag_reg_t hri_ac_read_INTFLAG_reg(const void *const hw)
147{
148 return ((Ac *)hw)->INTFLAG.reg;
149}
150
151static inline void hri_ac_clear_INTFLAG_reg(const void *const hw, hri_ac_intflag_reg_t mask)
152{
153 ((Ac *)hw)->INTFLAG.reg = mask;
154}
155
156static inline void hri_ac_set_INTEN_COMP0_bit(const void *const hw)
157{
158 ((Ac *)hw)->INTENSET.reg = AC_INTENSET_COMP0;
159}
160
161static inline bool hri_ac_get_INTEN_COMP0_bit(const void *const hw)
162{
163 return (((Ac *)hw)->INTENSET.reg & AC_INTENSET_COMP0) >> AC_INTENSET_COMP0_Pos;
164}
165
166static inline void hri_ac_write_INTEN_COMP0_bit(const void *const hw, bool value)
167{
168 if (value == 0x0) {
169 ((Ac *)hw)->INTENCLR.reg = AC_INTENSET_COMP0;
170 } else {
171 ((Ac *)hw)->INTENSET.reg = AC_INTENSET_COMP0;
172 }
173}
174
175static inline void hri_ac_clear_INTEN_COMP0_bit(const void *const hw)
176{
177 ((Ac *)hw)->INTENCLR.reg = AC_INTENSET_COMP0;
178}
179
180static inline void hri_ac_set_INTEN_COMP1_bit(const void *const hw)
181{
182 ((Ac *)hw)->INTENSET.reg = AC_INTENSET_COMP1;
183}
184
185static inline bool hri_ac_get_INTEN_COMP1_bit(const void *const hw)
186{
187 return (((Ac *)hw)->INTENSET.reg & AC_INTENSET_COMP1) >> AC_INTENSET_COMP1_Pos;
188}
189
190static inline void hri_ac_write_INTEN_COMP1_bit(const void *const hw, bool value)
191{
192 if (value == 0x0) {
193 ((Ac *)hw)->INTENCLR.reg = AC_INTENSET_COMP1;
194 } else {
195 ((Ac *)hw)->INTENSET.reg = AC_INTENSET_COMP1;
196 }
197}
198
199static inline void hri_ac_clear_INTEN_COMP1_bit(const void *const hw)
200{
201 ((Ac *)hw)->INTENCLR.reg = AC_INTENSET_COMP1;
202}
203
204static inline void hri_ac_set_INTEN_WIN0_bit(const void *const hw)
205{
206 ((Ac *)hw)->INTENSET.reg = AC_INTENSET_WIN0;
207}
208
209static inline bool hri_ac_get_INTEN_WIN0_bit(const void *const hw)
210{
211 return (((Ac *)hw)->INTENSET.reg & AC_INTENSET_WIN0) >> AC_INTENSET_WIN0_Pos;
212}
213
214static inline void hri_ac_write_INTEN_WIN0_bit(const void *const hw, bool value)
215{
216 if (value == 0x0) {
217 ((Ac *)hw)->INTENCLR.reg = AC_INTENSET_WIN0;
218 } else {
219 ((Ac *)hw)->INTENSET.reg = AC_INTENSET_WIN0;
220 }
221}
222
223static inline void hri_ac_clear_INTEN_WIN0_bit(const void *const hw)
224{
225 ((Ac *)hw)->INTENCLR.reg = AC_INTENSET_WIN0;
226}
227
228static inline void hri_ac_set_INTEN_reg(const void *const hw, hri_ac_intenset_reg_t mask)
229{
230 ((Ac *)hw)->INTENSET.reg = mask;
231}
232
233static inline hri_ac_intenset_reg_t hri_ac_get_INTEN_reg(const void *const hw, hri_ac_intenset_reg_t mask)
234{
235 uint8_t tmp;
236 tmp = ((Ac *)hw)->INTENSET.reg;
237 tmp &= mask;
238 return tmp;
239}
240
241static inline hri_ac_intenset_reg_t hri_ac_read_INTEN_reg(const void *const hw)
242{
243 return ((Ac *)hw)->INTENSET.reg;
244}
245
246static inline void hri_ac_write_INTEN_reg(const void *const hw, hri_ac_intenset_reg_t data)
247{
248 ((Ac *)hw)->INTENSET.reg = data;
249 ((Ac *)hw)->INTENCLR.reg = ~data;
250}
251
252static inline void hri_ac_clear_INTEN_reg(const void *const hw, hri_ac_intenset_reg_t mask)
253{
254 ((Ac *)hw)->INTENCLR.reg = mask;
255}
256
257static inline bool hri_ac_get_STATUSA_STATE0_bit(const void *const hw)
258{
259 return (((Ac *)hw)->STATUSA.reg & AC_STATUSA_STATE0) >> AC_STATUSA_STATE0_Pos;
260}
261
262static inline bool hri_ac_get_STATUSA_STATE1_bit(const void *const hw)
263{
264 return (((Ac *)hw)->STATUSA.reg & AC_STATUSA_STATE1) >> AC_STATUSA_STATE1_Pos;
265}
266
267static inline hri_ac_statusa_reg_t hri_ac_get_STATUSA_WSTATE0_bf(const void *const hw, hri_ac_statusa_reg_t mask)
268{
269 return (((Ac *)hw)->STATUSA.reg & AC_STATUSA_WSTATE0(mask)) >> AC_STATUSA_WSTATE0_Pos;
270}
271
272static inline hri_ac_statusa_reg_t hri_ac_read_STATUSA_WSTATE0_bf(const void *const hw)
273{
274 return (((Ac *)hw)->STATUSA.reg & AC_STATUSA_WSTATE0_Msk) >> AC_STATUSA_WSTATE0_Pos;
275}
276
277static inline hri_ac_statusa_reg_t hri_ac_get_STATUSA_reg(const void *const hw, hri_ac_statusa_reg_t mask)
278{
279 uint8_t tmp;
280 tmp = ((Ac *)hw)->STATUSA.reg;
281 tmp &= mask;
282 return tmp;
283}
284
285static inline hri_ac_statusa_reg_t hri_ac_read_STATUSA_reg(const void *const hw)
286{
287 return ((Ac *)hw)->STATUSA.reg;
288}
289
290static inline bool hri_ac_get_STATUSB_READY0_bit(const void *const hw)
291{
292 return (((Ac *)hw)->STATUSB.reg & AC_STATUSB_READY0) >> AC_STATUSB_READY0_Pos;
293}
294
295static inline bool hri_ac_get_STATUSB_READY1_bit(const void *const hw)
296{
297 return (((Ac *)hw)->STATUSB.reg & AC_STATUSB_READY1) >> AC_STATUSB_READY1_Pos;
298}
299
300static inline hri_ac_statusb_reg_t hri_ac_get_STATUSB_reg(const void *const hw, hri_ac_statusb_reg_t mask)
301{
302 uint8_t tmp;
303 tmp = ((Ac *)hw)->STATUSB.reg;
304 tmp &= mask;
305 return tmp;
306}
307
308static inline hri_ac_statusb_reg_t hri_ac_read_STATUSB_reg(const void *const hw)
309{
310 return ((Ac *)hw)->STATUSB.reg;
311}
312
313static inline bool hri_ac_get_SYNCBUSY_SWRST_bit(const void *const hw)
314{
315 return (((Ac *)hw)->SYNCBUSY.reg & AC_SYNCBUSY_SWRST) >> AC_SYNCBUSY_SWRST_Pos;
316}
317
318static inline bool hri_ac_get_SYNCBUSY_ENABLE_bit(const void *const hw)
319{
320 return (((Ac *)hw)->SYNCBUSY.reg & AC_SYNCBUSY_ENABLE) >> AC_SYNCBUSY_ENABLE_Pos;
321}
322
323static inline bool hri_ac_get_SYNCBUSY_WINCTRL_bit(const void *const hw)
324{
325 return (((Ac *)hw)->SYNCBUSY.reg & AC_SYNCBUSY_WINCTRL) >> AC_SYNCBUSY_WINCTRL_Pos;
326}
327
328static inline bool hri_ac_get_SYNCBUSY_COMPCTRL0_bit(const void *const hw)
329{
330 return (((Ac *)hw)->SYNCBUSY.reg & AC_SYNCBUSY_COMPCTRL0) >> AC_SYNCBUSY_COMPCTRL0_Pos;
331}
332
333static inline bool hri_ac_get_SYNCBUSY_COMPCTRL1_bit(const void *const hw)
334{
335 return (((Ac *)hw)->SYNCBUSY.reg & AC_SYNCBUSY_COMPCTRL1) >> AC_SYNCBUSY_COMPCTRL1_Pos;
336}
337
338static inline hri_ac_syncbusy_reg_t hri_ac_get_SYNCBUSY_reg(const void *const hw, hri_ac_syncbusy_reg_t mask)
339{
340 uint32_t tmp;
341 tmp = ((Ac *)hw)->SYNCBUSY.reg;
342 tmp &= mask;
343 return tmp;
344}
345
346static inline hri_ac_syncbusy_reg_t hri_ac_read_SYNCBUSY_reg(const void *const hw)
347{
348 return ((Ac *)hw)->SYNCBUSY.reg;
349}
350
351static inline void hri_ac_set_CTRLA_SWRST_bit(const void *const hw)
352{
353 AC_CRITICAL_SECTION_ENTER();
354 ((Ac *)hw)->CTRLA.reg |= AC_CTRLA_SWRST;
355 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_SWRST);
356 AC_CRITICAL_SECTION_LEAVE();
357}
358
359static inline bool hri_ac_get_CTRLA_SWRST_bit(const void *const hw)
360{
361 uint8_t tmp;
362 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_SWRST);
363 tmp = ((Ac *)hw)->CTRLA.reg;
364 tmp = (tmp & AC_CTRLA_SWRST) >> AC_CTRLA_SWRST_Pos;
365 return (bool)tmp;
366}
367
368static inline void hri_ac_set_CTRLA_ENABLE_bit(const void *const hw)
369{
370 AC_CRITICAL_SECTION_ENTER();
371 ((Ac *)hw)->CTRLA.reg |= AC_CTRLA_ENABLE;
372 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_SWRST | AC_SYNCBUSY_ENABLE);
373 AC_CRITICAL_SECTION_LEAVE();
374}
375
376static inline bool hri_ac_get_CTRLA_ENABLE_bit(const void *const hw)
377{
378 uint8_t tmp;
379 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_SWRST | AC_SYNCBUSY_ENABLE);
380 tmp = ((Ac *)hw)->CTRLA.reg;
381 tmp = (tmp & AC_CTRLA_ENABLE) >> AC_CTRLA_ENABLE_Pos;
382 return (bool)tmp;
383}
384
385static inline void hri_ac_write_CTRLA_ENABLE_bit(const void *const hw, bool value)
386{
387 uint8_t tmp;
388 AC_CRITICAL_SECTION_ENTER();
389 tmp = ((Ac *)hw)->CTRLA.reg;
390 tmp &= ~AC_CTRLA_ENABLE;
391 tmp |= value << AC_CTRLA_ENABLE_Pos;
392 ((Ac *)hw)->CTRLA.reg = tmp;
393 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_SWRST | AC_SYNCBUSY_ENABLE);
394 AC_CRITICAL_SECTION_LEAVE();
395}
396
397static inline void hri_ac_clear_CTRLA_ENABLE_bit(const void *const hw)
398{
399 AC_CRITICAL_SECTION_ENTER();
400 ((Ac *)hw)->CTRLA.reg &= ~AC_CTRLA_ENABLE;
401 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_SWRST | AC_SYNCBUSY_ENABLE);
402 AC_CRITICAL_SECTION_LEAVE();
403}
404
405static inline void hri_ac_toggle_CTRLA_ENABLE_bit(const void *const hw)
406{
407 AC_CRITICAL_SECTION_ENTER();
408 ((Ac *)hw)->CTRLA.reg ^= AC_CTRLA_ENABLE;
409 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_SWRST | AC_SYNCBUSY_ENABLE);
410 AC_CRITICAL_SECTION_LEAVE();
411}
412
413static inline void hri_ac_set_CTRLA_reg(const void *const hw, hri_ac_ctrla_reg_t mask)
414{
415 AC_CRITICAL_SECTION_ENTER();
416 ((Ac *)hw)->CTRLA.reg |= mask;
417 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_SWRST | AC_SYNCBUSY_ENABLE);
418 AC_CRITICAL_SECTION_LEAVE();
419}
420
421static inline hri_ac_ctrla_reg_t hri_ac_get_CTRLA_reg(const void *const hw, hri_ac_ctrla_reg_t mask)
422{
423 uint8_t tmp;
424 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_SWRST | AC_SYNCBUSY_ENABLE);
425 tmp = ((Ac *)hw)->CTRLA.reg;
426 tmp &= mask;
427 return tmp;
428}
429
430static inline void hri_ac_write_CTRLA_reg(const void *const hw, hri_ac_ctrla_reg_t data)
431{
432 AC_CRITICAL_SECTION_ENTER();
433 ((Ac *)hw)->CTRLA.reg = data;
434 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_SWRST | AC_SYNCBUSY_ENABLE);
435 AC_CRITICAL_SECTION_LEAVE();
436}
437
438static inline void hri_ac_clear_CTRLA_reg(const void *const hw, hri_ac_ctrla_reg_t mask)
439{
440 AC_CRITICAL_SECTION_ENTER();
441 ((Ac *)hw)->CTRLA.reg &= ~mask;
442 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_SWRST | AC_SYNCBUSY_ENABLE);
443 AC_CRITICAL_SECTION_LEAVE();
444}
445
446static inline void hri_ac_toggle_CTRLA_reg(const void *const hw, hri_ac_ctrla_reg_t mask)
447{
448 AC_CRITICAL_SECTION_ENTER();
449 ((Ac *)hw)->CTRLA.reg ^= mask;
450 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_SWRST | AC_SYNCBUSY_ENABLE);
451 AC_CRITICAL_SECTION_LEAVE();
452}
453
454static inline hri_ac_ctrla_reg_t hri_ac_read_CTRLA_reg(const void *const hw)
455{
456 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_SWRST | AC_SYNCBUSY_ENABLE);
457 return ((Ac *)hw)->CTRLA.reg;
458}
459
460static inline void hri_ac_set_EVCTRL_COMPEO0_bit(const void *const hw)
461{
462 AC_CRITICAL_SECTION_ENTER();
463 ((Ac *)hw)->EVCTRL.reg |= AC_EVCTRL_COMPEO0;
464 AC_CRITICAL_SECTION_LEAVE();
465}
466
467static inline bool hri_ac_get_EVCTRL_COMPEO0_bit(const void *const hw)
468{
469 uint16_t tmp;
470 tmp = ((Ac *)hw)->EVCTRL.reg;
471 tmp = (tmp & AC_EVCTRL_COMPEO0) >> AC_EVCTRL_COMPEO0_Pos;
472 return (bool)tmp;
473}
474
475static inline void hri_ac_write_EVCTRL_COMPEO0_bit(const void *const hw, bool value)
476{
477 uint16_t tmp;
478 AC_CRITICAL_SECTION_ENTER();
479 tmp = ((Ac *)hw)->EVCTRL.reg;
480 tmp &= ~AC_EVCTRL_COMPEO0;
481 tmp |= value << AC_EVCTRL_COMPEO0_Pos;
482 ((Ac *)hw)->EVCTRL.reg = tmp;
483 AC_CRITICAL_SECTION_LEAVE();
484}
485
486static inline void hri_ac_clear_EVCTRL_COMPEO0_bit(const void *const hw)
487{
488 AC_CRITICAL_SECTION_ENTER();
489 ((Ac *)hw)->EVCTRL.reg &= ~AC_EVCTRL_COMPEO0;
490 AC_CRITICAL_SECTION_LEAVE();
491}
492
493static inline void hri_ac_toggle_EVCTRL_COMPEO0_bit(const void *const hw)
494{
495 AC_CRITICAL_SECTION_ENTER();
496 ((Ac *)hw)->EVCTRL.reg ^= AC_EVCTRL_COMPEO0;
497 AC_CRITICAL_SECTION_LEAVE();
498}
499
500static inline void hri_ac_set_EVCTRL_COMPEO1_bit(const void *const hw)
501{
502 AC_CRITICAL_SECTION_ENTER();
503 ((Ac *)hw)->EVCTRL.reg |= AC_EVCTRL_COMPEO1;
504 AC_CRITICAL_SECTION_LEAVE();
505}
506
507static inline bool hri_ac_get_EVCTRL_COMPEO1_bit(const void *const hw)
508{
509 uint16_t tmp;
510 tmp = ((Ac *)hw)->EVCTRL.reg;
511 tmp = (tmp & AC_EVCTRL_COMPEO1) >> AC_EVCTRL_COMPEO1_Pos;
512 return (bool)tmp;
513}
514
515static inline void hri_ac_write_EVCTRL_COMPEO1_bit(const void *const hw, bool value)
516{
517 uint16_t tmp;
518 AC_CRITICAL_SECTION_ENTER();
519 tmp = ((Ac *)hw)->EVCTRL.reg;
520 tmp &= ~AC_EVCTRL_COMPEO1;
521 tmp |= value << AC_EVCTRL_COMPEO1_Pos;
522 ((Ac *)hw)->EVCTRL.reg = tmp;
523 AC_CRITICAL_SECTION_LEAVE();
524}
525
526static inline void hri_ac_clear_EVCTRL_COMPEO1_bit(const void *const hw)
527{
528 AC_CRITICAL_SECTION_ENTER();
529 ((Ac *)hw)->EVCTRL.reg &= ~AC_EVCTRL_COMPEO1;
530 AC_CRITICAL_SECTION_LEAVE();
531}
532
533static inline void hri_ac_toggle_EVCTRL_COMPEO1_bit(const void *const hw)
534{
535 AC_CRITICAL_SECTION_ENTER();
536 ((Ac *)hw)->EVCTRL.reg ^= AC_EVCTRL_COMPEO1;
537 AC_CRITICAL_SECTION_LEAVE();
538}
539
540static inline void hri_ac_set_EVCTRL_WINEO0_bit(const void *const hw)
541{
542 AC_CRITICAL_SECTION_ENTER();
543 ((Ac *)hw)->EVCTRL.reg |= AC_EVCTRL_WINEO0;
544 AC_CRITICAL_SECTION_LEAVE();
545}
546
547static inline bool hri_ac_get_EVCTRL_WINEO0_bit(const void *const hw)
548{
549 uint16_t tmp;
550 tmp = ((Ac *)hw)->EVCTRL.reg;
551 tmp = (tmp & AC_EVCTRL_WINEO0) >> AC_EVCTRL_WINEO0_Pos;
552 return (bool)tmp;
553}
554
555static inline void hri_ac_write_EVCTRL_WINEO0_bit(const void *const hw, bool value)
556{
557 uint16_t tmp;
558 AC_CRITICAL_SECTION_ENTER();
559 tmp = ((Ac *)hw)->EVCTRL.reg;
560 tmp &= ~AC_EVCTRL_WINEO0;
561 tmp |= value << AC_EVCTRL_WINEO0_Pos;
562 ((Ac *)hw)->EVCTRL.reg = tmp;
563 AC_CRITICAL_SECTION_LEAVE();
564}
565
566static inline void hri_ac_clear_EVCTRL_WINEO0_bit(const void *const hw)
567{
568 AC_CRITICAL_SECTION_ENTER();
569 ((Ac *)hw)->EVCTRL.reg &= ~AC_EVCTRL_WINEO0;
570 AC_CRITICAL_SECTION_LEAVE();
571}
572
573static inline void hri_ac_toggle_EVCTRL_WINEO0_bit(const void *const hw)
574{
575 AC_CRITICAL_SECTION_ENTER();
576 ((Ac *)hw)->EVCTRL.reg ^= AC_EVCTRL_WINEO0;
577 AC_CRITICAL_SECTION_LEAVE();
578}
579
580static inline void hri_ac_set_EVCTRL_COMPEI0_bit(const void *const hw)
581{
582 AC_CRITICAL_SECTION_ENTER();
583 ((Ac *)hw)->EVCTRL.reg |= AC_EVCTRL_COMPEI0;
584 AC_CRITICAL_SECTION_LEAVE();
585}
586
587static inline bool hri_ac_get_EVCTRL_COMPEI0_bit(const void *const hw)
588{
589 uint16_t tmp;
590 tmp = ((Ac *)hw)->EVCTRL.reg;
591 tmp = (tmp & AC_EVCTRL_COMPEI0) >> AC_EVCTRL_COMPEI0_Pos;
592 return (bool)tmp;
593}
594
595static inline void hri_ac_write_EVCTRL_COMPEI0_bit(const void *const hw, bool value)
596{
597 uint16_t tmp;
598 AC_CRITICAL_SECTION_ENTER();
599 tmp = ((Ac *)hw)->EVCTRL.reg;
600 tmp &= ~AC_EVCTRL_COMPEI0;
601 tmp |= value << AC_EVCTRL_COMPEI0_Pos;
602 ((Ac *)hw)->EVCTRL.reg = tmp;
603 AC_CRITICAL_SECTION_LEAVE();
604}
605
606static inline void hri_ac_clear_EVCTRL_COMPEI0_bit(const void *const hw)
607{
608 AC_CRITICAL_SECTION_ENTER();
609 ((Ac *)hw)->EVCTRL.reg &= ~AC_EVCTRL_COMPEI0;
610 AC_CRITICAL_SECTION_LEAVE();
611}
612
613static inline void hri_ac_toggle_EVCTRL_COMPEI0_bit(const void *const hw)
614{
615 AC_CRITICAL_SECTION_ENTER();
616 ((Ac *)hw)->EVCTRL.reg ^= AC_EVCTRL_COMPEI0;
617 AC_CRITICAL_SECTION_LEAVE();
618}
619
620static inline void hri_ac_set_EVCTRL_COMPEI1_bit(const void *const hw)
621{
622 AC_CRITICAL_SECTION_ENTER();
623 ((Ac *)hw)->EVCTRL.reg |= AC_EVCTRL_COMPEI1;
624 AC_CRITICAL_SECTION_LEAVE();
625}
626
627static inline bool hri_ac_get_EVCTRL_COMPEI1_bit(const void *const hw)
628{
629 uint16_t tmp;
630 tmp = ((Ac *)hw)->EVCTRL.reg;
631 tmp = (tmp & AC_EVCTRL_COMPEI1) >> AC_EVCTRL_COMPEI1_Pos;
632 return (bool)tmp;
633}
634
635static inline void hri_ac_write_EVCTRL_COMPEI1_bit(const void *const hw, bool value)
636{
637 uint16_t tmp;
638 AC_CRITICAL_SECTION_ENTER();
639 tmp = ((Ac *)hw)->EVCTRL.reg;
640 tmp &= ~AC_EVCTRL_COMPEI1;
641 tmp |= value << AC_EVCTRL_COMPEI1_Pos;
642 ((Ac *)hw)->EVCTRL.reg = tmp;
643 AC_CRITICAL_SECTION_LEAVE();
644}
645
646static inline void hri_ac_clear_EVCTRL_COMPEI1_bit(const void *const hw)
647{
648 AC_CRITICAL_SECTION_ENTER();
649 ((Ac *)hw)->EVCTRL.reg &= ~AC_EVCTRL_COMPEI1;
650 AC_CRITICAL_SECTION_LEAVE();
651}
652
653static inline void hri_ac_toggle_EVCTRL_COMPEI1_bit(const void *const hw)
654{
655 AC_CRITICAL_SECTION_ENTER();
656 ((Ac *)hw)->EVCTRL.reg ^= AC_EVCTRL_COMPEI1;
657 AC_CRITICAL_SECTION_LEAVE();
658}
659
660static inline void hri_ac_set_EVCTRL_INVEI0_bit(const void *const hw)
661{
662 AC_CRITICAL_SECTION_ENTER();
663 ((Ac *)hw)->EVCTRL.reg |= AC_EVCTRL_INVEI0;
664 AC_CRITICAL_SECTION_LEAVE();
665}
666
667static inline bool hri_ac_get_EVCTRL_INVEI0_bit(const void *const hw)
668{
669 uint16_t tmp;
670 tmp = ((Ac *)hw)->EVCTRL.reg;
671 tmp = (tmp & AC_EVCTRL_INVEI0) >> AC_EVCTRL_INVEI0_Pos;
672 return (bool)tmp;
673}
674
675static inline void hri_ac_write_EVCTRL_INVEI0_bit(const void *const hw, bool value)
676{
677 uint16_t tmp;
678 AC_CRITICAL_SECTION_ENTER();
679 tmp = ((Ac *)hw)->EVCTRL.reg;
680 tmp &= ~AC_EVCTRL_INVEI0;
681 tmp |= value << AC_EVCTRL_INVEI0_Pos;
682 ((Ac *)hw)->EVCTRL.reg = tmp;
683 AC_CRITICAL_SECTION_LEAVE();
684}
685
686static inline void hri_ac_clear_EVCTRL_INVEI0_bit(const void *const hw)
687{
688 AC_CRITICAL_SECTION_ENTER();
689 ((Ac *)hw)->EVCTRL.reg &= ~AC_EVCTRL_INVEI0;
690 AC_CRITICAL_SECTION_LEAVE();
691}
692
693static inline void hri_ac_toggle_EVCTRL_INVEI0_bit(const void *const hw)
694{
695 AC_CRITICAL_SECTION_ENTER();
696 ((Ac *)hw)->EVCTRL.reg ^= AC_EVCTRL_INVEI0;
697 AC_CRITICAL_SECTION_LEAVE();
698}
699
700static inline void hri_ac_set_EVCTRL_INVEI1_bit(const void *const hw)
701{
702 AC_CRITICAL_SECTION_ENTER();
703 ((Ac *)hw)->EVCTRL.reg |= AC_EVCTRL_INVEI1;
704 AC_CRITICAL_SECTION_LEAVE();
705}
706
707static inline bool hri_ac_get_EVCTRL_INVEI1_bit(const void *const hw)
708{
709 uint16_t tmp;
710 tmp = ((Ac *)hw)->EVCTRL.reg;
711 tmp = (tmp & AC_EVCTRL_INVEI1) >> AC_EVCTRL_INVEI1_Pos;
712 return (bool)tmp;
713}
714
715static inline void hri_ac_write_EVCTRL_INVEI1_bit(const void *const hw, bool value)
716{
717 uint16_t tmp;
718 AC_CRITICAL_SECTION_ENTER();
719 tmp = ((Ac *)hw)->EVCTRL.reg;
720 tmp &= ~AC_EVCTRL_INVEI1;
721 tmp |= value << AC_EVCTRL_INVEI1_Pos;
722 ((Ac *)hw)->EVCTRL.reg = tmp;
723 AC_CRITICAL_SECTION_LEAVE();
724}
725
726static inline void hri_ac_clear_EVCTRL_INVEI1_bit(const void *const hw)
727{
728 AC_CRITICAL_SECTION_ENTER();
729 ((Ac *)hw)->EVCTRL.reg &= ~AC_EVCTRL_INVEI1;
730 AC_CRITICAL_SECTION_LEAVE();
731}
732
733static inline void hri_ac_toggle_EVCTRL_INVEI1_bit(const void *const hw)
734{
735 AC_CRITICAL_SECTION_ENTER();
736 ((Ac *)hw)->EVCTRL.reg ^= AC_EVCTRL_INVEI1;
737 AC_CRITICAL_SECTION_LEAVE();
738}
739
740static inline void hri_ac_set_EVCTRL_reg(const void *const hw, hri_ac_evctrl_reg_t mask)
741{
742 AC_CRITICAL_SECTION_ENTER();
743 ((Ac *)hw)->EVCTRL.reg |= mask;
744 AC_CRITICAL_SECTION_LEAVE();
745}
746
747static inline hri_ac_evctrl_reg_t hri_ac_get_EVCTRL_reg(const void *const hw, hri_ac_evctrl_reg_t mask)
748{
749 uint16_t tmp;
750 tmp = ((Ac *)hw)->EVCTRL.reg;
751 tmp &= mask;
752 return tmp;
753}
754
755static inline void hri_ac_write_EVCTRL_reg(const void *const hw, hri_ac_evctrl_reg_t data)
756{
757 AC_CRITICAL_SECTION_ENTER();
758 ((Ac *)hw)->EVCTRL.reg = data;
759 AC_CRITICAL_SECTION_LEAVE();
760}
761
762static inline void hri_ac_clear_EVCTRL_reg(const void *const hw, hri_ac_evctrl_reg_t mask)
763{
764 AC_CRITICAL_SECTION_ENTER();
765 ((Ac *)hw)->EVCTRL.reg &= ~mask;
766 AC_CRITICAL_SECTION_LEAVE();
767}
768
769static inline void hri_ac_toggle_EVCTRL_reg(const void *const hw, hri_ac_evctrl_reg_t mask)
770{
771 AC_CRITICAL_SECTION_ENTER();
772 ((Ac *)hw)->EVCTRL.reg ^= mask;
773 AC_CRITICAL_SECTION_LEAVE();
774}
775
776static inline hri_ac_evctrl_reg_t hri_ac_read_EVCTRL_reg(const void *const hw)
777{
778 return ((Ac *)hw)->EVCTRL.reg;
779}
780
781static inline void hri_ac_set_DBGCTRL_DBGRUN_bit(const void *const hw)
782{
783 AC_CRITICAL_SECTION_ENTER();
784 ((Ac *)hw)->DBGCTRL.reg |= AC_DBGCTRL_DBGRUN;
785 AC_CRITICAL_SECTION_LEAVE();
786}
787
788static inline bool hri_ac_get_DBGCTRL_DBGRUN_bit(const void *const hw)
789{
790 uint8_t tmp;
791 tmp = ((Ac *)hw)->DBGCTRL.reg;
792 tmp = (tmp & AC_DBGCTRL_DBGRUN) >> AC_DBGCTRL_DBGRUN_Pos;
793 return (bool)tmp;
794}
795
796static inline void hri_ac_write_DBGCTRL_DBGRUN_bit(const void *const hw, bool value)
797{
798 uint8_t tmp;
799 AC_CRITICAL_SECTION_ENTER();
800 tmp = ((Ac *)hw)->DBGCTRL.reg;
801 tmp &= ~AC_DBGCTRL_DBGRUN;
802 tmp |= value << AC_DBGCTRL_DBGRUN_Pos;
803 ((Ac *)hw)->DBGCTRL.reg = tmp;
804 AC_CRITICAL_SECTION_LEAVE();
805}
806
807static inline void hri_ac_clear_DBGCTRL_DBGRUN_bit(const void *const hw)
808{
809 AC_CRITICAL_SECTION_ENTER();
810 ((Ac *)hw)->DBGCTRL.reg &= ~AC_DBGCTRL_DBGRUN;
811 AC_CRITICAL_SECTION_LEAVE();
812}
813
814static inline void hri_ac_toggle_DBGCTRL_DBGRUN_bit(const void *const hw)
815{
816 AC_CRITICAL_SECTION_ENTER();
817 ((Ac *)hw)->DBGCTRL.reg ^= AC_DBGCTRL_DBGRUN;
818 AC_CRITICAL_SECTION_LEAVE();
819}
820
821static inline void hri_ac_set_DBGCTRL_reg(const void *const hw, hri_ac_dbgctrl_reg_t mask)
822{
823 AC_CRITICAL_SECTION_ENTER();
824 ((Ac *)hw)->DBGCTRL.reg |= mask;
825 AC_CRITICAL_SECTION_LEAVE();
826}
827
828static inline hri_ac_dbgctrl_reg_t hri_ac_get_DBGCTRL_reg(const void *const hw, hri_ac_dbgctrl_reg_t mask)
829{
830 uint8_t tmp;
831 tmp = ((Ac *)hw)->DBGCTRL.reg;
832 tmp &= mask;
833 return tmp;
834}
835
836static inline void hri_ac_write_DBGCTRL_reg(const void *const hw, hri_ac_dbgctrl_reg_t data)
837{
838 AC_CRITICAL_SECTION_ENTER();
839 ((Ac *)hw)->DBGCTRL.reg = data;
840 AC_CRITICAL_SECTION_LEAVE();
841}
842
843static inline void hri_ac_clear_DBGCTRL_reg(const void *const hw, hri_ac_dbgctrl_reg_t mask)
844{
845 AC_CRITICAL_SECTION_ENTER();
846 ((Ac *)hw)->DBGCTRL.reg &= ~mask;
847 AC_CRITICAL_SECTION_LEAVE();
848}
849
850static inline void hri_ac_toggle_DBGCTRL_reg(const void *const hw, hri_ac_dbgctrl_reg_t mask)
851{
852 AC_CRITICAL_SECTION_ENTER();
853 ((Ac *)hw)->DBGCTRL.reg ^= mask;
854 AC_CRITICAL_SECTION_LEAVE();
855}
856
857static inline hri_ac_dbgctrl_reg_t hri_ac_read_DBGCTRL_reg(const void *const hw)
858{
859 return ((Ac *)hw)->DBGCTRL.reg;
860}
861
862static inline void hri_ac_set_WINCTRL_WEN0_bit(const void *const hw)
863{
864 AC_CRITICAL_SECTION_ENTER();
865 ((Ac *)hw)->WINCTRL.reg |= AC_WINCTRL_WEN0;
866 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
867 AC_CRITICAL_SECTION_LEAVE();
868}
869
870static inline bool hri_ac_get_WINCTRL_WEN0_bit(const void *const hw)
871{
872 uint8_t tmp;
873 tmp = ((Ac *)hw)->WINCTRL.reg;
874 tmp = (tmp & AC_WINCTRL_WEN0) >> AC_WINCTRL_WEN0_Pos;
875 return (bool)tmp;
876}
877
878static inline void hri_ac_write_WINCTRL_WEN0_bit(const void *const hw, bool value)
879{
880 uint8_t tmp;
881 AC_CRITICAL_SECTION_ENTER();
882 tmp = ((Ac *)hw)->WINCTRL.reg;
883 tmp &= ~AC_WINCTRL_WEN0;
884 tmp |= value << AC_WINCTRL_WEN0_Pos;
885 ((Ac *)hw)->WINCTRL.reg = tmp;
886 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
887 AC_CRITICAL_SECTION_LEAVE();
888}
889
890static inline void hri_ac_clear_WINCTRL_WEN0_bit(const void *const hw)
891{
892 AC_CRITICAL_SECTION_ENTER();
893 ((Ac *)hw)->WINCTRL.reg &= ~AC_WINCTRL_WEN0;
894 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
895 AC_CRITICAL_SECTION_LEAVE();
896}
897
898static inline void hri_ac_toggle_WINCTRL_WEN0_bit(const void *const hw)
899{
900 AC_CRITICAL_SECTION_ENTER();
901 ((Ac *)hw)->WINCTRL.reg ^= AC_WINCTRL_WEN0;
902 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
903 AC_CRITICAL_SECTION_LEAVE();
904}
905
906static inline void hri_ac_set_WINCTRL_WINTSEL0_bf(const void *const hw, hri_ac_winctrl_reg_t mask)
907{
908 AC_CRITICAL_SECTION_ENTER();
909 ((Ac *)hw)->WINCTRL.reg |= AC_WINCTRL_WINTSEL0(mask);
910 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
911 AC_CRITICAL_SECTION_LEAVE();
912}
913
914static inline hri_ac_winctrl_reg_t hri_ac_get_WINCTRL_WINTSEL0_bf(const void *const hw, hri_ac_winctrl_reg_t mask)
915{
916 uint8_t tmp;
917 tmp = ((Ac *)hw)->WINCTRL.reg;
918 tmp = (tmp & AC_WINCTRL_WINTSEL0(mask)) >> AC_WINCTRL_WINTSEL0_Pos;
919 return tmp;
920}
921
922static inline void hri_ac_write_WINCTRL_WINTSEL0_bf(const void *const hw, hri_ac_winctrl_reg_t data)
923{
924 uint8_t tmp;
925 AC_CRITICAL_SECTION_ENTER();
926 tmp = ((Ac *)hw)->WINCTRL.reg;
927 tmp &= ~AC_WINCTRL_WINTSEL0_Msk;
928 tmp |= AC_WINCTRL_WINTSEL0(data);
929 ((Ac *)hw)->WINCTRL.reg = tmp;
930 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
931 AC_CRITICAL_SECTION_LEAVE();
932}
933
934static inline void hri_ac_clear_WINCTRL_WINTSEL0_bf(const void *const hw, hri_ac_winctrl_reg_t mask)
935{
936 AC_CRITICAL_SECTION_ENTER();
937 ((Ac *)hw)->WINCTRL.reg &= ~AC_WINCTRL_WINTSEL0(mask);
938 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
939 AC_CRITICAL_SECTION_LEAVE();
940}
941
942static inline void hri_ac_toggle_WINCTRL_WINTSEL0_bf(const void *const hw, hri_ac_winctrl_reg_t mask)
943{
944 AC_CRITICAL_SECTION_ENTER();
945 ((Ac *)hw)->WINCTRL.reg ^= AC_WINCTRL_WINTSEL0(mask);
946 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
947 AC_CRITICAL_SECTION_LEAVE();
948}
949
950static inline hri_ac_winctrl_reg_t hri_ac_read_WINCTRL_WINTSEL0_bf(const void *const hw)
951{
952 uint8_t tmp;
953 tmp = ((Ac *)hw)->WINCTRL.reg;
954 tmp = (tmp & AC_WINCTRL_WINTSEL0_Msk) >> AC_WINCTRL_WINTSEL0_Pos;
955 return tmp;
956}
957
958static inline void hri_ac_set_WINCTRL_reg(const void *const hw, hri_ac_winctrl_reg_t mask)
959{
960 AC_CRITICAL_SECTION_ENTER();
961 ((Ac *)hw)->WINCTRL.reg |= mask;
962 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
963 AC_CRITICAL_SECTION_LEAVE();
964}
965
966static inline hri_ac_winctrl_reg_t hri_ac_get_WINCTRL_reg(const void *const hw, hri_ac_winctrl_reg_t mask)
967{
968 uint8_t tmp;
969 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
970 tmp = ((Ac *)hw)->WINCTRL.reg;
971 tmp &= mask;
972 return tmp;
973}
974
975static inline void hri_ac_write_WINCTRL_reg(const void *const hw, hri_ac_winctrl_reg_t data)
976{
977 AC_CRITICAL_SECTION_ENTER();
978 ((Ac *)hw)->WINCTRL.reg = data;
979 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
980 AC_CRITICAL_SECTION_LEAVE();
981}
982
983static inline void hri_ac_clear_WINCTRL_reg(const void *const hw, hri_ac_winctrl_reg_t mask)
984{
985 AC_CRITICAL_SECTION_ENTER();
986 ((Ac *)hw)->WINCTRL.reg &= ~mask;
987 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
988 AC_CRITICAL_SECTION_LEAVE();
989}
990
991static inline void hri_ac_toggle_WINCTRL_reg(const void *const hw, hri_ac_winctrl_reg_t mask)
992{
993 AC_CRITICAL_SECTION_ENTER();
994 ((Ac *)hw)->WINCTRL.reg ^= mask;
995 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
996 AC_CRITICAL_SECTION_LEAVE();
997}
998
999static inline hri_ac_winctrl_reg_t hri_ac_read_WINCTRL_reg(const void *const hw)
1000{
1001 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1002 return ((Ac *)hw)->WINCTRL.reg;
1003}
1004
1005static inline void hri_ac_set_SCALER_VALUE_bf(const void *const hw, uint8_t index, hri_ac_scaler_reg_t mask)
1006{
1007 AC_CRITICAL_SECTION_ENTER();
1008 ((Ac *)hw)->SCALER[index].reg |= AC_SCALER_VALUE(mask);
1009 AC_CRITICAL_SECTION_LEAVE();
1010}
1011
1012static inline hri_ac_scaler_reg_t hri_ac_get_SCALER_VALUE_bf(const void *const hw, uint8_t index,
1013 hri_ac_scaler_reg_t mask)
1014{
1015 uint8_t tmp;
1016 tmp = ((Ac *)hw)->SCALER[index].reg;
1017 tmp = (tmp & AC_SCALER_VALUE(mask)) >> AC_SCALER_VALUE_Pos;
1018 return tmp;
1019}
1020
1021static inline void hri_ac_write_SCALER_VALUE_bf(const void *const hw, uint8_t index, hri_ac_scaler_reg_t data)
1022{
1023 uint8_t tmp;
1024 AC_CRITICAL_SECTION_ENTER();
1025 tmp = ((Ac *)hw)->SCALER[index].reg;
1026 tmp &= ~AC_SCALER_VALUE_Msk;
1027 tmp |= AC_SCALER_VALUE(data);
1028 ((Ac *)hw)->SCALER[index].reg = tmp;
1029 AC_CRITICAL_SECTION_LEAVE();
1030}
1031
1032static inline void hri_ac_clear_SCALER_VALUE_bf(const void *const hw, uint8_t index, hri_ac_scaler_reg_t mask)
1033{
1034 AC_CRITICAL_SECTION_ENTER();
1035 ((Ac *)hw)->SCALER[index].reg &= ~AC_SCALER_VALUE(mask);
1036 AC_CRITICAL_SECTION_LEAVE();
1037}
1038
1039static inline void hri_ac_toggle_SCALER_VALUE_bf(const void *const hw, uint8_t index, hri_ac_scaler_reg_t mask)
1040{
1041 AC_CRITICAL_SECTION_ENTER();
1042 ((Ac *)hw)->SCALER[index].reg ^= AC_SCALER_VALUE(mask);
1043 AC_CRITICAL_SECTION_LEAVE();
1044}
1045
1046static inline hri_ac_scaler_reg_t hri_ac_read_SCALER_VALUE_bf(const void *const hw, uint8_t index)
1047{
1048 uint8_t tmp;
1049 tmp = ((Ac *)hw)->SCALER[index].reg;
1050 tmp = (tmp & AC_SCALER_VALUE_Msk) >> AC_SCALER_VALUE_Pos;
1051 return tmp;
1052}
1053
1054static inline void hri_ac_set_SCALER_reg(const void *const hw, uint8_t index, hri_ac_scaler_reg_t mask)
1055{
1056 AC_CRITICAL_SECTION_ENTER();
1057 ((Ac *)hw)->SCALER[index].reg |= mask;
1058 AC_CRITICAL_SECTION_LEAVE();
1059}
1060
1061static inline hri_ac_scaler_reg_t hri_ac_get_SCALER_reg(const void *const hw, uint8_t index, hri_ac_scaler_reg_t mask)
1062{
1063 uint8_t tmp;
1064 tmp = ((Ac *)hw)->SCALER[index].reg;
1065 tmp &= mask;
1066 return tmp;
1067}
1068
1069static inline void hri_ac_write_SCALER_reg(const void *const hw, uint8_t index, hri_ac_scaler_reg_t data)
1070{
1071 AC_CRITICAL_SECTION_ENTER();
1072 ((Ac *)hw)->SCALER[index].reg = data;
1073 AC_CRITICAL_SECTION_LEAVE();
1074}
1075
1076static inline void hri_ac_clear_SCALER_reg(const void *const hw, uint8_t index, hri_ac_scaler_reg_t mask)
1077{
1078 AC_CRITICAL_SECTION_ENTER();
1079 ((Ac *)hw)->SCALER[index].reg &= ~mask;
1080 AC_CRITICAL_SECTION_LEAVE();
1081}
1082
1083static inline void hri_ac_toggle_SCALER_reg(const void *const hw, uint8_t index, hri_ac_scaler_reg_t mask)
1084{
1085 AC_CRITICAL_SECTION_ENTER();
1086 ((Ac *)hw)->SCALER[index].reg ^= mask;
1087 AC_CRITICAL_SECTION_LEAVE();
1088}
1089
1090static inline hri_ac_scaler_reg_t hri_ac_read_SCALER_reg(const void *const hw, uint8_t index)
1091{
1092 return ((Ac *)hw)->SCALER[index].reg;
1093}
1094
1095static inline void hri_ac_set_COMPCTRL_ENABLE_bit(const void *const hw, uint8_t index)
1096{
1097 AC_CRITICAL_SECTION_ENTER();
1098 ((Ac *)hw)->COMPCTRL[index].reg |= AC_COMPCTRL_ENABLE;
1099 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_ENABLE);
1100 AC_CRITICAL_SECTION_LEAVE();
1101}
1102
1103static inline bool hri_ac_get_COMPCTRL_ENABLE_bit(const void *const hw, uint8_t index)
1104{
1105 uint32_t tmp;
1106 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_ENABLE);
1107 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1108 tmp = (tmp & AC_COMPCTRL_ENABLE) >> AC_COMPCTRL_ENABLE_Pos;
1109 return (bool)tmp;
1110}
1111
1112static inline void hri_ac_write_COMPCTRL_ENABLE_bit(const void *const hw, uint8_t index, bool value)
1113{
1114 uint32_t tmp;
1115 AC_CRITICAL_SECTION_ENTER();
1116 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1117 tmp &= ~AC_COMPCTRL_ENABLE;
1118 tmp |= value << AC_COMPCTRL_ENABLE_Pos;
1119 ((Ac *)hw)->COMPCTRL[index].reg = tmp;
1120 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_ENABLE);
1121 AC_CRITICAL_SECTION_LEAVE();
1122}
1123
1124static inline void hri_ac_clear_COMPCTRL_ENABLE_bit(const void *const hw, uint8_t index)
1125{
1126 AC_CRITICAL_SECTION_ENTER();
1127 ((Ac *)hw)->COMPCTRL[index].reg &= ~AC_COMPCTRL_ENABLE;
1128 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_ENABLE);
1129 AC_CRITICAL_SECTION_LEAVE();
1130}
1131
1132static inline void hri_ac_toggle_COMPCTRL_ENABLE_bit(const void *const hw, uint8_t index)
1133{
1134 AC_CRITICAL_SECTION_ENTER();
1135 ((Ac *)hw)->COMPCTRL[index].reg ^= AC_COMPCTRL_ENABLE;
1136 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_ENABLE);
1137 AC_CRITICAL_SECTION_LEAVE();
1138}
1139
1140static inline void hri_ac_set_COMPCTRL_SINGLE_bit(const void *const hw, uint8_t index)
1141{
1142 AC_CRITICAL_SECTION_ENTER();
1143 ((Ac *)hw)->COMPCTRL[index].reg |= AC_COMPCTRL_SINGLE;
1144 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1145 AC_CRITICAL_SECTION_LEAVE();
1146}
1147
1148static inline bool hri_ac_get_COMPCTRL_SINGLE_bit(const void *const hw, uint8_t index)
1149{
1150 uint32_t tmp;
1151 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1152 tmp = (tmp & AC_COMPCTRL_SINGLE) >> AC_COMPCTRL_SINGLE_Pos;
1153 return (bool)tmp;
1154}
1155
1156static inline void hri_ac_write_COMPCTRL_SINGLE_bit(const void *const hw, uint8_t index, bool value)
1157{
1158 uint32_t tmp;
1159 AC_CRITICAL_SECTION_ENTER();
1160 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1161 tmp &= ~AC_COMPCTRL_SINGLE;
1162 tmp |= value << AC_COMPCTRL_SINGLE_Pos;
1163 ((Ac *)hw)->COMPCTRL[index].reg = tmp;
1164 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1165 AC_CRITICAL_SECTION_LEAVE();
1166}
1167
1168static inline void hri_ac_clear_COMPCTRL_SINGLE_bit(const void *const hw, uint8_t index)
1169{
1170 AC_CRITICAL_SECTION_ENTER();
1171 ((Ac *)hw)->COMPCTRL[index].reg &= ~AC_COMPCTRL_SINGLE;
1172 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1173 AC_CRITICAL_SECTION_LEAVE();
1174}
1175
1176static inline void hri_ac_toggle_COMPCTRL_SINGLE_bit(const void *const hw, uint8_t index)
1177{
1178 AC_CRITICAL_SECTION_ENTER();
1179 ((Ac *)hw)->COMPCTRL[index].reg ^= AC_COMPCTRL_SINGLE;
1180 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1181 AC_CRITICAL_SECTION_LEAVE();
1182}
1183
1184static inline void hri_ac_set_COMPCTRL_RUNSTDBY_bit(const void *const hw, uint8_t index)
1185{
1186 AC_CRITICAL_SECTION_ENTER();
1187 ((Ac *)hw)->COMPCTRL[index].reg |= AC_COMPCTRL_RUNSTDBY;
1188 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1189 AC_CRITICAL_SECTION_LEAVE();
1190}
1191
1192static inline bool hri_ac_get_COMPCTRL_RUNSTDBY_bit(const void *const hw, uint8_t index)
1193{
1194 uint32_t tmp;
1195 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1196 tmp = (tmp & AC_COMPCTRL_RUNSTDBY) >> AC_COMPCTRL_RUNSTDBY_Pos;
1197 return (bool)tmp;
1198}
1199
1200static inline void hri_ac_write_COMPCTRL_RUNSTDBY_bit(const void *const hw, uint8_t index, bool value)
1201{
1202 uint32_t tmp;
1203 AC_CRITICAL_SECTION_ENTER();
1204 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1205 tmp &= ~AC_COMPCTRL_RUNSTDBY;
1206 tmp |= value << AC_COMPCTRL_RUNSTDBY_Pos;
1207 ((Ac *)hw)->COMPCTRL[index].reg = tmp;
1208 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1209 AC_CRITICAL_SECTION_LEAVE();
1210}
1211
1212static inline void hri_ac_clear_COMPCTRL_RUNSTDBY_bit(const void *const hw, uint8_t index)
1213{
1214 AC_CRITICAL_SECTION_ENTER();
1215 ((Ac *)hw)->COMPCTRL[index].reg &= ~AC_COMPCTRL_RUNSTDBY;
1216 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1217 AC_CRITICAL_SECTION_LEAVE();
1218}
1219
1220static inline void hri_ac_toggle_COMPCTRL_RUNSTDBY_bit(const void *const hw, uint8_t index)
1221{
1222 AC_CRITICAL_SECTION_ENTER();
1223 ((Ac *)hw)->COMPCTRL[index].reg ^= AC_COMPCTRL_RUNSTDBY;
1224 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1225 AC_CRITICAL_SECTION_LEAVE();
1226}
1227
1228static inline void hri_ac_set_COMPCTRL_SWAP_bit(const void *const hw, uint8_t index)
1229{
1230 AC_CRITICAL_SECTION_ENTER();
1231 ((Ac *)hw)->COMPCTRL[index].reg |= AC_COMPCTRL_SWAP;
1232 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1233 AC_CRITICAL_SECTION_LEAVE();
1234}
1235
1236static inline bool hri_ac_get_COMPCTRL_SWAP_bit(const void *const hw, uint8_t index)
1237{
1238 uint32_t tmp;
1239 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1240 tmp = (tmp & AC_COMPCTRL_SWAP) >> AC_COMPCTRL_SWAP_Pos;
1241 return (bool)tmp;
1242}
1243
1244static inline void hri_ac_write_COMPCTRL_SWAP_bit(const void *const hw, uint8_t index, bool value)
1245{
1246 uint32_t tmp;
1247 AC_CRITICAL_SECTION_ENTER();
1248 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1249 tmp &= ~AC_COMPCTRL_SWAP;
1250 tmp |= value << AC_COMPCTRL_SWAP_Pos;
1251 ((Ac *)hw)->COMPCTRL[index].reg = tmp;
1252 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1253 AC_CRITICAL_SECTION_LEAVE();
1254}
1255
1256static inline void hri_ac_clear_COMPCTRL_SWAP_bit(const void *const hw, uint8_t index)
1257{
1258 AC_CRITICAL_SECTION_ENTER();
1259 ((Ac *)hw)->COMPCTRL[index].reg &= ~AC_COMPCTRL_SWAP;
1260 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1261 AC_CRITICAL_SECTION_LEAVE();
1262}
1263
1264static inline void hri_ac_toggle_COMPCTRL_SWAP_bit(const void *const hw, uint8_t index)
1265{
1266 AC_CRITICAL_SECTION_ENTER();
1267 ((Ac *)hw)->COMPCTRL[index].reg ^= AC_COMPCTRL_SWAP;
1268 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1269 AC_CRITICAL_SECTION_LEAVE();
1270}
1271
1272static inline void hri_ac_set_COMPCTRL_HYSTEN_bit(const void *const hw, uint8_t index)
1273{
1274 AC_CRITICAL_SECTION_ENTER();
1275 ((Ac *)hw)->COMPCTRL[index].reg |= AC_COMPCTRL_HYSTEN;
1276 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1277 AC_CRITICAL_SECTION_LEAVE();
1278}
1279
1280static inline bool hri_ac_get_COMPCTRL_HYSTEN_bit(const void *const hw, uint8_t index)
1281{
1282 uint32_t tmp;
1283 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1284 tmp = (tmp & AC_COMPCTRL_HYSTEN) >> AC_COMPCTRL_HYSTEN_Pos;
1285 return (bool)tmp;
1286}
1287
1288static inline void hri_ac_write_COMPCTRL_HYSTEN_bit(const void *const hw, uint8_t index, bool value)
1289{
1290 uint32_t tmp;
1291 AC_CRITICAL_SECTION_ENTER();
1292 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1293 tmp &= ~AC_COMPCTRL_HYSTEN;
1294 tmp |= value << AC_COMPCTRL_HYSTEN_Pos;
1295 ((Ac *)hw)->COMPCTRL[index].reg = tmp;
1296 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1297 AC_CRITICAL_SECTION_LEAVE();
1298}
1299
1300static inline void hri_ac_clear_COMPCTRL_HYSTEN_bit(const void *const hw, uint8_t index)
1301{
1302 AC_CRITICAL_SECTION_ENTER();
1303 ((Ac *)hw)->COMPCTRL[index].reg &= ~AC_COMPCTRL_HYSTEN;
1304 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1305 AC_CRITICAL_SECTION_LEAVE();
1306}
1307
1308static inline void hri_ac_toggle_COMPCTRL_HYSTEN_bit(const void *const hw, uint8_t index)
1309{
1310 AC_CRITICAL_SECTION_ENTER();
1311 ((Ac *)hw)->COMPCTRL[index].reg ^= AC_COMPCTRL_HYSTEN;
1312 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1313 AC_CRITICAL_SECTION_LEAVE();
1314}
1315
1316static inline void hri_ac_set_COMPCTRL_INTSEL_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t mask)
1317{
1318 AC_CRITICAL_SECTION_ENTER();
1319 ((Ac *)hw)->COMPCTRL[index].reg |= AC_COMPCTRL_INTSEL(mask);
1320 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1321 AC_CRITICAL_SECTION_LEAVE();
1322}
1323
1324static inline hri_ac_compctrl_reg_t hri_ac_get_COMPCTRL_INTSEL_bf(const void *const hw, uint8_t index,
1325 hri_ac_compctrl_reg_t mask)
1326{
1327 uint32_t tmp;
1328 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1329 tmp = (tmp & AC_COMPCTRL_INTSEL(mask)) >> AC_COMPCTRL_INTSEL_Pos;
1330 return tmp;
1331}
1332
1333static inline void hri_ac_write_COMPCTRL_INTSEL_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t data)
1334{
1335 uint32_t tmp;
1336 AC_CRITICAL_SECTION_ENTER();
1337 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1338 tmp &= ~AC_COMPCTRL_INTSEL_Msk;
1339 tmp |= AC_COMPCTRL_INTSEL(data);
1340 ((Ac *)hw)->COMPCTRL[index].reg = tmp;
1341 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1342 AC_CRITICAL_SECTION_LEAVE();
1343}
1344
1345static inline void hri_ac_clear_COMPCTRL_INTSEL_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t mask)
1346{
1347 AC_CRITICAL_SECTION_ENTER();
1348 ((Ac *)hw)->COMPCTRL[index].reg &= ~AC_COMPCTRL_INTSEL(mask);
1349 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1350 AC_CRITICAL_SECTION_LEAVE();
1351}
1352
1353static inline void hri_ac_toggle_COMPCTRL_INTSEL_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t mask)
1354{
1355 AC_CRITICAL_SECTION_ENTER();
1356 ((Ac *)hw)->COMPCTRL[index].reg ^= AC_COMPCTRL_INTSEL(mask);
1357 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1358 AC_CRITICAL_SECTION_LEAVE();
1359}
1360
1361static inline hri_ac_compctrl_reg_t hri_ac_read_COMPCTRL_INTSEL_bf(const void *const hw, uint8_t index)
1362{
1363 uint32_t tmp;
1364 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1365 tmp = (tmp & AC_COMPCTRL_INTSEL_Msk) >> AC_COMPCTRL_INTSEL_Pos;
1366 return tmp;
1367}
1368
1369static inline void hri_ac_set_COMPCTRL_MUXNEG_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t mask)
1370{
1371 AC_CRITICAL_SECTION_ENTER();
1372 ((Ac *)hw)->COMPCTRL[index].reg |= AC_COMPCTRL_MUXNEG(mask);
1373 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1374 AC_CRITICAL_SECTION_LEAVE();
1375}
1376
1377static inline hri_ac_compctrl_reg_t hri_ac_get_COMPCTRL_MUXNEG_bf(const void *const hw, uint8_t index,
1378 hri_ac_compctrl_reg_t mask)
1379{
1380 uint32_t tmp;
1381 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1382 tmp = (tmp & AC_COMPCTRL_MUXNEG(mask)) >> AC_COMPCTRL_MUXNEG_Pos;
1383 return tmp;
1384}
1385
1386static inline void hri_ac_write_COMPCTRL_MUXNEG_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t data)
1387{
1388 uint32_t tmp;
1389 AC_CRITICAL_SECTION_ENTER();
1390 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1391 tmp &= ~AC_COMPCTRL_MUXNEG_Msk;
1392 tmp |= AC_COMPCTRL_MUXNEG(data);
1393 ((Ac *)hw)->COMPCTRL[index].reg = tmp;
1394 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1395 AC_CRITICAL_SECTION_LEAVE();
1396}
1397
1398static inline void hri_ac_clear_COMPCTRL_MUXNEG_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t mask)
1399{
1400 AC_CRITICAL_SECTION_ENTER();
1401 ((Ac *)hw)->COMPCTRL[index].reg &= ~AC_COMPCTRL_MUXNEG(mask);
1402 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1403 AC_CRITICAL_SECTION_LEAVE();
1404}
1405
1406static inline void hri_ac_toggle_COMPCTRL_MUXNEG_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t mask)
1407{
1408 AC_CRITICAL_SECTION_ENTER();
1409 ((Ac *)hw)->COMPCTRL[index].reg ^= AC_COMPCTRL_MUXNEG(mask);
1410 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1411 AC_CRITICAL_SECTION_LEAVE();
1412}
1413
1414static inline hri_ac_compctrl_reg_t hri_ac_read_COMPCTRL_MUXNEG_bf(const void *const hw, uint8_t index)
1415{
1416 uint32_t tmp;
1417 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1418 tmp = (tmp & AC_COMPCTRL_MUXNEG_Msk) >> AC_COMPCTRL_MUXNEG_Pos;
1419 return tmp;
1420}
1421
1422static inline void hri_ac_set_COMPCTRL_MUXPOS_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t mask)
1423{
1424 AC_CRITICAL_SECTION_ENTER();
1425 ((Ac *)hw)->COMPCTRL[index].reg |= AC_COMPCTRL_MUXPOS(mask);
1426 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1427 AC_CRITICAL_SECTION_LEAVE();
1428}
1429
1430static inline hri_ac_compctrl_reg_t hri_ac_get_COMPCTRL_MUXPOS_bf(const void *const hw, uint8_t index,
1431 hri_ac_compctrl_reg_t mask)
1432{
1433 uint32_t tmp;
1434 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1435 tmp = (tmp & AC_COMPCTRL_MUXPOS(mask)) >> AC_COMPCTRL_MUXPOS_Pos;
1436 return tmp;
1437}
1438
1439static inline void hri_ac_write_COMPCTRL_MUXPOS_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t data)
1440{
1441 uint32_t tmp;
1442 AC_CRITICAL_SECTION_ENTER();
1443 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1444 tmp &= ~AC_COMPCTRL_MUXPOS_Msk;
1445 tmp |= AC_COMPCTRL_MUXPOS(data);
1446 ((Ac *)hw)->COMPCTRL[index].reg = tmp;
1447 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1448 AC_CRITICAL_SECTION_LEAVE();
1449}
1450
1451static inline void hri_ac_clear_COMPCTRL_MUXPOS_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t mask)
1452{
1453 AC_CRITICAL_SECTION_ENTER();
1454 ((Ac *)hw)->COMPCTRL[index].reg &= ~AC_COMPCTRL_MUXPOS(mask);
1455 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1456 AC_CRITICAL_SECTION_LEAVE();
1457}
1458
1459static inline void hri_ac_toggle_COMPCTRL_MUXPOS_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t mask)
1460{
1461 AC_CRITICAL_SECTION_ENTER();
1462 ((Ac *)hw)->COMPCTRL[index].reg ^= AC_COMPCTRL_MUXPOS(mask);
1463 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1464 AC_CRITICAL_SECTION_LEAVE();
1465}
1466
1467static inline hri_ac_compctrl_reg_t hri_ac_read_COMPCTRL_MUXPOS_bf(const void *const hw, uint8_t index)
1468{
1469 uint32_t tmp;
1470 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1471 tmp = (tmp & AC_COMPCTRL_MUXPOS_Msk) >> AC_COMPCTRL_MUXPOS_Pos;
1472 return tmp;
1473}
1474
1475static inline void hri_ac_set_COMPCTRL_SPEED_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t mask)
1476{
1477 AC_CRITICAL_SECTION_ENTER();
1478 ((Ac *)hw)->COMPCTRL[index].reg |= AC_COMPCTRL_SPEED(mask);
1479 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1480 AC_CRITICAL_SECTION_LEAVE();
1481}
1482
1483static inline hri_ac_compctrl_reg_t hri_ac_get_COMPCTRL_SPEED_bf(const void *const hw, uint8_t index,
1484 hri_ac_compctrl_reg_t mask)
1485{
1486 uint32_t tmp;
1487 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1488 tmp = (tmp & AC_COMPCTRL_SPEED(mask)) >> AC_COMPCTRL_SPEED_Pos;
1489 return tmp;
1490}
1491
1492static inline void hri_ac_write_COMPCTRL_SPEED_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t data)
1493{
1494 uint32_t tmp;
1495 AC_CRITICAL_SECTION_ENTER();
1496 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1497 tmp &= ~AC_COMPCTRL_SPEED_Msk;
1498 tmp |= AC_COMPCTRL_SPEED(data);
1499 ((Ac *)hw)->COMPCTRL[index].reg = tmp;
1500 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1501 AC_CRITICAL_SECTION_LEAVE();
1502}
1503
1504static inline void hri_ac_clear_COMPCTRL_SPEED_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t mask)
1505{
1506 AC_CRITICAL_SECTION_ENTER();
1507 ((Ac *)hw)->COMPCTRL[index].reg &= ~AC_COMPCTRL_SPEED(mask);
1508 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1509 AC_CRITICAL_SECTION_LEAVE();
1510}
1511
1512static inline void hri_ac_toggle_COMPCTRL_SPEED_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t mask)
1513{
1514 AC_CRITICAL_SECTION_ENTER();
1515 ((Ac *)hw)->COMPCTRL[index].reg ^= AC_COMPCTRL_SPEED(mask);
1516 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1517 AC_CRITICAL_SECTION_LEAVE();
1518}
1519
1520static inline hri_ac_compctrl_reg_t hri_ac_read_COMPCTRL_SPEED_bf(const void *const hw, uint8_t index)
1521{
1522 uint32_t tmp;
1523 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1524 tmp = (tmp & AC_COMPCTRL_SPEED_Msk) >> AC_COMPCTRL_SPEED_Pos;
1525 return tmp;
1526}
1527
1528static inline void hri_ac_set_COMPCTRL_HYST_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t mask)
1529{
1530 AC_CRITICAL_SECTION_ENTER();
1531 ((Ac *)hw)->COMPCTRL[index].reg |= AC_COMPCTRL_HYST(mask);
1532 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1533 AC_CRITICAL_SECTION_LEAVE();
1534}
1535
1536static inline hri_ac_compctrl_reg_t hri_ac_get_COMPCTRL_HYST_bf(const void *const hw, uint8_t index,
1537 hri_ac_compctrl_reg_t mask)
1538{
1539 uint32_t tmp;
1540 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1541 tmp = (tmp & AC_COMPCTRL_HYST(mask)) >> AC_COMPCTRL_HYST_Pos;
1542 return tmp;
1543}
1544
1545static inline void hri_ac_write_COMPCTRL_HYST_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t data)
1546{
1547 uint32_t tmp;
1548 AC_CRITICAL_SECTION_ENTER();
1549 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1550 tmp &= ~AC_COMPCTRL_HYST_Msk;
1551 tmp |= AC_COMPCTRL_HYST(data);
1552 ((Ac *)hw)->COMPCTRL[index].reg = tmp;
1553 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1554 AC_CRITICAL_SECTION_LEAVE();
1555}
1556
1557static inline void hri_ac_clear_COMPCTRL_HYST_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t mask)
1558{
1559 AC_CRITICAL_SECTION_ENTER();
1560 ((Ac *)hw)->COMPCTRL[index].reg &= ~AC_COMPCTRL_HYST(mask);
1561 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1562 AC_CRITICAL_SECTION_LEAVE();
1563}
1564
1565static inline void hri_ac_toggle_COMPCTRL_HYST_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t mask)
1566{
1567 AC_CRITICAL_SECTION_ENTER();
1568 ((Ac *)hw)->COMPCTRL[index].reg ^= AC_COMPCTRL_HYST(mask);
1569 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1570 AC_CRITICAL_SECTION_LEAVE();
1571}
1572
1573static inline hri_ac_compctrl_reg_t hri_ac_read_COMPCTRL_HYST_bf(const void *const hw, uint8_t index)
1574{
1575 uint32_t tmp;
1576 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1577 tmp = (tmp & AC_COMPCTRL_HYST_Msk) >> AC_COMPCTRL_HYST_Pos;
1578 return tmp;
1579}
1580
1581static inline void hri_ac_set_COMPCTRL_FLEN_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t mask)
1582{
1583 AC_CRITICAL_SECTION_ENTER();
1584 ((Ac *)hw)->COMPCTRL[index].reg |= AC_COMPCTRL_FLEN(mask);
1585 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1586 AC_CRITICAL_SECTION_LEAVE();
1587}
1588
1589static inline hri_ac_compctrl_reg_t hri_ac_get_COMPCTRL_FLEN_bf(const void *const hw, uint8_t index,
1590 hri_ac_compctrl_reg_t mask)
1591{
1592 uint32_t tmp;
1593 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1594 tmp = (tmp & AC_COMPCTRL_FLEN(mask)) >> AC_COMPCTRL_FLEN_Pos;
1595 return tmp;
1596}
1597
1598static inline void hri_ac_write_COMPCTRL_FLEN_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t data)
1599{
1600 uint32_t tmp;
1601 AC_CRITICAL_SECTION_ENTER();
1602 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1603 tmp &= ~AC_COMPCTRL_FLEN_Msk;
1604 tmp |= AC_COMPCTRL_FLEN(data);
1605 ((Ac *)hw)->COMPCTRL[index].reg = tmp;
1606 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1607 AC_CRITICAL_SECTION_LEAVE();
1608}
1609
1610static inline void hri_ac_clear_COMPCTRL_FLEN_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t mask)
1611{
1612 AC_CRITICAL_SECTION_ENTER();
1613 ((Ac *)hw)->COMPCTRL[index].reg &= ~AC_COMPCTRL_FLEN(mask);
1614 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1615 AC_CRITICAL_SECTION_LEAVE();
1616}
1617
1618static inline void hri_ac_toggle_COMPCTRL_FLEN_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t mask)
1619{
1620 AC_CRITICAL_SECTION_ENTER();
1621 ((Ac *)hw)->COMPCTRL[index].reg ^= AC_COMPCTRL_FLEN(mask);
1622 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1623 AC_CRITICAL_SECTION_LEAVE();
1624}
1625
1626static inline hri_ac_compctrl_reg_t hri_ac_read_COMPCTRL_FLEN_bf(const void *const hw, uint8_t index)
1627{
1628 uint32_t tmp;
1629 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1630 tmp = (tmp & AC_COMPCTRL_FLEN_Msk) >> AC_COMPCTRL_FLEN_Pos;
1631 return tmp;
1632}
1633
1634static inline void hri_ac_set_COMPCTRL_OUT_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t mask)
1635{
1636 AC_CRITICAL_SECTION_ENTER();
1637 ((Ac *)hw)->COMPCTRL[index].reg |= AC_COMPCTRL_OUT(mask);
1638 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1639 AC_CRITICAL_SECTION_LEAVE();
1640}
1641
1642static inline hri_ac_compctrl_reg_t hri_ac_get_COMPCTRL_OUT_bf(const void *const hw, uint8_t index,
1643 hri_ac_compctrl_reg_t mask)
1644{
1645 uint32_t tmp;
1646 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1647 tmp = (tmp & AC_COMPCTRL_OUT(mask)) >> AC_COMPCTRL_OUT_Pos;
1648 return tmp;
1649}
1650
1651static inline void hri_ac_write_COMPCTRL_OUT_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t data)
1652{
1653 uint32_t tmp;
1654 AC_CRITICAL_SECTION_ENTER();
1655 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1656 tmp &= ~AC_COMPCTRL_OUT_Msk;
1657 tmp |= AC_COMPCTRL_OUT(data);
1658 ((Ac *)hw)->COMPCTRL[index].reg = tmp;
1659 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1660 AC_CRITICAL_SECTION_LEAVE();
1661}
1662
1663static inline void hri_ac_clear_COMPCTRL_OUT_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t mask)
1664{
1665 AC_CRITICAL_SECTION_ENTER();
1666 ((Ac *)hw)->COMPCTRL[index].reg &= ~AC_COMPCTRL_OUT(mask);
1667 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1668 AC_CRITICAL_SECTION_LEAVE();
1669}
1670
1671static inline void hri_ac_toggle_COMPCTRL_OUT_bf(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t mask)
1672{
1673 AC_CRITICAL_SECTION_ENTER();
1674 ((Ac *)hw)->COMPCTRL[index].reg ^= AC_COMPCTRL_OUT(mask);
1675 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_MASK);
1676 AC_CRITICAL_SECTION_LEAVE();
1677}
1678
1679static inline hri_ac_compctrl_reg_t hri_ac_read_COMPCTRL_OUT_bf(const void *const hw, uint8_t index)
1680{
1681 uint32_t tmp;
1682 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1683 tmp = (tmp & AC_COMPCTRL_OUT_Msk) >> AC_COMPCTRL_OUT_Pos;
1684 return tmp;
1685}
1686
1687static inline void hri_ac_set_COMPCTRL_reg(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t mask)
1688{
1689 AC_CRITICAL_SECTION_ENTER();
1690 ((Ac *)hw)->COMPCTRL[index].reg |= mask;
1691 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_ENABLE);
1692 AC_CRITICAL_SECTION_LEAVE();
1693}
1694
1695static inline hri_ac_compctrl_reg_t hri_ac_get_COMPCTRL_reg(const void *const hw, uint8_t index,
1696 hri_ac_compctrl_reg_t mask)
1697{
1698 uint32_t tmp;
1699 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_ENABLE);
1700 tmp = ((Ac *)hw)->COMPCTRL[index].reg;
1701 tmp &= mask;
1702 return tmp;
1703}
1704
1705static inline void hri_ac_write_COMPCTRL_reg(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t data)
1706{
1707 AC_CRITICAL_SECTION_ENTER();
1708 ((Ac *)hw)->COMPCTRL[index].reg = data;
1709 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_ENABLE);
1710 AC_CRITICAL_SECTION_LEAVE();
1711}
1712
1713static inline void hri_ac_clear_COMPCTRL_reg(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t mask)
1714{
1715 AC_CRITICAL_SECTION_ENTER();
1716 ((Ac *)hw)->COMPCTRL[index].reg &= ~mask;
1717 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_ENABLE);
1718 AC_CRITICAL_SECTION_LEAVE();
1719}
1720
1721static inline void hri_ac_toggle_COMPCTRL_reg(const void *const hw, uint8_t index, hri_ac_compctrl_reg_t mask)
1722{
1723 AC_CRITICAL_SECTION_ENTER();
1724 ((Ac *)hw)->COMPCTRL[index].reg ^= mask;
1725 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_ENABLE);
1726 AC_CRITICAL_SECTION_LEAVE();
1727}
1728
1729static inline hri_ac_compctrl_reg_t hri_ac_read_COMPCTRL_reg(const void *const hw, uint8_t index)
1730{
1731 hri_ac_wait_for_sync(hw, AC_SYNCBUSY_ENABLE);
1732 return ((Ac *)hw)->COMPCTRL[index].reg;
1733}
1734
1735static inline void hri_ac_set_CALIB_BIAS0_bf(const void *const hw, hri_ac_calib_reg_t mask)
1736{
1737 AC_CRITICAL_SECTION_ENTER();
1738 ((Ac *)hw)->CALIB.reg |= AC_CALIB_BIAS0(mask);
1739 AC_CRITICAL_SECTION_LEAVE();
1740}
1741
1742static inline hri_ac_calib_reg_t hri_ac_get_CALIB_BIAS0_bf(const void *const hw, hri_ac_calib_reg_t mask)
1743{
1744 uint16_t tmp;
1745 tmp = ((Ac *)hw)->CALIB.reg;
1746 tmp = (tmp & AC_CALIB_BIAS0(mask)) >> AC_CALIB_BIAS0_Pos;
1747 return tmp;
1748}
1749
1750static inline void hri_ac_write_CALIB_BIAS0_bf(const void *const hw, hri_ac_calib_reg_t data)
1751{
1752 uint16_t tmp;
1753 AC_CRITICAL_SECTION_ENTER();
1754 tmp = ((Ac *)hw)->CALIB.reg;
1755 tmp &= ~AC_CALIB_BIAS0_Msk;
1756 tmp |= AC_CALIB_BIAS0(data);
1757 ((Ac *)hw)->CALIB.reg = tmp;
1758 AC_CRITICAL_SECTION_LEAVE();
1759}
1760
1761static inline void hri_ac_clear_CALIB_BIAS0_bf(const void *const hw, hri_ac_calib_reg_t mask)
1762{
1763 AC_CRITICAL_SECTION_ENTER();
1764 ((Ac *)hw)->CALIB.reg &= ~AC_CALIB_BIAS0(mask);
1765 AC_CRITICAL_SECTION_LEAVE();
1766}
1767
1768static inline void hri_ac_toggle_CALIB_BIAS0_bf(const void *const hw, hri_ac_calib_reg_t mask)
1769{
1770 AC_CRITICAL_SECTION_ENTER();
1771 ((Ac *)hw)->CALIB.reg ^= AC_CALIB_BIAS0(mask);
1772 AC_CRITICAL_SECTION_LEAVE();
1773}
1774
1775static inline hri_ac_calib_reg_t hri_ac_read_CALIB_BIAS0_bf(const void *const hw)
1776{
1777 uint16_t tmp;
1778 tmp = ((Ac *)hw)->CALIB.reg;
1779 tmp = (tmp & AC_CALIB_BIAS0_Msk) >> AC_CALIB_BIAS0_Pos;
1780 return tmp;
1781}
1782
1783static inline void hri_ac_set_CALIB_reg(const void *const hw, hri_ac_calib_reg_t mask)
1784{
1785 AC_CRITICAL_SECTION_ENTER();
1786 ((Ac *)hw)->CALIB.reg |= mask;
1787 AC_CRITICAL_SECTION_LEAVE();
1788}
1789
1790static inline hri_ac_calib_reg_t hri_ac_get_CALIB_reg(const void *const hw, hri_ac_calib_reg_t mask)
1791{
1792 uint16_t tmp;
1793 tmp = ((Ac *)hw)->CALIB.reg;
1794 tmp &= mask;
1795 return tmp;
1796}
1797
1798static inline void hri_ac_write_CALIB_reg(const void *const hw, hri_ac_calib_reg_t data)
1799{
1800 AC_CRITICAL_SECTION_ENTER();
1801 ((Ac *)hw)->CALIB.reg = data;
1802 AC_CRITICAL_SECTION_LEAVE();
1803}
1804
1805static inline void hri_ac_clear_CALIB_reg(const void *const hw, hri_ac_calib_reg_t mask)
1806{
1807 AC_CRITICAL_SECTION_ENTER();
1808 ((Ac *)hw)->CALIB.reg &= ~mask;
1809 AC_CRITICAL_SECTION_LEAVE();
1810}
1811
1812static inline void hri_ac_toggle_CALIB_reg(const void *const hw, hri_ac_calib_reg_t mask)
1813{
1814 AC_CRITICAL_SECTION_ENTER();
1815 ((Ac *)hw)->CALIB.reg ^= mask;
1816 AC_CRITICAL_SECTION_LEAVE();
1817}
1818
1819static inline hri_ac_calib_reg_t hri_ac_read_CALIB_reg(const void *const hw)
1820{
1821 return ((Ac *)hw)->CALIB.reg;
1822}
1823
1824static inline void hri_ac_write_CTRLB_reg(const void *const hw, hri_ac_ctrlb_reg_t data)
1825{
1826 AC_CRITICAL_SECTION_ENTER();
1827 ((Ac *)hw)->CTRLB.reg = data;
1828 AC_CRITICAL_SECTION_LEAVE();
1829}
1830
1831#ifdef __cplusplus
1832}
1833#endif
1834
1835#endif /* _HRI_AC_E54_H_INCLUDED */
1836#endif /* _SAME54_AC_COMPONENT_ */