blob: c5c48675af9c1588da288ba9cf6a627108b466ef [file] [log] [blame]
Kévin Redon69b92d92019-01-24 16:39:20 +01001/**
2 * \file
3 *
4 * \brief SAM CCL
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_CCL_COMPONENT_
35#ifndef _HRI_CCL_E54_H_INCLUDED_
36#define _HRI_CCL_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_CCL_CRITICAL_SECTIONS)
46#define CCL_CRITICAL_SECTION_ENTER() CRITICAL_SECTION_ENTER()
47#define CCL_CRITICAL_SECTION_LEAVE() CRITICAL_SECTION_LEAVE()
48#else
49#define CCL_CRITICAL_SECTION_ENTER()
50#define CCL_CRITICAL_SECTION_LEAVE()
51#endif
52
53typedef uint32_t hri_ccl_lutctrl_reg_t;
54typedef uint8_t hri_ccl_ctrl_reg_t;
55typedef uint8_t hri_ccl_seqctrl_reg_t;
56
57static inline void hri_ccl_set_CTRL_SWRST_bit(const void *const hw)
58{
59 CCL_CRITICAL_SECTION_ENTER();
60 ((Ccl *)hw)->CTRL.reg |= CCL_CTRL_SWRST;
61 CCL_CRITICAL_SECTION_LEAVE();
62}
63
64static inline bool hri_ccl_get_CTRL_SWRST_bit(const void *const hw)
65{
66 uint8_t tmp;
67 tmp = ((Ccl *)hw)->CTRL.reg;
68 tmp = (tmp & CCL_CTRL_SWRST) >> CCL_CTRL_SWRST_Pos;
69 return (bool)tmp;
70}
71
72static inline void hri_ccl_set_CTRL_ENABLE_bit(const void *const hw)
73{
74 CCL_CRITICAL_SECTION_ENTER();
75 ((Ccl *)hw)->CTRL.reg |= CCL_CTRL_ENABLE;
76 CCL_CRITICAL_SECTION_LEAVE();
77}
78
79static inline bool hri_ccl_get_CTRL_ENABLE_bit(const void *const hw)
80{
81 uint8_t tmp;
82 tmp = ((Ccl *)hw)->CTRL.reg;
83 tmp = (tmp & CCL_CTRL_ENABLE) >> CCL_CTRL_ENABLE_Pos;
84 return (bool)tmp;
85}
86
87static inline void hri_ccl_write_CTRL_ENABLE_bit(const void *const hw, bool value)
88{
89 uint8_t tmp;
90 CCL_CRITICAL_SECTION_ENTER();
91 tmp = ((Ccl *)hw)->CTRL.reg;
92 tmp &= ~CCL_CTRL_ENABLE;
93 tmp |= value << CCL_CTRL_ENABLE_Pos;
94 ((Ccl *)hw)->CTRL.reg = tmp;
95 CCL_CRITICAL_SECTION_LEAVE();
96}
97
98static inline void hri_ccl_clear_CTRL_ENABLE_bit(const void *const hw)
99{
100 CCL_CRITICAL_SECTION_ENTER();
101 ((Ccl *)hw)->CTRL.reg &= ~CCL_CTRL_ENABLE;
102 CCL_CRITICAL_SECTION_LEAVE();
103}
104
105static inline void hri_ccl_toggle_CTRL_ENABLE_bit(const void *const hw)
106{
107 CCL_CRITICAL_SECTION_ENTER();
108 ((Ccl *)hw)->CTRL.reg ^= CCL_CTRL_ENABLE;
109 CCL_CRITICAL_SECTION_LEAVE();
110}
111
112static inline void hri_ccl_set_CTRL_RUNSTDBY_bit(const void *const hw)
113{
114 CCL_CRITICAL_SECTION_ENTER();
115 ((Ccl *)hw)->CTRL.reg |= CCL_CTRL_RUNSTDBY;
116 CCL_CRITICAL_SECTION_LEAVE();
117}
118
119static inline bool hri_ccl_get_CTRL_RUNSTDBY_bit(const void *const hw)
120{
121 uint8_t tmp;
122 tmp = ((Ccl *)hw)->CTRL.reg;
123 tmp = (tmp & CCL_CTRL_RUNSTDBY) >> CCL_CTRL_RUNSTDBY_Pos;
124 return (bool)tmp;
125}
126
127static inline void hri_ccl_write_CTRL_RUNSTDBY_bit(const void *const hw, bool value)
128{
129 uint8_t tmp;
130 CCL_CRITICAL_SECTION_ENTER();
131 tmp = ((Ccl *)hw)->CTRL.reg;
132 tmp &= ~CCL_CTRL_RUNSTDBY;
133 tmp |= value << CCL_CTRL_RUNSTDBY_Pos;
134 ((Ccl *)hw)->CTRL.reg = tmp;
135 CCL_CRITICAL_SECTION_LEAVE();
136}
137
138static inline void hri_ccl_clear_CTRL_RUNSTDBY_bit(const void *const hw)
139{
140 CCL_CRITICAL_SECTION_ENTER();
141 ((Ccl *)hw)->CTRL.reg &= ~CCL_CTRL_RUNSTDBY;
142 CCL_CRITICAL_SECTION_LEAVE();
143}
144
145static inline void hri_ccl_toggle_CTRL_RUNSTDBY_bit(const void *const hw)
146{
147 CCL_CRITICAL_SECTION_ENTER();
148 ((Ccl *)hw)->CTRL.reg ^= CCL_CTRL_RUNSTDBY;
149 CCL_CRITICAL_SECTION_LEAVE();
150}
151
152static inline void hri_ccl_set_CTRL_reg(const void *const hw, hri_ccl_ctrl_reg_t mask)
153{
154 CCL_CRITICAL_SECTION_ENTER();
155 ((Ccl *)hw)->CTRL.reg |= mask;
156 CCL_CRITICAL_SECTION_LEAVE();
157}
158
159static inline hri_ccl_ctrl_reg_t hri_ccl_get_CTRL_reg(const void *const hw, hri_ccl_ctrl_reg_t mask)
160{
161 uint8_t tmp;
162 tmp = ((Ccl *)hw)->CTRL.reg;
163 tmp &= mask;
164 return tmp;
165}
166
167static inline void hri_ccl_write_CTRL_reg(const void *const hw, hri_ccl_ctrl_reg_t data)
168{
169 CCL_CRITICAL_SECTION_ENTER();
170 ((Ccl *)hw)->CTRL.reg = data;
171 CCL_CRITICAL_SECTION_LEAVE();
172}
173
174static inline void hri_ccl_clear_CTRL_reg(const void *const hw, hri_ccl_ctrl_reg_t mask)
175{
176 CCL_CRITICAL_SECTION_ENTER();
177 ((Ccl *)hw)->CTRL.reg &= ~mask;
178 CCL_CRITICAL_SECTION_LEAVE();
179}
180
181static inline void hri_ccl_toggle_CTRL_reg(const void *const hw, hri_ccl_ctrl_reg_t mask)
182{
183 CCL_CRITICAL_SECTION_ENTER();
184 ((Ccl *)hw)->CTRL.reg ^= mask;
185 CCL_CRITICAL_SECTION_LEAVE();
186}
187
188static inline hri_ccl_ctrl_reg_t hri_ccl_read_CTRL_reg(const void *const hw)
189{
190 return ((Ccl *)hw)->CTRL.reg;
191}
192
193static inline void hri_ccl_set_SEQCTRL_SEQSEL_bf(const void *const hw, uint8_t index, hri_ccl_seqctrl_reg_t mask)
194{
195 CCL_CRITICAL_SECTION_ENTER();
196 ((Ccl *)hw)->SEQCTRL[index].reg |= CCL_SEQCTRL_SEQSEL(mask);
197 CCL_CRITICAL_SECTION_LEAVE();
198}
199
200static inline hri_ccl_seqctrl_reg_t hri_ccl_get_SEQCTRL_SEQSEL_bf(const void *const hw, uint8_t index,
201 hri_ccl_seqctrl_reg_t mask)
202{
203 uint8_t tmp;
204 tmp = ((Ccl *)hw)->SEQCTRL[index].reg;
205 tmp = (tmp & CCL_SEQCTRL_SEQSEL(mask)) >> CCL_SEQCTRL_SEQSEL_Pos;
206 return tmp;
207}
208
209static inline void hri_ccl_write_SEQCTRL_SEQSEL_bf(const void *const hw, uint8_t index, hri_ccl_seqctrl_reg_t data)
210{
211 uint8_t tmp;
212 CCL_CRITICAL_SECTION_ENTER();
213 tmp = ((Ccl *)hw)->SEQCTRL[index].reg;
214 tmp &= ~CCL_SEQCTRL_SEQSEL_Msk;
215 tmp |= CCL_SEQCTRL_SEQSEL(data);
216 ((Ccl *)hw)->SEQCTRL[index].reg = tmp;
217 CCL_CRITICAL_SECTION_LEAVE();
218}
219
220static inline void hri_ccl_clear_SEQCTRL_SEQSEL_bf(const void *const hw, uint8_t index, hri_ccl_seqctrl_reg_t mask)
221{
222 CCL_CRITICAL_SECTION_ENTER();
223 ((Ccl *)hw)->SEQCTRL[index].reg &= ~CCL_SEQCTRL_SEQSEL(mask);
224 CCL_CRITICAL_SECTION_LEAVE();
225}
226
227static inline void hri_ccl_toggle_SEQCTRL_SEQSEL_bf(const void *const hw, uint8_t index, hri_ccl_seqctrl_reg_t mask)
228{
229 CCL_CRITICAL_SECTION_ENTER();
230 ((Ccl *)hw)->SEQCTRL[index].reg ^= CCL_SEQCTRL_SEQSEL(mask);
231 CCL_CRITICAL_SECTION_LEAVE();
232}
233
234static inline hri_ccl_seqctrl_reg_t hri_ccl_read_SEQCTRL_SEQSEL_bf(const void *const hw, uint8_t index)
235{
236 uint8_t tmp;
237 tmp = ((Ccl *)hw)->SEQCTRL[index].reg;
238 tmp = (tmp & CCL_SEQCTRL_SEQSEL_Msk) >> CCL_SEQCTRL_SEQSEL_Pos;
239 return tmp;
240}
241
242static inline void hri_ccl_set_SEQCTRL_reg(const void *const hw, uint8_t index, hri_ccl_seqctrl_reg_t mask)
243{
244 CCL_CRITICAL_SECTION_ENTER();
245 ((Ccl *)hw)->SEQCTRL[index].reg |= mask;
246 CCL_CRITICAL_SECTION_LEAVE();
247}
248
249static inline hri_ccl_seqctrl_reg_t hri_ccl_get_SEQCTRL_reg(const void *const hw, uint8_t index,
250 hri_ccl_seqctrl_reg_t mask)
251{
252 uint8_t tmp;
253 tmp = ((Ccl *)hw)->SEQCTRL[index].reg;
254 tmp &= mask;
255 return tmp;
256}
257
258static inline void hri_ccl_write_SEQCTRL_reg(const void *const hw, uint8_t index, hri_ccl_seqctrl_reg_t data)
259{
260 CCL_CRITICAL_SECTION_ENTER();
261 ((Ccl *)hw)->SEQCTRL[index].reg = data;
262 CCL_CRITICAL_SECTION_LEAVE();
263}
264
265static inline void hri_ccl_clear_SEQCTRL_reg(const void *const hw, uint8_t index, hri_ccl_seqctrl_reg_t mask)
266{
267 CCL_CRITICAL_SECTION_ENTER();
268 ((Ccl *)hw)->SEQCTRL[index].reg &= ~mask;
269 CCL_CRITICAL_SECTION_LEAVE();
270}
271
272static inline void hri_ccl_toggle_SEQCTRL_reg(const void *const hw, uint8_t index, hri_ccl_seqctrl_reg_t mask)
273{
274 CCL_CRITICAL_SECTION_ENTER();
275 ((Ccl *)hw)->SEQCTRL[index].reg ^= mask;
276 CCL_CRITICAL_SECTION_LEAVE();
277}
278
279static inline hri_ccl_seqctrl_reg_t hri_ccl_read_SEQCTRL_reg(const void *const hw, uint8_t index)
280{
281 return ((Ccl *)hw)->SEQCTRL[index].reg;
282}
283
284static inline void hri_ccl_set_LUTCTRL_ENABLE_bit(const void *const hw, uint8_t index)
285{
286 CCL_CRITICAL_SECTION_ENTER();
287 ((Ccl *)hw)->LUTCTRL[index].reg |= CCL_LUTCTRL_ENABLE;
288 CCL_CRITICAL_SECTION_LEAVE();
289}
290
291static inline bool hri_ccl_get_LUTCTRL_ENABLE_bit(const void *const hw, uint8_t index)
292{
293 uint32_t tmp;
294 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
295 tmp = (tmp & CCL_LUTCTRL_ENABLE) >> CCL_LUTCTRL_ENABLE_Pos;
296 return (bool)tmp;
297}
298
299static inline void hri_ccl_write_LUTCTRL_ENABLE_bit(const void *const hw, uint8_t index, bool value)
300{
301 uint32_t tmp;
302 CCL_CRITICAL_SECTION_ENTER();
303 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
304 tmp &= ~CCL_LUTCTRL_ENABLE;
305 tmp |= value << CCL_LUTCTRL_ENABLE_Pos;
306 ((Ccl *)hw)->LUTCTRL[index].reg = tmp;
307 CCL_CRITICAL_SECTION_LEAVE();
308}
309
310static inline void hri_ccl_clear_LUTCTRL_ENABLE_bit(const void *const hw, uint8_t index)
311{
312 CCL_CRITICAL_SECTION_ENTER();
313 ((Ccl *)hw)->LUTCTRL[index].reg &= ~CCL_LUTCTRL_ENABLE;
314 CCL_CRITICAL_SECTION_LEAVE();
315}
316
317static inline void hri_ccl_toggle_LUTCTRL_ENABLE_bit(const void *const hw, uint8_t index)
318{
319 CCL_CRITICAL_SECTION_ENTER();
320 ((Ccl *)hw)->LUTCTRL[index].reg ^= CCL_LUTCTRL_ENABLE;
321 CCL_CRITICAL_SECTION_LEAVE();
322}
323
324static inline void hri_ccl_set_LUTCTRL_EDGESEL_bit(const void *const hw, uint8_t index)
325{
326 CCL_CRITICAL_SECTION_ENTER();
327 ((Ccl *)hw)->LUTCTRL[index].reg |= CCL_LUTCTRL_EDGESEL;
328 CCL_CRITICAL_SECTION_LEAVE();
329}
330
331static inline bool hri_ccl_get_LUTCTRL_EDGESEL_bit(const void *const hw, uint8_t index)
332{
333 uint32_t tmp;
334 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
335 tmp = (tmp & CCL_LUTCTRL_EDGESEL) >> CCL_LUTCTRL_EDGESEL_Pos;
336 return (bool)tmp;
337}
338
339static inline void hri_ccl_write_LUTCTRL_EDGESEL_bit(const void *const hw, uint8_t index, bool value)
340{
341 uint32_t tmp;
342 CCL_CRITICAL_SECTION_ENTER();
343 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
344 tmp &= ~CCL_LUTCTRL_EDGESEL;
345 tmp |= value << CCL_LUTCTRL_EDGESEL_Pos;
346 ((Ccl *)hw)->LUTCTRL[index].reg = tmp;
347 CCL_CRITICAL_SECTION_LEAVE();
348}
349
350static inline void hri_ccl_clear_LUTCTRL_EDGESEL_bit(const void *const hw, uint8_t index)
351{
352 CCL_CRITICAL_SECTION_ENTER();
353 ((Ccl *)hw)->LUTCTRL[index].reg &= ~CCL_LUTCTRL_EDGESEL;
354 CCL_CRITICAL_SECTION_LEAVE();
355}
356
357static inline void hri_ccl_toggle_LUTCTRL_EDGESEL_bit(const void *const hw, uint8_t index)
358{
359 CCL_CRITICAL_SECTION_ENTER();
360 ((Ccl *)hw)->LUTCTRL[index].reg ^= CCL_LUTCTRL_EDGESEL;
361 CCL_CRITICAL_SECTION_LEAVE();
362}
363
364static inline void hri_ccl_set_LUTCTRL_INVEI_bit(const void *const hw, uint8_t index)
365{
366 CCL_CRITICAL_SECTION_ENTER();
367 ((Ccl *)hw)->LUTCTRL[index].reg |= CCL_LUTCTRL_INVEI;
368 CCL_CRITICAL_SECTION_LEAVE();
369}
370
371static inline bool hri_ccl_get_LUTCTRL_INVEI_bit(const void *const hw, uint8_t index)
372{
373 uint32_t tmp;
374 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
375 tmp = (tmp & CCL_LUTCTRL_INVEI) >> CCL_LUTCTRL_INVEI_Pos;
376 return (bool)tmp;
377}
378
379static inline void hri_ccl_write_LUTCTRL_INVEI_bit(const void *const hw, uint8_t index, bool value)
380{
381 uint32_t tmp;
382 CCL_CRITICAL_SECTION_ENTER();
383 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
384 tmp &= ~CCL_LUTCTRL_INVEI;
385 tmp |= value << CCL_LUTCTRL_INVEI_Pos;
386 ((Ccl *)hw)->LUTCTRL[index].reg = tmp;
387 CCL_CRITICAL_SECTION_LEAVE();
388}
389
390static inline void hri_ccl_clear_LUTCTRL_INVEI_bit(const void *const hw, uint8_t index)
391{
392 CCL_CRITICAL_SECTION_ENTER();
393 ((Ccl *)hw)->LUTCTRL[index].reg &= ~CCL_LUTCTRL_INVEI;
394 CCL_CRITICAL_SECTION_LEAVE();
395}
396
397static inline void hri_ccl_toggle_LUTCTRL_INVEI_bit(const void *const hw, uint8_t index)
398{
399 CCL_CRITICAL_SECTION_ENTER();
400 ((Ccl *)hw)->LUTCTRL[index].reg ^= CCL_LUTCTRL_INVEI;
401 CCL_CRITICAL_SECTION_LEAVE();
402}
403
404static inline void hri_ccl_set_LUTCTRL_LUTEI_bit(const void *const hw, uint8_t index)
405{
406 CCL_CRITICAL_SECTION_ENTER();
407 ((Ccl *)hw)->LUTCTRL[index].reg |= CCL_LUTCTRL_LUTEI;
408 CCL_CRITICAL_SECTION_LEAVE();
409}
410
411static inline bool hri_ccl_get_LUTCTRL_LUTEI_bit(const void *const hw, uint8_t index)
412{
413 uint32_t tmp;
414 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
415 tmp = (tmp & CCL_LUTCTRL_LUTEI) >> CCL_LUTCTRL_LUTEI_Pos;
416 return (bool)tmp;
417}
418
419static inline void hri_ccl_write_LUTCTRL_LUTEI_bit(const void *const hw, uint8_t index, bool value)
420{
421 uint32_t tmp;
422 CCL_CRITICAL_SECTION_ENTER();
423 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
424 tmp &= ~CCL_LUTCTRL_LUTEI;
425 tmp |= value << CCL_LUTCTRL_LUTEI_Pos;
426 ((Ccl *)hw)->LUTCTRL[index].reg = tmp;
427 CCL_CRITICAL_SECTION_LEAVE();
428}
429
430static inline void hri_ccl_clear_LUTCTRL_LUTEI_bit(const void *const hw, uint8_t index)
431{
432 CCL_CRITICAL_SECTION_ENTER();
433 ((Ccl *)hw)->LUTCTRL[index].reg &= ~CCL_LUTCTRL_LUTEI;
434 CCL_CRITICAL_SECTION_LEAVE();
435}
436
437static inline void hri_ccl_toggle_LUTCTRL_LUTEI_bit(const void *const hw, uint8_t index)
438{
439 CCL_CRITICAL_SECTION_ENTER();
440 ((Ccl *)hw)->LUTCTRL[index].reg ^= CCL_LUTCTRL_LUTEI;
441 CCL_CRITICAL_SECTION_LEAVE();
442}
443
444static inline void hri_ccl_set_LUTCTRL_LUTEO_bit(const void *const hw, uint8_t index)
445{
446 CCL_CRITICAL_SECTION_ENTER();
447 ((Ccl *)hw)->LUTCTRL[index].reg |= CCL_LUTCTRL_LUTEO;
448 CCL_CRITICAL_SECTION_LEAVE();
449}
450
451static inline bool hri_ccl_get_LUTCTRL_LUTEO_bit(const void *const hw, uint8_t index)
452{
453 uint32_t tmp;
454 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
455 tmp = (tmp & CCL_LUTCTRL_LUTEO) >> CCL_LUTCTRL_LUTEO_Pos;
456 return (bool)tmp;
457}
458
459static inline void hri_ccl_write_LUTCTRL_LUTEO_bit(const void *const hw, uint8_t index, bool value)
460{
461 uint32_t tmp;
462 CCL_CRITICAL_SECTION_ENTER();
463 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
464 tmp &= ~CCL_LUTCTRL_LUTEO;
465 tmp |= value << CCL_LUTCTRL_LUTEO_Pos;
466 ((Ccl *)hw)->LUTCTRL[index].reg = tmp;
467 CCL_CRITICAL_SECTION_LEAVE();
468}
469
470static inline void hri_ccl_clear_LUTCTRL_LUTEO_bit(const void *const hw, uint8_t index)
471{
472 CCL_CRITICAL_SECTION_ENTER();
473 ((Ccl *)hw)->LUTCTRL[index].reg &= ~CCL_LUTCTRL_LUTEO;
474 CCL_CRITICAL_SECTION_LEAVE();
475}
476
477static inline void hri_ccl_toggle_LUTCTRL_LUTEO_bit(const void *const hw, uint8_t index)
478{
479 CCL_CRITICAL_SECTION_ENTER();
480 ((Ccl *)hw)->LUTCTRL[index].reg ^= CCL_LUTCTRL_LUTEO;
481 CCL_CRITICAL_SECTION_LEAVE();
482}
483
484static inline void hri_ccl_set_LUTCTRL_FILTSEL_bf(const void *const hw, uint8_t index, hri_ccl_lutctrl_reg_t mask)
485{
486 CCL_CRITICAL_SECTION_ENTER();
487 ((Ccl *)hw)->LUTCTRL[index].reg |= CCL_LUTCTRL_FILTSEL(mask);
488 CCL_CRITICAL_SECTION_LEAVE();
489}
490
491static inline hri_ccl_lutctrl_reg_t hri_ccl_get_LUTCTRL_FILTSEL_bf(const void *const hw, uint8_t index,
492 hri_ccl_lutctrl_reg_t mask)
493{
494 uint32_t tmp;
495 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
496 tmp = (tmp & CCL_LUTCTRL_FILTSEL(mask)) >> CCL_LUTCTRL_FILTSEL_Pos;
497 return tmp;
498}
499
500static inline void hri_ccl_write_LUTCTRL_FILTSEL_bf(const void *const hw, uint8_t index, hri_ccl_lutctrl_reg_t data)
501{
502 uint32_t tmp;
503 CCL_CRITICAL_SECTION_ENTER();
504 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
505 tmp &= ~CCL_LUTCTRL_FILTSEL_Msk;
506 tmp |= CCL_LUTCTRL_FILTSEL(data);
507 ((Ccl *)hw)->LUTCTRL[index].reg = tmp;
508 CCL_CRITICAL_SECTION_LEAVE();
509}
510
511static inline void hri_ccl_clear_LUTCTRL_FILTSEL_bf(const void *const hw, uint8_t index, hri_ccl_lutctrl_reg_t mask)
512{
513 CCL_CRITICAL_SECTION_ENTER();
514 ((Ccl *)hw)->LUTCTRL[index].reg &= ~CCL_LUTCTRL_FILTSEL(mask);
515 CCL_CRITICAL_SECTION_LEAVE();
516}
517
518static inline void hri_ccl_toggle_LUTCTRL_FILTSEL_bf(const void *const hw, uint8_t index, hri_ccl_lutctrl_reg_t mask)
519{
520 CCL_CRITICAL_SECTION_ENTER();
521 ((Ccl *)hw)->LUTCTRL[index].reg ^= CCL_LUTCTRL_FILTSEL(mask);
522 CCL_CRITICAL_SECTION_LEAVE();
523}
524
525static inline hri_ccl_lutctrl_reg_t hri_ccl_read_LUTCTRL_FILTSEL_bf(const void *const hw, uint8_t index)
526{
527 uint32_t tmp;
528 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
529 tmp = (tmp & CCL_LUTCTRL_FILTSEL_Msk) >> CCL_LUTCTRL_FILTSEL_Pos;
530 return tmp;
531}
532
533static inline void hri_ccl_set_LUTCTRL_INSEL0_bf(const void *const hw, uint8_t index, hri_ccl_lutctrl_reg_t mask)
534{
535 CCL_CRITICAL_SECTION_ENTER();
536 ((Ccl *)hw)->LUTCTRL[index].reg |= CCL_LUTCTRL_INSEL0(mask);
537 CCL_CRITICAL_SECTION_LEAVE();
538}
539
540static inline hri_ccl_lutctrl_reg_t hri_ccl_get_LUTCTRL_INSEL0_bf(const void *const hw, uint8_t index,
541 hri_ccl_lutctrl_reg_t mask)
542{
543 uint32_t tmp;
544 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
545 tmp = (tmp & CCL_LUTCTRL_INSEL0(mask)) >> CCL_LUTCTRL_INSEL0_Pos;
546 return tmp;
547}
548
549static inline void hri_ccl_write_LUTCTRL_INSEL0_bf(const void *const hw, uint8_t index, hri_ccl_lutctrl_reg_t data)
550{
551 uint32_t tmp;
552 CCL_CRITICAL_SECTION_ENTER();
553 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
554 tmp &= ~CCL_LUTCTRL_INSEL0_Msk;
555 tmp |= CCL_LUTCTRL_INSEL0(data);
556 ((Ccl *)hw)->LUTCTRL[index].reg = tmp;
557 CCL_CRITICAL_SECTION_LEAVE();
558}
559
560static inline void hri_ccl_clear_LUTCTRL_INSEL0_bf(const void *const hw, uint8_t index, hri_ccl_lutctrl_reg_t mask)
561{
562 CCL_CRITICAL_SECTION_ENTER();
563 ((Ccl *)hw)->LUTCTRL[index].reg &= ~CCL_LUTCTRL_INSEL0(mask);
564 CCL_CRITICAL_SECTION_LEAVE();
565}
566
567static inline void hri_ccl_toggle_LUTCTRL_INSEL0_bf(const void *const hw, uint8_t index, hri_ccl_lutctrl_reg_t mask)
568{
569 CCL_CRITICAL_SECTION_ENTER();
570 ((Ccl *)hw)->LUTCTRL[index].reg ^= CCL_LUTCTRL_INSEL0(mask);
571 CCL_CRITICAL_SECTION_LEAVE();
572}
573
574static inline hri_ccl_lutctrl_reg_t hri_ccl_read_LUTCTRL_INSEL0_bf(const void *const hw, uint8_t index)
575{
576 uint32_t tmp;
577 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
578 tmp = (tmp & CCL_LUTCTRL_INSEL0_Msk) >> CCL_LUTCTRL_INSEL0_Pos;
579 return tmp;
580}
581
582static inline void hri_ccl_set_LUTCTRL_INSEL1_bf(const void *const hw, uint8_t index, hri_ccl_lutctrl_reg_t mask)
583{
584 CCL_CRITICAL_SECTION_ENTER();
585 ((Ccl *)hw)->LUTCTRL[index].reg |= CCL_LUTCTRL_INSEL1(mask);
586 CCL_CRITICAL_SECTION_LEAVE();
587}
588
589static inline hri_ccl_lutctrl_reg_t hri_ccl_get_LUTCTRL_INSEL1_bf(const void *const hw, uint8_t index,
590 hri_ccl_lutctrl_reg_t mask)
591{
592 uint32_t tmp;
593 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
594 tmp = (tmp & CCL_LUTCTRL_INSEL1(mask)) >> CCL_LUTCTRL_INSEL1_Pos;
595 return tmp;
596}
597
598static inline void hri_ccl_write_LUTCTRL_INSEL1_bf(const void *const hw, uint8_t index, hri_ccl_lutctrl_reg_t data)
599{
600 uint32_t tmp;
601 CCL_CRITICAL_SECTION_ENTER();
602 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
603 tmp &= ~CCL_LUTCTRL_INSEL1_Msk;
604 tmp |= CCL_LUTCTRL_INSEL1(data);
605 ((Ccl *)hw)->LUTCTRL[index].reg = tmp;
606 CCL_CRITICAL_SECTION_LEAVE();
607}
608
609static inline void hri_ccl_clear_LUTCTRL_INSEL1_bf(const void *const hw, uint8_t index, hri_ccl_lutctrl_reg_t mask)
610{
611 CCL_CRITICAL_SECTION_ENTER();
612 ((Ccl *)hw)->LUTCTRL[index].reg &= ~CCL_LUTCTRL_INSEL1(mask);
613 CCL_CRITICAL_SECTION_LEAVE();
614}
615
616static inline void hri_ccl_toggle_LUTCTRL_INSEL1_bf(const void *const hw, uint8_t index, hri_ccl_lutctrl_reg_t mask)
617{
618 CCL_CRITICAL_SECTION_ENTER();
619 ((Ccl *)hw)->LUTCTRL[index].reg ^= CCL_LUTCTRL_INSEL1(mask);
620 CCL_CRITICAL_SECTION_LEAVE();
621}
622
623static inline hri_ccl_lutctrl_reg_t hri_ccl_read_LUTCTRL_INSEL1_bf(const void *const hw, uint8_t index)
624{
625 uint32_t tmp;
626 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
627 tmp = (tmp & CCL_LUTCTRL_INSEL1_Msk) >> CCL_LUTCTRL_INSEL1_Pos;
628 return tmp;
629}
630
631static inline void hri_ccl_set_LUTCTRL_INSEL2_bf(const void *const hw, uint8_t index, hri_ccl_lutctrl_reg_t mask)
632{
633 CCL_CRITICAL_SECTION_ENTER();
634 ((Ccl *)hw)->LUTCTRL[index].reg |= CCL_LUTCTRL_INSEL2(mask);
635 CCL_CRITICAL_SECTION_LEAVE();
636}
637
638static inline hri_ccl_lutctrl_reg_t hri_ccl_get_LUTCTRL_INSEL2_bf(const void *const hw, uint8_t index,
639 hri_ccl_lutctrl_reg_t mask)
640{
641 uint32_t tmp;
642 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
643 tmp = (tmp & CCL_LUTCTRL_INSEL2(mask)) >> CCL_LUTCTRL_INSEL2_Pos;
644 return tmp;
645}
646
647static inline void hri_ccl_write_LUTCTRL_INSEL2_bf(const void *const hw, uint8_t index, hri_ccl_lutctrl_reg_t data)
648{
649 uint32_t tmp;
650 CCL_CRITICAL_SECTION_ENTER();
651 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
652 tmp &= ~CCL_LUTCTRL_INSEL2_Msk;
653 tmp |= CCL_LUTCTRL_INSEL2(data);
654 ((Ccl *)hw)->LUTCTRL[index].reg = tmp;
655 CCL_CRITICAL_SECTION_LEAVE();
656}
657
658static inline void hri_ccl_clear_LUTCTRL_INSEL2_bf(const void *const hw, uint8_t index, hri_ccl_lutctrl_reg_t mask)
659{
660 CCL_CRITICAL_SECTION_ENTER();
661 ((Ccl *)hw)->LUTCTRL[index].reg &= ~CCL_LUTCTRL_INSEL2(mask);
662 CCL_CRITICAL_SECTION_LEAVE();
663}
664
665static inline void hri_ccl_toggle_LUTCTRL_INSEL2_bf(const void *const hw, uint8_t index, hri_ccl_lutctrl_reg_t mask)
666{
667 CCL_CRITICAL_SECTION_ENTER();
668 ((Ccl *)hw)->LUTCTRL[index].reg ^= CCL_LUTCTRL_INSEL2(mask);
669 CCL_CRITICAL_SECTION_LEAVE();
670}
671
672static inline hri_ccl_lutctrl_reg_t hri_ccl_read_LUTCTRL_INSEL2_bf(const void *const hw, uint8_t index)
673{
674 uint32_t tmp;
675 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
676 tmp = (tmp & CCL_LUTCTRL_INSEL2_Msk) >> CCL_LUTCTRL_INSEL2_Pos;
677 return tmp;
678}
679
680static inline void hri_ccl_set_LUTCTRL_TRUTH_bf(const void *const hw, uint8_t index, hri_ccl_lutctrl_reg_t mask)
681{
682 CCL_CRITICAL_SECTION_ENTER();
683 ((Ccl *)hw)->LUTCTRL[index].reg |= CCL_LUTCTRL_TRUTH(mask);
684 CCL_CRITICAL_SECTION_LEAVE();
685}
686
687static inline hri_ccl_lutctrl_reg_t hri_ccl_get_LUTCTRL_TRUTH_bf(const void *const hw, uint8_t index,
688 hri_ccl_lutctrl_reg_t mask)
689{
690 uint32_t tmp;
691 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
692 tmp = (tmp & CCL_LUTCTRL_TRUTH(mask)) >> CCL_LUTCTRL_TRUTH_Pos;
693 return tmp;
694}
695
696static inline void hri_ccl_write_LUTCTRL_TRUTH_bf(const void *const hw, uint8_t index, hri_ccl_lutctrl_reg_t data)
697{
698 uint32_t tmp;
699 CCL_CRITICAL_SECTION_ENTER();
700 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
701 tmp &= ~CCL_LUTCTRL_TRUTH_Msk;
702 tmp |= CCL_LUTCTRL_TRUTH(data);
703 ((Ccl *)hw)->LUTCTRL[index].reg = tmp;
704 CCL_CRITICAL_SECTION_LEAVE();
705}
706
707static inline void hri_ccl_clear_LUTCTRL_TRUTH_bf(const void *const hw, uint8_t index, hri_ccl_lutctrl_reg_t mask)
708{
709 CCL_CRITICAL_SECTION_ENTER();
710 ((Ccl *)hw)->LUTCTRL[index].reg &= ~CCL_LUTCTRL_TRUTH(mask);
711 CCL_CRITICAL_SECTION_LEAVE();
712}
713
714static inline void hri_ccl_toggle_LUTCTRL_TRUTH_bf(const void *const hw, uint8_t index, hri_ccl_lutctrl_reg_t mask)
715{
716 CCL_CRITICAL_SECTION_ENTER();
717 ((Ccl *)hw)->LUTCTRL[index].reg ^= CCL_LUTCTRL_TRUTH(mask);
718 CCL_CRITICAL_SECTION_LEAVE();
719}
720
721static inline hri_ccl_lutctrl_reg_t hri_ccl_read_LUTCTRL_TRUTH_bf(const void *const hw, uint8_t index)
722{
723 uint32_t tmp;
724 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
725 tmp = (tmp & CCL_LUTCTRL_TRUTH_Msk) >> CCL_LUTCTRL_TRUTH_Pos;
726 return tmp;
727}
728
729static inline void hri_ccl_set_LUTCTRL_reg(const void *const hw, uint8_t index, hri_ccl_lutctrl_reg_t mask)
730{
731 CCL_CRITICAL_SECTION_ENTER();
732 ((Ccl *)hw)->LUTCTRL[index].reg |= mask;
733 CCL_CRITICAL_SECTION_LEAVE();
734}
735
736static inline hri_ccl_lutctrl_reg_t hri_ccl_get_LUTCTRL_reg(const void *const hw, uint8_t index,
737 hri_ccl_lutctrl_reg_t mask)
738{
739 uint32_t tmp;
740 tmp = ((Ccl *)hw)->LUTCTRL[index].reg;
741 tmp &= mask;
742 return tmp;
743}
744
745static inline void hri_ccl_write_LUTCTRL_reg(const void *const hw, uint8_t index, hri_ccl_lutctrl_reg_t data)
746{
747 CCL_CRITICAL_SECTION_ENTER();
748 ((Ccl *)hw)->LUTCTRL[index].reg = data;
749 CCL_CRITICAL_SECTION_LEAVE();
750}
751
752static inline void hri_ccl_clear_LUTCTRL_reg(const void *const hw, uint8_t index, hri_ccl_lutctrl_reg_t mask)
753{
754 CCL_CRITICAL_SECTION_ENTER();
755 ((Ccl *)hw)->LUTCTRL[index].reg &= ~mask;
756 CCL_CRITICAL_SECTION_LEAVE();
757}
758
759static inline void hri_ccl_toggle_LUTCTRL_reg(const void *const hw, uint8_t index, hri_ccl_lutctrl_reg_t mask)
760{
761 CCL_CRITICAL_SECTION_ENTER();
762 ((Ccl *)hw)->LUTCTRL[index].reg ^= mask;
763 CCL_CRITICAL_SECTION_LEAVE();
764}
765
766static inline hri_ccl_lutctrl_reg_t hri_ccl_read_LUTCTRL_reg(const void *const hw, uint8_t index)
767{
768 return ((Ccl *)hw)->LUTCTRL[index].reg;
769}
770
771#ifdef __cplusplus
772}
773#endif
774
775#endif /* _HRI_CCL_E54_H_INCLUDED */
776#endif /* _SAME54_CCL_COMPONENT_ */