1 /*******************************************************************************
3 * This software is supplied by Renesas Electronics Corporation and is only
4 * intended for use with Renesas products. No other uses are authorized. This
5 * software is owned by Renesas Electronics Corporation and is protected under
6 * all applicable laws, including copyright laws.
7 * THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
8 * THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
9 * LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
10 * AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
11 * TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
12 * ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
13 * FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
14 * ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
15 * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
16 * Renesas reserves the right, without notice, to make changes to this software
17 * and to discontinue the availability of this software. By using this software,
18 * you agree to the additional terms and conditions found by accessing the
20 * http://www.renesas.com/disclaimer
21 * Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
22 *******************************************************************************/
23 /*******************************************************************************
24 * File Name : usb0_function_lib.c
26 * $Date:: 2014-07-09 16:29:19 +0900#$
31 * Description : RZ/A1H R7S72100 USB Sample Program
34 *******************************************************************************/
37 /*******************************************************************************
38 Includes <System Includes> , "Project Includes"
39 *******************************************************************************/
40 #include "usb0_function.h"
43 /*******************************************************************************
45 *******************************************************************************/
48 /*******************************************************************************
50 *******************************************************************************/
53 /*******************************************************************************
54 Imported global variables and functions (from other files)
55 *******************************************************************************/
58 /*******************************************************************************
59 Exported global variables and functions (to be accessed by other files)
60 *******************************************************************************/
63 /*******************************************************************************
64 Private global variables and functions
65 *******************************************************************************/
68 /*******************************************************************************
69 * Function Name: usb0_function_enable_brdy_int
70 * Description : Enables BRDY interrupt in the pipe spceified by the argument.
71 * : Disables BEMP/NRDY/BRDY interrupts in all pipes before enabling
72 * : BRDY. Enables BRDY interrupt in the pipe specified by the argument
73 * : in the disabled status. After enabling BRDY, recover all
74 * : BEMP/NRDY/BRDY disabled/enabled status.
75 * Arguments : uint16_t pipe ; pipe Number
77 *******************************************************************************/
78 void usb0_function_enable_brdy_int (uint16_t pipe)
80 /* enable brdy interrupt */
81 USB200.BRDYENB |= (uint16_t)g_usb0_function_bit_set[pipe];
84 /*******************************************************************************
85 * Function Name: usb0_function_disable_brdy_int
86 * Description : Disables BRDY interrupt in the pipe spceified by the argument.
87 * : Disables BEMP/NRDY/BRDY interrupts in all pipes before disabling
88 * : BRDY. Enables BRDY interrupt in the pipe specified by the argument
89 * : in the disabled status. After disabling BRDY, recover all
90 * : BEMP/NRDY/BRDY disabled/enabled status.
91 * Arguments : uint16_t pipe ; pipe Number
93 *******************************************************************************/
94 void usb0_function_disable_brdy_int (uint16_t pipe)
96 /* disable brdy interrupt */
97 USB200.BRDYENB &= (uint16_t)~(g_usb0_function_bit_set[pipe]);
100 /*******************************************************************************
101 * Function Name: usb0_function_clear_brdy_sts
102 * Description : Clear BRDY interrupt status in the pipe spceified by the argument.
103 * Arguments : uint16_t pipe ; pipe Number
104 * Return Value : none
105 *******************************************************************************/
106 void usb0_function_clear_brdy_sts (uint16_t pipe)
108 /* clear brdy status */
109 USB200.BRDYSTS = (uint16_t)~(g_usb0_function_bit_set[pipe]);
112 /*******************************************************************************
113 * Function Name: usb0_function_enable_bemp_int
114 * Description : Enables BEMP interrupt in the pipe spceified by the argument.
115 * : Disables BEMP/NRDY/BRDY interrupts in all pipes before enabling
116 * : BEMP. Enables BEMP interrupt in the pipe specified by the argument
117 * : in the disabled status. After enabling BEMP, recover all
118 * : BEMP/NRDY/BRDY disabled/enabled status.
119 * Arguments : uint16_t pipe ; pipe Number
120 * Return Value : none
121 *******************************************************************************/
122 void usb0_function_enable_bemp_int (uint16_t pipe)
124 /* enable bemp interrupt */
125 USB200.BEMPENB |= (uint16_t)g_usb0_function_bit_set[pipe];
128 /*******************************************************************************
129 * Function Name: usb0_function_disable_bemp_int
130 * Description : Disables BEMP interrupt in the pipe spceified by the argument.
131 * : Disables BEMP/NRDY/BRDY interrupts in all pipes before disabling
132 * : BEMP. Enables BEMP interrupt in the pipe specified by the argument
133 * : in the disabled status. After enabling BEMP, recover all
134 * : BEMP/NRDY/BRDY disabled/enabled status.
135 * Arguments : uint16_t pipe ; pipe Number
136 * Return Value : none
137 *******************************************************************************/
138 void usb0_function_disable_bemp_int (uint16_t pipe)
140 /* disable bemp interrupt */
141 USB200.BEMPENB &= (uint16_t)~(g_usb0_function_bit_set[pipe]);
144 /*******************************************************************************
145 * Function Name: usb0_function_clear_bemp_sts
146 * Description : Clear BEMP interrupt status in the pipe spceified by the argument.
147 * Arguments : uint16_t pipe ; pipe Number
148 * Return Value : none
149 *******************************************************************************/
150 void usb0_function_clear_bemp_sts (uint16_t pipe)
152 /* clear bemp status */
153 USB200.BEMPSTS = (uint16_t)~(g_usb0_function_bit_set[pipe]);
156 /*******************************************************************************
157 * Function Name: usb0_function_enable_nrdy_int
158 * Description : Enables NRDY interrupt in the pipe spceified by the argument.
159 * : Disables BEMP/NRDY/BRDY interrupts in all pipes before enabling
160 * : NRDY. Enables NRDY interrupt in the pipe specified by the argument
161 * : in the disabled status. After enabling NRDY, recover all
162 * : BEMP/NRDY/BRDY disabled/enabled status.
163 * Arguments : uint16_t pipe ; pipe Number
164 * Return Value : none
165 *******************************************************************************/
166 void usb0_function_enable_nrdy_int (uint16_t pipe)
168 /* enable nrdy interrupt */
169 USB200.NRDYENB |= (uint16_t)g_usb0_function_bit_set[pipe];
172 /*******************************************************************************
173 * Function Name: usb0_function_disable_nrdy_int
174 * Description : Disables NRDY interrupt in the pipe spceified by the argument.
175 * : Disables BEMP/NRDY/BRDY interrupts in all pipes before disabling
176 * : NRDY. Disables NRDY interrupt in the pipe specified by the argument
177 * : in the disabled status. After disabling NRDY, recover all
178 * : BEMP/NRDY/BRDY disabled/enabled status.
179 * Arguments : uint16_t pipe ; pipe Number
180 * Return Value : none
181 *******************************************************************************/
182 void usb0_function_disable_nrdy_int (uint16_t pipe)
184 /* disable nrdy interrupt */
185 USB200.NRDYENB &= (uint16_t)~(g_usb0_function_bit_set[pipe]);
188 /*******************************************************************************
189 * Function Name: usb0_function_clear_nrdy_sts
190 * Description : Clear NRDY interrupt status in the pipe spceified by the argument.
191 * Arguments : uint16_t pipe ; pipe Number
192 * Return Value : none
193 *******************************************************************************/
194 void usb0_function_clear_nrdy_sts (uint16_t pipe)
196 /* clear nrdy status */
197 USB200.NRDYSTS = (uint16_t)~(g_usb0_function_bit_set[pipe]);
200 /*******************************************************************************
201 * Function Name: usb0_function_is_hispeed
202 * Description : Returns the result of USB reset hand shake (RHST) as
205 * Return Value : USB_FUNCTION_HIGH_SPEED ; Hi-Speed
206 * : USB_FUNCTION_FULL_SPEED ; Full-Speed
207 * : LOW_SPEED ; Low-Speed
208 * : USB_FUNCTION_NON_SPEED ; error
209 *******************************************************************************/
210 uint16_t usb0_function_is_hispeed (void)
215 rhst = RZA_IO_RegRead_16(&USB200.DVSTCTR0, USB_DVSTCTR0_RHST_SHIFT, USB_DVSTCTR0_RHST);
217 if (rhst == USB_FUNCTION_HSMODE)
219 speed = USB_FUNCTION_HIGH_SPEED;
221 else if (rhst == USB_FUNCTION_FSMODE)
223 speed = USB_FUNCTION_FULL_SPEED;
225 else if (rhst == USB_FUNCTION_LSMODE)
227 speed = USB_FUNCTION_LOW_SPEED;
231 speed = USB_FUNCTION_NON_SPEED;
237 /*******************************************************************************
238 * Function Name: usb0_function_is_hispeed_enable
239 * Description : Returns the USB High-Speed connection enabled status as
242 * Return Value : DEVDRV_USBF_YES : Hi-Speed Enable
243 * : DEVDRV_USBF_NO : Hi-Speed Disable
244 *******************************************************************************/
245 uint16_t usb0_function_is_hispeed_enable (void)
249 ret = DEVDRV_USBF_NO;
251 if (RZA_IO_RegRead_16(&USB200.SYSCFG0, USB_SYSCFG_HSE_SHIFT, USB_SYSCFG_HSE) == 1)
253 ret = DEVDRV_USBF_YES;
259 /*******************************************************************************
260 * Function Name: usb0_function_set_pid_buf
261 * Description : Enables communicaqtion in the pipe specified by the argument
263 * Arguments : uint16_t pipe ; pipe Number
264 * Return Value : none
265 *******************************************************************************/
266 void usb0_function_set_pid_buf (uint16_t pipe)
270 pid = usb0_function_get_pid(pipe);
272 if (pid == DEVDRV_USBF_PID_STALL2)
274 usb0_function_set_pid_nak(pipe);
279 case USB_FUNCTION_PIPE0:
280 RZA_IO_RegWrite_16(&USB200.DCPCTR,
282 USB_DCPCTR_PID_SHIFT,
286 case USB_FUNCTION_PIPE1:
287 RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
289 USB_PIPEnCTR_1_5_PID_SHIFT,
290 USB_PIPEnCTR_1_5_PID);
293 case USB_FUNCTION_PIPE2:
294 RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
296 USB_PIPEnCTR_1_5_PID_SHIFT,
297 USB_PIPEnCTR_1_5_PID);
300 case USB_FUNCTION_PIPE3:
301 RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
303 USB_PIPEnCTR_1_5_PID_SHIFT,
304 USB_PIPEnCTR_1_5_PID);
307 case USB_FUNCTION_PIPE4:
308 RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
310 USB_PIPEnCTR_1_5_PID_SHIFT,
311 USB_PIPEnCTR_1_5_PID);
314 case USB_FUNCTION_PIPE5:
315 RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
317 USB_PIPEnCTR_1_5_PID_SHIFT,
318 USB_PIPEnCTR_1_5_PID);
321 case USB_FUNCTION_PIPE6:
322 RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
324 USB_PIPEnCTR_6_8_PID_SHIFT,
325 USB_PIPEnCTR_6_8_PID);
328 case USB_FUNCTION_PIPE7:
329 RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
331 USB_PIPEnCTR_6_8_PID_SHIFT,
332 USB_PIPEnCTR_6_8_PID);
335 case USB_FUNCTION_PIPE8:
336 RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
338 USB_PIPEnCTR_6_8_PID_SHIFT,
339 USB_PIPEnCTR_6_8_PID);
342 case USB_FUNCTION_PIPE9:
343 RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
345 USB_PIPEnCTR_9_PID_SHIFT,
349 case USB_FUNCTION_PIPEA:
350 RZA_IO_RegWrite_16(&USB200.PIPEACTR,
352 USB_PIPEnCTR_A_F_PID_SHIFT,
353 USB_PIPEnCTR_A_F_PID);
356 case USB_FUNCTION_PIPEB:
357 RZA_IO_RegWrite_16(&USB200.PIPEBCTR,
359 USB_PIPEnCTR_A_F_PID_SHIFT,
360 USB_PIPEnCTR_A_F_PID);
363 case USB_FUNCTION_PIPEC:
364 RZA_IO_RegWrite_16(&USB200.PIPECCTR,
366 USB_PIPEnCTR_A_F_PID_SHIFT,
367 USB_PIPEnCTR_A_F_PID);
370 case USB_FUNCTION_PIPED:
371 RZA_IO_RegWrite_16(&USB200.PIPEDCTR,
373 USB_PIPEnCTR_A_F_PID_SHIFT,
374 USB_PIPEnCTR_A_F_PID);
377 case USB_FUNCTION_PIPEE:
378 RZA_IO_RegWrite_16(&USB200.PIPEECTR,
380 USB_PIPEnCTR_A_F_PID_SHIFT,
381 USB_PIPEnCTR_A_F_PID);
384 case USB_FUNCTION_PIPEF:
385 RZA_IO_RegWrite_16(&USB200.PIPEFCTR,
387 USB_PIPEnCTR_A_F_PID_SHIFT,
388 USB_PIPEnCTR_A_F_PID);
396 /*******************************************************************************
397 * Function Name: usb0_function_set_pid_nak
398 * Description : Disables communication (NAK) in the pipe specified by the argument.
399 * : When the pipe status was enabling communication (BUF) before
400 * : executing before executing this function, waits in the software
401 * : until the pipe becomes ready after setting disabled.
402 * Arguments : uint16_t pipe ; pipe Number
403 * Return Value : none
404 *******************************************************************************/
405 void usb0_function_set_pid_nak (uint16_t pipe)
411 pid = usb0_function_get_pid(pipe);
413 if (pid == DEVDRV_USBF_PID_STALL2)
415 usb0_function_set_pid_stall(pipe);
420 case USB_FUNCTION_PIPE0:
421 RZA_IO_RegWrite_16(&USB200.DCPCTR,
423 USB_DCPCTR_PID_SHIFT,
427 case USB_FUNCTION_PIPE1:
428 RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
430 USB_PIPEnCTR_1_5_PID_SHIFT,
431 USB_PIPEnCTR_1_5_PID);
434 case USB_FUNCTION_PIPE2:
435 RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
437 USB_PIPEnCTR_1_5_PID_SHIFT,
438 USB_PIPEnCTR_1_5_PID);
441 case USB_FUNCTION_PIPE3:
442 RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
444 USB_PIPEnCTR_1_5_PID_SHIFT,
445 USB_PIPEnCTR_1_5_PID);
448 case USB_FUNCTION_PIPE4:
449 RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
451 USB_PIPEnCTR_1_5_PID_SHIFT,
452 USB_PIPEnCTR_1_5_PID);
455 case USB_FUNCTION_PIPE5:
456 RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
458 USB_PIPEnCTR_1_5_PID_SHIFT,
459 USB_PIPEnCTR_1_5_PID);
462 case USB_FUNCTION_PIPE6:
463 RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
465 USB_PIPEnCTR_6_8_PID_SHIFT,
466 USB_PIPEnCTR_6_8_PID);
469 case USB_FUNCTION_PIPE7:
470 RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
472 USB_PIPEnCTR_6_8_PID_SHIFT,
473 USB_PIPEnCTR_6_8_PID);
476 case USB_FUNCTION_PIPE8:
477 RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
479 USB_PIPEnCTR_6_8_PID_SHIFT,
480 USB_PIPEnCTR_6_8_PID);
483 case USB_FUNCTION_PIPE9:
484 RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
486 USB_PIPEnCTR_9_PID_SHIFT,
490 case USB_FUNCTION_PIPEA:
491 RZA_IO_RegWrite_16(&USB200.PIPEACTR,
493 USB_PIPEnCTR_A_F_PID_SHIFT,
494 USB_PIPEnCTR_A_F_PID);
497 case USB_FUNCTION_PIPEB:
498 RZA_IO_RegWrite_16(&USB200.PIPEBCTR,
500 USB_PIPEnCTR_A_F_PID_SHIFT,
501 USB_PIPEnCTR_A_F_PID);
504 case USB_FUNCTION_PIPEC:
505 RZA_IO_RegWrite_16(&USB200.PIPECCTR,
507 USB_PIPEnCTR_A_F_PID_SHIFT,
508 USB_PIPEnCTR_A_F_PID);
511 case USB_FUNCTION_PIPED:
512 RZA_IO_RegWrite_16(&USB200.PIPEDCTR,
514 USB_PIPEnCTR_A_F_PID_SHIFT,
515 USB_PIPEnCTR_A_F_PID);
518 case USB_FUNCTION_PIPEE:
519 RZA_IO_RegWrite_16(&USB200.PIPEECTR,
521 USB_PIPEnCTR_A_F_PID_SHIFT,
522 USB_PIPEnCTR_A_F_PID);
525 case USB_FUNCTION_PIPEF:
526 RZA_IO_RegWrite_16(&USB200.PIPEFCTR,
528 USB_PIPEnCTR_A_F_PID_SHIFT,
529 USB_PIPEnCTR_A_F_PID);
536 if (pid == DEVDRV_USBF_PID_BUF)
538 for (loop = 0; loop < 200; loop++)
542 case USB_FUNCTION_PIPE0:
543 pbusy = RZA_IO_RegRead_16(&USB200.DCPCTR,
544 USB_DCPCTR_PBUSY_SHIFT,
548 case USB_FUNCTION_PIPE1:
549 pbusy = RZA_IO_RegRead_16(&USB200.PIPE1CTR,
550 USB_PIPEnCTR_1_5_PBUSY_SHIFT,
551 USB_PIPEnCTR_1_5_PBUSY);
554 case USB_FUNCTION_PIPE2:
555 pbusy = RZA_IO_RegRead_16(&USB200.PIPE2CTR,
556 USB_PIPEnCTR_1_5_PBUSY_SHIFT,
557 USB_PIPEnCTR_1_5_PBUSY);
560 case USB_FUNCTION_PIPE3:
561 pbusy = RZA_IO_RegRead_16(&USB200.PIPE3CTR,
562 USB_PIPEnCTR_1_5_PBUSY_SHIFT,
563 USB_PIPEnCTR_1_5_PBUSY);
566 case USB_FUNCTION_PIPE4:
567 pbusy = RZA_IO_RegRead_16(&USB200.PIPE4CTR,
568 USB_PIPEnCTR_1_5_PBUSY_SHIFT,
569 USB_PIPEnCTR_1_5_PBUSY);
572 case USB_FUNCTION_PIPE5:
573 pbusy = RZA_IO_RegRead_16(&USB200.PIPE5CTR,
574 USB_PIPEnCTR_1_5_PBUSY_SHIFT,
575 USB_PIPEnCTR_1_5_PBUSY);
578 case USB_FUNCTION_PIPE6:
579 pbusy = RZA_IO_RegRead_16(&USB200.PIPE6CTR,
580 USB_PIPEnCTR_6_8_PBUSY_SHIFT,
581 USB_PIPEnCTR_6_8_PBUSY);
584 case USB_FUNCTION_PIPE7:
585 pbusy = RZA_IO_RegRead_16(&USB200.PIPE7CTR,
586 USB_PIPEnCTR_6_8_PBUSY_SHIFT,
587 USB_PIPEnCTR_6_8_PBUSY);
590 case USB_FUNCTION_PIPE8:
591 pbusy = RZA_IO_RegRead_16(&USB200.PIPE8CTR,
592 USB_PIPEnCTR_6_8_PBUSY_SHIFT,
593 USB_PIPEnCTR_6_8_PBUSY);
596 case USB_FUNCTION_PIPE9:
597 pbusy = RZA_IO_RegRead_16(&USB200.PIPE9CTR,
598 USB_PIPEnCTR_9_PBUSY_SHIFT,
599 USB_PIPEnCTR_9_PBUSY);
602 case USB_FUNCTION_PIPEA:
603 pbusy = RZA_IO_RegRead_16(&USB200.PIPEACTR,
604 USB_PIPEnCTR_A_F_PBUSY_SHIFT,
605 USB_PIPEnCTR_A_F_PBUSY);
608 case USB_FUNCTION_PIPEB:
609 pbusy = RZA_IO_RegRead_16(&USB200.PIPEBCTR,
610 USB_PIPEnCTR_A_F_PBUSY_SHIFT,
611 USB_PIPEnCTR_A_F_PBUSY);
614 case USB_FUNCTION_PIPEC:
615 pbusy = RZA_IO_RegRead_16(&USB200.PIPECCTR,
616 USB_PIPEnCTR_A_F_PBUSY_SHIFT,
617 USB_PIPEnCTR_A_F_PBUSY);
620 case USB_FUNCTION_PIPED:
621 pbusy = RZA_IO_RegRead_16(&USB200.PIPEDCTR,
622 USB_PIPEnCTR_A_F_PBUSY_SHIFT,
623 USB_PIPEnCTR_A_F_PBUSY);
626 case USB_FUNCTION_PIPEE:
627 pbusy = RZA_IO_RegRead_16(&USB200.PIPEECTR,
628 USB_PIPEnCTR_A_F_PBUSY_SHIFT,
629 USB_PIPEnCTR_A_F_PBUSY);
632 case USB_FUNCTION_PIPEF:
633 pbusy = RZA_IO_RegRead_16(&USB200.PIPEFCTR,
634 USB_PIPEnCTR_A_F_PBUSY_SHIFT,
635 USB_PIPEnCTR_A_F_PBUSY);
647 Userdef_USB_usb0_function_delay_500ns();
652 /*******************************************************************************
653 * Function Name: usb0_function_set_pid_stall
654 * Description : Disables communication (STALL) in the pipe specified by the
656 * Arguments : uint16_t pipe ; pipe Number
657 * Return Value : none
658 *******************************************************************************/
659 void usb0_function_set_pid_stall (uint16_t pipe)
663 pid = usb0_function_get_pid(pipe);
664 if (pid == DEVDRV_USBF_PID_BUF)
668 case USB_FUNCTION_PIPE0:
669 RZA_IO_RegWrite_16(&USB200.DCPCTR,
670 DEVDRV_USBF_PID_STALL2,
671 USB_DCPCTR_PID_SHIFT,
675 case USB_FUNCTION_PIPE1:
676 RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
677 DEVDRV_USBF_PID_STALL2,
678 USB_PIPEnCTR_1_5_PID_SHIFT,
679 USB_PIPEnCTR_1_5_PID);
682 case USB_FUNCTION_PIPE2:
683 RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
684 DEVDRV_USBF_PID_STALL2,
685 USB_PIPEnCTR_1_5_PID_SHIFT,
686 USB_PIPEnCTR_1_5_PID);
689 case USB_FUNCTION_PIPE3:
690 RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
691 DEVDRV_USBF_PID_STALL2,
692 USB_PIPEnCTR_1_5_PID_SHIFT,
693 USB_PIPEnCTR_1_5_PID);
696 case USB_FUNCTION_PIPE4:
697 RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
698 DEVDRV_USBF_PID_STALL2,
699 USB_PIPEnCTR_1_5_PID_SHIFT,
700 USB_PIPEnCTR_1_5_PID);
703 case USB_FUNCTION_PIPE5:
704 RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
705 DEVDRV_USBF_PID_STALL2,
706 USB_PIPEnCTR_1_5_PID_SHIFT,
707 USB_PIPEnCTR_1_5_PID);
710 case USB_FUNCTION_PIPE6:
711 RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
712 DEVDRV_USBF_PID_STALL2,
713 USB_PIPEnCTR_6_8_PID_SHIFT,
714 USB_PIPEnCTR_6_8_PID);
717 case USB_FUNCTION_PIPE7:
718 RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
719 DEVDRV_USBF_PID_STALL2,
720 USB_PIPEnCTR_6_8_PID_SHIFT,
721 USB_PIPEnCTR_6_8_PID);
724 case USB_FUNCTION_PIPE8:
725 RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
726 DEVDRV_USBF_PID_STALL2,
727 USB_PIPEnCTR_6_8_PID_SHIFT,
728 USB_PIPEnCTR_6_8_PID);
731 case USB_FUNCTION_PIPE9:
732 RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
733 DEVDRV_USBF_PID_STALL2,
734 USB_PIPEnCTR_9_PID_SHIFT,
738 case USB_FUNCTION_PIPEA:
739 RZA_IO_RegWrite_16(&USB200.PIPEACTR,
740 DEVDRV_USBF_PID_STALL2,
741 USB_PIPEnCTR_A_F_PID_SHIFT,
742 USB_PIPEnCTR_A_F_PID);
745 case USB_FUNCTION_PIPEB:
746 RZA_IO_RegWrite_16(&USB200.PIPEBCTR,
747 DEVDRV_USBF_PID_STALL2,
748 USB_PIPEnCTR_A_F_PID_SHIFT,
749 USB_PIPEnCTR_A_F_PID);
752 case USB_FUNCTION_PIPEC:
753 RZA_IO_RegWrite_16(&USB200.PIPECCTR,
754 DEVDRV_USBF_PID_STALL2,
755 USB_PIPEnCTR_A_F_PID_SHIFT,
756 USB_PIPEnCTR_A_F_PID);
759 case USB_FUNCTION_PIPED:
760 RZA_IO_RegWrite_16(&USB200.PIPEDCTR,
761 DEVDRV_USBF_PID_STALL2,
762 USB_PIPEnCTR_A_F_PID_SHIFT,
763 USB_PIPEnCTR_A_F_PID);
766 case USB_FUNCTION_PIPEE:
767 RZA_IO_RegWrite_16(&USB200.PIPEECTR,
768 DEVDRV_USBF_PID_STALL2,
769 USB_PIPEnCTR_A_F_PID_SHIFT,
770 USB_PIPEnCTR_A_F_PID);
773 case USB_FUNCTION_PIPEF:
774 RZA_IO_RegWrite_16(&USB200.PIPEFCTR,
775 DEVDRV_USBF_PID_STALL2,
776 USB_PIPEnCTR_A_F_PID_SHIFT,
777 USB_PIPEnCTR_A_F_PID);
788 case USB_FUNCTION_PIPE0:
789 RZA_IO_RegWrite_16(&USB200.DCPCTR,
790 DEVDRV_USBF_PID_STALL,
791 USB_DCPCTR_PID_SHIFT,
795 case USB_FUNCTION_PIPE1:
796 RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
797 DEVDRV_USBF_PID_STALL,
798 USB_PIPEnCTR_1_5_PID_SHIFT,
799 USB_PIPEnCTR_1_5_PID);
802 case USB_FUNCTION_PIPE2:
803 RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
804 DEVDRV_USBF_PID_STALL,
805 USB_PIPEnCTR_1_5_PID_SHIFT,
806 USB_PIPEnCTR_1_5_PID);
809 case USB_FUNCTION_PIPE3:
810 RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
811 DEVDRV_USBF_PID_STALL,
812 USB_PIPEnCTR_1_5_PID_SHIFT,
813 USB_PIPEnCTR_1_5_PID);
816 case USB_FUNCTION_PIPE4:
817 RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
818 DEVDRV_USBF_PID_STALL,
819 USB_PIPEnCTR_1_5_PID_SHIFT,
820 USB_PIPEnCTR_1_5_PID);
823 case USB_FUNCTION_PIPE5:
824 RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
825 DEVDRV_USBF_PID_STALL,
826 USB_PIPEnCTR_1_5_PID_SHIFT,
827 USB_PIPEnCTR_1_5_PID);
830 case USB_FUNCTION_PIPE6:
831 RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
832 DEVDRV_USBF_PID_STALL,
833 USB_PIPEnCTR_6_8_PID_SHIFT,
834 USB_PIPEnCTR_6_8_PID);
837 case USB_FUNCTION_PIPE7:
838 RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
839 DEVDRV_USBF_PID_STALL,
840 USB_PIPEnCTR_6_8_PID_SHIFT,
841 USB_PIPEnCTR_6_8_PID);
844 case USB_FUNCTION_PIPE8:
845 RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
846 DEVDRV_USBF_PID_STALL,
847 USB_PIPEnCTR_6_8_PID_SHIFT,
848 USB_PIPEnCTR_6_8_PID);
851 case USB_FUNCTION_PIPE9:
852 RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
853 DEVDRV_USBF_PID_STALL,
854 USB_PIPEnCTR_9_PID_SHIFT,
858 case USB_FUNCTION_PIPEA:
859 RZA_IO_RegWrite_16(&USB200.PIPEACTR,
860 DEVDRV_USBF_PID_STALL,
861 USB_PIPEnCTR_A_F_PID_SHIFT,
862 USB_PIPEnCTR_A_F_PID);
865 case USB_FUNCTION_PIPEB:
866 RZA_IO_RegWrite_16(&USB200.PIPEBCTR,
867 DEVDRV_USBF_PID_STALL,
868 USB_PIPEnCTR_A_F_PID_SHIFT,
869 USB_PIPEnCTR_A_F_PID);
872 case USB_FUNCTION_PIPEC:
873 RZA_IO_RegWrite_16(&USB200.PIPECCTR,
874 DEVDRV_USBF_PID_STALL,
875 USB_PIPEnCTR_A_F_PID_SHIFT,
876 USB_PIPEnCTR_A_F_PID);
879 case USB_FUNCTION_PIPED:
880 RZA_IO_RegWrite_16(&USB200.PIPEDCTR,
881 DEVDRV_USBF_PID_STALL,
882 USB_PIPEnCTR_A_F_PID_SHIFT,
883 USB_PIPEnCTR_A_F_PID);
886 case USB_FUNCTION_PIPEE:
887 RZA_IO_RegWrite_16(&USB200.PIPEECTR,
888 DEVDRV_USBF_PID_STALL,
889 USB_PIPEnCTR_A_F_PID_SHIFT,
890 USB_PIPEnCTR_A_F_PID);
893 case USB_FUNCTION_PIPEF:
894 RZA_IO_RegWrite_16(&USB200.PIPEFCTR,
895 DEVDRV_USBF_PID_STALL,
896 USB_PIPEnCTR_A_F_PID_SHIFT,
897 USB_PIPEnCTR_A_F_PID);
906 /*******************************************************************************
907 * Function Name: usb0_function_clear_pid_stall
908 * Description : Disables communication (NAK) in the pipe specified by the argument.
909 * Arguments : uint16_t pipe ; pipe Number
910 * Return Value : none
911 *******************************************************************************/
912 void usb0_function_clear_pid_stall (uint16_t pipe)
914 usb0_function_set_pid_nak(pipe);
917 /*******************************************************************************
918 * Function Name: usb0_function_get_pid
919 * Description : Returns the pipe state specified by the argument.
920 * Arguments : uint16_t pipe ; Pipe Number
922 *******************************************************************************/
923 uint16_t usb0_function_get_pid (uint16_t pipe)
929 case USB_FUNCTION_PIPE0:
930 pid = RZA_IO_RegRead_16(&USB200.DCPCTR,
931 USB_DCPCTR_PID_SHIFT,
935 case USB_FUNCTION_PIPE1:
936 pid = RZA_IO_RegRead_16(&USB200.PIPE1CTR,
937 USB_PIPEnCTR_1_5_PID_SHIFT,
938 USB_PIPEnCTR_1_5_PID);
941 case USB_FUNCTION_PIPE2:
942 pid = RZA_IO_RegRead_16(&USB200.PIPE2CTR,
943 USB_PIPEnCTR_1_5_PID_SHIFT,
944 USB_PIPEnCTR_1_5_PID);
947 case USB_FUNCTION_PIPE3:
948 pid = RZA_IO_RegRead_16(&USB200.PIPE3CTR,
949 USB_PIPEnCTR_1_5_PID_SHIFT,
950 USB_PIPEnCTR_1_5_PID);
953 case USB_FUNCTION_PIPE4:
954 pid = RZA_IO_RegRead_16(&USB200.PIPE4CTR,
955 USB_PIPEnCTR_1_5_PID_SHIFT,
956 USB_PIPEnCTR_1_5_PID);
959 case USB_FUNCTION_PIPE5:
960 pid = RZA_IO_RegRead_16(&USB200.PIPE5CTR,
961 USB_PIPEnCTR_1_5_PID_SHIFT,
962 USB_PIPEnCTR_1_5_PID);
965 case USB_FUNCTION_PIPE6:
966 pid = RZA_IO_RegRead_16(&USB200.PIPE6CTR,
967 USB_PIPEnCTR_6_8_PID_SHIFT,
968 USB_PIPEnCTR_6_8_PID);
971 case USB_FUNCTION_PIPE7:
972 pid = RZA_IO_RegRead_16(&USB200.PIPE7CTR,
973 USB_PIPEnCTR_6_8_PID_SHIFT,
974 USB_PIPEnCTR_6_8_PID);
977 case USB_FUNCTION_PIPE8:
978 pid = RZA_IO_RegRead_16(&USB200.PIPE8CTR,
979 USB_PIPEnCTR_6_8_PID_SHIFT,
980 USB_PIPEnCTR_6_8_PID);
983 case USB_FUNCTION_PIPE9:
984 pid = RZA_IO_RegRead_16(&USB200.PIPE9CTR,
985 USB_PIPEnCTR_9_PID_SHIFT,
989 case USB_FUNCTION_PIPEA:
990 pid = RZA_IO_RegRead_16(&USB200.PIPEACTR,
991 USB_PIPEnCTR_A_F_PID_SHIFT,
992 USB_PIPEnCTR_A_F_PID);
995 case USB_FUNCTION_PIPEB:
996 pid = RZA_IO_RegRead_16(&USB200.PIPEBCTR,
997 USB_PIPEnCTR_A_F_PID_SHIFT,
998 USB_PIPEnCTR_A_F_PID);
1001 case USB_FUNCTION_PIPEC:
1002 pid = RZA_IO_RegRead_16(&USB200.PIPECCTR,
1003 USB_PIPEnCTR_A_F_PID_SHIFT,
1004 USB_PIPEnCTR_A_F_PID);
1007 case USB_FUNCTION_PIPED:
1008 pid = RZA_IO_RegRead_16(&USB200.PIPEDCTR,
1009 USB_PIPEnCTR_A_F_PID_SHIFT,
1010 USB_PIPEnCTR_A_F_PID);
1013 case USB_FUNCTION_PIPEE:
1014 pid = RZA_IO_RegRead_16(&USB200.PIPEECTR,
1015 USB_PIPEnCTR_A_F_PID_SHIFT,
1016 USB_PIPEnCTR_A_F_PID);
1019 case USB_FUNCTION_PIPEF:
1020 pid = RZA_IO_RegRead_16(&USB200.PIPEFCTR,
1021 USB_PIPEnCTR_A_F_PID_SHIFT,
1022 USB_PIPEnCTR_A_F_PID);
1033 /*******************************************************************************
1034 * Function Name: usb0_function_set_csclr
1035 * Description : CSPLIT status clear setting of sprit transaction in specified
1036 * : pipe is performed.
1037 * : When SQSET bit or SQCLR bit, and SQSET bit or SQCLR bit
1038 * : in DCPCTR register are continuously changed (when the sequence
1039 * : toggle bit of data PID is continuously changed over two or more pipes),
1040 * : the access cycle with 120 ns and more than 5 cycle bus clock is necessary.
1041 * : Do not set both SQCLR bit and SQSET bit to 1 at the same time.
1042 * : In addition, both bits should be operated after PID is set to NAK.
1043 * : However, when it is set to the isochronous transfer as the transfer type
1044 * : (TYPE=11), writing in SQSET bit is disabled.
1045 * Arguments : uint16_t pipe ; Pipe number
1046 * Return Value : none
1047 *******************************************************************************/
1048 void usb0_function_set_csclr (uint16_t pipe)
1052 case USB_FUNCTION_PIPE0:
1053 RZA_IO_RegWrite_16(&USB200.DCPCTR,
1055 USB_DCPCTR_CSCLR_SHIFT,
1059 case USB_FUNCTION_PIPE1:
1060 RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
1062 USB_PIPEnCTR_1_5_CSCLR_SHIFT,
1063 USB_PIPEnCTR_1_5_CSCLR);
1066 case USB_FUNCTION_PIPE2:
1067 RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
1069 USB_PIPEnCTR_1_5_CSCLR_SHIFT,
1070 USB_PIPEnCTR_1_5_CSCLR);
1073 case USB_FUNCTION_PIPE3:
1074 RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
1076 USB_PIPEnCTR_1_5_CSCLR_SHIFT,
1077 USB_PIPEnCTR_1_5_CSCLR);
1080 case USB_FUNCTION_PIPE4:
1081 RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
1083 USB_PIPEnCTR_1_5_CSCLR_SHIFT,
1084 USB_PIPEnCTR_1_5_CSCLR);
1087 case USB_FUNCTION_PIPE5:
1088 RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
1090 USB_PIPEnCTR_1_5_CSCLR_SHIFT,
1091 USB_PIPEnCTR_1_5_CSCLR);
1094 case USB_FUNCTION_PIPE6:
1095 RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
1097 USB_PIPEnCTR_6_8_CSCLR_SHIFT,
1098 USB_PIPEnCTR_6_8_CSCLR);
1101 case USB_FUNCTION_PIPE7:
1102 RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
1104 USB_PIPEnCTR_6_8_CSCLR_SHIFT,
1105 USB_PIPEnCTR_6_8_CSCLR);
1108 case USB_FUNCTION_PIPE8:
1109 RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
1111 USB_PIPEnCTR_6_8_CSCLR_SHIFT,
1112 USB_PIPEnCTR_6_8_CSCLR);
1115 case USB_FUNCTION_PIPE9:
1116 RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
1118 USB_PIPEnCTR_9_CSCLR_SHIFT,
1119 USB_PIPEnCTR_9_CSCLR);
1123 /* PIPEA-F have not CSCLR */
1128 /*******************************************************************************
1129 * Function Name: usb0_function_set_sqclr
1130 * Description : Sets the sequence bit of the pipe specified by the argument to
1132 * Arguments : uint16_t pipe ; Pipe Number
1133 * Return Value : none
1134 *******************************************************************************/
1135 void usb0_function_set_sqclr (uint16_t pipe)
1139 case USB_FUNCTION_PIPE0:
1140 RZA_IO_RegWrite_16(&USB200.DCPCTR,
1142 USB_DCPCTR_SQCLR_SHIFT,
1146 case USB_FUNCTION_PIPE1:
1147 RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
1149 USB_PIPEnCTR_1_5_SQCLR_SHIFT,
1150 USB_PIPEnCTR_1_5_SQCLR);
1153 case USB_FUNCTION_PIPE2:
1154 RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
1156 USB_PIPEnCTR_1_5_SQCLR_SHIFT,
1157 USB_PIPEnCTR_1_5_SQCLR);
1160 case USB_FUNCTION_PIPE3:
1161 RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
1163 USB_PIPEnCTR_1_5_SQCLR_SHIFT,
1164 USB_PIPEnCTR_1_5_SQCLR);
1167 case USB_FUNCTION_PIPE4:
1168 RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
1170 USB_PIPEnCTR_1_5_SQCLR_SHIFT,
1171 USB_PIPEnCTR_1_5_SQCLR);
1174 case USB_FUNCTION_PIPE5:
1175 RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
1177 USB_PIPEnCTR_1_5_SQCLR_SHIFT,
1178 USB_PIPEnCTR_1_5_SQCLR);
1181 case USB_FUNCTION_PIPE6:
1182 RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
1184 USB_PIPEnCTR_6_8_SQCLR_SHIFT,
1185 USB_PIPEnCTR_6_8_SQCLR);
1188 case USB_FUNCTION_PIPE7:
1189 RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
1191 USB_PIPEnCTR_6_8_SQCLR_SHIFT,
1192 USB_PIPEnCTR_6_8_SQCLR);
1195 case USB_FUNCTION_PIPE8:
1196 RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
1198 USB_PIPEnCTR_6_8_SQCLR_SHIFT,
1199 USB_PIPEnCTR_6_8_SQCLR);
1202 case USB_FUNCTION_PIPE9:
1203 RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
1205 USB_PIPEnCTR_9_SQCLR_SHIFT,
1206 USB_PIPEnCTR_9_SQCLR);
1209 case USB_FUNCTION_PIPEA:
1210 RZA_IO_RegWrite_16(&USB200.PIPEACTR,
1212 USB_PIPEnCTR_A_F_SQCLR_SHIFT,
1213 USB_PIPEnCTR_A_F_SQCLR);
1216 case USB_FUNCTION_PIPEB:
1217 RZA_IO_RegWrite_16(&USB200.PIPEBCTR,
1219 USB_PIPEnCTR_A_F_SQCLR_SHIFT,
1220 USB_PIPEnCTR_A_F_SQCLR);
1223 case USB_FUNCTION_PIPEC:
1224 RZA_IO_RegWrite_16(&USB200.PIPECCTR,
1226 USB_PIPEnCTR_A_F_SQCLR_SHIFT,
1227 USB_PIPEnCTR_A_F_SQCLR);
1230 case USB_FUNCTION_PIPED:
1231 RZA_IO_RegWrite_16(&USB200.PIPEDCTR,
1233 USB_PIPEnCTR_A_F_SQCLR_SHIFT,
1234 USB_PIPEnCTR_A_F_SQCLR);
1237 case USB_FUNCTION_PIPEE:
1238 RZA_IO_RegWrite_16(&USB200.PIPEECTR,
1240 USB_PIPEnCTR_A_F_SQCLR_SHIFT,
1241 USB_PIPEnCTR_A_F_SQCLR);
1244 case USB_FUNCTION_PIPEF:
1245 RZA_IO_RegWrite_16(&USB200.PIPEFCTR,
1247 USB_PIPEnCTR_A_F_SQCLR_SHIFT,
1248 USB_PIPEnCTR_A_F_SQCLR);
1256 /*******************************************************************************
1257 * Function Name: usb0_function_set_sqset
1258 * Description : Sets the sequence bit of the pipe specified by the argument to
1260 * Arguments : uint16_t pipe ; Pipe number
1261 * Return Value : none
1262 *******************************************************************************/
1263 void usb0_function_set_sqset (uint16_t pipe)
1267 case USB_FUNCTION_PIPE0:
1268 RZA_IO_RegWrite_16(&USB200.DCPCTR,
1270 USB_DCPCTR_SQSET_SHIFT,
1274 case USB_FUNCTION_PIPE1:
1275 RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
1277 USB_PIPEnCTR_1_5_SQSET_SHIFT,
1278 USB_PIPEnCTR_1_5_SQSET);
1281 case USB_FUNCTION_PIPE2:
1282 RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
1284 USB_PIPEnCTR_1_5_SQSET_SHIFT,
1285 USB_PIPEnCTR_1_5_SQSET);
1288 case USB_FUNCTION_PIPE3:
1289 RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
1291 USB_PIPEnCTR_1_5_SQSET_SHIFT,
1292 USB_PIPEnCTR_1_5_SQSET);
1295 case USB_FUNCTION_PIPE4:
1296 RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
1298 USB_PIPEnCTR_1_5_SQSET_SHIFT,
1299 USB_PIPEnCTR_1_5_SQSET);
1302 case USB_FUNCTION_PIPE5:
1303 RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
1305 USB_PIPEnCTR_1_5_SQSET_SHIFT,
1306 USB_PIPEnCTR_1_5_SQSET);
1309 case USB_FUNCTION_PIPE6:
1310 RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
1312 USB_PIPEnCTR_6_8_SQSET_SHIFT,
1313 USB_PIPEnCTR_6_8_SQSET);
1316 case USB_FUNCTION_PIPE7:
1317 RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
1319 USB_PIPEnCTR_6_8_SQSET_SHIFT,
1320 USB_PIPEnCTR_6_8_SQSET);
1323 case USB_FUNCTION_PIPE8:
1324 RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
1326 USB_PIPEnCTR_6_8_SQSET_SHIFT,
1327 USB_PIPEnCTR_6_8_SQSET);
1330 case USB_FUNCTION_PIPE9:
1331 RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
1333 USB_PIPEnCTR_9_SQSET_SHIFT,
1334 USB_PIPEnCTR_9_SQSET);
1337 case USB_FUNCTION_PIPEA:
1338 RZA_IO_RegWrite_16(&USB200.PIPEACTR,
1340 USB_PIPEnCTR_A_F_SQSET_SHIFT,
1341 USB_PIPEnCTR_A_F_SQSET);
1344 case USB_FUNCTION_PIPEB:
1345 RZA_IO_RegWrite_16(&USB200.PIPEBCTR,
1347 USB_PIPEnCTR_A_F_SQSET_SHIFT,
1348 USB_PIPEnCTR_A_F_SQSET);
1351 case USB_FUNCTION_PIPEC:
1352 RZA_IO_RegWrite_16(&USB200.PIPECCTR,
1354 USB_PIPEnCTR_A_F_SQSET_SHIFT,
1355 USB_PIPEnCTR_A_F_SQSET);
1358 case USB_FUNCTION_PIPED:
1359 RZA_IO_RegWrite_16(&USB200.PIPEDCTR,
1361 USB_PIPEnCTR_A_F_SQSET_SHIFT,
1362 USB_PIPEnCTR_A_F_SQSET);
1365 case USB_FUNCTION_PIPEE:
1366 RZA_IO_RegWrite_16(&USB200.PIPEECTR,
1368 USB_PIPEnCTR_A_F_SQSET_SHIFT,
1369 USB_PIPEnCTR_A_F_SQSET);
1372 case USB_FUNCTION_PIPEF:
1373 RZA_IO_RegWrite_16(&USB200.PIPEFCTR,
1375 USB_PIPEnCTR_A_F_SQSET_SHIFT,
1376 USB_PIPEnCTR_A_F_SQSET);
1384 /*******************************************************************************
1385 * Function Name: usb0_function_get_sqmon
1386 * Description : Toggle bit of specified pipe is obtained
1387 * Arguments : uint16_t pipe ; Pipe number
1388 * Return Value : sqmon
1389 *******************************************************************************/
1390 uint16_t usb0_function_get_sqmon (uint16_t pipe)
1396 case USB_FUNCTION_PIPE0:
1397 sqmon = RZA_IO_RegRead_16(&USB200.DCPCTR,
1398 USB_DCPCTR_SQMON_SHIFT,
1402 case USB_FUNCTION_PIPE1:
1403 sqmon = RZA_IO_RegRead_16(&USB200.PIPE1CTR,
1404 USB_PIPEnCTR_1_5_SQMON_SHIFT,
1405 USB_PIPEnCTR_1_5_SQMON);
1408 case USB_FUNCTION_PIPE2:
1409 sqmon = RZA_IO_RegRead_16(&USB200.PIPE2CTR,
1410 USB_PIPEnCTR_1_5_SQMON_SHIFT,
1411 USB_PIPEnCTR_1_5_SQMON);
1414 case USB_FUNCTION_PIPE3:
1415 sqmon = RZA_IO_RegRead_16(&USB200.PIPE3CTR,
1416 USB_PIPEnCTR_1_5_SQMON_SHIFT,
1417 USB_PIPEnCTR_1_5_SQMON);
1420 case USB_FUNCTION_PIPE4:
1421 sqmon = RZA_IO_RegRead_16(&USB200.PIPE4CTR,
1422 USB_PIPEnCTR_1_5_SQMON_SHIFT,
1423 USB_PIPEnCTR_1_5_SQMON);
1426 case USB_FUNCTION_PIPE5:
1427 sqmon = RZA_IO_RegRead_16(&USB200.PIPE5CTR,
1428 USB_PIPEnCTR_1_5_SQMON_SHIFT,
1429 USB_PIPEnCTR_1_5_SQMON);
1432 case USB_FUNCTION_PIPE6:
1433 sqmon = RZA_IO_RegRead_16(&USB200.PIPE6CTR,
1434 USB_PIPEnCTR_6_8_SQMON_SHIFT,
1435 USB_PIPEnCTR_6_8_SQMON);
1438 case USB_FUNCTION_PIPE7:
1439 sqmon = RZA_IO_RegRead_16(&USB200.PIPE7CTR,
1440 USB_PIPEnCTR_6_8_SQMON_SHIFT,
1441 USB_PIPEnCTR_6_8_SQMON);
1444 case USB_FUNCTION_PIPE8:
1445 sqmon = RZA_IO_RegRead_16(&USB200.PIPE8CTR,
1446 USB_PIPEnCTR_6_8_SQMON_SHIFT,
1447 USB_PIPEnCTR_6_8_SQMON);
1450 case USB_FUNCTION_PIPE9:
1451 sqmon = RZA_IO_RegRead_16(&USB200.PIPE9CTR,
1452 USB_PIPEnCTR_9_SQMON_SHIFT,
1453 USB_PIPEnCTR_9_SQMON);
1456 case USB_FUNCTION_PIPEA:
1457 sqmon = RZA_IO_RegRead_16(&USB200.PIPEACTR,
1458 USB_PIPEnCTR_A_F_SQMON_SHIFT,
1459 USB_PIPEnCTR_A_F_SQMON);
1462 case USB_FUNCTION_PIPEB:
1463 sqmon = RZA_IO_RegRead_16(&USB200.PIPEBCTR,
1464 USB_PIPEnCTR_A_F_SQMON_SHIFT,
1465 USB_PIPEnCTR_A_F_SQMON);
1468 case USB_FUNCTION_PIPEC:
1469 sqmon = RZA_IO_RegRead_16(&USB200.PIPECCTR,
1470 USB_PIPEnCTR_A_F_SQMON_SHIFT,
1471 USB_PIPEnCTR_A_F_SQMON);
1474 case USB_FUNCTION_PIPED:
1475 sqmon = RZA_IO_RegRead_16(&USB200.PIPEDCTR,
1476 USB_PIPEnCTR_A_F_SQMON_SHIFT,
1477 USB_PIPEnCTR_A_F_SQMON);
1480 case USB_FUNCTION_PIPEE:
1481 sqmon = RZA_IO_RegRead_16(&USB200.PIPEECTR,
1482 USB_PIPEnCTR_A_F_SQMON_SHIFT,
1483 USB_PIPEnCTR_A_F_SQMON);
1486 case USB_FUNCTION_PIPEF:
1487 sqmon = RZA_IO_RegRead_16(&USB200.PIPEFCTR,
1488 USB_PIPEnCTR_A_F_SQMON_SHIFT,
1489 USB_PIPEnCTR_A_F_SQMON);
1500 /*******************************************************************************
1501 * Function Name: usb0_function_aclrm
1502 * Description : The buffer of specified pipe is initialized
1503 * Arguments : uint16_t pipe : Pipe
1504 * Return Value : none
1505 *******************************************************************************/
1506 void usb0_function_aclrm (uint16_t pipe)
1508 usb0_function_set_aclrm(pipe);
1509 usb0_function_clr_aclrm(pipe);
1512 /*******************************************************************************
1513 * Function Name: usb0_function_set_aclrm
1514 * Description : The auto buffer clear mode of specified pipe is enabled
1515 * Arguments : uint16_t pipe : Pipe
1516 * Return Value : none
1517 *******************************************************************************/
1518 void usb0_function_set_aclrm (uint16_t pipe)
1522 case USB_FUNCTION_PIPE0:
1525 case USB_FUNCTION_PIPE1:
1526 RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
1528 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
1529 USB_PIPEnCTR_1_5_ACLRM);
1532 case USB_FUNCTION_PIPE2:
1533 RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
1535 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
1536 USB_PIPEnCTR_1_5_ACLRM);
1539 case USB_FUNCTION_PIPE3:
1540 RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
1542 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
1543 USB_PIPEnCTR_1_5_ACLRM);
1546 case USB_FUNCTION_PIPE4:
1547 RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
1549 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
1550 USB_PIPEnCTR_1_5_ACLRM);
1553 case USB_FUNCTION_PIPE5:
1554 RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
1556 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
1557 USB_PIPEnCTR_1_5_ACLRM);
1560 case USB_FUNCTION_PIPE6:
1561 RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
1563 USB_PIPEnCTR_6_8_ACLRM_SHIFT,
1564 USB_PIPEnCTR_6_8_ACLRM);
1567 case USB_FUNCTION_PIPE7:
1568 RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
1570 USB_PIPEnCTR_6_8_ACLRM_SHIFT,
1571 USB_PIPEnCTR_6_8_ACLRM);
1574 case USB_FUNCTION_PIPE8:
1575 RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
1577 USB_PIPEnCTR_6_8_ACLRM_SHIFT,
1578 USB_PIPEnCTR_6_8_ACLRM);
1581 case USB_FUNCTION_PIPE9:
1582 RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
1584 USB_PIPEnCTR_9_ACLRM_SHIFT,
1585 USB_PIPEnCTR_9_ACLRM);
1588 case USB_FUNCTION_PIPEA:
1589 RZA_IO_RegWrite_16(&USB200.PIPEACTR,
1591 USB_PIPEnCTR_A_F_ACLRM_SHIFT,
1592 USB_PIPEnCTR_A_F_ACLRM);
1595 case USB_FUNCTION_PIPEB:
1596 RZA_IO_RegWrite_16(&USB200.PIPEBCTR,
1598 USB_PIPEnCTR_A_F_ACLRM_SHIFT,
1599 USB_PIPEnCTR_A_F_ACLRM);
1602 case USB_FUNCTION_PIPEC:
1603 RZA_IO_RegWrite_16(&USB200.PIPECCTR,
1605 USB_PIPEnCTR_A_F_ACLRM_SHIFT,
1606 USB_PIPEnCTR_A_F_ACLRM);
1609 case USB_FUNCTION_PIPED:
1610 RZA_IO_RegWrite_16(&USB200.PIPEDCTR,
1612 USB_PIPEnCTR_A_F_ACLRM_SHIFT,
1613 USB_PIPEnCTR_A_F_ACLRM);
1616 case USB_FUNCTION_PIPEE:
1617 RZA_IO_RegWrite_16(&USB200.PIPEECTR,
1619 USB_PIPEnCTR_A_F_ACLRM_SHIFT,
1620 USB_PIPEnCTR_A_F_ACLRM);
1623 case USB_FUNCTION_PIPEF:
1624 RZA_IO_RegWrite_16(&USB200.PIPEFCTR,
1626 USB_PIPEnCTR_A_F_ACLRM_SHIFT,
1627 USB_PIPEnCTR_A_F_ACLRM);
1635 /*******************************************************************************
1636 * Function Name: usb0_function_clr_aclrm
1637 * Description : The auto buffer clear mode of specified pipe is enabled
1638 * Arguments : uint16_t pipe : Pipe
1639 * Return Value : none
1640 *******************************************************************************/
1641 void usb0_function_clr_aclrm (uint16_t pipe)
1645 case USB_FUNCTION_PIPE0:
1648 case USB_FUNCTION_PIPE1:
1649 RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
1651 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
1652 USB_PIPEnCTR_1_5_ACLRM);
1655 case USB_FUNCTION_PIPE2:
1656 RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
1658 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
1659 USB_PIPEnCTR_1_5_ACLRM);
1662 case USB_FUNCTION_PIPE3:
1663 RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
1665 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
1666 USB_PIPEnCTR_1_5_ACLRM);
1669 case USB_FUNCTION_PIPE4:
1670 RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
1672 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
1673 USB_PIPEnCTR_1_5_ACLRM);
1676 case USB_FUNCTION_PIPE5:
1677 RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
1679 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
1680 USB_PIPEnCTR_1_5_ACLRM);
1683 case USB_FUNCTION_PIPE6:
1684 RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
1686 USB_PIPEnCTR_6_8_ACLRM_SHIFT,
1687 USB_PIPEnCTR_6_8_ACLRM);
1690 case USB_FUNCTION_PIPE7:
1691 RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
1693 USB_PIPEnCTR_6_8_ACLRM_SHIFT,
1694 USB_PIPEnCTR_6_8_ACLRM);
1697 case USB_FUNCTION_PIPE8:
1698 RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
1700 USB_PIPEnCTR_6_8_ACLRM_SHIFT,
1701 USB_PIPEnCTR_6_8_ACLRM);
1704 case USB_FUNCTION_PIPE9:
1705 RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
1707 USB_PIPEnCTR_9_ACLRM_SHIFT,
1708 USB_PIPEnCTR_9_ACLRM);
1711 case USB_FUNCTION_PIPEA:
1712 RZA_IO_RegWrite_16(&USB200.PIPEACTR,
1714 USB_PIPEnCTR_A_F_ACLRM_SHIFT,
1715 USB_PIPEnCTR_A_F_ACLRM);
1718 case USB_FUNCTION_PIPEB:
1719 RZA_IO_RegWrite_16(&USB200.PIPEBCTR,
1721 USB_PIPEnCTR_A_F_ACLRM_SHIFT,
1722 USB_PIPEnCTR_A_F_ACLRM);
1725 case USB_FUNCTION_PIPEC:
1726 RZA_IO_RegWrite_16(&USB200.PIPECCTR,
1728 USB_PIPEnCTR_A_F_ACLRM_SHIFT,
1729 USB_PIPEnCTR_A_F_ACLRM);
1732 case USB_FUNCTION_PIPED:
1733 RZA_IO_RegWrite_16(&USB200.PIPEDCTR,
1735 USB_PIPEnCTR_A_F_ACLRM_SHIFT,
1736 USB_PIPEnCTR_A_F_ACLRM);
1739 case USB_FUNCTION_PIPEE:
1740 RZA_IO_RegWrite_16(&USB200.PIPEECTR,
1742 USB_PIPEnCTR_A_F_ACLRM_SHIFT,
1743 USB_PIPEnCTR_A_F_ACLRM);
1746 case USB_FUNCTION_PIPEF:
1747 RZA_IO_RegWrite_16(&USB200.PIPEFCTR,
1749 USB_PIPEnCTR_A_F_ACLRM_SHIFT,
1750 USB_PIPEnCTR_A_F_ACLRM);
1758 /*******************************************************************************
1759 * Function Name: usb0_function_get_inbuf
1760 * Description : Returns INBUFM of the pipe specified by the argument.
1761 * Arguments : uint16_t pipe ; Pipe Number
1762 * Return Value : inbuf
1763 *******************************************************************************/
1764 uint16_t usb0_function_get_inbuf (uint16_t pipe)
1770 case USB_FUNCTION_PIPE0:
1774 case USB_FUNCTION_PIPE1:
1775 inbuf = RZA_IO_RegRead_16(&USB200.PIPE1CTR,
1776 USB_PIPEnCTR_1_5_INBUFM_SHIFT,
1777 USB_PIPEnCTR_1_5_INBUFM);
1780 case USB_FUNCTION_PIPE2:
1781 inbuf = RZA_IO_RegRead_16(&USB200.PIPE2CTR,
1782 USB_PIPEnCTR_1_5_INBUFM_SHIFT,
1783 USB_PIPEnCTR_1_5_INBUFM);
1786 case USB_FUNCTION_PIPE3:
1787 inbuf = RZA_IO_RegRead_16(&USB200.PIPE3CTR,
1788 USB_PIPEnCTR_1_5_INBUFM_SHIFT,
1789 USB_PIPEnCTR_1_5_INBUFM);
1792 case USB_FUNCTION_PIPE4:
1793 inbuf = RZA_IO_RegRead_16(&USB200.PIPE4CTR,
1794 USB_PIPEnCTR_1_5_INBUFM_SHIFT,
1795 USB_PIPEnCTR_1_5_INBUFM);
1798 case USB_FUNCTION_PIPE5:
1799 inbuf = RZA_IO_RegRead_16(&USB200.PIPE5CTR,
1800 USB_PIPEnCTR_1_5_INBUFM_SHIFT,
1801 USB_PIPEnCTR_1_5_INBUFM);
1804 case USB_FUNCTION_PIPE6:
1808 case USB_FUNCTION_PIPE7:
1812 case USB_FUNCTION_PIPE8:
1816 case USB_FUNCTION_PIPE9:
1817 inbuf = RZA_IO_RegRead_16(&USB200.PIPE9CTR,
1818 USB_PIPEnCTR_9_INBUFM_SHIFT,
1819 USB_PIPEnCTR_9_INBUFM);
1822 case USB_FUNCTION_PIPEA:
1823 inbuf = RZA_IO_RegRead_16(&USB200.PIPEACTR,
1824 USB_PIPEnCTR_A_F_INBUFM_SHIFT,
1825 USB_PIPEnCTR_A_F_INBUFM);
1828 case USB_FUNCTION_PIPEB:
1829 inbuf = RZA_IO_RegRead_16(&USB200.PIPEBCTR,
1830 USB_PIPEnCTR_A_F_INBUFM_SHIFT,
1831 USB_PIPEnCTR_A_F_INBUFM);
1834 case USB_FUNCTION_PIPEC:
1835 inbuf = RZA_IO_RegRead_16(&USB200.PIPECCTR,
1836 USB_PIPEnCTR_A_F_INBUFM_SHIFT,
1837 USB_PIPEnCTR_A_F_INBUFM);
1840 case USB_FUNCTION_PIPED:
1841 inbuf = RZA_IO_RegRead_16(&USB200.PIPEDCTR,
1842 USB_PIPEnCTR_A_F_INBUFM_SHIFT,
1843 USB_PIPEnCTR_A_F_INBUFM);
1846 case USB_FUNCTION_PIPEE:
1847 inbuf = RZA_IO_RegRead_16(&USB200.PIPEECTR,
1848 USB_PIPEnCTR_A_F_INBUFM_SHIFT,
1849 USB_PIPEnCTR_A_F_INBUFM);
1852 case USB_FUNCTION_PIPEF:
1853 inbuf = RZA_IO_RegRead_16(&USB200.PIPEFCTR,
1854 USB_PIPEnCTR_A_F_INBUFM_SHIFT,
1855 USB_PIPEnCTR_A_F_INBUFM);
1866 /*******************************************************************************
1867 * Function Name: usb0_function_setting_interrupt
1868 * Description : Sets the USB module interrupt level.
1869 * Arguments : uint8_t level ;interrupt level
1870 * Return Value : none
1871 *******************************************************************************/
1873 void usb0_function_setting_interrupt (uint8_t level)
1875 uint16_t d0fifo_dmaintid;
1876 uint16_t d1fifo_dmaintid;
1878 R_INTC_RegistIntFunc(INTC_ID_USBI0, usb0_function_interrupt);
1879 R_INTC_SetPriority(INTC_ID_USBI0, level);
1880 R_INTC_Enable(INTC_ID_USBI0);
1882 d0fifo_dmaintid = Userdef_USB_usb0_function_d0fifo_dmaintid();
1884 if (d0fifo_dmaintid != 0xFFFF)
1886 R_INTC_RegistIntFunc(d0fifo_dmaintid, usb0_function_dma_interrupt_d0fifo);
1887 R_INTC_SetPriority(d0fifo_dmaintid, level);
1888 R_INTC_Enable(d0fifo_dmaintid);
1891 d1fifo_dmaintid = Userdef_USB_usb0_function_d1fifo_dmaintid();
1893 if (d1fifo_dmaintid != 0xFFFF)
1895 R_INTC_RegistIntFunc(d1fifo_dmaintid, usb0_function_dma_interrupt_d1fifo);
1896 R_INTC_SetPriority(d1fifo_dmaintid, level);
1897 R_INTC_Enable(d1fifo_dmaintid);
1902 /*******************************************************************************
1903 * Function Name: usb0_function_reset_module
1904 * Description : Initializes the USB module.
1905 * : Enables providing clock to the USB module.
1906 * : Sets USB bus wait register.
1907 * Arguments : uint16_t clockmode ; 48MHz ; USBFCLOCK_X1_48MHZ
1908 * : ; 12MHz ; USBFCLOCK_EXTAL_12MHZ
1909 * Return Value : none
1910 *******************************************************************************/
1911 void usb0_function_reset_module (uint16_t clockmode)
1913 /* UPLLE bit is only USB0 */
1914 if (RZA_IO_RegRead_16(&USB200.SYSCFG0,
1915 USB_SYSCFG_UPLLE_SHIFT,
1916 USB_SYSCFG_UPLLE) == 1)
1918 if ((USB200.SYSCFG0 & USB_FUNCTION_BITUCKSEL) != clockmode)
1920 RZA_IO_RegWrite_16(&USB200.SUSPMODE,
1922 USB_SUSPMODE_SUSPM_SHIFT,
1923 USB_SUSPMODE_SUSPM);
1925 USB200.SYSCFG0 = (USB_FUNCTION_BITUPLLE | clockmode);
1926 Userdef_USB_usb0_function_delay_xms(1);
1927 RZA_IO_RegWrite_16(&USB200.SUSPMODE,
1929 USB_SUSPMODE_SUSPM_SHIFT,
1930 USB_SUSPMODE_SUSPM);
1934 RZA_IO_RegWrite_16(&USB200.SUSPMODE,
1936 USB_SUSPMODE_SUSPM_SHIFT,
1937 USB_SUSPMODE_SUSPM);
1938 Userdef_USB_usb0_function_delay_xms(1);
1939 RZA_IO_RegWrite_16(&USB200.SUSPMODE,
1941 USB_SUSPMODE_SUSPM_SHIFT,
1942 USB_SUSPMODE_SUSPM);
1947 RZA_IO_RegWrite_16(&USB200.SUSPMODE,
1949 USB_SUSPMODE_SUSPM_SHIFT,
1950 USB_SUSPMODE_SUSPM);
1952 USB200.SYSCFG0 = (USB_FUNCTION_BITUPLLE | clockmode);
1953 Userdef_USB_usb0_function_delay_xms(1);
1954 RZA_IO_RegWrite_16(&USB200.SUSPMODE,
1956 USB_SUSPMODE_SUSPM_SHIFT,
1957 USB_SUSPMODE_SUSPM);
1960 USB200.BUSWAIT = (uint16_t)(USB_FUNCTION_BUSWAIT_05 & USB_FUNCTION_BITBWAIT);
1963 /*******************************************************************************
1964 * Function Name: usb0_function_get_buf_size
1965 * Description : Obtains pipe buffer size specified by the argument and
1966 * : maximum packet size of the USB device in use.
1967 * : When USB_FUNCTION_PIPE0 is specified by the argument, obtains the maximum
1968 * : packet size of the USB device using the corresponding pipe.
1969 * : For the case that USB_FUNCTION_PIPE0 is not assigned by the argument, when the
1970 * : corresponding pipe is in continuous transfer mode,
1971 * : obtains the buffer size allocated in the corresponcing pipe,
1972 * : when incontinuous transfer, obtains maximum packet size.
1973 * Arguments : uint16_t pipe ; Pipe Number
1974 * Return Value : Maximum packet size or buffer size
1975 *******************************************************************************/
1976 uint16_t usb0_function_get_buf_size (uint16_t pipe)
1981 if (pipe == USB_FUNCTION_PIPE0)
1983 size = RZA_IO_RegRead_16(&USB200.DCPMAXP,
1984 USB_DCPMAXP_MXPS_SHIFT,
1989 if (RZA_IO_RegRead_16(&g_usb0_function_pipecfg[pipe], USB_PIPECFG_CNTMD_SHIFT, USB_PIPECFG_CNTMD) == 1)
1991 bufsize = RZA_IO_RegRead_16(&g_usb0_function_pipebuf[pipe], USB_PIPEBUF_BUFSIZE_SHIFT, USB_PIPEBUF_BUFSIZE);
1992 size = (uint16_t)((bufsize + 1) * USB_FUNCTION_PIPExBUF);
1996 size = RZA_IO_RegRead_16(&g_usb0_function_pipemaxp[pipe], USB_PIPEMAXP_MXPS_SHIFT, USB_PIPEMAXP_MXPS);
2002 /*******************************************************************************
2003 * Function Name: usb0_function_get_mxps
2004 * Description : Obtains maximum packet size of the USB device using the pipe
2005 * : specified by the argument.
2006 * Arguments : uint16_t pipe ; Pipe Number
2007 * Return Value : Max Packet Size
2008 *******************************************************************************/
2009 uint16_t usb0_function_get_mxps (uint16_t pipe)
2013 if (pipe == USB_FUNCTION_PIPE0)
2015 size = RZA_IO_RegRead_16(&USB200.DCPMAXP,
2016 USB_DCPMAXP_MXPS_SHIFT,
2021 size = RZA_IO_RegRead_16(&g_usb0_function_pipemaxp[pipe], USB_PIPEMAXP_MXPS_SHIFT, USB_PIPEMAXP_MXPS);