max4146x_comp

Dependencies:   MAX14690

Committer:
sdivarci
Date:
Sun Oct 25 20:10:02 2020 +0000
Revision:
0:0061165683ee
sdivarci

Who changed what in which revision?

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