USBDevice with MAX32620HSP platform support

Fork of USBDevice by mbed official

Committer:
mbed_official
Date:
Fri Apr 29 01:16:25 2016 +0100
Revision:
62:c1549af978d6
Synchronized with git revision fe9720f24b1adc71ab6962506ec51290f6afd270

Full URL: https://github.com/mbedmicro/mbed/commit/fe9720f24b1adc71ab6962506ec51290f6afd270/

[Renesas RZ/A1H] Enable asynchronous communications

Who changed what in which revision?

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