USB device stack

Dependents:   mbed-mX-USB-TEST1 USBMSD_SD_HID_HelloWorld HidTest MIDI_usb_bridge ... more

Legacy Warning

This is an mbed 2 library. To learn more about mbed OS 5, visit the docs.

Pull requests against this repository are no longer supported. Please raise against mbed OS 5 as documented above.

Committer:
Kojto
Date:
Thu Jul 27 12:14:04 2017 +0100
Revision:
71:53949e6131f6
Update libraries

Fixes the previous commmit, as some devices were not copied. USBDevice contains
now targets directory with all targets implementations

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 */