USB device stack

Dependents:   USBMSD_step1 USBMSD_step1_5 picossd_step1_2cs

Committer:
muraguchi
Date:
Tue Feb 09 12:00:34 2021 +0000
Revision:
72:c80da04112fd
Parent:
71:53949e6131f6
Initial release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kojto 71:53949e6131f6 1 /*******************************************************************************
Kojto 71:53949e6131f6 2 * DISCLAIMER
Kojto 71:53949e6131f6 3 * This software is supplied by Renesas Electronics Corporation and is only
Kojto 71:53949e6131f6 4 * intended for use with Renesas products. No other uses are authorized. This
Kojto 71:53949e6131f6 5 * software is owned by Renesas Electronics Corporation and is protected under
Kojto 71:53949e6131f6 6 * all applicable laws, including copyright laws.
Kojto 71:53949e6131f6 7 * THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
Kojto 71:53949e6131f6 8 * THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
Kojto 71:53949e6131f6 9 * LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
Kojto 71:53949e6131f6 10 * AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
Kojto 71:53949e6131f6 11 * TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
Kojto 71:53949e6131f6 12 * ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
Kojto 71:53949e6131f6 13 * FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
Kojto 71:53949e6131f6 14 * ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
Kojto 71:53949e6131f6 15 * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
Kojto 71:53949e6131f6 16 * Renesas reserves the right, without notice, to make changes to this software
Kojto 71:53949e6131f6 17 * and to discontinue the availability of this software. By using this software,
Kojto 71:53949e6131f6 18 * you agree to the additional terms and conditions found by accessing the
Kojto 71:53949e6131f6 19 * following link:
Kojto 71:53949e6131f6 20 * http://www.renesas.com/disclaimer
Kojto 71:53949e6131f6 21 * Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
Kojto 71:53949e6131f6 22 *******************************************************************************/
Kojto 71:53949e6131f6 23 /*******************************************************************************
Kojto 71:53949e6131f6 24 * File Name : usb0_function_lib.c
Kojto 71:53949e6131f6 25 * $Rev: 1116 $
Kojto 71:53949e6131f6 26 * $Date:: 2014-07-09 16:29:19 +0900#$
Kojto 71:53949e6131f6 27 * Device(s) : RZ/A1H
Kojto 71:53949e6131f6 28 * Tool-Chain :
Kojto 71:53949e6131f6 29 * OS : None
Kojto 71:53949e6131f6 30 * H/W Platform :
Kojto 71:53949e6131f6 31 * Description : RZ/A1H R7S72100 USB Sample Program
Kojto 71:53949e6131f6 32 * Operation :
Kojto 71:53949e6131f6 33 * Limitations :
Kojto 71:53949e6131f6 34 *******************************************************************************/
Kojto 71:53949e6131f6 35
Kojto 71:53949e6131f6 36
Kojto 71:53949e6131f6 37 /*******************************************************************************
Kojto 71:53949e6131f6 38 Includes <System Includes> , "Project Includes"
Kojto 71:53949e6131f6 39 *******************************************************************************/
Kojto 71:53949e6131f6 40 #include "usb0_function.h"
Kojto 71:53949e6131f6 41
Kojto 71:53949e6131f6 42
Kojto 71:53949e6131f6 43 /*******************************************************************************
Kojto 71:53949e6131f6 44 Typedef definitions
Kojto 71:53949e6131f6 45 *******************************************************************************/
Kojto 71:53949e6131f6 46
Kojto 71:53949e6131f6 47
Kojto 71:53949e6131f6 48 /*******************************************************************************
Kojto 71:53949e6131f6 49 Macro definitions
Kojto 71:53949e6131f6 50 *******************************************************************************/
Kojto 71:53949e6131f6 51
Kojto 71:53949e6131f6 52
Kojto 71:53949e6131f6 53 /*******************************************************************************
Kojto 71:53949e6131f6 54 Imported global variables and functions (from other files)
Kojto 71:53949e6131f6 55 *******************************************************************************/
Kojto 71:53949e6131f6 56
Kojto 71:53949e6131f6 57
Kojto 71:53949e6131f6 58 /*******************************************************************************
Kojto 71:53949e6131f6 59 Exported global variables and functions (to be accessed by other files)
Kojto 71:53949e6131f6 60 *******************************************************************************/
Kojto 71:53949e6131f6 61
Kojto 71:53949e6131f6 62
Kojto 71:53949e6131f6 63 /*******************************************************************************
Kojto 71:53949e6131f6 64 Private global variables and functions
Kojto 71:53949e6131f6 65 *******************************************************************************/
Kojto 71:53949e6131f6 66
Kojto 71:53949e6131f6 67
Kojto 71:53949e6131f6 68 /*******************************************************************************
Kojto 71:53949e6131f6 69 * Function Name: usb0_function_enable_brdy_int
Kojto 71:53949e6131f6 70 * Description : Enables BRDY interrupt in the pipe spceified by the argument.
Kojto 71:53949e6131f6 71 * : Disables BEMP/NRDY/BRDY interrupts in all pipes before enabling
Kojto 71:53949e6131f6 72 * : BRDY. Enables BRDY interrupt in the pipe specified by the argument
Kojto 71:53949e6131f6 73 * : in the disabled status. After enabling BRDY, recover all
Kojto 71:53949e6131f6 74 * : BEMP/NRDY/BRDY disabled/enabled status.
Kojto 71:53949e6131f6 75 * Arguments : uint16_t pipe ; pipe Number
Kojto 71:53949e6131f6 76 * Return Value : none
Kojto 71:53949e6131f6 77 *******************************************************************************/
Kojto 71:53949e6131f6 78 void usb0_function_enable_brdy_int (uint16_t pipe)
Kojto 71:53949e6131f6 79 {
Kojto 71:53949e6131f6 80 /* enable brdy interrupt */
Kojto 71:53949e6131f6 81 USB200.BRDYENB |= (uint16_t)g_usb0_function_bit_set[pipe];
Kojto 71:53949e6131f6 82 }
Kojto 71:53949e6131f6 83
Kojto 71:53949e6131f6 84 /*******************************************************************************
Kojto 71:53949e6131f6 85 * Function Name: usb0_function_disable_brdy_int
Kojto 71:53949e6131f6 86 * Description : Disables BRDY interrupt in the pipe spceified by the argument.
Kojto 71:53949e6131f6 87 * : Disables BEMP/NRDY/BRDY interrupts in all pipes before disabling
Kojto 71:53949e6131f6 88 * : BRDY. Enables BRDY interrupt in the pipe specified by the argument
Kojto 71:53949e6131f6 89 * : in the disabled status. After disabling BRDY, recover all
Kojto 71:53949e6131f6 90 * : BEMP/NRDY/BRDY disabled/enabled status.
Kojto 71:53949e6131f6 91 * Arguments : uint16_t pipe ; pipe Number
Kojto 71:53949e6131f6 92 * Return Value : none
Kojto 71:53949e6131f6 93 *******************************************************************************/
Kojto 71:53949e6131f6 94 void usb0_function_disable_brdy_int (uint16_t pipe)
Kojto 71:53949e6131f6 95 {
Kojto 71:53949e6131f6 96 /* disable brdy interrupt */
Kojto 71:53949e6131f6 97 USB200.BRDYENB &= (uint16_t)~(g_usb0_function_bit_set[pipe]);
Kojto 71:53949e6131f6 98 }
Kojto 71:53949e6131f6 99
Kojto 71:53949e6131f6 100 /*******************************************************************************
Kojto 71:53949e6131f6 101 * Function Name: usb0_function_clear_brdy_sts
Kojto 71:53949e6131f6 102 * Description : Clear BRDY interrupt status in the pipe spceified by the argument.
Kojto 71:53949e6131f6 103 * Arguments : uint16_t pipe ; pipe Number
Kojto 71:53949e6131f6 104 * Return Value : none
Kojto 71:53949e6131f6 105 *******************************************************************************/
Kojto 71:53949e6131f6 106 void usb0_function_clear_brdy_sts (uint16_t pipe)
Kojto 71:53949e6131f6 107 {
Kojto 71:53949e6131f6 108 /* clear brdy status */
Kojto 71:53949e6131f6 109 USB200.BRDYSTS = (uint16_t)~(g_usb0_function_bit_set[pipe]);
Kojto 71:53949e6131f6 110 }
Kojto 71:53949e6131f6 111
Kojto 71:53949e6131f6 112 /*******************************************************************************
Kojto 71:53949e6131f6 113 * Function Name: usb0_function_enable_bemp_int
Kojto 71:53949e6131f6 114 * Description : Enables BEMP interrupt in the pipe spceified by the argument.
Kojto 71:53949e6131f6 115 * : Disables BEMP/NRDY/BRDY interrupts in all pipes before enabling
Kojto 71:53949e6131f6 116 * : BEMP. Enables BEMP interrupt in the pipe specified by the argument
Kojto 71:53949e6131f6 117 * : in the disabled status. After enabling BEMP, recover all
Kojto 71:53949e6131f6 118 * : BEMP/NRDY/BRDY disabled/enabled status.
Kojto 71:53949e6131f6 119 * Arguments : uint16_t pipe ; pipe Number
Kojto 71:53949e6131f6 120 * Return Value : none
Kojto 71:53949e6131f6 121 *******************************************************************************/
Kojto 71:53949e6131f6 122 void usb0_function_enable_bemp_int (uint16_t pipe)
Kojto 71:53949e6131f6 123 {
Kojto 71:53949e6131f6 124 /* enable bemp interrupt */
Kojto 71:53949e6131f6 125 USB200.BEMPENB |= (uint16_t)g_usb0_function_bit_set[pipe];
Kojto 71:53949e6131f6 126 }
Kojto 71:53949e6131f6 127
Kojto 71:53949e6131f6 128 /*******************************************************************************
Kojto 71:53949e6131f6 129 * Function Name: usb0_function_disable_bemp_int
Kojto 71:53949e6131f6 130 * Description : Disables BEMP interrupt in the pipe spceified by the argument.
Kojto 71:53949e6131f6 131 * : Disables BEMP/NRDY/BRDY interrupts in all pipes before disabling
Kojto 71:53949e6131f6 132 * : BEMP. Enables BEMP interrupt in the pipe specified by the argument
Kojto 71:53949e6131f6 133 * : in the disabled status. After enabling BEMP, recover all
Kojto 71:53949e6131f6 134 * : BEMP/NRDY/BRDY disabled/enabled status.
Kojto 71:53949e6131f6 135 * Arguments : uint16_t pipe ; pipe Number
Kojto 71:53949e6131f6 136 * Return Value : none
Kojto 71:53949e6131f6 137 *******************************************************************************/
Kojto 71:53949e6131f6 138 void usb0_function_disable_bemp_int (uint16_t pipe)
Kojto 71:53949e6131f6 139 {
Kojto 71:53949e6131f6 140 /* disable bemp interrupt */
Kojto 71:53949e6131f6 141 USB200.BEMPENB &= (uint16_t)~(g_usb0_function_bit_set[pipe]);
Kojto 71:53949e6131f6 142 }
Kojto 71:53949e6131f6 143
Kojto 71:53949e6131f6 144 /*******************************************************************************
Kojto 71:53949e6131f6 145 * Function Name: usb0_function_clear_bemp_sts
Kojto 71:53949e6131f6 146 * Description : Clear BEMP interrupt status in the pipe spceified by the argument.
Kojto 71:53949e6131f6 147 * Arguments : uint16_t pipe ; pipe Number
Kojto 71:53949e6131f6 148 * Return Value : none
Kojto 71:53949e6131f6 149 *******************************************************************************/
Kojto 71:53949e6131f6 150 void usb0_function_clear_bemp_sts (uint16_t pipe)
Kojto 71:53949e6131f6 151 {
Kojto 71:53949e6131f6 152 /* clear bemp status */
Kojto 71:53949e6131f6 153 USB200.BEMPSTS = (uint16_t)~(g_usb0_function_bit_set[pipe]);
Kojto 71:53949e6131f6 154 }
Kojto 71:53949e6131f6 155
Kojto 71:53949e6131f6 156 /*******************************************************************************
Kojto 71:53949e6131f6 157 * Function Name: usb0_function_enable_nrdy_int
Kojto 71:53949e6131f6 158 * Description : Enables NRDY interrupt in the pipe spceified by the argument.
Kojto 71:53949e6131f6 159 * : Disables BEMP/NRDY/BRDY interrupts in all pipes before enabling
Kojto 71:53949e6131f6 160 * : NRDY. Enables NRDY interrupt in the pipe specified by the argument
Kojto 71:53949e6131f6 161 * : in the disabled status. After enabling NRDY, recover all
Kojto 71:53949e6131f6 162 * : BEMP/NRDY/BRDY disabled/enabled status.
Kojto 71:53949e6131f6 163 * Arguments : uint16_t pipe ; pipe Number
Kojto 71:53949e6131f6 164 * Return Value : none
Kojto 71:53949e6131f6 165 *******************************************************************************/
Kojto 71:53949e6131f6 166 void usb0_function_enable_nrdy_int (uint16_t pipe)
Kojto 71:53949e6131f6 167 {
Kojto 71:53949e6131f6 168 /* enable nrdy interrupt */
Kojto 71:53949e6131f6 169 USB200.NRDYENB |= (uint16_t)g_usb0_function_bit_set[pipe];
Kojto 71:53949e6131f6 170 }
Kojto 71:53949e6131f6 171
Kojto 71:53949e6131f6 172 /*******************************************************************************
Kojto 71:53949e6131f6 173 * Function Name: usb0_function_disable_nrdy_int
Kojto 71:53949e6131f6 174 * Description : Disables NRDY interrupt in the pipe spceified by the argument.
Kojto 71:53949e6131f6 175 * : Disables BEMP/NRDY/BRDY interrupts in all pipes before disabling
Kojto 71:53949e6131f6 176 * : NRDY. Disables NRDY interrupt in the pipe specified by the argument
Kojto 71:53949e6131f6 177 * : in the disabled status. After disabling NRDY, recover all
Kojto 71:53949e6131f6 178 * : BEMP/NRDY/BRDY disabled/enabled status.
Kojto 71:53949e6131f6 179 * Arguments : uint16_t pipe ; pipe Number
Kojto 71:53949e6131f6 180 * Return Value : none
Kojto 71:53949e6131f6 181 *******************************************************************************/
Kojto 71:53949e6131f6 182 void usb0_function_disable_nrdy_int (uint16_t pipe)
Kojto 71:53949e6131f6 183 {
Kojto 71:53949e6131f6 184 /* disable nrdy interrupt */
Kojto 71:53949e6131f6 185 USB200.NRDYENB &= (uint16_t)~(g_usb0_function_bit_set[pipe]);
Kojto 71:53949e6131f6 186 }
Kojto 71:53949e6131f6 187
Kojto 71:53949e6131f6 188 /*******************************************************************************
Kojto 71:53949e6131f6 189 * Function Name: usb0_function_clear_nrdy_sts
Kojto 71:53949e6131f6 190 * Description : Clear NRDY interrupt status in the pipe spceified by the argument.
Kojto 71:53949e6131f6 191 * Arguments : uint16_t pipe ; pipe Number
Kojto 71:53949e6131f6 192 * Return Value : none
Kojto 71:53949e6131f6 193 *******************************************************************************/
Kojto 71:53949e6131f6 194 void usb0_function_clear_nrdy_sts (uint16_t pipe)
Kojto 71:53949e6131f6 195 {
Kojto 71:53949e6131f6 196 /* clear nrdy status */
Kojto 71:53949e6131f6 197 USB200.NRDYSTS = (uint16_t)~(g_usb0_function_bit_set[pipe]);
Kojto 71:53949e6131f6 198 }
Kojto 71:53949e6131f6 199
Kojto 71:53949e6131f6 200 /*******************************************************************************
Kojto 71:53949e6131f6 201 * Function Name: usb0_function_is_hispeed
Kojto 71:53949e6131f6 202 * Description : Returns the result of USB reset hand shake (RHST) as
Kojto 71:53949e6131f6 203 * : return value.
Kojto 71:53949e6131f6 204 * Arguments : none
Kojto 71:53949e6131f6 205 * Return Value : USB_FUNCTION_HIGH_SPEED ; Hi-Speed
Kojto 71:53949e6131f6 206 * : USB_FUNCTION_FULL_SPEED ; Full-Speed
Kojto 71:53949e6131f6 207 * : LOW_SPEED ; Low-Speed
Kojto 71:53949e6131f6 208 * : USB_FUNCTION_NON_SPEED ; error
Kojto 71:53949e6131f6 209 *******************************************************************************/
Kojto 71:53949e6131f6 210 uint16_t usb0_function_is_hispeed (void)
Kojto 71:53949e6131f6 211 {
Kojto 71:53949e6131f6 212 uint16_t rhst;
Kojto 71:53949e6131f6 213 uint16_t speed;
Kojto 71:53949e6131f6 214
Kojto 71:53949e6131f6 215 rhst = RZA_IO_RegRead_16(&USB200.DVSTCTR0, USB_DVSTCTR0_RHST_SHIFT, USB_DVSTCTR0_RHST);
Kojto 71:53949e6131f6 216
Kojto 71:53949e6131f6 217 if (rhst == USB_FUNCTION_HSMODE)
Kojto 71:53949e6131f6 218 {
Kojto 71:53949e6131f6 219 speed = USB_FUNCTION_HIGH_SPEED;
Kojto 71:53949e6131f6 220 }
Kojto 71:53949e6131f6 221 else if (rhst == USB_FUNCTION_FSMODE)
Kojto 71:53949e6131f6 222 {
Kojto 71:53949e6131f6 223 speed = USB_FUNCTION_FULL_SPEED;
Kojto 71:53949e6131f6 224 }
Kojto 71:53949e6131f6 225 else if (rhst == USB_FUNCTION_LSMODE)
Kojto 71:53949e6131f6 226 {
Kojto 71:53949e6131f6 227 speed = USB_FUNCTION_LOW_SPEED;
Kojto 71:53949e6131f6 228 }
Kojto 71:53949e6131f6 229 else
Kojto 71:53949e6131f6 230 {
Kojto 71:53949e6131f6 231 speed = USB_FUNCTION_NON_SPEED;
Kojto 71:53949e6131f6 232 }
Kojto 71:53949e6131f6 233
Kojto 71:53949e6131f6 234 return speed;
Kojto 71:53949e6131f6 235 }
Kojto 71:53949e6131f6 236
Kojto 71:53949e6131f6 237 /*******************************************************************************
Kojto 71:53949e6131f6 238 * Function Name: usb0_function_is_hispeed_enable
Kojto 71:53949e6131f6 239 * Description : Returns the USB High-Speed connection enabled status as
Kojto 71:53949e6131f6 240 * : return value.
Kojto 71:53949e6131f6 241 * Arguments : none
Kojto 71:53949e6131f6 242 * Return Value : DEVDRV_USBF_YES : Hi-Speed Enable
Kojto 71:53949e6131f6 243 * : DEVDRV_USBF_NO : Hi-Speed Disable
Kojto 71:53949e6131f6 244 *******************************************************************************/
Kojto 71:53949e6131f6 245 uint16_t usb0_function_is_hispeed_enable (void)
Kojto 71:53949e6131f6 246 {
Kojto 71:53949e6131f6 247 uint16_t ret;
Kojto 71:53949e6131f6 248
Kojto 71:53949e6131f6 249 ret = DEVDRV_USBF_NO;
Kojto 71:53949e6131f6 250
Kojto 71:53949e6131f6 251 if (RZA_IO_RegRead_16(&USB200.SYSCFG0, USB_SYSCFG_HSE_SHIFT, USB_SYSCFG_HSE) == 1)
Kojto 71:53949e6131f6 252 {
Kojto 71:53949e6131f6 253 ret = DEVDRV_USBF_YES;
Kojto 71:53949e6131f6 254 }
Kojto 71:53949e6131f6 255
Kojto 71:53949e6131f6 256 return ret;
Kojto 71:53949e6131f6 257 }
Kojto 71:53949e6131f6 258
Kojto 71:53949e6131f6 259 /*******************************************************************************
Kojto 71:53949e6131f6 260 * Function Name: usb0_function_set_pid_buf
Kojto 71:53949e6131f6 261 * Description : Enables communicaqtion in the pipe specified by the argument
Kojto 71:53949e6131f6 262 * : (BUF).
Kojto 71:53949e6131f6 263 * Arguments : uint16_t pipe ; pipe Number
Kojto 71:53949e6131f6 264 * Return Value : none
Kojto 71:53949e6131f6 265 *******************************************************************************/
Kojto 71:53949e6131f6 266 void usb0_function_set_pid_buf (uint16_t pipe)
Kojto 71:53949e6131f6 267 {
Kojto 71:53949e6131f6 268 uint16_t pid;
Kojto 71:53949e6131f6 269
Kojto 71:53949e6131f6 270 pid = usb0_function_get_pid(pipe);
Kojto 71:53949e6131f6 271
Kojto 71:53949e6131f6 272 if (pid == DEVDRV_USBF_PID_STALL2)
Kojto 71:53949e6131f6 273 {
Kojto 71:53949e6131f6 274 usb0_function_set_pid_nak(pipe);
Kojto 71:53949e6131f6 275 }
Kojto 71:53949e6131f6 276
Kojto 71:53949e6131f6 277 switch (pipe)
Kojto 71:53949e6131f6 278 {
Kojto 71:53949e6131f6 279 case USB_FUNCTION_PIPE0:
Kojto 71:53949e6131f6 280 RZA_IO_RegWrite_16(&USB200.DCPCTR,
Kojto 71:53949e6131f6 281 DEVDRV_USBF_PID_BUF,
Kojto 71:53949e6131f6 282 USB_DCPCTR_PID_SHIFT,
Kojto 71:53949e6131f6 283 USB_DCPCTR_PID);
Kojto 71:53949e6131f6 284 break;
Kojto 71:53949e6131f6 285
Kojto 71:53949e6131f6 286 case USB_FUNCTION_PIPE1:
Kojto 71:53949e6131f6 287 RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
Kojto 71:53949e6131f6 288 DEVDRV_USBF_PID_BUF,
Kojto 71:53949e6131f6 289 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 290 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 291 break;
Kojto 71:53949e6131f6 292
Kojto 71:53949e6131f6 293 case USB_FUNCTION_PIPE2:
Kojto 71:53949e6131f6 294 RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
Kojto 71:53949e6131f6 295 DEVDRV_USBF_PID_BUF,
Kojto 71:53949e6131f6 296 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 297 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 298 break;
Kojto 71:53949e6131f6 299
Kojto 71:53949e6131f6 300 case USB_FUNCTION_PIPE3:
Kojto 71:53949e6131f6 301 RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
Kojto 71:53949e6131f6 302 DEVDRV_USBF_PID_BUF,
Kojto 71:53949e6131f6 303 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 304 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 305 break;
Kojto 71:53949e6131f6 306
Kojto 71:53949e6131f6 307 case USB_FUNCTION_PIPE4:
Kojto 71:53949e6131f6 308 RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
Kojto 71:53949e6131f6 309 DEVDRV_USBF_PID_BUF,
Kojto 71:53949e6131f6 310 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 311 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 312 break;
Kojto 71:53949e6131f6 313
Kojto 71:53949e6131f6 314 case USB_FUNCTION_PIPE5:
Kojto 71:53949e6131f6 315 RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
Kojto 71:53949e6131f6 316 DEVDRV_USBF_PID_BUF,
Kojto 71:53949e6131f6 317 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 318 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 319 break;
Kojto 71:53949e6131f6 320
Kojto 71:53949e6131f6 321 case USB_FUNCTION_PIPE6:
Kojto 71:53949e6131f6 322 RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
Kojto 71:53949e6131f6 323 DEVDRV_USBF_PID_BUF,
Kojto 71:53949e6131f6 324 USB_PIPEnCTR_6_8_PID_SHIFT,
Kojto 71:53949e6131f6 325 USB_PIPEnCTR_6_8_PID);
Kojto 71:53949e6131f6 326 break;
Kojto 71:53949e6131f6 327
Kojto 71:53949e6131f6 328 case USB_FUNCTION_PIPE7:
Kojto 71:53949e6131f6 329 RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
Kojto 71:53949e6131f6 330 DEVDRV_USBF_PID_BUF,
Kojto 71:53949e6131f6 331 USB_PIPEnCTR_6_8_PID_SHIFT,
Kojto 71:53949e6131f6 332 USB_PIPEnCTR_6_8_PID);
Kojto 71:53949e6131f6 333 break;
Kojto 71:53949e6131f6 334
Kojto 71:53949e6131f6 335 case USB_FUNCTION_PIPE8:
Kojto 71:53949e6131f6 336 RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
Kojto 71:53949e6131f6 337 DEVDRV_USBF_PID_BUF,
Kojto 71:53949e6131f6 338 USB_PIPEnCTR_6_8_PID_SHIFT,
Kojto 71:53949e6131f6 339 USB_PIPEnCTR_6_8_PID);
Kojto 71:53949e6131f6 340 break;
Kojto 71:53949e6131f6 341
Kojto 71:53949e6131f6 342 case USB_FUNCTION_PIPE9:
Kojto 71:53949e6131f6 343 RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
Kojto 71:53949e6131f6 344 DEVDRV_USBF_PID_BUF,
Kojto 71:53949e6131f6 345 USB_PIPEnCTR_9_PID_SHIFT,
Kojto 71:53949e6131f6 346 USB_PIPEnCTR_9_PID);
Kojto 71:53949e6131f6 347 break;
Kojto 71:53949e6131f6 348
Kojto 71:53949e6131f6 349 case USB_FUNCTION_PIPEA:
Kojto 71:53949e6131f6 350 RZA_IO_RegWrite_16(&USB200.PIPEACTR,
Kojto 71:53949e6131f6 351 DEVDRV_USBF_PID_BUF,
Kojto 71:53949e6131f6 352 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 353 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 354 break;
Kojto 71:53949e6131f6 355
Kojto 71:53949e6131f6 356 case USB_FUNCTION_PIPEB:
Kojto 71:53949e6131f6 357 RZA_IO_RegWrite_16(&USB200.PIPEBCTR,
Kojto 71:53949e6131f6 358 DEVDRV_USBF_PID_BUF,
Kojto 71:53949e6131f6 359 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 360 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 361 break;
Kojto 71:53949e6131f6 362
Kojto 71:53949e6131f6 363 case USB_FUNCTION_PIPEC:
Kojto 71:53949e6131f6 364 RZA_IO_RegWrite_16(&USB200.PIPECCTR,
Kojto 71:53949e6131f6 365 DEVDRV_USBF_PID_BUF,
Kojto 71:53949e6131f6 366 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 367 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 368 break;
Kojto 71:53949e6131f6 369
Kojto 71:53949e6131f6 370 case USB_FUNCTION_PIPED:
Kojto 71:53949e6131f6 371 RZA_IO_RegWrite_16(&USB200.PIPEDCTR,
Kojto 71:53949e6131f6 372 DEVDRV_USBF_PID_BUF,
Kojto 71:53949e6131f6 373 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 374 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 375 break;
Kojto 71:53949e6131f6 376
Kojto 71:53949e6131f6 377 case USB_FUNCTION_PIPEE:
Kojto 71:53949e6131f6 378 RZA_IO_RegWrite_16(&USB200.PIPEECTR,
Kojto 71:53949e6131f6 379 DEVDRV_USBF_PID_BUF,
Kojto 71:53949e6131f6 380 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 381 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 382 break;
Kojto 71:53949e6131f6 383
Kojto 71:53949e6131f6 384 case USB_FUNCTION_PIPEF:
Kojto 71:53949e6131f6 385 RZA_IO_RegWrite_16(&USB200.PIPEFCTR,
Kojto 71:53949e6131f6 386 DEVDRV_USBF_PID_BUF,
Kojto 71:53949e6131f6 387 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 388 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 389 break;
Kojto 71:53949e6131f6 390
Kojto 71:53949e6131f6 391 default:
Kojto 71:53949e6131f6 392 break;
Kojto 71:53949e6131f6 393 }
Kojto 71:53949e6131f6 394 }
Kojto 71:53949e6131f6 395
Kojto 71:53949e6131f6 396 /*******************************************************************************
Kojto 71:53949e6131f6 397 * Function Name: usb0_function_set_pid_nak
Kojto 71:53949e6131f6 398 * Description : Disables communication (NAK) in the pipe specified by the argument.
Kojto 71:53949e6131f6 399 * : When the pipe status was enabling communication (BUF) before
Kojto 71:53949e6131f6 400 * : executing before executing this function, waits in the software
Kojto 71:53949e6131f6 401 * : until the pipe becomes ready after setting disabled.
Kojto 71:53949e6131f6 402 * Arguments : uint16_t pipe ; pipe Number
Kojto 71:53949e6131f6 403 * Return Value : none
Kojto 71:53949e6131f6 404 *******************************************************************************/
Kojto 71:53949e6131f6 405 void usb0_function_set_pid_nak (uint16_t pipe)
Kojto 71:53949e6131f6 406 {
Kojto 71:53949e6131f6 407 uint16_t pid;
Kojto 71:53949e6131f6 408 uint16_t pbusy;
Kojto 71:53949e6131f6 409 uint32_t loop;
Kojto 71:53949e6131f6 410
Kojto 71:53949e6131f6 411 pid = usb0_function_get_pid(pipe);
Kojto 71:53949e6131f6 412
Kojto 71:53949e6131f6 413 if (pid == DEVDRV_USBF_PID_STALL2)
Kojto 71:53949e6131f6 414 {
Kojto 71:53949e6131f6 415 usb0_function_set_pid_stall(pipe);
Kojto 71:53949e6131f6 416 }
Kojto 71:53949e6131f6 417
Kojto 71:53949e6131f6 418 switch (pipe)
Kojto 71:53949e6131f6 419 {
Kojto 71:53949e6131f6 420 case USB_FUNCTION_PIPE0:
Kojto 71:53949e6131f6 421 RZA_IO_RegWrite_16(&USB200.DCPCTR,
Kojto 71:53949e6131f6 422 DEVDRV_USBF_PID_NAK,
Kojto 71:53949e6131f6 423 USB_DCPCTR_PID_SHIFT,
Kojto 71:53949e6131f6 424 USB_DCPCTR_PID);
Kojto 71:53949e6131f6 425 break;
Kojto 71:53949e6131f6 426
Kojto 71:53949e6131f6 427 case USB_FUNCTION_PIPE1:
Kojto 71:53949e6131f6 428 RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
Kojto 71:53949e6131f6 429 DEVDRV_USBF_PID_NAK,
Kojto 71:53949e6131f6 430 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 431 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 432 break;
Kojto 71:53949e6131f6 433
Kojto 71:53949e6131f6 434 case USB_FUNCTION_PIPE2:
Kojto 71:53949e6131f6 435 RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
Kojto 71:53949e6131f6 436 DEVDRV_USBF_PID_NAK,
Kojto 71:53949e6131f6 437 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 438 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 439 break;
Kojto 71:53949e6131f6 440
Kojto 71:53949e6131f6 441 case USB_FUNCTION_PIPE3:
Kojto 71:53949e6131f6 442 RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
Kojto 71:53949e6131f6 443 DEVDRV_USBF_PID_NAK,
Kojto 71:53949e6131f6 444 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 445 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 446 break;
Kojto 71:53949e6131f6 447
Kojto 71:53949e6131f6 448 case USB_FUNCTION_PIPE4:
Kojto 71:53949e6131f6 449 RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
Kojto 71:53949e6131f6 450 DEVDRV_USBF_PID_NAK,
Kojto 71:53949e6131f6 451 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 452 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 453 break;
Kojto 71:53949e6131f6 454
Kojto 71:53949e6131f6 455 case USB_FUNCTION_PIPE5:
Kojto 71:53949e6131f6 456 RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
Kojto 71:53949e6131f6 457 DEVDRV_USBF_PID_NAK,
Kojto 71:53949e6131f6 458 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 459 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 460 break;
Kojto 71:53949e6131f6 461
Kojto 71:53949e6131f6 462 case USB_FUNCTION_PIPE6:
Kojto 71:53949e6131f6 463 RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
Kojto 71:53949e6131f6 464 DEVDRV_USBF_PID_NAK,
Kojto 71:53949e6131f6 465 USB_PIPEnCTR_6_8_PID_SHIFT,
Kojto 71:53949e6131f6 466 USB_PIPEnCTR_6_8_PID);
Kojto 71:53949e6131f6 467 break;
Kojto 71:53949e6131f6 468
Kojto 71:53949e6131f6 469 case USB_FUNCTION_PIPE7:
Kojto 71:53949e6131f6 470 RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
Kojto 71:53949e6131f6 471 DEVDRV_USBF_PID_NAK,
Kojto 71:53949e6131f6 472 USB_PIPEnCTR_6_8_PID_SHIFT,
Kojto 71:53949e6131f6 473 USB_PIPEnCTR_6_8_PID);
Kojto 71:53949e6131f6 474 break;
Kojto 71:53949e6131f6 475
Kojto 71:53949e6131f6 476 case USB_FUNCTION_PIPE8:
Kojto 71:53949e6131f6 477 RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
Kojto 71:53949e6131f6 478 DEVDRV_USBF_PID_NAK,
Kojto 71:53949e6131f6 479 USB_PIPEnCTR_6_8_PID_SHIFT,
Kojto 71:53949e6131f6 480 USB_PIPEnCTR_6_8_PID);
Kojto 71:53949e6131f6 481 break;
Kojto 71:53949e6131f6 482
Kojto 71:53949e6131f6 483 case USB_FUNCTION_PIPE9:
Kojto 71:53949e6131f6 484 RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
Kojto 71:53949e6131f6 485 DEVDRV_USBF_PID_NAK,
Kojto 71:53949e6131f6 486 USB_PIPEnCTR_9_PID_SHIFT,
Kojto 71:53949e6131f6 487 USB_PIPEnCTR_9_PID);
Kojto 71:53949e6131f6 488 break;
Kojto 71:53949e6131f6 489
Kojto 71:53949e6131f6 490 case USB_FUNCTION_PIPEA:
Kojto 71:53949e6131f6 491 RZA_IO_RegWrite_16(&USB200.PIPEACTR,
Kojto 71:53949e6131f6 492 DEVDRV_USBF_PID_NAK,
Kojto 71:53949e6131f6 493 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 494 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 495 break;
Kojto 71:53949e6131f6 496
Kojto 71:53949e6131f6 497 case USB_FUNCTION_PIPEB:
Kojto 71:53949e6131f6 498 RZA_IO_RegWrite_16(&USB200.PIPEBCTR,
Kojto 71:53949e6131f6 499 DEVDRV_USBF_PID_NAK,
Kojto 71:53949e6131f6 500 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 501 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 502 break;
Kojto 71:53949e6131f6 503
Kojto 71:53949e6131f6 504 case USB_FUNCTION_PIPEC:
Kojto 71:53949e6131f6 505 RZA_IO_RegWrite_16(&USB200.PIPECCTR,
Kojto 71:53949e6131f6 506 DEVDRV_USBF_PID_NAK,
Kojto 71:53949e6131f6 507 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 508 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 509 break;
Kojto 71:53949e6131f6 510
Kojto 71:53949e6131f6 511 case USB_FUNCTION_PIPED:
Kojto 71:53949e6131f6 512 RZA_IO_RegWrite_16(&USB200.PIPEDCTR,
Kojto 71:53949e6131f6 513 DEVDRV_USBF_PID_NAK,
Kojto 71:53949e6131f6 514 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 515 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 516 break;
Kojto 71:53949e6131f6 517
Kojto 71:53949e6131f6 518 case USB_FUNCTION_PIPEE:
Kojto 71:53949e6131f6 519 RZA_IO_RegWrite_16(&USB200.PIPEECTR,
Kojto 71:53949e6131f6 520 DEVDRV_USBF_PID_NAK,
Kojto 71:53949e6131f6 521 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 522 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 523 break;
Kojto 71:53949e6131f6 524
Kojto 71:53949e6131f6 525 case USB_FUNCTION_PIPEF:
Kojto 71:53949e6131f6 526 RZA_IO_RegWrite_16(&USB200.PIPEFCTR,
Kojto 71:53949e6131f6 527 DEVDRV_USBF_PID_NAK,
Kojto 71:53949e6131f6 528 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 529 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 530 break;
Kojto 71:53949e6131f6 531
Kojto 71:53949e6131f6 532 default:
Kojto 71:53949e6131f6 533 break;
Kojto 71:53949e6131f6 534 }
Kojto 71:53949e6131f6 535
Kojto 71:53949e6131f6 536 if (pid == DEVDRV_USBF_PID_BUF)
Kojto 71:53949e6131f6 537 {
Kojto 71:53949e6131f6 538 for (loop = 0; loop < 200; loop++)
Kojto 71:53949e6131f6 539 {
Kojto 71:53949e6131f6 540 switch (pipe)
Kojto 71:53949e6131f6 541 {
Kojto 71:53949e6131f6 542 case USB_FUNCTION_PIPE0:
Kojto 71:53949e6131f6 543 pbusy = RZA_IO_RegRead_16(&USB200.DCPCTR,
Kojto 71:53949e6131f6 544 USB_DCPCTR_PBUSY_SHIFT,
Kojto 71:53949e6131f6 545 USB_DCPCTR_PBUSY);
Kojto 71:53949e6131f6 546 break;
Kojto 71:53949e6131f6 547
Kojto 71:53949e6131f6 548 case USB_FUNCTION_PIPE1:
Kojto 71:53949e6131f6 549 pbusy = RZA_IO_RegRead_16(&USB200.PIPE1CTR,
Kojto 71:53949e6131f6 550 USB_PIPEnCTR_1_5_PBUSY_SHIFT,
Kojto 71:53949e6131f6 551 USB_PIPEnCTR_1_5_PBUSY);
Kojto 71:53949e6131f6 552 break;
Kojto 71:53949e6131f6 553
Kojto 71:53949e6131f6 554 case USB_FUNCTION_PIPE2:
Kojto 71:53949e6131f6 555 pbusy = RZA_IO_RegRead_16(&USB200.PIPE2CTR,
Kojto 71:53949e6131f6 556 USB_PIPEnCTR_1_5_PBUSY_SHIFT,
Kojto 71:53949e6131f6 557 USB_PIPEnCTR_1_5_PBUSY);
Kojto 71:53949e6131f6 558 break;
Kojto 71:53949e6131f6 559
Kojto 71:53949e6131f6 560 case USB_FUNCTION_PIPE3:
Kojto 71:53949e6131f6 561 pbusy = RZA_IO_RegRead_16(&USB200.PIPE3CTR,
Kojto 71:53949e6131f6 562 USB_PIPEnCTR_1_5_PBUSY_SHIFT,
Kojto 71:53949e6131f6 563 USB_PIPEnCTR_1_5_PBUSY);
Kojto 71:53949e6131f6 564 break;
Kojto 71:53949e6131f6 565
Kojto 71:53949e6131f6 566 case USB_FUNCTION_PIPE4:
Kojto 71:53949e6131f6 567 pbusy = RZA_IO_RegRead_16(&USB200.PIPE4CTR,
Kojto 71:53949e6131f6 568 USB_PIPEnCTR_1_5_PBUSY_SHIFT,
Kojto 71:53949e6131f6 569 USB_PIPEnCTR_1_5_PBUSY);
Kojto 71:53949e6131f6 570 break;
Kojto 71:53949e6131f6 571
Kojto 71:53949e6131f6 572 case USB_FUNCTION_PIPE5:
Kojto 71:53949e6131f6 573 pbusy = RZA_IO_RegRead_16(&USB200.PIPE5CTR,
Kojto 71:53949e6131f6 574 USB_PIPEnCTR_1_5_PBUSY_SHIFT,
Kojto 71:53949e6131f6 575 USB_PIPEnCTR_1_5_PBUSY);
Kojto 71:53949e6131f6 576 break;
Kojto 71:53949e6131f6 577
Kojto 71:53949e6131f6 578 case USB_FUNCTION_PIPE6:
Kojto 71:53949e6131f6 579 pbusy = RZA_IO_RegRead_16(&USB200.PIPE6CTR,
Kojto 71:53949e6131f6 580 USB_PIPEnCTR_6_8_PBUSY_SHIFT,
Kojto 71:53949e6131f6 581 USB_PIPEnCTR_6_8_PBUSY);
Kojto 71:53949e6131f6 582 break;
Kojto 71:53949e6131f6 583
Kojto 71:53949e6131f6 584 case USB_FUNCTION_PIPE7:
Kojto 71:53949e6131f6 585 pbusy = RZA_IO_RegRead_16(&USB200.PIPE7CTR,
Kojto 71:53949e6131f6 586 USB_PIPEnCTR_6_8_PBUSY_SHIFT,
Kojto 71:53949e6131f6 587 USB_PIPEnCTR_6_8_PBUSY);
Kojto 71:53949e6131f6 588 break;
Kojto 71:53949e6131f6 589
Kojto 71:53949e6131f6 590 case USB_FUNCTION_PIPE8:
Kojto 71:53949e6131f6 591 pbusy = RZA_IO_RegRead_16(&USB200.PIPE8CTR,
Kojto 71:53949e6131f6 592 USB_PIPEnCTR_6_8_PBUSY_SHIFT,
Kojto 71:53949e6131f6 593 USB_PIPEnCTR_6_8_PBUSY);
Kojto 71:53949e6131f6 594 break;
Kojto 71:53949e6131f6 595
Kojto 71:53949e6131f6 596 case USB_FUNCTION_PIPE9:
Kojto 71:53949e6131f6 597 pbusy = RZA_IO_RegRead_16(&USB200.PIPE9CTR,
Kojto 71:53949e6131f6 598 USB_PIPEnCTR_9_PBUSY_SHIFT,
Kojto 71:53949e6131f6 599 USB_PIPEnCTR_9_PBUSY);
Kojto 71:53949e6131f6 600 break;
Kojto 71:53949e6131f6 601
Kojto 71:53949e6131f6 602 case USB_FUNCTION_PIPEA:
Kojto 71:53949e6131f6 603 pbusy = RZA_IO_RegRead_16(&USB200.PIPEACTR,
Kojto 71:53949e6131f6 604 USB_PIPEnCTR_A_F_PBUSY_SHIFT,
Kojto 71:53949e6131f6 605 USB_PIPEnCTR_A_F_PBUSY);
Kojto 71:53949e6131f6 606 break;
Kojto 71:53949e6131f6 607
Kojto 71:53949e6131f6 608 case USB_FUNCTION_PIPEB:
Kojto 71:53949e6131f6 609 pbusy = RZA_IO_RegRead_16(&USB200.PIPEBCTR,
Kojto 71:53949e6131f6 610 USB_PIPEnCTR_A_F_PBUSY_SHIFT,
Kojto 71:53949e6131f6 611 USB_PIPEnCTR_A_F_PBUSY);
Kojto 71:53949e6131f6 612 break;
Kojto 71:53949e6131f6 613
Kojto 71:53949e6131f6 614 case USB_FUNCTION_PIPEC:
Kojto 71:53949e6131f6 615 pbusy = RZA_IO_RegRead_16(&USB200.PIPECCTR,
Kojto 71:53949e6131f6 616 USB_PIPEnCTR_A_F_PBUSY_SHIFT,
Kojto 71:53949e6131f6 617 USB_PIPEnCTR_A_F_PBUSY);
Kojto 71:53949e6131f6 618 break;
Kojto 71:53949e6131f6 619
Kojto 71:53949e6131f6 620 case USB_FUNCTION_PIPED:
Kojto 71:53949e6131f6 621 pbusy = RZA_IO_RegRead_16(&USB200.PIPEDCTR,
Kojto 71:53949e6131f6 622 USB_PIPEnCTR_A_F_PBUSY_SHIFT,
Kojto 71:53949e6131f6 623 USB_PIPEnCTR_A_F_PBUSY);
Kojto 71:53949e6131f6 624 break;
Kojto 71:53949e6131f6 625
Kojto 71:53949e6131f6 626 case USB_FUNCTION_PIPEE:
Kojto 71:53949e6131f6 627 pbusy = RZA_IO_RegRead_16(&USB200.PIPEECTR,
Kojto 71:53949e6131f6 628 USB_PIPEnCTR_A_F_PBUSY_SHIFT,
Kojto 71:53949e6131f6 629 USB_PIPEnCTR_A_F_PBUSY);
Kojto 71:53949e6131f6 630 break;
Kojto 71:53949e6131f6 631
Kojto 71:53949e6131f6 632 case USB_FUNCTION_PIPEF:
Kojto 71:53949e6131f6 633 pbusy = RZA_IO_RegRead_16(&USB200.PIPEFCTR,
Kojto 71:53949e6131f6 634 USB_PIPEnCTR_A_F_PBUSY_SHIFT,
Kojto 71:53949e6131f6 635 USB_PIPEnCTR_A_F_PBUSY);
Kojto 71:53949e6131f6 636 break;
Kojto 71:53949e6131f6 637
Kojto 71:53949e6131f6 638 default:
Kojto 71:53949e6131f6 639 pbusy = 1;
Kojto 71:53949e6131f6 640 break;
Kojto 71:53949e6131f6 641 }
Kojto 71:53949e6131f6 642
Kojto 71:53949e6131f6 643 if (pbusy == 0)
Kojto 71:53949e6131f6 644 {
Kojto 71:53949e6131f6 645 break;
Kojto 71:53949e6131f6 646 }
Kojto 71:53949e6131f6 647 Userdef_USB_usb0_function_delay_500ns();
Kojto 71:53949e6131f6 648 }
Kojto 71:53949e6131f6 649 }
Kojto 71:53949e6131f6 650 }
Kojto 71:53949e6131f6 651
Kojto 71:53949e6131f6 652 /*******************************************************************************
Kojto 71:53949e6131f6 653 * Function Name: usb0_function_set_pid_stall
Kojto 71:53949e6131f6 654 * Description : Disables communication (STALL) in the pipe specified by the
Kojto 71:53949e6131f6 655 * : argument.
Kojto 71:53949e6131f6 656 * Arguments : uint16_t pipe ; pipe Number
Kojto 71:53949e6131f6 657 * Return Value : none
Kojto 71:53949e6131f6 658 *******************************************************************************/
Kojto 71:53949e6131f6 659 void usb0_function_set_pid_stall (uint16_t pipe)
Kojto 71:53949e6131f6 660 {
Kojto 71:53949e6131f6 661 uint16_t pid;
Kojto 71:53949e6131f6 662
Kojto 71:53949e6131f6 663 pid = usb0_function_get_pid(pipe);
Kojto 71:53949e6131f6 664 if (pid == DEVDRV_USBF_PID_BUF)
Kojto 71:53949e6131f6 665 {
Kojto 71:53949e6131f6 666 switch (pipe)
Kojto 71:53949e6131f6 667 {
Kojto 71:53949e6131f6 668 case USB_FUNCTION_PIPE0:
Kojto 71:53949e6131f6 669 RZA_IO_RegWrite_16(&USB200.DCPCTR,
Kojto 71:53949e6131f6 670 DEVDRV_USBF_PID_STALL2,
Kojto 71:53949e6131f6 671 USB_DCPCTR_PID_SHIFT,
Kojto 71:53949e6131f6 672 USB_DCPCTR_PID);
Kojto 71:53949e6131f6 673 break;
Kojto 71:53949e6131f6 674
Kojto 71:53949e6131f6 675 case USB_FUNCTION_PIPE1:
Kojto 71:53949e6131f6 676 RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
Kojto 71:53949e6131f6 677 DEVDRV_USBF_PID_STALL2,
Kojto 71:53949e6131f6 678 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 679 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 680 break;
Kojto 71:53949e6131f6 681
Kojto 71:53949e6131f6 682 case USB_FUNCTION_PIPE2:
Kojto 71:53949e6131f6 683 RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
Kojto 71:53949e6131f6 684 DEVDRV_USBF_PID_STALL2,
Kojto 71:53949e6131f6 685 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 686 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 687 break;
Kojto 71:53949e6131f6 688
Kojto 71:53949e6131f6 689 case USB_FUNCTION_PIPE3:
Kojto 71:53949e6131f6 690 RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
Kojto 71:53949e6131f6 691 DEVDRV_USBF_PID_STALL2,
Kojto 71:53949e6131f6 692 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 693 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 694 break;
Kojto 71:53949e6131f6 695
Kojto 71:53949e6131f6 696 case USB_FUNCTION_PIPE4:
Kojto 71:53949e6131f6 697 RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
Kojto 71:53949e6131f6 698 DEVDRV_USBF_PID_STALL2,
Kojto 71:53949e6131f6 699 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 700 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 701 break;
Kojto 71:53949e6131f6 702
Kojto 71:53949e6131f6 703 case USB_FUNCTION_PIPE5:
Kojto 71:53949e6131f6 704 RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
Kojto 71:53949e6131f6 705 DEVDRV_USBF_PID_STALL2,
Kojto 71:53949e6131f6 706 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 707 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 708 break;
Kojto 71:53949e6131f6 709
Kojto 71:53949e6131f6 710 case USB_FUNCTION_PIPE6:
Kojto 71:53949e6131f6 711 RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
Kojto 71:53949e6131f6 712 DEVDRV_USBF_PID_STALL2,
Kojto 71:53949e6131f6 713 USB_PIPEnCTR_6_8_PID_SHIFT,
Kojto 71:53949e6131f6 714 USB_PIPEnCTR_6_8_PID);
Kojto 71:53949e6131f6 715 break;
Kojto 71:53949e6131f6 716
Kojto 71:53949e6131f6 717 case USB_FUNCTION_PIPE7:
Kojto 71:53949e6131f6 718 RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
Kojto 71:53949e6131f6 719 DEVDRV_USBF_PID_STALL2,
Kojto 71:53949e6131f6 720 USB_PIPEnCTR_6_8_PID_SHIFT,
Kojto 71:53949e6131f6 721 USB_PIPEnCTR_6_8_PID);
Kojto 71:53949e6131f6 722 break;
Kojto 71:53949e6131f6 723
Kojto 71:53949e6131f6 724 case USB_FUNCTION_PIPE8:
Kojto 71:53949e6131f6 725 RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
Kojto 71:53949e6131f6 726 DEVDRV_USBF_PID_STALL2,
Kojto 71:53949e6131f6 727 USB_PIPEnCTR_6_8_PID_SHIFT,
Kojto 71:53949e6131f6 728 USB_PIPEnCTR_6_8_PID);
Kojto 71:53949e6131f6 729 break;
Kojto 71:53949e6131f6 730
Kojto 71:53949e6131f6 731 case USB_FUNCTION_PIPE9:
Kojto 71:53949e6131f6 732 RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
Kojto 71:53949e6131f6 733 DEVDRV_USBF_PID_STALL2,
Kojto 71:53949e6131f6 734 USB_PIPEnCTR_9_PID_SHIFT,
Kojto 71:53949e6131f6 735 USB_PIPEnCTR_9_PID);
Kojto 71:53949e6131f6 736 break;
Kojto 71:53949e6131f6 737
Kojto 71:53949e6131f6 738 case USB_FUNCTION_PIPEA:
Kojto 71:53949e6131f6 739 RZA_IO_RegWrite_16(&USB200.PIPEACTR,
Kojto 71:53949e6131f6 740 DEVDRV_USBF_PID_STALL2,
Kojto 71:53949e6131f6 741 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 742 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 743 break;
Kojto 71:53949e6131f6 744
Kojto 71:53949e6131f6 745 case USB_FUNCTION_PIPEB:
Kojto 71:53949e6131f6 746 RZA_IO_RegWrite_16(&USB200.PIPEBCTR,
Kojto 71:53949e6131f6 747 DEVDRV_USBF_PID_STALL2,
Kojto 71:53949e6131f6 748 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 749 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 750 break;
Kojto 71:53949e6131f6 751
Kojto 71:53949e6131f6 752 case USB_FUNCTION_PIPEC:
Kojto 71:53949e6131f6 753 RZA_IO_RegWrite_16(&USB200.PIPECCTR,
Kojto 71:53949e6131f6 754 DEVDRV_USBF_PID_STALL2,
Kojto 71:53949e6131f6 755 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 756 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 757 break;
Kojto 71:53949e6131f6 758
Kojto 71:53949e6131f6 759 case USB_FUNCTION_PIPED:
Kojto 71:53949e6131f6 760 RZA_IO_RegWrite_16(&USB200.PIPEDCTR,
Kojto 71:53949e6131f6 761 DEVDRV_USBF_PID_STALL2,
Kojto 71:53949e6131f6 762 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 763 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 764 break;
Kojto 71:53949e6131f6 765
Kojto 71:53949e6131f6 766 case USB_FUNCTION_PIPEE:
Kojto 71:53949e6131f6 767 RZA_IO_RegWrite_16(&USB200.PIPEECTR,
Kojto 71:53949e6131f6 768 DEVDRV_USBF_PID_STALL2,
Kojto 71:53949e6131f6 769 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 770 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 771 break;
Kojto 71:53949e6131f6 772
Kojto 71:53949e6131f6 773 case USB_FUNCTION_PIPEF:
Kojto 71:53949e6131f6 774 RZA_IO_RegWrite_16(&USB200.PIPEFCTR,
Kojto 71:53949e6131f6 775 DEVDRV_USBF_PID_STALL2,
Kojto 71:53949e6131f6 776 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 777 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 778 break;
Kojto 71:53949e6131f6 779
Kojto 71:53949e6131f6 780 default:
Kojto 71:53949e6131f6 781 break;
Kojto 71:53949e6131f6 782 }
Kojto 71:53949e6131f6 783 }
Kojto 71:53949e6131f6 784 else
Kojto 71:53949e6131f6 785 {
Kojto 71:53949e6131f6 786 switch (pipe)
Kojto 71:53949e6131f6 787 {
Kojto 71:53949e6131f6 788 case USB_FUNCTION_PIPE0:
Kojto 71:53949e6131f6 789 RZA_IO_RegWrite_16(&USB200.DCPCTR,
Kojto 71:53949e6131f6 790 DEVDRV_USBF_PID_STALL,
Kojto 71:53949e6131f6 791 USB_DCPCTR_PID_SHIFT,
Kojto 71:53949e6131f6 792 USB_DCPCTR_PID);
Kojto 71:53949e6131f6 793 break;
Kojto 71:53949e6131f6 794
Kojto 71:53949e6131f6 795 case USB_FUNCTION_PIPE1:
Kojto 71:53949e6131f6 796 RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
Kojto 71:53949e6131f6 797 DEVDRV_USBF_PID_STALL,
Kojto 71:53949e6131f6 798 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 799 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 800 break;
Kojto 71:53949e6131f6 801
Kojto 71:53949e6131f6 802 case USB_FUNCTION_PIPE2:
Kojto 71:53949e6131f6 803 RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
Kojto 71:53949e6131f6 804 DEVDRV_USBF_PID_STALL,
Kojto 71:53949e6131f6 805 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 806 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 807 break;
Kojto 71:53949e6131f6 808
Kojto 71:53949e6131f6 809 case USB_FUNCTION_PIPE3:
Kojto 71:53949e6131f6 810 RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
Kojto 71:53949e6131f6 811 DEVDRV_USBF_PID_STALL,
Kojto 71:53949e6131f6 812 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 813 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 814 break;
Kojto 71:53949e6131f6 815
Kojto 71:53949e6131f6 816 case USB_FUNCTION_PIPE4:
Kojto 71:53949e6131f6 817 RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
Kojto 71:53949e6131f6 818 DEVDRV_USBF_PID_STALL,
Kojto 71:53949e6131f6 819 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 820 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 821 break;
Kojto 71:53949e6131f6 822
Kojto 71:53949e6131f6 823 case USB_FUNCTION_PIPE5:
Kojto 71:53949e6131f6 824 RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
Kojto 71:53949e6131f6 825 DEVDRV_USBF_PID_STALL,
Kojto 71:53949e6131f6 826 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 827 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 828 break;
Kojto 71:53949e6131f6 829
Kojto 71:53949e6131f6 830 case USB_FUNCTION_PIPE6:
Kojto 71:53949e6131f6 831 RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
Kojto 71:53949e6131f6 832 DEVDRV_USBF_PID_STALL,
Kojto 71:53949e6131f6 833 USB_PIPEnCTR_6_8_PID_SHIFT,
Kojto 71:53949e6131f6 834 USB_PIPEnCTR_6_8_PID);
Kojto 71:53949e6131f6 835 break;
Kojto 71:53949e6131f6 836
Kojto 71:53949e6131f6 837 case USB_FUNCTION_PIPE7:
Kojto 71:53949e6131f6 838 RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
Kojto 71:53949e6131f6 839 DEVDRV_USBF_PID_STALL,
Kojto 71:53949e6131f6 840 USB_PIPEnCTR_6_8_PID_SHIFT,
Kojto 71:53949e6131f6 841 USB_PIPEnCTR_6_8_PID);
Kojto 71:53949e6131f6 842 break;
Kojto 71:53949e6131f6 843
Kojto 71:53949e6131f6 844 case USB_FUNCTION_PIPE8:
Kojto 71:53949e6131f6 845 RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
Kojto 71:53949e6131f6 846 DEVDRV_USBF_PID_STALL,
Kojto 71:53949e6131f6 847 USB_PIPEnCTR_6_8_PID_SHIFT,
Kojto 71:53949e6131f6 848 USB_PIPEnCTR_6_8_PID);
Kojto 71:53949e6131f6 849 break;
Kojto 71:53949e6131f6 850
Kojto 71:53949e6131f6 851 case USB_FUNCTION_PIPE9:
Kojto 71:53949e6131f6 852 RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
Kojto 71:53949e6131f6 853 DEVDRV_USBF_PID_STALL,
Kojto 71:53949e6131f6 854 USB_PIPEnCTR_9_PID_SHIFT,
Kojto 71:53949e6131f6 855 USB_PIPEnCTR_9_PID);
Kojto 71:53949e6131f6 856 break;
Kojto 71:53949e6131f6 857
Kojto 71:53949e6131f6 858 case USB_FUNCTION_PIPEA:
Kojto 71:53949e6131f6 859 RZA_IO_RegWrite_16(&USB200.PIPEACTR,
Kojto 71:53949e6131f6 860 DEVDRV_USBF_PID_STALL,
Kojto 71:53949e6131f6 861 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 862 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 863 break;
Kojto 71:53949e6131f6 864
Kojto 71:53949e6131f6 865 case USB_FUNCTION_PIPEB:
Kojto 71:53949e6131f6 866 RZA_IO_RegWrite_16(&USB200.PIPEBCTR,
Kojto 71:53949e6131f6 867 DEVDRV_USBF_PID_STALL,
Kojto 71:53949e6131f6 868 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 869 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 870 break;
Kojto 71:53949e6131f6 871
Kojto 71:53949e6131f6 872 case USB_FUNCTION_PIPEC:
Kojto 71:53949e6131f6 873 RZA_IO_RegWrite_16(&USB200.PIPECCTR,
Kojto 71:53949e6131f6 874 DEVDRV_USBF_PID_STALL,
Kojto 71:53949e6131f6 875 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 876 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 877 break;
Kojto 71:53949e6131f6 878
Kojto 71:53949e6131f6 879 case USB_FUNCTION_PIPED:
Kojto 71:53949e6131f6 880 RZA_IO_RegWrite_16(&USB200.PIPEDCTR,
Kojto 71:53949e6131f6 881 DEVDRV_USBF_PID_STALL,
Kojto 71:53949e6131f6 882 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 883 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 884 break;
Kojto 71:53949e6131f6 885
Kojto 71:53949e6131f6 886 case USB_FUNCTION_PIPEE:
Kojto 71:53949e6131f6 887 RZA_IO_RegWrite_16(&USB200.PIPEECTR,
Kojto 71:53949e6131f6 888 DEVDRV_USBF_PID_STALL,
Kojto 71:53949e6131f6 889 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 890 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 891 break;
Kojto 71:53949e6131f6 892
Kojto 71:53949e6131f6 893 case USB_FUNCTION_PIPEF:
Kojto 71:53949e6131f6 894 RZA_IO_RegWrite_16(&USB200.PIPEFCTR,
Kojto 71:53949e6131f6 895 DEVDRV_USBF_PID_STALL,
Kojto 71:53949e6131f6 896 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 897 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 898 break;
Kojto 71:53949e6131f6 899
Kojto 71:53949e6131f6 900 default:
Kojto 71:53949e6131f6 901 break;
Kojto 71:53949e6131f6 902 }
Kojto 71:53949e6131f6 903 }
Kojto 71:53949e6131f6 904 }
Kojto 71:53949e6131f6 905
Kojto 71:53949e6131f6 906 /*******************************************************************************
Kojto 71:53949e6131f6 907 * Function Name: usb0_function_clear_pid_stall
Kojto 71:53949e6131f6 908 * Description : Disables communication (NAK) in the pipe specified by the argument.
Kojto 71:53949e6131f6 909 * Arguments : uint16_t pipe ; pipe Number
Kojto 71:53949e6131f6 910 * Return Value : none
Kojto 71:53949e6131f6 911 *******************************************************************************/
Kojto 71:53949e6131f6 912 void usb0_function_clear_pid_stall (uint16_t pipe)
Kojto 71:53949e6131f6 913 {
Kojto 71:53949e6131f6 914 usb0_function_set_pid_nak(pipe);
Kojto 71:53949e6131f6 915 }
Kojto 71:53949e6131f6 916
Kojto 71:53949e6131f6 917 /*******************************************************************************
Kojto 71:53949e6131f6 918 * Function Name: usb0_function_get_pid
Kojto 71:53949e6131f6 919 * Description : Returns the pipe state specified by the argument.
Kojto 71:53949e6131f6 920 * Arguments : uint16_t pipe ; Pipe Number
Kojto 71:53949e6131f6 921 * Return Value : PID
Kojto 71:53949e6131f6 922 *******************************************************************************/
Kojto 71:53949e6131f6 923 uint16_t usb0_function_get_pid (uint16_t pipe)
Kojto 71:53949e6131f6 924 {
Kojto 71:53949e6131f6 925 uint16_t pid;
Kojto 71:53949e6131f6 926
Kojto 71:53949e6131f6 927 switch (pipe)
Kojto 71:53949e6131f6 928 {
Kojto 71:53949e6131f6 929 case USB_FUNCTION_PIPE0:
Kojto 71:53949e6131f6 930 pid = RZA_IO_RegRead_16(&USB200.DCPCTR,
Kojto 71:53949e6131f6 931 USB_DCPCTR_PID_SHIFT,
Kojto 71:53949e6131f6 932 USB_DCPCTR_PID);
Kojto 71:53949e6131f6 933 break;
Kojto 71:53949e6131f6 934
Kojto 71:53949e6131f6 935 case USB_FUNCTION_PIPE1:
Kojto 71:53949e6131f6 936 pid = RZA_IO_RegRead_16(&USB200.PIPE1CTR,
Kojto 71:53949e6131f6 937 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 938 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 939 break;
Kojto 71:53949e6131f6 940
Kojto 71:53949e6131f6 941 case USB_FUNCTION_PIPE2:
Kojto 71:53949e6131f6 942 pid = RZA_IO_RegRead_16(&USB200.PIPE2CTR,
Kojto 71:53949e6131f6 943 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 944 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 945 break;
Kojto 71:53949e6131f6 946
Kojto 71:53949e6131f6 947 case USB_FUNCTION_PIPE3:
Kojto 71:53949e6131f6 948 pid = RZA_IO_RegRead_16(&USB200.PIPE3CTR,
Kojto 71:53949e6131f6 949 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 950 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 951 break;
Kojto 71:53949e6131f6 952
Kojto 71:53949e6131f6 953 case USB_FUNCTION_PIPE4:
Kojto 71:53949e6131f6 954 pid = RZA_IO_RegRead_16(&USB200.PIPE4CTR,
Kojto 71:53949e6131f6 955 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 956 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 957 break;
Kojto 71:53949e6131f6 958
Kojto 71:53949e6131f6 959 case USB_FUNCTION_PIPE5:
Kojto 71:53949e6131f6 960 pid = RZA_IO_RegRead_16(&USB200.PIPE5CTR,
Kojto 71:53949e6131f6 961 USB_PIPEnCTR_1_5_PID_SHIFT,
Kojto 71:53949e6131f6 962 USB_PIPEnCTR_1_5_PID);
Kojto 71:53949e6131f6 963 break;
Kojto 71:53949e6131f6 964
Kojto 71:53949e6131f6 965 case USB_FUNCTION_PIPE6:
Kojto 71:53949e6131f6 966 pid = RZA_IO_RegRead_16(&USB200.PIPE6CTR,
Kojto 71:53949e6131f6 967 USB_PIPEnCTR_6_8_PID_SHIFT,
Kojto 71:53949e6131f6 968 USB_PIPEnCTR_6_8_PID);
Kojto 71:53949e6131f6 969 break;
Kojto 71:53949e6131f6 970
Kojto 71:53949e6131f6 971 case USB_FUNCTION_PIPE7:
Kojto 71:53949e6131f6 972 pid = RZA_IO_RegRead_16(&USB200.PIPE7CTR,
Kojto 71:53949e6131f6 973 USB_PIPEnCTR_6_8_PID_SHIFT,
Kojto 71:53949e6131f6 974 USB_PIPEnCTR_6_8_PID);
Kojto 71:53949e6131f6 975 break;
Kojto 71:53949e6131f6 976
Kojto 71:53949e6131f6 977 case USB_FUNCTION_PIPE8:
Kojto 71:53949e6131f6 978 pid = RZA_IO_RegRead_16(&USB200.PIPE8CTR,
Kojto 71:53949e6131f6 979 USB_PIPEnCTR_6_8_PID_SHIFT,
Kojto 71:53949e6131f6 980 USB_PIPEnCTR_6_8_PID);
Kojto 71:53949e6131f6 981 break;
Kojto 71:53949e6131f6 982
Kojto 71:53949e6131f6 983 case USB_FUNCTION_PIPE9:
Kojto 71:53949e6131f6 984 pid = RZA_IO_RegRead_16(&USB200.PIPE9CTR,
Kojto 71:53949e6131f6 985 USB_PIPEnCTR_9_PID_SHIFT,
Kojto 71:53949e6131f6 986 USB_PIPEnCTR_9_PID);
Kojto 71:53949e6131f6 987 break;
Kojto 71:53949e6131f6 988
Kojto 71:53949e6131f6 989 case USB_FUNCTION_PIPEA:
Kojto 71:53949e6131f6 990 pid = RZA_IO_RegRead_16(&USB200.PIPEACTR,
Kojto 71:53949e6131f6 991 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 992 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 993 break;
Kojto 71:53949e6131f6 994
Kojto 71:53949e6131f6 995 case USB_FUNCTION_PIPEB:
Kojto 71:53949e6131f6 996 pid = RZA_IO_RegRead_16(&USB200.PIPEBCTR,
Kojto 71:53949e6131f6 997 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 998 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 999 break;
Kojto 71:53949e6131f6 1000
Kojto 71:53949e6131f6 1001 case USB_FUNCTION_PIPEC:
Kojto 71:53949e6131f6 1002 pid = RZA_IO_RegRead_16(&USB200.PIPECCTR,
Kojto 71:53949e6131f6 1003 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 1004 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 1005 break;
Kojto 71:53949e6131f6 1006
Kojto 71:53949e6131f6 1007 case USB_FUNCTION_PIPED:
Kojto 71:53949e6131f6 1008 pid = RZA_IO_RegRead_16(&USB200.PIPEDCTR,
Kojto 71:53949e6131f6 1009 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 1010 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 1011 break;
Kojto 71:53949e6131f6 1012
Kojto 71:53949e6131f6 1013 case USB_FUNCTION_PIPEE:
Kojto 71:53949e6131f6 1014 pid = RZA_IO_RegRead_16(&USB200.PIPEECTR,
Kojto 71:53949e6131f6 1015 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 1016 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 1017 break;
Kojto 71:53949e6131f6 1018
Kojto 71:53949e6131f6 1019 case USB_FUNCTION_PIPEF:
Kojto 71:53949e6131f6 1020 pid = RZA_IO_RegRead_16(&USB200.PIPEFCTR,
Kojto 71:53949e6131f6 1021 USB_PIPEnCTR_A_F_PID_SHIFT,
Kojto 71:53949e6131f6 1022 USB_PIPEnCTR_A_F_PID);
Kojto 71:53949e6131f6 1023 break;
Kojto 71:53949e6131f6 1024
Kojto 71:53949e6131f6 1025 default:
Kojto 71:53949e6131f6 1026 pid = 0;
Kojto 71:53949e6131f6 1027 break;
Kojto 71:53949e6131f6 1028 }
Kojto 71:53949e6131f6 1029
Kojto 71:53949e6131f6 1030 return pid;
Kojto 71:53949e6131f6 1031 }
Kojto 71:53949e6131f6 1032
Kojto 71:53949e6131f6 1033 /*******************************************************************************
Kojto 71:53949e6131f6 1034 * Function Name: usb0_function_set_csclr
Kojto 71:53949e6131f6 1035 * Description : CSPLIT status clear setting of sprit transaction in specified
Kojto 71:53949e6131f6 1036 * : pipe is performed.
Kojto 71:53949e6131f6 1037 * : When SQSET bit or SQCLR bit, and SQSET bit or SQCLR bit
Kojto 71:53949e6131f6 1038 * : in DCPCTR register are continuously changed (when the sequence
Kojto 71:53949e6131f6 1039 * : toggle bit of data PID is continuously changed over two or more pipes),
Kojto 71:53949e6131f6 1040 * : the access cycle with 120 ns and more than 5 cycle bus clock is necessary.
Kojto 71:53949e6131f6 1041 * : Do not set both SQCLR bit and SQSET bit to 1 at the same time.
Kojto 71:53949e6131f6 1042 * : In addition, both bits should be operated after PID is set to NAK.
Kojto 71:53949e6131f6 1043 * : However, when it is set to the isochronous transfer as the transfer type
Kojto 71:53949e6131f6 1044 * : (TYPE=11), writing in SQSET bit is disabled.
Kojto 71:53949e6131f6 1045 * Arguments : uint16_t pipe ; Pipe number
Kojto 71:53949e6131f6 1046 * Return Value : none
Kojto 71:53949e6131f6 1047 *******************************************************************************/
Kojto 71:53949e6131f6 1048 void usb0_function_set_csclr (uint16_t pipe)
Kojto 71:53949e6131f6 1049 {
Kojto 71:53949e6131f6 1050 switch (pipe)
Kojto 71:53949e6131f6 1051 {
Kojto 71:53949e6131f6 1052 case USB_FUNCTION_PIPE0:
Kojto 71:53949e6131f6 1053 RZA_IO_RegWrite_16(&USB200.DCPCTR,
Kojto 71:53949e6131f6 1054 1,
Kojto 71:53949e6131f6 1055 USB_DCPCTR_CSCLR_SHIFT,
Kojto 71:53949e6131f6 1056 USB_DCPCTR_CSCLR);
Kojto 71:53949e6131f6 1057 break;
Kojto 71:53949e6131f6 1058
Kojto 71:53949e6131f6 1059 case USB_FUNCTION_PIPE1:
Kojto 71:53949e6131f6 1060 RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
Kojto 71:53949e6131f6 1061 1,
Kojto 71:53949e6131f6 1062 USB_PIPEnCTR_1_5_CSCLR_SHIFT,
Kojto 71:53949e6131f6 1063 USB_PIPEnCTR_1_5_CSCLR);
Kojto 71:53949e6131f6 1064 break;
Kojto 71:53949e6131f6 1065
Kojto 71:53949e6131f6 1066 case USB_FUNCTION_PIPE2:
Kojto 71:53949e6131f6 1067 RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
Kojto 71:53949e6131f6 1068 1,
Kojto 71:53949e6131f6 1069 USB_PIPEnCTR_1_5_CSCLR_SHIFT,
Kojto 71:53949e6131f6 1070 USB_PIPEnCTR_1_5_CSCLR);
Kojto 71:53949e6131f6 1071 break;
Kojto 71:53949e6131f6 1072
Kojto 71:53949e6131f6 1073 case USB_FUNCTION_PIPE3:
Kojto 71:53949e6131f6 1074 RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
Kojto 71:53949e6131f6 1075 1,
Kojto 71:53949e6131f6 1076 USB_PIPEnCTR_1_5_CSCLR_SHIFT,
Kojto 71:53949e6131f6 1077 USB_PIPEnCTR_1_5_CSCLR);
Kojto 71:53949e6131f6 1078 break;
Kojto 71:53949e6131f6 1079
Kojto 71:53949e6131f6 1080 case USB_FUNCTION_PIPE4:
Kojto 71:53949e6131f6 1081 RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
Kojto 71:53949e6131f6 1082 1,
Kojto 71:53949e6131f6 1083 USB_PIPEnCTR_1_5_CSCLR_SHIFT,
Kojto 71:53949e6131f6 1084 USB_PIPEnCTR_1_5_CSCLR);
Kojto 71:53949e6131f6 1085 break;
Kojto 71:53949e6131f6 1086
Kojto 71:53949e6131f6 1087 case USB_FUNCTION_PIPE5:
Kojto 71:53949e6131f6 1088 RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
Kojto 71:53949e6131f6 1089 1,
Kojto 71:53949e6131f6 1090 USB_PIPEnCTR_1_5_CSCLR_SHIFT,
Kojto 71:53949e6131f6 1091 USB_PIPEnCTR_1_5_CSCLR);
Kojto 71:53949e6131f6 1092 break;
Kojto 71:53949e6131f6 1093
Kojto 71:53949e6131f6 1094 case USB_FUNCTION_PIPE6:
Kojto 71:53949e6131f6 1095 RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
Kojto 71:53949e6131f6 1096 1,
Kojto 71:53949e6131f6 1097 USB_PIPEnCTR_6_8_CSCLR_SHIFT,
Kojto 71:53949e6131f6 1098 USB_PIPEnCTR_6_8_CSCLR);
Kojto 71:53949e6131f6 1099 break;
Kojto 71:53949e6131f6 1100
Kojto 71:53949e6131f6 1101 case USB_FUNCTION_PIPE7:
Kojto 71:53949e6131f6 1102 RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
Kojto 71:53949e6131f6 1103 1,
Kojto 71:53949e6131f6 1104 USB_PIPEnCTR_6_8_CSCLR_SHIFT,
Kojto 71:53949e6131f6 1105 USB_PIPEnCTR_6_8_CSCLR);
Kojto 71:53949e6131f6 1106 break;
Kojto 71:53949e6131f6 1107
Kojto 71:53949e6131f6 1108 case USB_FUNCTION_PIPE8:
Kojto 71:53949e6131f6 1109 RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
Kojto 71:53949e6131f6 1110 1,
Kojto 71:53949e6131f6 1111 USB_PIPEnCTR_6_8_CSCLR_SHIFT,
Kojto 71:53949e6131f6 1112 USB_PIPEnCTR_6_8_CSCLR);
Kojto 71:53949e6131f6 1113 break;
Kojto 71:53949e6131f6 1114
Kojto 71:53949e6131f6 1115 case USB_FUNCTION_PIPE9:
Kojto 71:53949e6131f6 1116 RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
Kojto 71:53949e6131f6 1117 1,
Kojto 71:53949e6131f6 1118 USB_PIPEnCTR_9_CSCLR_SHIFT,
Kojto 71:53949e6131f6 1119 USB_PIPEnCTR_9_CSCLR);
Kojto 71:53949e6131f6 1120 break;
Kojto 71:53949e6131f6 1121
Kojto 71:53949e6131f6 1122 default:
Kojto 71:53949e6131f6 1123 /* PIPEA-F have not CSCLR */
Kojto 71:53949e6131f6 1124 break;
Kojto 71:53949e6131f6 1125 }
Kojto 71:53949e6131f6 1126 }
Kojto 71:53949e6131f6 1127
Kojto 71:53949e6131f6 1128 /*******************************************************************************
Kojto 71:53949e6131f6 1129 * Function Name: usb0_function_set_sqclr
Kojto 71:53949e6131f6 1130 * Description : Sets the sequence bit of the pipe specified by the argument to
Kojto 71:53949e6131f6 1131 * : DATA0.
Kojto 71:53949e6131f6 1132 * Arguments : uint16_t pipe ; Pipe Number
Kojto 71:53949e6131f6 1133 * Return Value : none
Kojto 71:53949e6131f6 1134 *******************************************************************************/
Kojto 71:53949e6131f6 1135 void usb0_function_set_sqclr (uint16_t pipe)
Kojto 71:53949e6131f6 1136 {
Kojto 71:53949e6131f6 1137 switch (pipe)
Kojto 71:53949e6131f6 1138 {
Kojto 71:53949e6131f6 1139 case USB_FUNCTION_PIPE0:
Kojto 71:53949e6131f6 1140 RZA_IO_RegWrite_16(&USB200.DCPCTR,
Kojto 71:53949e6131f6 1141 1,
Kojto 71:53949e6131f6 1142 USB_DCPCTR_SQCLR_SHIFT,
Kojto 71:53949e6131f6 1143 USB_DCPCTR_SQCLR);
Kojto 71:53949e6131f6 1144 break;
Kojto 71:53949e6131f6 1145
Kojto 71:53949e6131f6 1146 case USB_FUNCTION_PIPE1:
Kojto 71:53949e6131f6 1147 RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
Kojto 71:53949e6131f6 1148 1,
Kojto 71:53949e6131f6 1149 USB_PIPEnCTR_1_5_SQCLR_SHIFT,
Kojto 71:53949e6131f6 1150 USB_PIPEnCTR_1_5_SQCLR);
Kojto 71:53949e6131f6 1151 break;
Kojto 71:53949e6131f6 1152
Kojto 71:53949e6131f6 1153 case USB_FUNCTION_PIPE2:
Kojto 71:53949e6131f6 1154 RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
Kojto 71:53949e6131f6 1155 1,
Kojto 71:53949e6131f6 1156 USB_PIPEnCTR_1_5_SQCLR_SHIFT,
Kojto 71:53949e6131f6 1157 USB_PIPEnCTR_1_5_SQCLR);
Kojto 71:53949e6131f6 1158 break;
Kojto 71:53949e6131f6 1159
Kojto 71:53949e6131f6 1160 case USB_FUNCTION_PIPE3:
Kojto 71:53949e6131f6 1161 RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
Kojto 71:53949e6131f6 1162 1,
Kojto 71:53949e6131f6 1163 USB_PIPEnCTR_1_5_SQCLR_SHIFT,
Kojto 71:53949e6131f6 1164 USB_PIPEnCTR_1_5_SQCLR);
Kojto 71:53949e6131f6 1165 break;
Kojto 71:53949e6131f6 1166
Kojto 71:53949e6131f6 1167 case USB_FUNCTION_PIPE4:
Kojto 71:53949e6131f6 1168 RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
Kojto 71:53949e6131f6 1169 1,
Kojto 71:53949e6131f6 1170 USB_PIPEnCTR_1_5_SQCLR_SHIFT,
Kojto 71:53949e6131f6 1171 USB_PIPEnCTR_1_5_SQCLR);
Kojto 71:53949e6131f6 1172 break;
Kojto 71:53949e6131f6 1173
Kojto 71:53949e6131f6 1174 case USB_FUNCTION_PIPE5:
Kojto 71:53949e6131f6 1175 RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
Kojto 71:53949e6131f6 1176 1,
Kojto 71:53949e6131f6 1177 USB_PIPEnCTR_1_5_SQCLR_SHIFT,
Kojto 71:53949e6131f6 1178 USB_PIPEnCTR_1_5_SQCLR);
Kojto 71:53949e6131f6 1179 break;
Kojto 71:53949e6131f6 1180
Kojto 71:53949e6131f6 1181 case USB_FUNCTION_PIPE6:
Kojto 71:53949e6131f6 1182 RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
Kojto 71:53949e6131f6 1183 1,
Kojto 71:53949e6131f6 1184 USB_PIPEnCTR_6_8_SQCLR_SHIFT,
Kojto 71:53949e6131f6 1185 USB_PIPEnCTR_6_8_SQCLR);
Kojto 71:53949e6131f6 1186 break;
Kojto 71:53949e6131f6 1187
Kojto 71:53949e6131f6 1188 case USB_FUNCTION_PIPE7:
Kojto 71:53949e6131f6 1189 RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
Kojto 71:53949e6131f6 1190 1,
Kojto 71:53949e6131f6 1191 USB_PIPEnCTR_6_8_SQCLR_SHIFT,
Kojto 71:53949e6131f6 1192 USB_PIPEnCTR_6_8_SQCLR);
Kojto 71:53949e6131f6 1193 break;
Kojto 71:53949e6131f6 1194
Kojto 71:53949e6131f6 1195 case USB_FUNCTION_PIPE8:
Kojto 71:53949e6131f6 1196 RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
Kojto 71:53949e6131f6 1197 1,
Kojto 71:53949e6131f6 1198 USB_PIPEnCTR_6_8_SQCLR_SHIFT,
Kojto 71:53949e6131f6 1199 USB_PIPEnCTR_6_8_SQCLR);
Kojto 71:53949e6131f6 1200 break;
Kojto 71:53949e6131f6 1201
Kojto 71:53949e6131f6 1202 case USB_FUNCTION_PIPE9:
Kojto 71:53949e6131f6 1203 RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
Kojto 71:53949e6131f6 1204 1,
Kojto 71:53949e6131f6 1205 USB_PIPEnCTR_9_SQCLR_SHIFT,
Kojto 71:53949e6131f6 1206 USB_PIPEnCTR_9_SQCLR);
Kojto 71:53949e6131f6 1207 break;
Kojto 71:53949e6131f6 1208
Kojto 71:53949e6131f6 1209 case USB_FUNCTION_PIPEA:
Kojto 71:53949e6131f6 1210 RZA_IO_RegWrite_16(&USB200.PIPEACTR,
Kojto 71:53949e6131f6 1211 1,
Kojto 71:53949e6131f6 1212 USB_PIPEnCTR_A_F_SQCLR_SHIFT,
Kojto 71:53949e6131f6 1213 USB_PIPEnCTR_A_F_SQCLR);
Kojto 71:53949e6131f6 1214 break;
Kojto 71:53949e6131f6 1215
Kojto 71:53949e6131f6 1216 case USB_FUNCTION_PIPEB:
Kojto 71:53949e6131f6 1217 RZA_IO_RegWrite_16(&USB200.PIPEBCTR,
Kojto 71:53949e6131f6 1218 1,
Kojto 71:53949e6131f6 1219 USB_PIPEnCTR_A_F_SQCLR_SHIFT,
Kojto 71:53949e6131f6 1220 USB_PIPEnCTR_A_F_SQCLR);
Kojto 71:53949e6131f6 1221 break;
Kojto 71:53949e6131f6 1222
Kojto 71:53949e6131f6 1223 case USB_FUNCTION_PIPEC:
Kojto 71:53949e6131f6 1224 RZA_IO_RegWrite_16(&USB200.PIPECCTR,
Kojto 71:53949e6131f6 1225 1,
Kojto 71:53949e6131f6 1226 USB_PIPEnCTR_A_F_SQCLR_SHIFT,
Kojto 71:53949e6131f6 1227 USB_PIPEnCTR_A_F_SQCLR);
Kojto 71:53949e6131f6 1228 break;
Kojto 71:53949e6131f6 1229
Kojto 71:53949e6131f6 1230 case USB_FUNCTION_PIPED:
Kojto 71:53949e6131f6 1231 RZA_IO_RegWrite_16(&USB200.PIPEDCTR,
Kojto 71:53949e6131f6 1232 1,
Kojto 71:53949e6131f6 1233 USB_PIPEnCTR_A_F_SQCLR_SHIFT,
Kojto 71:53949e6131f6 1234 USB_PIPEnCTR_A_F_SQCLR);
Kojto 71:53949e6131f6 1235 break;
Kojto 71:53949e6131f6 1236
Kojto 71:53949e6131f6 1237 case USB_FUNCTION_PIPEE:
Kojto 71:53949e6131f6 1238 RZA_IO_RegWrite_16(&USB200.PIPEECTR,
Kojto 71:53949e6131f6 1239 1,
Kojto 71:53949e6131f6 1240 USB_PIPEnCTR_A_F_SQCLR_SHIFT,
Kojto 71:53949e6131f6 1241 USB_PIPEnCTR_A_F_SQCLR);
Kojto 71:53949e6131f6 1242 break;
Kojto 71:53949e6131f6 1243
Kojto 71:53949e6131f6 1244 case USB_FUNCTION_PIPEF:
Kojto 71:53949e6131f6 1245 RZA_IO_RegWrite_16(&USB200.PIPEFCTR,
Kojto 71:53949e6131f6 1246 1,
Kojto 71:53949e6131f6 1247 USB_PIPEnCTR_A_F_SQCLR_SHIFT,
Kojto 71:53949e6131f6 1248 USB_PIPEnCTR_A_F_SQCLR);
Kojto 71:53949e6131f6 1249 break;
Kojto 71:53949e6131f6 1250
Kojto 71:53949e6131f6 1251 default:
Kojto 71:53949e6131f6 1252 break;
Kojto 71:53949e6131f6 1253 }
Kojto 71:53949e6131f6 1254 }
Kojto 71:53949e6131f6 1255
Kojto 71:53949e6131f6 1256 /*******************************************************************************
Kojto 71:53949e6131f6 1257 * Function Name: usb0_function_set_sqset
Kojto 71:53949e6131f6 1258 * Description : Sets the sequence bit of the pipe specified by the argument to
Kojto 71:53949e6131f6 1259 * : DATA1.
Kojto 71:53949e6131f6 1260 * Arguments : uint16_t pipe ; Pipe number
Kojto 71:53949e6131f6 1261 * Return Value : none
Kojto 71:53949e6131f6 1262 *******************************************************************************/
Kojto 71:53949e6131f6 1263 void usb0_function_set_sqset (uint16_t pipe)
Kojto 71:53949e6131f6 1264 {
Kojto 71:53949e6131f6 1265 switch (pipe)
Kojto 71:53949e6131f6 1266 {
Kojto 71:53949e6131f6 1267 case USB_FUNCTION_PIPE0:
Kojto 71:53949e6131f6 1268 RZA_IO_RegWrite_16(&USB200.DCPCTR,
Kojto 71:53949e6131f6 1269 1,
Kojto 71:53949e6131f6 1270 USB_DCPCTR_SQSET_SHIFT,
Kojto 71:53949e6131f6 1271 USB_DCPCTR_SQSET);
Kojto 71:53949e6131f6 1272 break;
Kojto 71:53949e6131f6 1273
Kojto 71:53949e6131f6 1274 case USB_FUNCTION_PIPE1:
Kojto 71:53949e6131f6 1275 RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
Kojto 71:53949e6131f6 1276 1,
Kojto 71:53949e6131f6 1277 USB_PIPEnCTR_1_5_SQSET_SHIFT,
Kojto 71:53949e6131f6 1278 USB_PIPEnCTR_1_5_SQSET);
Kojto 71:53949e6131f6 1279 break;
Kojto 71:53949e6131f6 1280
Kojto 71:53949e6131f6 1281 case USB_FUNCTION_PIPE2:
Kojto 71:53949e6131f6 1282 RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
Kojto 71:53949e6131f6 1283 1,
Kojto 71:53949e6131f6 1284 USB_PIPEnCTR_1_5_SQSET_SHIFT,
Kojto 71:53949e6131f6 1285 USB_PIPEnCTR_1_5_SQSET);
Kojto 71:53949e6131f6 1286 break;
Kojto 71:53949e6131f6 1287
Kojto 71:53949e6131f6 1288 case USB_FUNCTION_PIPE3:
Kojto 71:53949e6131f6 1289 RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
Kojto 71:53949e6131f6 1290 1,
Kojto 71:53949e6131f6 1291 USB_PIPEnCTR_1_5_SQSET_SHIFT,
Kojto 71:53949e6131f6 1292 USB_PIPEnCTR_1_5_SQSET);
Kojto 71:53949e6131f6 1293 break;
Kojto 71:53949e6131f6 1294
Kojto 71:53949e6131f6 1295 case USB_FUNCTION_PIPE4:
Kojto 71:53949e6131f6 1296 RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
Kojto 71:53949e6131f6 1297 1,
Kojto 71:53949e6131f6 1298 USB_PIPEnCTR_1_5_SQSET_SHIFT,
Kojto 71:53949e6131f6 1299 USB_PIPEnCTR_1_5_SQSET);
Kojto 71:53949e6131f6 1300 break;
Kojto 71:53949e6131f6 1301
Kojto 71:53949e6131f6 1302 case USB_FUNCTION_PIPE5:
Kojto 71:53949e6131f6 1303 RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
Kojto 71:53949e6131f6 1304 1,
Kojto 71:53949e6131f6 1305 USB_PIPEnCTR_1_5_SQSET_SHIFT,
Kojto 71:53949e6131f6 1306 USB_PIPEnCTR_1_5_SQSET);
Kojto 71:53949e6131f6 1307 break;
Kojto 71:53949e6131f6 1308
Kojto 71:53949e6131f6 1309 case USB_FUNCTION_PIPE6:
Kojto 71:53949e6131f6 1310 RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
Kojto 71:53949e6131f6 1311 1,
Kojto 71:53949e6131f6 1312 USB_PIPEnCTR_6_8_SQSET_SHIFT,
Kojto 71:53949e6131f6 1313 USB_PIPEnCTR_6_8_SQSET);
Kojto 71:53949e6131f6 1314 break;
Kojto 71:53949e6131f6 1315
Kojto 71:53949e6131f6 1316 case USB_FUNCTION_PIPE7:
Kojto 71:53949e6131f6 1317 RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
Kojto 71:53949e6131f6 1318 1,
Kojto 71:53949e6131f6 1319 USB_PIPEnCTR_6_8_SQSET_SHIFT,
Kojto 71:53949e6131f6 1320 USB_PIPEnCTR_6_8_SQSET);
Kojto 71:53949e6131f6 1321 break;
Kojto 71:53949e6131f6 1322
Kojto 71:53949e6131f6 1323 case USB_FUNCTION_PIPE8:
Kojto 71:53949e6131f6 1324 RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
Kojto 71:53949e6131f6 1325 1,
Kojto 71:53949e6131f6 1326 USB_PIPEnCTR_6_8_SQSET_SHIFT,
Kojto 71:53949e6131f6 1327 USB_PIPEnCTR_6_8_SQSET);
Kojto 71:53949e6131f6 1328 break;
Kojto 71:53949e6131f6 1329
Kojto 71:53949e6131f6 1330 case USB_FUNCTION_PIPE9:
Kojto 71:53949e6131f6 1331 RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
Kojto 71:53949e6131f6 1332 1,
Kojto 71:53949e6131f6 1333 USB_PIPEnCTR_9_SQSET_SHIFT,
Kojto 71:53949e6131f6 1334 USB_PIPEnCTR_9_SQSET);
Kojto 71:53949e6131f6 1335 break;
Kojto 71:53949e6131f6 1336
Kojto 71:53949e6131f6 1337 case USB_FUNCTION_PIPEA:
Kojto 71:53949e6131f6 1338 RZA_IO_RegWrite_16(&USB200.PIPEACTR,
Kojto 71:53949e6131f6 1339 1,
Kojto 71:53949e6131f6 1340 USB_PIPEnCTR_A_F_SQSET_SHIFT,
Kojto 71:53949e6131f6 1341 USB_PIPEnCTR_A_F_SQSET);
Kojto 71:53949e6131f6 1342 break;
Kojto 71:53949e6131f6 1343
Kojto 71:53949e6131f6 1344 case USB_FUNCTION_PIPEB:
Kojto 71:53949e6131f6 1345 RZA_IO_RegWrite_16(&USB200.PIPEBCTR,
Kojto 71:53949e6131f6 1346 1,
Kojto 71:53949e6131f6 1347 USB_PIPEnCTR_A_F_SQSET_SHIFT,
Kojto 71:53949e6131f6 1348 USB_PIPEnCTR_A_F_SQSET);
Kojto 71:53949e6131f6 1349 break;
Kojto 71:53949e6131f6 1350
Kojto 71:53949e6131f6 1351 case USB_FUNCTION_PIPEC:
Kojto 71:53949e6131f6 1352 RZA_IO_RegWrite_16(&USB200.PIPECCTR,
Kojto 71:53949e6131f6 1353 1,
Kojto 71:53949e6131f6 1354 USB_PIPEnCTR_A_F_SQSET_SHIFT,
Kojto 71:53949e6131f6 1355 USB_PIPEnCTR_A_F_SQSET);
Kojto 71:53949e6131f6 1356 break;
Kojto 71:53949e6131f6 1357
Kojto 71:53949e6131f6 1358 case USB_FUNCTION_PIPED:
Kojto 71:53949e6131f6 1359 RZA_IO_RegWrite_16(&USB200.PIPEDCTR,
Kojto 71:53949e6131f6 1360 1,
Kojto 71:53949e6131f6 1361 USB_PIPEnCTR_A_F_SQSET_SHIFT,
Kojto 71:53949e6131f6 1362 USB_PIPEnCTR_A_F_SQSET);
Kojto 71:53949e6131f6 1363 break;
Kojto 71:53949e6131f6 1364
Kojto 71:53949e6131f6 1365 case USB_FUNCTION_PIPEE:
Kojto 71:53949e6131f6 1366 RZA_IO_RegWrite_16(&USB200.PIPEECTR,
Kojto 71:53949e6131f6 1367 1,
Kojto 71:53949e6131f6 1368 USB_PIPEnCTR_A_F_SQSET_SHIFT,
Kojto 71:53949e6131f6 1369 USB_PIPEnCTR_A_F_SQSET);
Kojto 71:53949e6131f6 1370 break;
Kojto 71:53949e6131f6 1371
Kojto 71:53949e6131f6 1372 case USB_FUNCTION_PIPEF:
Kojto 71:53949e6131f6 1373 RZA_IO_RegWrite_16(&USB200.PIPEFCTR,
Kojto 71:53949e6131f6 1374 1,
Kojto 71:53949e6131f6 1375 USB_PIPEnCTR_A_F_SQSET_SHIFT,
Kojto 71:53949e6131f6 1376 USB_PIPEnCTR_A_F_SQSET);
Kojto 71:53949e6131f6 1377 break;
Kojto 71:53949e6131f6 1378
Kojto 71:53949e6131f6 1379 default:
Kojto 71:53949e6131f6 1380 break;
Kojto 71:53949e6131f6 1381 }
Kojto 71:53949e6131f6 1382 }
Kojto 71:53949e6131f6 1383
Kojto 71:53949e6131f6 1384 /*******************************************************************************
Kojto 71:53949e6131f6 1385 * Function Name: usb0_function_get_sqmon
Kojto 71:53949e6131f6 1386 * Description : Toggle bit of specified pipe is obtained
Kojto 71:53949e6131f6 1387 * Arguments : uint16_t pipe ; Pipe number
Kojto 71:53949e6131f6 1388 * Return Value : sqmon
Kojto 71:53949e6131f6 1389 *******************************************************************************/
Kojto 71:53949e6131f6 1390 uint16_t usb0_function_get_sqmon (uint16_t pipe)
Kojto 71:53949e6131f6 1391 {
Kojto 71:53949e6131f6 1392 uint16_t sqmon;
Kojto 71:53949e6131f6 1393
Kojto 71:53949e6131f6 1394 switch (pipe)
Kojto 71:53949e6131f6 1395 {
Kojto 71:53949e6131f6 1396 case USB_FUNCTION_PIPE0:
Kojto 71:53949e6131f6 1397 sqmon = RZA_IO_RegRead_16(&USB200.DCPCTR,
Kojto 71:53949e6131f6 1398 USB_DCPCTR_SQMON_SHIFT,
Kojto 71:53949e6131f6 1399 USB_DCPCTR_SQMON);
Kojto 71:53949e6131f6 1400 break;
Kojto 71:53949e6131f6 1401
Kojto 71:53949e6131f6 1402 case USB_FUNCTION_PIPE1:
Kojto 71:53949e6131f6 1403 sqmon = RZA_IO_RegRead_16(&USB200.PIPE1CTR,
Kojto 71:53949e6131f6 1404 USB_PIPEnCTR_1_5_SQMON_SHIFT,
Kojto 71:53949e6131f6 1405 USB_PIPEnCTR_1_5_SQMON);
Kojto 71:53949e6131f6 1406 break;
Kojto 71:53949e6131f6 1407
Kojto 71:53949e6131f6 1408 case USB_FUNCTION_PIPE2:
Kojto 71:53949e6131f6 1409 sqmon = RZA_IO_RegRead_16(&USB200.PIPE2CTR,
Kojto 71:53949e6131f6 1410 USB_PIPEnCTR_1_5_SQMON_SHIFT,
Kojto 71:53949e6131f6 1411 USB_PIPEnCTR_1_5_SQMON);
Kojto 71:53949e6131f6 1412 break;
Kojto 71:53949e6131f6 1413
Kojto 71:53949e6131f6 1414 case USB_FUNCTION_PIPE3:
Kojto 71:53949e6131f6 1415 sqmon = RZA_IO_RegRead_16(&USB200.PIPE3CTR,
Kojto 71:53949e6131f6 1416 USB_PIPEnCTR_1_5_SQMON_SHIFT,
Kojto 71:53949e6131f6 1417 USB_PIPEnCTR_1_5_SQMON);
Kojto 71:53949e6131f6 1418 break;
Kojto 71:53949e6131f6 1419
Kojto 71:53949e6131f6 1420 case USB_FUNCTION_PIPE4:
Kojto 71:53949e6131f6 1421 sqmon = RZA_IO_RegRead_16(&USB200.PIPE4CTR,
Kojto 71:53949e6131f6 1422 USB_PIPEnCTR_1_5_SQMON_SHIFT,
Kojto 71:53949e6131f6 1423 USB_PIPEnCTR_1_5_SQMON);
Kojto 71:53949e6131f6 1424 break;
Kojto 71:53949e6131f6 1425
Kojto 71:53949e6131f6 1426 case USB_FUNCTION_PIPE5:
Kojto 71:53949e6131f6 1427 sqmon = RZA_IO_RegRead_16(&USB200.PIPE5CTR,
Kojto 71:53949e6131f6 1428 USB_PIPEnCTR_1_5_SQMON_SHIFT,
Kojto 71:53949e6131f6 1429 USB_PIPEnCTR_1_5_SQMON);
Kojto 71:53949e6131f6 1430 break;
Kojto 71:53949e6131f6 1431
Kojto 71:53949e6131f6 1432 case USB_FUNCTION_PIPE6:
Kojto 71:53949e6131f6 1433 sqmon = RZA_IO_RegRead_16(&USB200.PIPE6CTR,
Kojto 71:53949e6131f6 1434 USB_PIPEnCTR_6_8_SQMON_SHIFT,
Kojto 71:53949e6131f6 1435 USB_PIPEnCTR_6_8_SQMON);
Kojto 71:53949e6131f6 1436 break;
Kojto 71:53949e6131f6 1437
Kojto 71:53949e6131f6 1438 case USB_FUNCTION_PIPE7:
Kojto 71:53949e6131f6 1439 sqmon = RZA_IO_RegRead_16(&USB200.PIPE7CTR,
Kojto 71:53949e6131f6 1440 USB_PIPEnCTR_6_8_SQMON_SHIFT,
Kojto 71:53949e6131f6 1441 USB_PIPEnCTR_6_8_SQMON);
Kojto 71:53949e6131f6 1442 break;
Kojto 71:53949e6131f6 1443
Kojto 71:53949e6131f6 1444 case USB_FUNCTION_PIPE8:
Kojto 71:53949e6131f6 1445 sqmon = RZA_IO_RegRead_16(&USB200.PIPE8CTR,
Kojto 71:53949e6131f6 1446 USB_PIPEnCTR_6_8_SQMON_SHIFT,
Kojto 71:53949e6131f6 1447 USB_PIPEnCTR_6_8_SQMON);
Kojto 71:53949e6131f6 1448 break;
Kojto 71:53949e6131f6 1449
Kojto 71:53949e6131f6 1450 case USB_FUNCTION_PIPE9:
Kojto 71:53949e6131f6 1451 sqmon = RZA_IO_RegRead_16(&USB200.PIPE9CTR,
Kojto 71:53949e6131f6 1452 USB_PIPEnCTR_9_SQMON_SHIFT,
Kojto 71:53949e6131f6 1453 USB_PIPEnCTR_9_SQMON);
Kojto 71:53949e6131f6 1454 break;
Kojto 71:53949e6131f6 1455
Kojto 71:53949e6131f6 1456 case USB_FUNCTION_PIPEA:
Kojto 71:53949e6131f6 1457 sqmon = RZA_IO_RegRead_16(&USB200.PIPEACTR,
Kojto 71:53949e6131f6 1458 USB_PIPEnCTR_A_F_SQMON_SHIFT,
Kojto 71:53949e6131f6 1459 USB_PIPEnCTR_A_F_SQMON);
Kojto 71:53949e6131f6 1460 break;
Kojto 71:53949e6131f6 1461
Kojto 71:53949e6131f6 1462 case USB_FUNCTION_PIPEB:
Kojto 71:53949e6131f6 1463 sqmon = RZA_IO_RegRead_16(&USB200.PIPEBCTR,
Kojto 71:53949e6131f6 1464 USB_PIPEnCTR_A_F_SQMON_SHIFT,
Kojto 71:53949e6131f6 1465 USB_PIPEnCTR_A_F_SQMON);
Kojto 71:53949e6131f6 1466 break;
Kojto 71:53949e6131f6 1467
Kojto 71:53949e6131f6 1468 case USB_FUNCTION_PIPEC:
Kojto 71:53949e6131f6 1469 sqmon = RZA_IO_RegRead_16(&USB200.PIPECCTR,
Kojto 71:53949e6131f6 1470 USB_PIPEnCTR_A_F_SQMON_SHIFT,
Kojto 71:53949e6131f6 1471 USB_PIPEnCTR_A_F_SQMON);
Kojto 71:53949e6131f6 1472 break;
Kojto 71:53949e6131f6 1473
Kojto 71:53949e6131f6 1474 case USB_FUNCTION_PIPED:
Kojto 71:53949e6131f6 1475 sqmon = RZA_IO_RegRead_16(&USB200.PIPEDCTR,
Kojto 71:53949e6131f6 1476 USB_PIPEnCTR_A_F_SQMON_SHIFT,
Kojto 71:53949e6131f6 1477 USB_PIPEnCTR_A_F_SQMON);
Kojto 71:53949e6131f6 1478 break;
Kojto 71:53949e6131f6 1479
Kojto 71:53949e6131f6 1480 case USB_FUNCTION_PIPEE:
Kojto 71:53949e6131f6 1481 sqmon = RZA_IO_RegRead_16(&USB200.PIPEECTR,
Kojto 71:53949e6131f6 1482 USB_PIPEnCTR_A_F_SQMON_SHIFT,
Kojto 71:53949e6131f6 1483 USB_PIPEnCTR_A_F_SQMON);
Kojto 71:53949e6131f6 1484 break;
Kojto 71:53949e6131f6 1485
Kojto 71:53949e6131f6 1486 case USB_FUNCTION_PIPEF:
Kojto 71:53949e6131f6 1487 sqmon = RZA_IO_RegRead_16(&USB200.PIPEFCTR,
Kojto 71:53949e6131f6 1488 USB_PIPEnCTR_A_F_SQMON_SHIFT,
Kojto 71:53949e6131f6 1489 USB_PIPEnCTR_A_F_SQMON);
Kojto 71:53949e6131f6 1490 break;
Kojto 71:53949e6131f6 1491
Kojto 71:53949e6131f6 1492 default:
Kojto 71:53949e6131f6 1493 sqmon = 0;
Kojto 71:53949e6131f6 1494 break;
Kojto 71:53949e6131f6 1495 }
Kojto 71:53949e6131f6 1496
Kojto 71:53949e6131f6 1497 return sqmon;
Kojto 71:53949e6131f6 1498 }
Kojto 71:53949e6131f6 1499
Kojto 71:53949e6131f6 1500 /*******************************************************************************
Kojto 71:53949e6131f6 1501 * Function Name: usb0_function_aclrm
Kojto 71:53949e6131f6 1502 * Description : The buffer of specified pipe is initialized
Kojto 71:53949e6131f6 1503 * Arguments : uint16_t pipe : Pipe
Kojto 71:53949e6131f6 1504 * Return Value : none
Kojto 71:53949e6131f6 1505 *******************************************************************************/
Kojto 71:53949e6131f6 1506 void usb0_function_aclrm (uint16_t pipe)
Kojto 71:53949e6131f6 1507 {
Kojto 71:53949e6131f6 1508 usb0_function_set_aclrm(pipe);
Kojto 71:53949e6131f6 1509 usb0_function_clr_aclrm(pipe);
Kojto 71:53949e6131f6 1510 }
Kojto 71:53949e6131f6 1511
Kojto 71:53949e6131f6 1512 /*******************************************************************************
Kojto 71:53949e6131f6 1513 * Function Name: usb0_function_set_aclrm
Kojto 71:53949e6131f6 1514 * Description : The auto buffer clear mode of specified pipe is enabled
Kojto 71:53949e6131f6 1515 * Arguments : uint16_t pipe : Pipe
Kojto 71:53949e6131f6 1516 * Return Value : none
Kojto 71:53949e6131f6 1517 *******************************************************************************/
Kojto 71:53949e6131f6 1518 void usb0_function_set_aclrm (uint16_t pipe)
Kojto 71:53949e6131f6 1519 {
Kojto 71:53949e6131f6 1520 switch (pipe)
Kojto 71:53949e6131f6 1521 {
Kojto 71:53949e6131f6 1522 case USB_FUNCTION_PIPE0:
Kojto 71:53949e6131f6 1523 break;
Kojto 71:53949e6131f6 1524
Kojto 71:53949e6131f6 1525 case USB_FUNCTION_PIPE1:
Kojto 71:53949e6131f6 1526 RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
Kojto 71:53949e6131f6 1527 1,
Kojto 71:53949e6131f6 1528 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1529 USB_PIPEnCTR_1_5_ACLRM);
Kojto 71:53949e6131f6 1530 break;
Kojto 71:53949e6131f6 1531
Kojto 71:53949e6131f6 1532 case USB_FUNCTION_PIPE2:
Kojto 71:53949e6131f6 1533 RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
Kojto 71:53949e6131f6 1534 1,
Kojto 71:53949e6131f6 1535 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1536 USB_PIPEnCTR_1_5_ACLRM);
Kojto 71:53949e6131f6 1537 break;
Kojto 71:53949e6131f6 1538
Kojto 71:53949e6131f6 1539 case USB_FUNCTION_PIPE3:
Kojto 71:53949e6131f6 1540 RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
Kojto 71:53949e6131f6 1541 1,
Kojto 71:53949e6131f6 1542 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1543 USB_PIPEnCTR_1_5_ACLRM);
Kojto 71:53949e6131f6 1544 break;
Kojto 71:53949e6131f6 1545
Kojto 71:53949e6131f6 1546 case USB_FUNCTION_PIPE4:
Kojto 71:53949e6131f6 1547 RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
Kojto 71:53949e6131f6 1548 1,
Kojto 71:53949e6131f6 1549 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1550 USB_PIPEnCTR_1_5_ACLRM);
Kojto 71:53949e6131f6 1551 break;
Kojto 71:53949e6131f6 1552
Kojto 71:53949e6131f6 1553 case USB_FUNCTION_PIPE5:
Kojto 71:53949e6131f6 1554 RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
Kojto 71:53949e6131f6 1555 1,
Kojto 71:53949e6131f6 1556 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1557 USB_PIPEnCTR_1_5_ACLRM);
Kojto 71:53949e6131f6 1558 break;
Kojto 71:53949e6131f6 1559
Kojto 71:53949e6131f6 1560 case USB_FUNCTION_PIPE6:
Kojto 71:53949e6131f6 1561 RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
Kojto 71:53949e6131f6 1562 1,
Kojto 71:53949e6131f6 1563 USB_PIPEnCTR_6_8_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1564 USB_PIPEnCTR_6_8_ACLRM);
Kojto 71:53949e6131f6 1565 break;
Kojto 71:53949e6131f6 1566
Kojto 71:53949e6131f6 1567 case USB_FUNCTION_PIPE7:
Kojto 71:53949e6131f6 1568 RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
Kojto 71:53949e6131f6 1569 1,
Kojto 71:53949e6131f6 1570 USB_PIPEnCTR_6_8_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1571 USB_PIPEnCTR_6_8_ACLRM);
Kojto 71:53949e6131f6 1572 break;
Kojto 71:53949e6131f6 1573
Kojto 71:53949e6131f6 1574 case USB_FUNCTION_PIPE8:
Kojto 71:53949e6131f6 1575 RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
Kojto 71:53949e6131f6 1576 1,
Kojto 71:53949e6131f6 1577 USB_PIPEnCTR_6_8_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1578 USB_PIPEnCTR_6_8_ACLRM);
Kojto 71:53949e6131f6 1579 break;
Kojto 71:53949e6131f6 1580
Kojto 71:53949e6131f6 1581 case USB_FUNCTION_PIPE9:
Kojto 71:53949e6131f6 1582 RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
Kojto 71:53949e6131f6 1583 1,
Kojto 71:53949e6131f6 1584 USB_PIPEnCTR_9_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1585 USB_PIPEnCTR_9_ACLRM);
Kojto 71:53949e6131f6 1586 break;
Kojto 71:53949e6131f6 1587
Kojto 71:53949e6131f6 1588 case USB_FUNCTION_PIPEA:
Kojto 71:53949e6131f6 1589 RZA_IO_RegWrite_16(&USB200.PIPEACTR,
Kojto 71:53949e6131f6 1590 1,
Kojto 71:53949e6131f6 1591 USB_PIPEnCTR_A_F_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1592 USB_PIPEnCTR_A_F_ACLRM);
Kojto 71:53949e6131f6 1593 break;
Kojto 71:53949e6131f6 1594
Kojto 71:53949e6131f6 1595 case USB_FUNCTION_PIPEB:
Kojto 71:53949e6131f6 1596 RZA_IO_RegWrite_16(&USB200.PIPEBCTR,
Kojto 71:53949e6131f6 1597 1,
Kojto 71:53949e6131f6 1598 USB_PIPEnCTR_A_F_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1599 USB_PIPEnCTR_A_F_ACLRM);
Kojto 71:53949e6131f6 1600 break;
Kojto 71:53949e6131f6 1601
Kojto 71:53949e6131f6 1602 case USB_FUNCTION_PIPEC:
Kojto 71:53949e6131f6 1603 RZA_IO_RegWrite_16(&USB200.PIPECCTR,
Kojto 71:53949e6131f6 1604 1,
Kojto 71:53949e6131f6 1605 USB_PIPEnCTR_A_F_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1606 USB_PIPEnCTR_A_F_ACLRM);
Kojto 71:53949e6131f6 1607 break;
Kojto 71:53949e6131f6 1608
Kojto 71:53949e6131f6 1609 case USB_FUNCTION_PIPED:
Kojto 71:53949e6131f6 1610 RZA_IO_RegWrite_16(&USB200.PIPEDCTR,
Kojto 71:53949e6131f6 1611 1,
Kojto 71:53949e6131f6 1612 USB_PIPEnCTR_A_F_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1613 USB_PIPEnCTR_A_F_ACLRM);
Kojto 71:53949e6131f6 1614 break;
Kojto 71:53949e6131f6 1615
Kojto 71:53949e6131f6 1616 case USB_FUNCTION_PIPEE:
Kojto 71:53949e6131f6 1617 RZA_IO_RegWrite_16(&USB200.PIPEECTR,
Kojto 71:53949e6131f6 1618 1,
Kojto 71:53949e6131f6 1619 USB_PIPEnCTR_A_F_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1620 USB_PIPEnCTR_A_F_ACLRM);
Kojto 71:53949e6131f6 1621 break;
Kojto 71:53949e6131f6 1622
Kojto 71:53949e6131f6 1623 case USB_FUNCTION_PIPEF:
Kojto 71:53949e6131f6 1624 RZA_IO_RegWrite_16(&USB200.PIPEFCTR,
Kojto 71:53949e6131f6 1625 1,
Kojto 71:53949e6131f6 1626 USB_PIPEnCTR_A_F_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1627 USB_PIPEnCTR_A_F_ACLRM);
Kojto 71:53949e6131f6 1628 break;
Kojto 71:53949e6131f6 1629
Kojto 71:53949e6131f6 1630 default:
Kojto 71:53949e6131f6 1631 break;
Kojto 71:53949e6131f6 1632 }
Kojto 71:53949e6131f6 1633 }
Kojto 71:53949e6131f6 1634
Kojto 71:53949e6131f6 1635 /*******************************************************************************
Kojto 71:53949e6131f6 1636 * Function Name: usb0_function_clr_aclrm
Kojto 71:53949e6131f6 1637 * Description : The auto buffer clear mode of specified pipe is enabled
Kojto 71:53949e6131f6 1638 * Arguments : uint16_t pipe : Pipe
Kojto 71:53949e6131f6 1639 * Return Value : none
Kojto 71:53949e6131f6 1640 *******************************************************************************/
Kojto 71:53949e6131f6 1641 void usb0_function_clr_aclrm (uint16_t pipe)
Kojto 71:53949e6131f6 1642 {
Kojto 71:53949e6131f6 1643 switch (pipe)
Kojto 71:53949e6131f6 1644 {
Kojto 71:53949e6131f6 1645 case USB_FUNCTION_PIPE0:
Kojto 71:53949e6131f6 1646 break;
Kojto 71:53949e6131f6 1647
Kojto 71:53949e6131f6 1648 case USB_FUNCTION_PIPE1:
Kojto 71:53949e6131f6 1649 RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
Kojto 71:53949e6131f6 1650 0,
Kojto 71:53949e6131f6 1651 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1652 USB_PIPEnCTR_1_5_ACLRM);
Kojto 71:53949e6131f6 1653 break;
Kojto 71:53949e6131f6 1654
Kojto 71:53949e6131f6 1655 case USB_FUNCTION_PIPE2:
Kojto 71:53949e6131f6 1656 RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
Kojto 71:53949e6131f6 1657 0,
Kojto 71:53949e6131f6 1658 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1659 USB_PIPEnCTR_1_5_ACLRM);
Kojto 71:53949e6131f6 1660 break;
Kojto 71:53949e6131f6 1661
Kojto 71:53949e6131f6 1662 case USB_FUNCTION_PIPE3:
Kojto 71:53949e6131f6 1663 RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
Kojto 71:53949e6131f6 1664 0,
Kojto 71:53949e6131f6 1665 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1666 USB_PIPEnCTR_1_5_ACLRM);
Kojto 71:53949e6131f6 1667 break;
Kojto 71:53949e6131f6 1668
Kojto 71:53949e6131f6 1669 case USB_FUNCTION_PIPE4:
Kojto 71:53949e6131f6 1670 RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
Kojto 71:53949e6131f6 1671 0,
Kojto 71:53949e6131f6 1672 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1673 USB_PIPEnCTR_1_5_ACLRM);
Kojto 71:53949e6131f6 1674 break;
Kojto 71:53949e6131f6 1675
Kojto 71:53949e6131f6 1676 case USB_FUNCTION_PIPE5:
Kojto 71:53949e6131f6 1677 RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
Kojto 71:53949e6131f6 1678 0,
Kojto 71:53949e6131f6 1679 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1680 USB_PIPEnCTR_1_5_ACLRM);
Kojto 71:53949e6131f6 1681 break;
Kojto 71:53949e6131f6 1682
Kojto 71:53949e6131f6 1683 case USB_FUNCTION_PIPE6:
Kojto 71:53949e6131f6 1684 RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
Kojto 71:53949e6131f6 1685 0,
Kojto 71:53949e6131f6 1686 USB_PIPEnCTR_6_8_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1687 USB_PIPEnCTR_6_8_ACLRM);
Kojto 71:53949e6131f6 1688 break;
Kojto 71:53949e6131f6 1689
Kojto 71:53949e6131f6 1690 case USB_FUNCTION_PIPE7:
Kojto 71:53949e6131f6 1691 RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
Kojto 71:53949e6131f6 1692 0,
Kojto 71:53949e6131f6 1693 USB_PIPEnCTR_6_8_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1694 USB_PIPEnCTR_6_8_ACLRM);
Kojto 71:53949e6131f6 1695 break;
Kojto 71:53949e6131f6 1696
Kojto 71:53949e6131f6 1697 case USB_FUNCTION_PIPE8:
Kojto 71:53949e6131f6 1698 RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
Kojto 71:53949e6131f6 1699 0,
Kojto 71:53949e6131f6 1700 USB_PIPEnCTR_6_8_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1701 USB_PIPEnCTR_6_8_ACLRM);
Kojto 71:53949e6131f6 1702 break;
Kojto 71:53949e6131f6 1703
Kojto 71:53949e6131f6 1704 case USB_FUNCTION_PIPE9:
Kojto 71:53949e6131f6 1705 RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
Kojto 71:53949e6131f6 1706 0,
Kojto 71:53949e6131f6 1707 USB_PIPEnCTR_9_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1708 USB_PIPEnCTR_9_ACLRM);
Kojto 71:53949e6131f6 1709 break;
Kojto 71:53949e6131f6 1710
Kojto 71:53949e6131f6 1711 case USB_FUNCTION_PIPEA:
Kojto 71:53949e6131f6 1712 RZA_IO_RegWrite_16(&USB200.PIPEACTR,
Kojto 71:53949e6131f6 1713 0,
Kojto 71:53949e6131f6 1714 USB_PIPEnCTR_A_F_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1715 USB_PIPEnCTR_A_F_ACLRM);
Kojto 71:53949e6131f6 1716 break;
Kojto 71:53949e6131f6 1717
Kojto 71:53949e6131f6 1718 case USB_FUNCTION_PIPEB:
Kojto 71:53949e6131f6 1719 RZA_IO_RegWrite_16(&USB200.PIPEBCTR,
Kojto 71:53949e6131f6 1720 0,
Kojto 71:53949e6131f6 1721 USB_PIPEnCTR_A_F_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1722 USB_PIPEnCTR_A_F_ACLRM);
Kojto 71:53949e6131f6 1723 break;
Kojto 71:53949e6131f6 1724
Kojto 71:53949e6131f6 1725 case USB_FUNCTION_PIPEC:
Kojto 71:53949e6131f6 1726 RZA_IO_RegWrite_16(&USB200.PIPECCTR,
Kojto 71:53949e6131f6 1727 0,
Kojto 71:53949e6131f6 1728 USB_PIPEnCTR_A_F_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1729 USB_PIPEnCTR_A_F_ACLRM);
Kojto 71:53949e6131f6 1730 break;
Kojto 71:53949e6131f6 1731
Kojto 71:53949e6131f6 1732 case USB_FUNCTION_PIPED:
Kojto 71:53949e6131f6 1733 RZA_IO_RegWrite_16(&USB200.PIPEDCTR,
Kojto 71:53949e6131f6 1734 0,
Kojto 71:53949e6131f6 1735 USB_PIPEnCTR_A_F_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1736 USB_PIPEnCTR_A_F_ACLRM);
Kojto 71:53949e6131f6 1737 break;
Kojto 71:53949e6131f6 1738
Kojto 71:53949e6131f6 1739 case USB_FUNCTION_PIPEE:
Kojto 71:53949e6131f6 1740 RZA_IO_RegWrite_16(&USB200.PIPEECTR,
Kojto 71:53949e6131f6 1741 0,
Kojto 71:53949e6131f6 1742 USB_PIPEnCTR_A_F_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1743 USB_PIPEnCTR_A_F_ACLRM);
Kojto 71:53949e6131f6 1744 break;
Kojto 71:53949e6131f6 1745
Kojto 71:53949e6131f6 1746 case USB_FUNCTION_PIPEF:
Kojto 71:53949e6131f6 1747 RZA_IO_RegWrite_16(&USB200.PIPEFCTR,
Kojto 71:53949e6131f6 1748 0,
Kojto 71:53949e6131f6 1749 USB_PIPEnCTR_A_F_ACLRM_SHIFT,
Kojto 71:53949e6131f6 1750 USB_PIPEnCTR_A_F_ACLRM);
Kojto 71:53949e6131f6 1751 break;
Kojto 71:53949e6131f6 1752
Kojto 71:53949e6131f6 1753 default:
Kojto 71:53949e6131f6 1754 break;
Kojto 71:53949e6131f6 1755 }
Kojto 71:53949e6131f6 1756 }
Kojto 71:53949e6131f6 1757
Kojto 71:53949e6131f6 1758 /*******************************************************************************
Kojto 71:53949e6131f6 1759 * Function Name: usb0_function_get_inbuf
Kojto 71:53949e6131f6 1760 * Description : Returns INBUFM of the pipe specified by the argument.
Kojto 71:53949e6131f6 1761 * Arguments : uint16_t pipe ; Pipe Number
Kojto 71:53949e6131f6 1762 * Return Value : inbuf
Kojto 71:53949e6131f6 1763 *******************************************************************************/
Kojto 71:53949e6131f6 1764 uint16_t usb0_function_get_inbuf (uint16_t pipe)
Kojto 71:53949e6131f6 1765 {
Kojto 71:53949e6131f6 1766 uint16_t inbuf;
Kojto 71:53949e6131f6 1767
Kojto 71:53949e6131f6 1768 switch (pipe)
Kojto 71:53949e6131f6 1769 {
Kojto 71:53949e6131f6 1770 case USB_FUNCTION_PIPE0:
Kojto 71:53949e6131f6 1771 inbuf = 0;
Kojto 71:53949e6131f6 1772 break;
Kojto 71:53949e6131f6 1773
Kojto 71:53949e6131f6 1774 case USB_FUNCTION_PIPE1:
Kojto 71:53949e6131f6 1775 inbuf = RZA_IO_RegRead_16(&USB200.PIPE1CTR,
Kojto 71:53949e6131f6 1776 USB_PIPEnCTR_1_5_INBUFM_SHIFT,
Kojto 71:53949e6131f6 1777 USB_PIPEnCTR_1_5_INBUFM);
Kojto 71:53949e6131f6 1778 break;
Kojto 71:53949e6131f6 1779
Kojto 71:53949e6131f6 1780 case USB_FUNCTION_PIPE2:
Kojto 71:53949e6131f6 1781 inbuf = RZA_IO_RegRead_16(&USB200.PIPE2CTR,
Kojto 71:53949e6131f6 1782 USB_PIPEnCTR_1_5_INBUFM_SHIFT,
Kojto 71:53949e6131f6 1783 USB_PIPEnCTR_1_5_INBUFM);
Kojto 71:53949e6131f6 1784 break;
Kojto 71:53949e6131f6 1785
Kojto 71:53949e6131f6 1786 case USB_FUNCTION_PIPE3:
Kojto 71:53949e6131f6 1787 inbuf = RZA_IO_RegRead_16(&USB200.PIPE3CTR,
Kojto 71:53949e6131f6 1788 USB_PIPEnCTR_1_5_INBUFM_SHIFT,
Kojto 71:53949e6131f6 1789 USB_PIPEnCTR_1_5_INBUFM);
Kojto 71:53949e6131f6 1790 break;
Kojto 71:53949e6131f6 1791
Kojto 71:53949e6131f6 1792 case USB_FUNCTION_PIPE4:
Kojto 71:53949e6131f6 1793 inbuf = RZA_IO_RegRead_16(&USB200.PIPE4CTR,
Kojto 71:53949e6131f6 1794 USB_PIPEnCTR_1_5_INBUFM_SHIFT,
Kojto 71:53949e6131f6 1795 USB_PIPEnCTR_1_5_INBUFM);
Kojto 71:53949e6131f6 1796 break;
Kojto 71:53949e6131f6 1797
Kojto 71:53949e6131f6 1798 case USB_FUNCTION_PIPE5:
Kojto 71:53949e6131f6 1799 inbuf = RZA_IO_RegRead_16(&USB200.PIPE5CTR,
Kojto 71:53949e6131f6 1800 USB_PIPEnCTR_1_5_INBUFM_SHIFT,
Kojto 71:53949e6131f6 1801 USB_PIPEnCTR_1_5_INBUFM);
Kojto 71:53949e6131f6 1802 break;
Kojto 71:53949e6131f6 1803
Kojto 71:53949e6131f6 1804 case USB_FUNCTION_PIPE6:
Kojto 71:53949e6131f6 1805 inbuf = 0;
Kojto 71:53949e6131f6 1806 break;
Kojto 71:53949e6131f6 1807
Kojto 71:53949e6131f6 1808 case USB_FUNCTION_PIPE7:
Kojto 71:53949e6131f6 1809 inbuf = 0;
Kojto 71:53949e6131f6 1810 break;
Kojto 71:53949e6131f6 1811
Kojto 71:53949e6131f6 1812 case USB_FUNCTION_PIPE8:
Kojto 71:53949e6131f6 1813 inbuf = 0;
Kojto 71:53949e6131f6 1814 break;
Kojto 71:53949e6131f6 1815
Kojto 71:53949e6131f6 1816 case USB_FUNCTION_PIPE9:
Kojto 71:53949e6131f6 1817 inbuf = RZA_IO_RegRead_16(&USB200.PIPE9CTR,
Kojto 71:53949e6131f6 1818 USB_PIPEnCTR_9_INBUFM_SHIFT,
Kojto 71:53949e6131f6 1819 USB_PIPEnCTR_9_INBUFM);
Kojto 71:53949e6131f6 1820 break;
Kojto 71:53949e6131f6 1821
Kojto 71:53949e6131f6 1822 case USB_FUNCTION_PIPEA:
Kojto 71:53949e6131f6 1823 inbuf = RZA_IO_RegRead_16(&USB200.PIPEACTR,
Kojto 71:53949e6131f6 1824 USB_PIPEnCTR_A_F_INBUFM_SHIFT,
Kojto 71:53949e6131f6 1825 USB_PIPEnCTR_A_F_INBUFM);
Kojto 71:53949e6131f6 1826 break;
Kojto 71:53949e6131f6 1827
Kojto 71:53949e6131f6 1828 case USB_FUNCTION_PIPEB:
Kojto 71:53949e6131f6 1829 inbuf = RZA_IO_RegRead_16(&USB200.PIPEBCTR,
Kojto 71:53949e6131f6 1830 USB_PIPEnCTR_A_F_INBUFM_SHIFT,
Kojto 71:53949e6131f6 1831 USB_PIPEnCTR_A_F_INBUFM);
Kojto 71:53949e6131f6 1832 break;
Kojto 71:53949e6131f6 1833
Kojto 71:53949e6131f6 1834 case USB_FUNCTION_PIPEC:
Kojto 71:53949e6131f6 1835 inbuf = RZA_IO_RegRead_16(&USB200.PIPECCTR,
Kojto 71:53949e6131f6 1836 USB_PIPEnCTR_A_F_INBUFM_SHIFT,
Kojto 71:53949e6131f6 1837 USB_PIPEnCTR_A_F_INBUFM);
Kojto 71:53949e6131f6 1838 break;
Kojto 71:53949e6131f6 1839
Kojto 71:53949e6131f6 1840 case USB_FUNCTION_PIPED:
Kojto 71:53949e6131f6 1841 inbuf = RZA_IO_RegRead_16(&USB200.PIPEDCTR,
Kojto 71:53949e6131f6 1842 USB_PIPEnCTR_A_F_INBUFM_SHIFT,
Kojto 71:53949e6131f6 1843 USB_PIPEnCTR_A_F_INBUFM);
Kojto 71:53949e6131f6 1844 break;
Kojto 71:53949e6131f6 1845
Kojto 71:53949e6131f6 1846 case USB_FUNCTION_PIPEE:
Kojto 71:53949e6131f6 1847 inbuf = RZA_IO_RegRead_16(&USB200.PIPEECTR,
Kojto 71:53949e6131f6 1848 USB_PIPEnCTR_A_F_INBUFM_SHIFT,
Kojto 71:53949e6131f6 1849 USB_PIPEnCTR_A_F_INBUFM);
Kojto 71:53949e6131f6 1850 break;
Kojto 71:53949e6131f6 1851
Kojto 71:53949e6131f6 1852 case USB_FUNCTION_PIPEF:
Kojto 71:53949e6131f6 1853 inbuf = RZA_IO_RegRead_16(&USB200.PIPEFCTR,
Kojto 71:53949e6131f6 1854 USB_PIPEnCTR_A_F_INBUFM_SHIFT,
Kojto 71:53949e6131f6 1855 USB_PIPEnCTR_A_F_INBUFM);
Kojto 71:53949e6131f6 1856 break;
Kojto 71:53949e6131f6 1857
Kojto 71:53949e6131f6 1858 default:
Kojto 71:53949e6131f6 1859 inbuf = 0;
Kojto 71:53949e6131f6 1860 break;
Kojto 71:53949e6131f6 1861 }
Kojto 71:53949e6131f6 1862
Kojto 71:53949e6131f6 1863 return inbuf;
Kojto 71:53949e6131f6 1864 }
Kojto 71:53949e6131f6 1865
Kojto 71:53949e6131f6 1866 /*******************************************************************************
Kojto 71:53949e6131f6 1867 * Function Name: usb0_function_setting_interrupt
Kojto 71:53949e6131f6 1868 * Description : Sets the USB module interrupt level.
Kojto 71:53949e6131f6 1869 * Arguments : uint8_t level ;interrupt level
Kojto 71:53949e6131f6 1870 * Return Value : none
Kojto 71:53949e6131f6 1871 *******************************************************************************/
Kojto 71:53949e6131f6 1872 #if 0
Kojto 71:53949e6131f6 1873 void usb0_function_setting_interrupt (uint8_t level)
Kojto 71:53949e6131f6 1874 {
Kojto 71:53949e6131f6 1875 uint16_t d0fifo_dmaintid;
Kojto 71:53949e6131f6 1876 uint16_t d1fifo_dmaintid;
Kojto 71:53949e6131f6 1877
Kojto 71:53949e6131f6 1878 R_INTC_RegistIntFunc(INTC_ID_USBI0, usb0_function_interrupt);
Kojto 71:53949e6131f6 1879 R_INTC_SetPriority(INTC_ID_USBI0, level);
Kojto 71:53949e6131f6 1880 R_INTC_Enable(INTC_ID_USBI0);
Kojto 71:53949e6131f6 1881
Kojto 71:53949e6131f6 1882 d0fifo_dmaintid = Userdef_USB_usb0_function_d0fifo_dmaintid();
Kojto 71:53949e6131f6 1883
Kojto 71:53949e6131f6 1884 if (d0fifo_dmaintid != 0xFFFF)
Kojto 71:53949e6131f6 1885 {
Kojto 71:53949e6131f6 1886 R_INTC_RegistIntFunc(d0fifo_dmaintid, usb0_function_dma_interrupt_d0fifo);
Kojto 71:53949e6131f6 1887 R_INTC_SetPriority(d0fifo_dmaintid, level);
Kojto 71:53949e6131f6 1888 R_INTC_Enable(d0fifo_dmaintid);
Kojto 71:53949e6131f6 1889 }
Kojto 71:53949e6131f6 1890
Kojto 71:53949e6131f6 1891 d1fifo_dmaintid = Userdef_USB_usb0_function_d1fifo_dmaintid();
Kojto 71:53949e6131f6 1892
Kojto 71:53949e6131f6 1893 if (d1fifo_dmaintid != 0xFFFF)
Kojto 71:53949e6131f6 1894 {
Kojto 71:53949e6131f6 1895 R_INTC_RegistIntFunc(d1fifo_dmaintid, usb0_function_dma_interrupt_d1fifo);
Kojto 71:53949e6131f6 1896 R_INTC_SetPriority(d1fifo_dmaintid, level);
Kojto 71:53949e6131f6 1897 R_INTC_Enable(d1fifo_dmaintid);
Kojto 71:53949e6131f6 1898 }
Kojto 71:53949e6131f6 1899 }
Kojto 71:53949e6131f6 1900 #endif
Kojto 71:53949e6131f6 1901
Kojto 71:53949e6131f6 1902 /*******************************************************************************
Kojto 71:53949e6131f6 1903 * Function Name: usb0_function_reset_module
Kojto 71:53949e6131f6 1904 * Description : Initializes the USB module.
Kojto 71:53949e6131f6 1905 * : Enables providing clock to the USB module.
Kojto 71:53949e6131f6 1906 * : Sets USB bus wait register.
Kojto 71:53949e6131f6 1907 * Arguments : uint16_t clockmode ; 48MHz ; USBFCLOCK_X1_48MHZ
Kojto 71:53949e6131f6 1908 * : ; 12MHz ; USBFCLOCK_EXTAL_12MHZ
Kojto 71:53949e6131f6 1909 * Return Value : none
Kojto 71:53949e6131f6 1910 *******************************************************************************/
Kojto 71:53949e6131f6 1911 void usb0_function_reset_module (uint16_t clockmode)
Kojto 71:53949e6131f6 1912 {
Kojto 71:53949e6131f6 1913 /* UPLLE bit is only USB0 */
Kojto 71:53949e6131f6 1914 if (RZA_IO_RegRead_16(&USB200.SYSCFG0,
Kojto 71:53949e6131f6 1915 USB_SYSCFG_UPLLE_SHIFT,
Kojto 71:53949e6131f6 1916 USB_SYSCFG_UPLLE) == 1)
Kojto 71:53949e6131f6 1917 {
Kojto 71:53949e6131f6 1918 if ((USB200.SYSCFG0 & USB_FUNCTION_BITUCKSEL) != clockmode)
Kojto 71:53949e6131f6 1919 {
Kojto 71:53949e6131f6 1920 RZA_IO_RegWrite_16(&USB200.SUSPMODE,
Kojto 71:53949e6131f6 1921 0,
Kojto 71:53949e6131f6 1922 USB_SUSPMODE_SUSPM_SHIFT,
Kojto 71:53949e6131f6 1923 USB_SUSPMODE_SUSPM);
Kojto 71:53949e6131f6 1924 USB200.SYSCFG0 = 0;
Kojto 71:53949e6131f6 1925 USB200.SYSCFG0 = (USB_FUNCTION_BITUPLLE | clockmode);
Kojto 71:53949e6131f6 1926 Userdef_USB_usb0_function_delay_xms(1);
Kojto 71:53949e6131f6 1927 RZA_IO_RegWrite_16(&USB200.SUSPMODE,
Kojto 71:53949e6131f6 1928 1,
Kojto 71:53949e6131f6 1929 USB_SUSPMODE_SUSPM_SHIFT,
Kojto 71:53949e6131f6 1930 USB_SUSPMODE_SUSPM);
Kojto 71:53949e6131f6 1931 }
Kojto 71:53949e6131f6 1932 else
Kojto 71:53949e6131f6 1933 {
Kojto 71:53949e6131f6 1934 RZA_IO_RegWrite_16(&USB200.SUSPMODE,
Kojto 71:53949e6131f6 1935 0,
Kojto 71:53949e6131f6 1936 USB_SUSPMODE_SUSPM_SHIFT,
Kojto 71:53949e6131f6 1937 USB_SUSPMODE_SUSPM);
Kojto 71:53949e6131f6 1938 Userdef_USB_usb0_function_delay_xms(1);
Kojto 71:53949e6131f6 1939 RZA_IO_RegWrite_16(&USB200.SUSPMODE,
Kojto 71:53949e6131f6 1940 1,
Kojto 71:53949e6131f6 1941 USB_SUSPMODE_SUSPM_SHIFT,
Kojto 71:53949e6131f6 1942 USB_SUSPMODE_SUSPM);
Kojto 71:53949e6131f6 1943 }
Kojto 71:53949e6131f6 1944 }
Kojto 71:53949e6131f6 1945 else
Kojto 71:53949e6131f6 1946 {
Kojto 71:53949e6131f6 1947 RZA_IO_RegWrite_16(&USB200.SUSPMODE,
Kojto 71:53949e6131f6 1948 0,
Kojto 71:53949e6131f6 1949 USB_SUSPMODE_SUSPM_SHIFT,
Kojto 71:53949e6131f6 1950 USB_SUSPMODE_SUSPM);
Kojto 71:53949e6131f6 1951 USB200.SYSCFG0 = 0;
Kojto 71:53949e6131f6 1952 USB200.SYSCFG0 = (USB_FUNCTION_BITUPLLE | clockmode);
Kojto 71:53949e6131f6 1953 Userdef_USB_usb0_function_delay_xms(1);
Kojto 71:53949e6131f6 1954 RZA_IO_RegWrite_16(&USB200.SUSPMODE,
Kojto 71:53949e6131f6 1955 1,
Kojto 71:53949e6131f6 1956 USB_SUSPMODE_SUSPM_SHIFT,
Kojto 71:53949e6131f6 1957 USB_SUSPMODE_SUSPM);
Kojto 71:53949e6131f6 1958 }
Kojto 71:53949e6131f6 1959
Kojto 71:53949e6131f6 1960 USB200.BUSWAIT = (uint16_t)(USB_FUNCTION_BUSWAIT_05 & USB_FUNCTION_BITBWAIT);
Kojto 71:53949e6131f6 1961 }
Kojto 71:53949e6131f6 1962
Kojto 71:53949e6131f6 1963 /*******************************************************************************
Kojto 71:53949e6131f6 1964 * Function Name: usb0_function_get_buf_size
Kojto 71:53949e6131f6 1965 * Description : Obtains pipe buffer size specified by the argument and
Kojto 71:53949e6131f6 1966 * : maximum packet size of the USB device in use.
Kojto 71:53949e6131f6 1967 * : When USB_FUNCTION_PIPE0 is specified by the argument, obtains the maximum
Kojto 71:53949e6131f6 1968 * : packet size of the USB device using the corresponding pipe.
Kojto 71:53949e6131f6 1969 * : For the case that USB_FUNCTION_PIPE0 is not assigned by the argument, when the
Kojto 71:53949e6131f6 1970 * : corresponding pipe is in continuous transfer mode,
Kojto 71:53949e6131f6 1971 * : obtains the buffer size allocated in the corresponcing pipe,
Kojto 71:53949e6131f6 1972 * : when incontinuous transfer, obtains maximum packet size.
Kojto 71:53949e6131f6 1973 * Arguments : uint16_t pipe ; Pipe Number
Kojto 71:53949e6131f6 1974 * Return Value : Maximum packet size or buffer size
Kojto 71:53949e6131f6 1975 *******************************************************************************/
Kojto 71:53949e6131f6 1976 uint16_t usb0_function_get_buf_size (uint16_t pipe)
Kojto 71:53949e6131f6 1977 {
Kojto 71:53949e6131f6 1978 uint16_t size;
Kojto 71:53949e6131f6 1979 uint16_t bufsize;
Kojto 71:53949e6131f6 1980
Kojto 71:53949e6131f6 1981 if (pipe == USB_FUNCTION_PIPE0)
Kojto 71:53949e6131f6 1982 {
Kojto 71:53949e6131f6 1983 size = RZA_IO_RegRead_16(&USB200.DCPMAXP,
Kojto 71:53949e6131f6 1984 USB_DCPMAXP_MXPS_SHIFT,
Kojto 71:53949e6131f6 1985 USB_DCPMAXP_MXPS);
Kojto 71:53949e6131f6 1986 }
Kojto 71:53949e6131f6 1987 else
Kojto 71:53949e6131f6 1988 {
Kojto 71:53949e6131f6 1989 if (RZA_IO_RegRead_16(&g_usb0_function_pipecfg[pipe], USB_PIPECFG_CNTMD_SHIFT, USB_PIPECFG_CNTMD) == 1)
Kojto 71:53949e6131f6 1990 {
Kojto 71:53949e6131f6 1991 bufsize = RZA_IO_RegRead_16(&g_usb0_function_pipebuf[pipe], USB_PIPEBUF_BUFSIZE_SHIFT, USB_PIPEBUF_BUFSIZE);
Kojto 71:53949e6131f6 1992 size = (uint16_t)((bufsize + 1) * USB_FUNCTION_PIPExBUF);
Kojto 71:53949e6131f6 1993 }
Kojto 71:53949e6131f6 1994 else
Kojto 71:53949e6131f6 1995 {
Kojto 71:53949e6131f6 1996 size = RZA_IO_RegRead_16(&g_usb0_function_pipemaxp[pipe], USB_PIPEMAXP_MXPS_SHIFT, USB_PIPEMAXP_MXPS);
Kojto 71:53949e6131f6 1997 }
Kojto 71:53949e6131f6 1998 }
Kojto 71:53949e6131f6 1999 return size;
Kojto 71:53949e6131f6 2000 }
Kojto 71:53949e6131f6 2001
Kojto 71:53949e6131f6 2002 /*******************************************************************************
Kojto 71:53949e6131f6 2003 * Function Name: usb0_function_get_mxps
Kojto 71:53949e6131f6 2004 * Description : Obtains maximum packet size of the USB device using the pipe
Kojto 71:53949e6131f6 2005 * : specified by the argument.
Kojto 71:53949e6131f6 2006 * Arguments : uint16_t pipe ; Pipe Number
Kojto 71:53949e6131f6 2007 * Return Value : Max Packet Size
Kojto 71:53949e6131f6 2008 *******************************************************************************/
Kojto 71:53949e6131f6 2009 uint16_t usb0_function_get_mxps (uint16_t pipe)
Kojto 71:53949e6131f6 2010 {
Kojto 71:53949e6131f6 2011 uint16_t size;
Kojto 71:53949e6131f6 2012
Kojto 71:53949e6131f6 2013 if (pipe == USB_FUNCTION_PIPE0)
Kojto 71:53949e6131f6 2014 {
Kojto 71:53949e6131f6 2015 size = RZA_IO_RegRead_16(&USB200.DCPMAXP,
Kojto 71:53949e6131f6 2016 USB_DCPMAXP_MXPS_SHIFT,
Kojto 71:53949e6131f6 2017 USB_DCPMAXP_MXPS);
Kojto 71:53949e6131f6 2018 }
Kojto 71:53949e6131f6 2019 else
Kojto 71:53949e6131f6 2020 {
Kojto 71:53949e6131f6 2021 size = RZA_IO_RegRead_16(&g_usb0_function_pipemaxp[pipe], USB_PIPEMAXP_MXPS_SHIFT, USB_PIPEMAXP_MXPS);
Kojto 71:53949e6131f6 2022 }
Kojto 71:53949e6131f6 2023 return size;
Kojto 71:53949e6131f6 2024 }
Kojto 71:53949e6131f6 2025
Kojto 71:53949e6131f6 2026 /* End of File */