I changed one line of code in the file with path name: USBDeviceHT/targets/TARGET_Maxim

Fork of USBDeviceHT by Helmut Tschemernjak

Committer:
Helmut64
Date:
Mon Feb 05 10:22:57 2018 +0000
Revision:
0:a3ea811f80f2
Inital checkin after copied from mbed.

Who changed what in which revision?

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