1 //------------------------------------------------------------------------------
2 // Copyright 2012 (c) Silicon Laboratories Inc.
3 //
4 // SPDX-License-Identifier: Zlib
5 //
6 // This siHAL software is provided 'as-is', without any express or implied
7 // warranty. In no event will the authors be held liable for any damages
8 // arising from the use of this software.
9 //
10 // Permission is granted to anyone to use this software for any purpose,
11 // including commercial applications, and to alter it and redistribute it
12 // freely, subject to the following restrictions:
13 //
14 // 1. The origin of this software must not be misrepresented; you must not
15 //    claim that you wrote the original software. If you use this software
16 //    in a product, an acknowledgment in the product documentation would be
17 //    appreciated but is not required.
18 // 2. Altered source versions must be plainly marked as such, and must not be
19 //    misrepresented as being the original software.
20 // 3. This notice may not be removed or altered from any source distribution.
21 //------------------------------------------------------------------------------
22 /// @file SI32_USBEP_A_Type.c
23 //
24 // Script: 0.58
25 // HAL Source: 0.5
26 // Version: 3
27 
28 #include <assert.h>
29 #include "si32WideTypes.h"
30 #include "SI32_USBEP_A_Type.h"
31 
32 
33 //-----------------------------------------------------------------------------
34 // _SI32_USBEP_A_initialize
35 //
36 //-----------------------------------------------------------------------------
37 void
_SI32_USBEP_A_initialize(SI32_USBEP_A_Type * basePointer,uint32_t epmpsize,uint32_t epcontrol)38 _SI32_USBEP_A_initialize(
39    SI32_USBEP_A_Type * basePointer,
40    // Write to EPMPSIZE register.
41    uint32_t epmpsize,
42    // Write to EPCONTROL register.
43    uint32_t epcontrol)
44 {
45    //{{
46    basePointer->EPMPSIZE.U32 = epmpsize;
47    basePointer->EPCONTROL.U32 = epcontrol;
48    //}}
49 }
50 
51 //-----------------------------------------------------------------------------
52 // _SI32_USBEP_A_write_epmpsize
53 //
54 // Writes to EPMPSIZE register.
55 //-----------------------------------------------------------------------------
56 void
_SI32_USBEP_A_write_epmpsize(SI32_USBEP_A_Type * basePointer,uint32_t epmpsize)57 _SI32_USBEP_A_write_epmpsize(
58    SI32_USBEP_A_Type * basePointer,
59    uint32_t epmpsize)
60 {
61    //{{
62    basePointer->EPMPSIZE.U32 = epmpsize;
63    //}}
64 }
65 
66 //-----------------------------------------------------------------------------
67 // _SI32_USBEP_A_read_epmpsize
68 //
69 // Reads EPMPSIZE register.
70 //-----------------------------------------------------------------------------
71 uint32_t
_SI32_USBEP_A_read_epmpsize(SI32_USBEP_A_Type * basePointer)72 _SI32_USBEP_A_read_epmpsize(
73    SI32_USBEP_A_Type * basePointer)
74 {
75    //{{
76    return basePointer->EPMPSIZE.U32;
77    //}}
78 }
79 
80 //-----------------------------------------------------------------------------
81 // _SI32_USBEP_A_set_in_max_packet_size
82 //
83 //-----------------------------------------------------------------------------
84 void
_SI32_USBEP_A_set_in_max_packet_size(SI32_USBEP_A_Type * basePointer,uint32_t size)85 _SI32_USBEP_A_set_in_max_packet_size(
86    SI32_USBEP_A_Type * basePointer,
87    // Sets size in increments of 8, and a value of 128 is interpreted as
88    // 1023 bytes.
89    uint32_t size)
90 {
91    assert(size < 256);   // size < 2^8
92    //{{
93    basePointer->EPMPSIZE.IMAXP = size;
94    //}}
95 }
96 
97 //-----------------------------------------------------------------------------
98 // _SI32_USBEP_A_get_in_max_packet_size
99 //
100 //-----------------------------------------------------------------------------
101 uint32_t
_SI32_USBEP_A_get_in_max_packet_size(SI32_USBEP_A_Type * basePointer)102 _SI32_USBEP_A_get_in_max_packet_size(
103    SI32_USBEP_A_Type * basePointer)
104 {
105    //{{
106    return (uint32_t) (basePointer->EPMPSIZE.IMAXP);
107    //}}
108 }
109 
110 //-----------------------------------------------------------------------------
111 // _SI32_USBEP_A_set_out_max_packet_size
112 //
113 //-----------------------------------------------------------------------------
114 void
_SI32_USBEP_A_set_out_max_packet_size(SI32_USBEP_A_Type * basePointer,uint32_t size)115 _SI32_USBEP_A_set_out_max_packet_size(
116    SI32_USBEP_A_Type * basePointer,
117    // Sets size in increments of 8, and a value of 128 is interpreted as
118    // 1023 bytes.
119    uint32_t size)
120 {
121    assert(size < 256);   // size < 2^8
122    //{{
123    basePointer->EPMPSIZE.OMAXP = size;
124    //}}
125 }
126 
127 //-----------------------------------------------------------------------------
128 // _SI32_USBEP_A_get_out_max_packet_size
129 //
130 //-----------------------------------------------------------------------------
131 uint32_t
_SI32_USBEP_A_get_out_max_packet_size(SI32_USBEP_A_Type * basePointer)132 _SI32_USBEP_A_get_out_max_packet_size(
133    SI32_USBEP_A_Type * basePointer)
134 {
135    //{{
136    return (uint32_t) (basePointer->EPMPSIZE.OMAXP);
137    //}}
138 }
139 
140 //-----------------------------------------------------------------------------
141 // _SI32_USBEP_A_write_epcontrol
142 //
143 // Writes to EPCONTROL register.
144 //-----------------------------------------------------------------------------
145 void
_SI32_USBEP_A_write_epcontrol(SI32_USBEP_A_Type * basePointer,uint32_t epcontrol)146 _SI32_USBEP_A_write_epcontrol(
147    SI32_USBEP_A_Type * basePointer,
148    uint32_t epcontrol)
149 {
150    //{{
151    basePointer->EPCONTROL.U32 = epcontrol;
152    //}}
153 }
154 
155 //-----------------------------------------------------------------------------
156 // _SI32_USBEP_A_read_epcontrol
157 //
158 // Read EPCONTROL register.
159 //-----------------------------------------------------------------------------
160 uint32_t
_SI32_USBEP_A_read_epcontrol(SI32_USBEP_A_Type * basePointer)161 _SI32_USBEP_A_read_epcontrol(
162    SI32_USBEP_A_Type * basePointer)
163 {
164    //{{
165    return basePointer->EPCONTROL.U32;
166    //}}
167 }
168 
169 //-----------------------------------------------------------------------------
170 // _SI32_USBEP_A_set_in_packet_ready
171 //
172 //-----------------------------------------------------------------------------
173 void
_SI32_USBEP_A_set_in_packet_ready(SI32_USBEP_A_Type * basePointer)174 _SI32_USBEP_A_set_in_packet_ready(
175    SI32_USBEP_A_Type * basePointer)
176 {
177    //{{
178    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_IPRDYI_SET_U32);
179    //}}
180 }
181 
182 //-----------------------------------------------------------------------------
183 // _SI32_USBEP_A_is_in_fifo_empty
184 //
185 // Returns TRUE if FIFO empty, otherwise returns FALSE.
186 //-----------------------------------------------------------------------------
187 bool
_SI32_USBEP_A_is_in_fifo_empty(SI32_USBEP_A_Type * basePointer)188 _SI32_USBEP_A_is_in_fifo_empty(
189    SI32_USBEP_A_Type * basePointer)
190 {
191    //{{
192    return (bool) !(basePointer->EPCONTROL.IFIFONEF);
193    //}}
194 }
195 
196 //-----------------------------------------------------------------------------
197 // _SI32_USBEP_A_clear_in_data_underrun
198 //
199 //-----------------------------------------------------------------------------
200 void
_SI32_USBEP_A_clear_in_data_underrun(SI32_USBEP_A_Type * basePointer)201 _SI32_USBEP_A_clear_in_data_underrun(
202    SI32_USBEP_A_Type * basePointer)
203 {
204    //{{
205    basePointer->EPCONTROL.U32  = USBEP_EPCONTROL_CLEAR_MASK( basePointer, SI32_USBEP_A_EPCONTROL_IURF_MASK);
206    //}}
207 }
208 
209 //-----------------------------------------------------------------------------
210 // _SI32_USBEP_A_is_in_data_underrun_set
211 //
212 // In Isochronous mode, True indicates a zero length packet sent after an
213 // IN.  In Interrupt/Bulk mode, True indicates a NAK sent in response to
214 // an IN token.
215 //-----------------------------------------------------------------------------
216 bool
_SI32_USBEP_A_is_in_data_underrun_set(SI32_USBEP_A_Type * basePointer)217 _SI32_USBEP_A_is_in_data_underrun_set(
218    SI32_USBEP_A_Type * basePointer)
219 {
220    //{{
221    return (bool)(basePointer->EPCONTROL.IURF);
222    //}}
223 }
224 
225 //-----------------------------------------------------------------------------
226 // _SI32_USBEP_A_flush_in_fifo
227 //
228 //-----------------------------------------------------------------------------
229 void
_SI32_USBEP_A_flush_in_fifo(SI32_USBEP_A_Type * basePointer)230 _SI32_USBEP_A_flush_in_fifo(
231    SI32_USBEP_A_Type * basePointer)
232 {
233    //{{
234    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_IFIFOFL_SET_U32);
235    //}}
236 }
237 
238 //-----------------------------------------------------------------------------
239 // _SI32_USBEP_A_send_in_stall
240 //
241 //-----------------------------------------------------------------------------
242 void
_SI32_USBEP_A_send_in_stall(SI32_USBEP_A_Type * basePointer)243 _SI32_USBEP_A_send_in_stall(
244    SI32_USBEP_A_Type * basePointer)
245 {
246    //{{
247    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_ISDSTL_SET_U32);
248    //}}
249 }
250 
251 //-----------------------------------------------------------------------------
252 // _SI32_USBEP_A_stop_in_stall
253 //
254 //-----------------------------------------------------------------------------
255 void
_SI32_USBEP_A_stop_in_stall(SI32_USBEP_A_Type * basePointer)256 _SI32_USBEP_A_stop_in_stall(
257    SI32_USBEP_A_Type * basePointer)
258 {
259    //{{
260    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_ISDSTL_NOT_SET_U32);
261    //}}
262 }
263 
264 //-----------------------------------------------------------------------------
265 // _SI32_USBEP_A_is_in_stall_sent
266 //
267 // Returns TRUE if stall transmitted, otherwise returns FALSE.
268 //-----------------------------------------------------------------------------
269 bool
_SI32_USBEP_A_is_in_stall_sent(SI32_USBEP_A_Type * basePointer)270 _SI32_USBEP_A_is_in_stall_sent(
271    SI32_USBEP_A_Type * basePointer)
272 {
273    //{{
274    return (bool) (basePointer->EPCONTROL.ISTSTLI);
275    //}}
276 }
277 
278 //-----------------------------------------------------------------------------
279 // _SI32_USBEP_A_clear_in_stall_sent
280 //
281 //-----------------------------------------------------------------------------
282 void
_SI32_USBEP_A_clear_in_stall_sent(SI32_USBEP_A_Type * basePointer)283 _SI32_USBEP_A_clear_in_stall_sent(
284    SI32_USBEP_A_Type * basePointer)
285 {
286    //{{
287    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_ISTSTLI_NOT_SET_U32);
288    //}}
289 }
290 
291 //-----------------------------------------------------------------------------
292 // _SI32_USBEP_A_reset_in_data_toggle
293 //
294 //-----------------------------------------------------------------------------
295 void
_SI32_USBEP_A_reset_in_data_toggle(SI32_USBEP_A_Type * basePointer)296 _SI32_USBEP_A_reset_in_data_toggle(
297    SI32_USBEP_A_Type * basePointer)
298 {
299    //{{
300   basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_ICLRDT_RESET_U32);
301    //}}
302 }
303 
304 //-----------------------------------------------------------------------------
305 // _SI32_USBEP_A_enable_split_mode
306 //
307 //-----------------------------------------------------------------------------
308 void
_SI32_USBEP_A_enable_split_mode(SI32_USBEP_A_Type * basePointer)309 _SI32_USBEP_A_enable_split_mode(
310    SI32_USBEP_A_Type * basePointer)
311 {
312    //{{
313    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_SPLITEN_ENABLED_U32);
314    //}}
315 }
316 
317 //-----------------------------------------------------------------------------
318 // _SI32_USBEP_A_disable_split_mode
319 //
320 //-----------------------------------------------------------------------------
321 void
_SI32_USBEP_A_disable_split_mode(SI32_USBEP_A_Type * basePointer)322 _SI32_USBEP_A_disable_split_mode(
323    SI32_USBEP_A_Type * basePointer)
324 {
325    //{{
326    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_SPLITEN_DISABLED_U32);
327    //}}
328 }
329 
330 //-----------------------------------------------------------------------------
331 // _SI32_USBEP_A_select_data_toggle_on_ack
332 //
333 //-----------------------------------------------------------------------------
334 void
_SI32_USBEP_A_select_data_toggle_on_ack(SI32_USBEP_A_Type * basePointer)335 _SI32_USBEP_A_select_data_toggle_on_ack(
336    SI32_USBEP_A_Type * basePointer)
337 {
338    //{{
339    basePointer->EPCONTROL.FDTEN = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_FDTEN_DISABLED_U32);
340    //}}
341 }
342 
343 //-----------------------------------------------------------------------------
344 // _SI32_USBEP_A_select_data_toggle_on_packet
345 //
346 //-----------------------------------------------------------------------------
347 void
_SI32_USBEP_A_select_data_toggle_on_packet(SI32_USBEP_A_Type * basePointer)348 _SI32_USBEP_A_select_data_toggle_on_packet(
349    SI32_USBEP_A_Type * basePointer)
350 {
351    //{{
352    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_FDTEN_ENABLED_U32);
353    //}}
354 }
355 
356 //-----------------------------------------------------------------------------
357 // _SI32_USBEP_A_enable_in_dma
358 //
359 //-----------------------------------------------------------------------------
360 void
_SI32_USBEP_A_enable_in_dma(SI32_USBEP_A_Type * basePointer)361 _SI32_USBEP_A_enable_in_dma(
362    SI32_USBEP_A_Type * basePointer)
363 {
364    //{{
365    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_IDMAEN_ENABLED_U32);
366    //}}
367 }
368 
369 //-----------------------------------------------------------------------------
370 // _SI32_USBEP_A_disable_in_dma
371 //
372 //-----------------------------------------------------------------------------
373 void
_SI32_USBEP_A_disable_in_dma(SI32_USBEP_A_Type * basePointer)374 _SI32_USBEP_A_disable_in_dma(
375    SI32_USBEP_A_Type * basePointer)
376 {
377    //{{
378    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_IDMAEN_DISABLED_U32);
379    //}}
380 }
381 
382 //-----------------------------------------------------------------------------
383 // _SI32_USBEP_A_set_endpoint_direction_in
384 //
385 // Only valid when endpoint not configured for SPLIT mode.
386 //-----------------------------------------------------------------------------
387 void
_SI32_USBEP_A_set_endpoint_direction_in(SI32_USBEP_A_Type * basePointer)388 _SI32_USBEP_A_set_endpoint_direction_in(
389    SI32_USBEP_A_Type * basePointer)
390 {
391    //{{
392    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_DIRSEL_IN_U32);
393    //}}
394 }
395 
396 //-----------------------------------------------------------------------------
397 // _SI32_USBEP_A_set_endpoint_direction_out
398 //
399 // Only valid when endpoint not configured for SPLIT mode.
400 //-----------------------------------------------------------------------------
401 void
_SI32_USBEP_A_set_endpoint_direction_out(SI32_USBEP_A_Type * basePointer)402 _SI32_USBEP_A_set_endpoint_direction_out(
403    SI32_USBEP_A_Type * basePointer)
404 {
405    //{{
406    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_DIRSEL_OUT_U32);
407    //}}
408 }
409 
410 //-----------------------------------------------------------------------------
411 // _SI32_USBEP_A_select_in_bulk_interrupt_mode
412 //
413 //-----------------------------------------------------------------------------
414 void
_SI32_USBEP_A_select_in_bulk_interrupt_mode(SI32_USBEP_A_Type * basePointer)415 _SI32_USBEP_A_select_in_bulk_interrupt_mode(
416    SI32_USBEP_A_Type * basePointer)
417 {
418    //{{
419    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_IISOEN_BULK_INT_U32);
420    //}}
421 }
422 
423 //-----------------------------------------------------------------------------
424 // _SI32_USBEP_A_select_in_isochronous_mode
425 //
426 //-----------------------------------------------------------------------------
427 void
_SI32_USBEP_A_select_in_isochronous_mode(SI32_USBEP_A_Type * basePointer)428 _SI32_USBEP_A_select_in_isochronous_mode(
429    SI32_USBEP_A_Type * basePointer)
430 {
431    //{{
432    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_IISOEN_ISO_U32);
433    //}}
434 }
435 
436 //-----------------------------------------------------------------------------
437 // _SI32_USBEP_A_enable_inprdy_auto_set
438 //
439 // Allows In Packet Ready Bit (INPRDY) to be automatically set by
440 // hardware.
441 //-----------------------------------------------------------------------------
442 void
_SI32_USBEP_A_enable_inprdy_auto_set(SI32_USBEP_A_Type * basePointer)443 _SI32_USBEP_A_enable_inprdy_auto_set(
444    SI32_USBEP_A_Type * basePointer)
445 {
446    //{{
447    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_AUTOSETEN_ENABLED_U32);
448    //}}
449 }
450 
451 //-----------------------------------------------------------------------------
452 // _SI32_USBEP_A_disable_inprdy_auto_set
453 //
454 // Prevents In Packet Ready Bit (INPRDY) from being automatically set by
455 // hardware.
456 //-----------------------------------------------------------------------------
457 void
_SI32_USBEP_A_disable_inprdy_auto_set(SI32_USBEP_A_Type * basePointer)458 _SI32_USBEP_A_disable_inprdy_auto_set(
459    SI32_USBEP_A_Type * basePointer)
460 {
461    //{{
462   basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_AUTOSETEN_DISABLED_U32);
463    //}}
464 }
465 
466 //-----------------------------------------------------------------------------
467 // _SI32_USBEP_A_clear_outpacket_ready
468 //
469 //-----------------------------------------------------------------------------
470 void
_SI32_USBEP_A_clear_outpacket_ready(SI32_USBEP_A_Type * basePointer)471 _SI32_USBEP_A_clear_outpacket_ready(
472    SI32_USBEP_A_Type * basePointer)
473 {
474    //{{
475    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_CLEAR_MASK( basePointer, SI32_USBEP_A_EPCONTROL_OPRDYI_MASK);
476    //}}
477 }
478 
479 //-----------------------------------------------------------------------------
480 // _SI32_USBEP_A_is_outpacket_ready
481 //
482 // Returns TRUE if OPRDY is set, otherwise returns FALSE.
483 //-----------------------------------------------------------------------------
484 bool
_SI32_USBEP_A_is_outpacket_ready(SI32_USBEP_A_Type * basePointer)485 _SI32_USBEP_A_is_outpacket_ready(
486    SI32_USBEP_A_Type * basePointer)
487 {
488    //{{
489    return (bool)(basePointer->EPCONTROL.OPRDYI);
490    //}}
491 }
492 
493 //-----------------------------------------------------------------------------
494 // _SI32_USBEP_A_is_out_fifo_full
495 //
496 // Returns TRUE if FIFO is full, otherwise returns FALSE.  If double
497 // buffering is enabled, FIFO is full when FIFO contains two packets.
498 //-----------------------------------------------------------------------------
499 bool
_SI32_USBEP_A_is_out_fifo_full(SI32_USBEP_A_Type * basePointer)500 _SI32_USBEP_A_is_out_fifo_full(
501    SI32_USBEP_A_Type * basePointer)
502 {
503    //{{
504    return (bool)(basePointer->EPCONTROL.OFIFOFF);
505    //}}
506 }
507 
508 //-----------------------------------------------------------------------------
509 // _SI32_USBEP_A_clear_out_data_overrun
510 //
511 //-----------------------------------------------------------------------------
512 void
_SI32_USBEP_A_clear_out_data_overrun(SI32_USBEP_A_Type * basePointer)513 _SI32_USBEP_A_clear_out_data_overrun(
514    SI32_USBEP_A_Type * basePointer)
515 {
516    //{{
517    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_CLEAR_MASK( basePointer, SI32_USBEP_A_EPCONTROL_OORF_MASK);
518    //}}
519 }
520 
521 //-----------------------------------------------------------------------------
522 // _SI32_USBEP_A_has_out_data_overrun_occurred
523 //
524 // Returns TRUE if data packets lost due to FIFO overrun, otherwise
525 // returns FALSE.
526 //-----------------------------------------------------------------------------
527 bool
_SI32_USBEP_A_has_out_data_overrun_occurred(SI32_USBEP_A_Type * basePointer)528 _SI32_USBEP_A_has_out_data_overrun_occurred(
529    SI32_USBEP_A_Type * basePointer)
530 {
531    //{{
532    return (bool) (basePointer->EPCONTROL.OORF);
533    //}}
534 }
535 
536 //-----------------------------------------------------------------------------
537 // _SI32_USBEP_A_has_out_data_error_set_occurred
538 //
539 // Returns TRUE if CRC or bit error occurred, otherwise returns FALSE.
540 // Only valid in isochronous mode.
541 //-----------------------------------------------------------------------------
542 bool
_SI32_USBEP_A_has_out_data_error_set_occurred(SI32_USBEP_A_Type * basePointer)543 _SI32_USBEP_A_has_out_data_error_set_occurred(
544    SI32_USBEP_A_Type * basePointer)
545 {
546    //{{
547    return (bool) (basePointer->EPCONTROL.ODERRF);
548    //}}
549 }
550 
551 //-----------------------------------------------------------------------------
552 // _SI32_USBEP_A_flush_out_fifo
553 //
554 //-----------------------------------------------------------------------------
555 void
_SI32_USBEP_A_flush_out_fifo(SI32_USBEP_A_Type * basePointer)556 _SI32_USBEP_A_flush_out_fifo(
557    SI32_USBEP_A_Type * basePointer)
558 {
559    //{{
560    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_OFIFOFL_SET_U32);
561    //}}
562 }
563 
564 //-----------------------------------------------------------------------------
565 // _SI32_USBEP_A_send_out_stall
566 //
567 //-----------------------------------------------------------------------------
568 void
_SI32_USBEP_A_send_out_stall(SI32_USBEP_A_Type * basePointer)569 _SI32_USBEP_A_send_out_stall(
570    SI32_USBEP_A_Type * basePointer)
571 {
572    //{{
573    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_OSDSTL_SEND_U32);
574    //}}
575 }
576 
577 //-----------------------------------------------------------------------------
578 // _SI32_USBEP_A_stop_out_stall
579 //
580 //-----------------------------------------------------------------------------
581 void
_SI32_USBEP_A_stop_out_stall(SI32_USBEP_A_Type * basePointer)582 _SI32_USBEP_A_stop_out_stall(
583    SI32_USBEP_A_Type * basePointer)
584 {
585    //{{
586    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_OSDSTL_STOP_U32);
587    //}}
588 }
589 
590 //-----------------------------------------------------------------------------
591 // _SI32_USBEP_A_is_out_stall_sent
592 //
593 // Returns TRUE if stall transmitted, otherwise returns false;.
594 //-----------------------------------------------------------------------------
595 bool
_SI32_USBEP_A_is_out_stall_sent(SI32_USBEP_A_Type * basePointer)596 _SI32_USBEP_A_is_out_stall_sent(
597    SI32_USBEP_A_Type * basePointer)
598 {
599    //{{
600    return (bool) (basePointer->EPCONTROL.OSTSTLI);
601    //}}
602 }
603 
604 //-----------------------------------------------------------------------------
605 // _SI32_USBEP_A_clear_out_stall_sent
606 //
607 //-----------------------------------------------------------------------------
608 void
_SI32_USBEP_A_clear_out_stall_sent(SI32_USBEP_A_Type * basePointer)609 _SI32_USBEP_A_clear_out_stall_sent(
610    SI32_USBEP_A_Type * basePointer)
611 {
612    //{{
613    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_CLEAR_MASK( basePointer, SI32_USBEP_A_EPCONTROL_OSTSTLI_MASK);
614    //}}
615 }
616 
617 //-----------------------------------------------------------------------------
618 // _SI32_USBEP_A_reset_out_data_toggle
619 //
620 //-----------------------------------------------------------------------------
621 void
_SI32_USBEP_A_reset_out_data_toggle(SI32_USBEP_A_Type * basePointer)622 _SI32_USBEP_A_reset_out_data_toggle(
623    SI32_USBEP_A_Type * basePointer)
624 {
625    //{{
626    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_OCLRDT_RESET_U32);
627    //}}
628 }
629 
630 //-----------------------------------------------------------------------------
631 // _SI32_USBEP_A_enable_out_dma_for_last_packet
632 //
633 //-----------------------------------------------------------------------------
634 void
_SI32_USBEP_A_enable_out_dma_for_last_packet(SI32_USBEP_A_Type * basePointer)635 _SI32_USBEP_A_enable_out_dma_for_last_packet(
636    SI32_USBEP_A_Type * basePointer)
637 {
638    //{{
639   basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_ODMAMD_NO_DMA_U32);
640    //}}
641 }
642 
643 //-----------------------------------------------------------------------------
644 // _SI32_USBEP_A_disable_out_dma_for_last_packet
645 //
646 //-----------------------------------------------------------------------------
647 void
_SI32_USBEP_A_disable_out_dma_for_last_packet(SI32_USBEP_A_Type * basePointer)648 _SI32_USBEP_A_disable_out_dma_for_last_packet(
649    SI32_USBEP_A_Type * basePointer)
650 {
651    //{{
652   basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_ODMAMD_AUTO_DMA_U32);
653    //}}
654 }
655 
656 //-----------------------------------------------------------------------------
657 // _SI32_USBEP_A_enable_out_dma
658 //
659 //-----------------------------------------------------------------------------
660 void
_SI32_USBEP_A_enable_out_dma(SI32_USBEP_A_Type * basePointer)661 _SI32_USBEP_A_enable_out_dma(
662    SI32_USBEP_A_Type * basePointer)
663 {
664    //{{
665   basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_ODMAEN_ENABLED_U32);
666    //}}
667 }
668 
669 //-----------------------------------------------------------------------------
670 // _SI32_USBEP_A_disable_out_dma
671 //
672 //-----------------------------------------------------------------------------
673 void
_SI32_USBEP_A_disable_out_dma(SI32_USBEP_A_Type * basePointer)674 _SI32_USBEP_A_disable_out_dma(
675    SI32_USBEP_A_Type * basePointer)
676 {
677    //{{
678   basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_ODMAEN_DISABLED_U32);
679    //}}
680 }
681 
682 //-----------------------------------------------------------------------------
683 // _SI32_USBEP_A_enable_out_bulk_interrupt_mode
684 //
685 //-----------------------------------------------------------------------------
686 void
_SI32_USBEP_A_enable_out_bulk_interrupt_mode(SI32_USBEP_A_Type * basePointer)687 _SI32_USBEP_A_enable_out_bulk_interrupt_mode(
688    SI32_USBEP_A_Type * basePointer)
689 {
690    //{{
691    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_OISOEN_BULK_INT_U32);
692    //}}
693 }
694 
695 //-----------------------------------------------------------------------------
696 // _SI32_USBEP_A_enable_out_isochronous_mode
697 //
698 //-----------------------------------------------------------------------------
699 void
_SI32_USBEP_A_enable_out_isochronous_mode(SI32_USBEP_A_Type * basePointer)700 _SI32_USBEP_A_enable_out_isochronous_mode(
701    SI32_USBEP_A_Type * basePointer)
702 {
703    //{{
704    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_OISOEN_ISO_U32);
705    //}}
706 }
707 
708 //-----------------------------------------------------------------------------
709 // _SI32_USBEP_A_enable_oprdy_auto_clear
710 //
711 //-----------------------------------------------------------------------------
712 void
_SI32_USBEP_A_enable_oprdy_auto_clear(SI32_USBEP_A_Type * basePointer)713 _SI32_USBEP_A_enable_oprdy_auto_clear(
714    SI32_USBEP_A_Type * basePointer)
715 {
716    //{{
717    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_AUTOCLREN_ENABLED_U32);
718    //}}
719 }
720 
721 //-----------------------------------------------------------------------------
722 // _SI32_USBEP_A_disable_oprdy_auto_clear
723 //
724 //-----------------------------------------------------------------------------
725 void
_SI32_USBEP_A_disable_oprdy_auto_clear(SI32_USBEP_A_Type * basePointer)726 _SI32_USBEP_A_disable_oprdy_auto_clear(
727    SI32_USBEP_A_Type * basePointer)
728 {
729    //{{
730    basePointer->EPCONTROL.U32 = USBEP_EPCONTROL_WRITE(basePointer, SI32_USBEP_A_EPCONTROL_AUTOCLREN_DISABLED_U32);
731    //}}
732 }
733 
734 //-----------------------------------------------------------------------------
735 // _SI32_USBEP_A_read_data_count
736 //
737 // Reads number of data bytes in the last received packet in the OUT
738 // FIFO.
739 //-----------------------------------------------------------------------------
740 uint32_t
_SI32_USBEP_A_read_data_count(SI32_USBEP_A_Type * basePointer)741 _SI32_USBEP_A_read_data_count(
742    SI32_USBEP_A_Type * basePointer)
743 {
744    //{{
745    return basePointer->EPCOUNT.COUNT;
746    //}}
747 }
748 
749 //-----------------------------------------------------------------------------
750 // _SI32_USBEP_A_write_fifo_u32
751 //
752 // Write a full word to the USB FIFO.
753 //-----------------------------------------------------------------------------
754 void
_SI32_USBEP_A_write_fifo_u32(SI32_USBEP_A_Type * basePointer,uint32_t dataval)755 _SI32_USBEP_A_write_fifo_u32(
756    SI32_USBEP_A_Type * basePointer,
757    uint32_t dataval)
758 {
759    //{{
760    basePointer->EPFIFO.U32 = dataval;
761    //}}
762 }
763 
764 //-----------------------------------------------------------------------------
765 // _SI32_USBEP_A_write_fifo_u16
766 //
767 // Write the least-significant 2 bytes to the USB FIFO.
768 //-----------------------------------------------------------------------------
769 void
_SI32_USBEP_A_write_fifo_u16(SI32_USBEP_A_Type * basePointer,uint32_t dataval)770 _SI32_USBEP_A_write_fifo_u16(
771    SI32_USBEP_A_Type * basePointer,
772    uint32_t dataval)
773 {
774    //{{
775    basePointer->EPFIFO.U16 = dataval;
776    //}}
777 }
778 
779 //-----------------------------------------------------------------------------
780 // _SI32_USBEP_A_write_fifo_u8
781 //
782 // Write the least significant byte of data to the USB FIFO.
783 //-----------------------------------------------------------------------------
784 void
_SI32_USBEP_A_write_fifo_u8(SI32_USBEP_A_Type * basePointer,uint32_t dataval)785 _SI32_USBEP_A_write_fifo_u8(
786    SI32_USBEP_A_Type * basePointer,
787    uint32_t dataval)
788 {
789    //{{
790    basePointer->EPFIFO.U8 = dataval;
791    //}}
792 }
793 
794 //-----------------------------------------------------------------------------
795 // _SI32_USBEP_A_read_fifo_u32
796 //
797 // Reads full word from FIFO.
798 //-----------------------------------------------------------------------------
799 uint32_t
_SI32_USBEP_A_read_fifo_u32(SI32_USBEP_A_Type * basePointer)800 _SI32_USBEP_A_read_fifo_u32(
801    SI32_USBEP_A_Type * basePointer)
802 {
803    //{{
804    return basePointer->EPFIFO.U32;
805    //}}
806 }
807 
808 //-----------------------------------------------------------------------------
809 // _SI32_USBEP_A_read_fifo_u16
810 //
811 // Reads half word from FIFO.
812 //-----------------------------------------------------------------------------
813 uint32_t
_SI32_USBEP_A_read_fifo_u16(SI32_USBEP_A_Type * basePointer)814 _SI32_USBEP_A_read_fifo_u16(
815    SI32_USBEP_A_Type * basePointer)
816 {
817    //{{
818    return basePointer->EPFIFO.U16;
819    //}}
820 }
821 
822 //-----------------------------------------------------------------------------
823 // _SI32_USBEP_A_read_fifo_u8
824 //
825 // Reads byte from FIFO.
826 //-----------------------------------------------------------------------------
827 uint32_t
_SI32_USBEP_A_read_fifo_u8(SI32_USBEP_A_Type * basePointer)828 _SI32_USBEP_A_read_fifo_u8(
829    SI32_USBEP_A_Type * basePointer)
830 {
831    //{{
832    return basePointer->EPFIFO.U8;
833    //}}
834 }
835 
836 
837   //-eof--------------------------------------------------------------------------
838