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