USBDevice with MAX32620HSP platform support

Fork of USBDevice by mbed official

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

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

[Renesas RZ/A1H] Enable asynchronous communications

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 62:c1549af978d6 1 /*******************************************************************************
mbed_official 62:c1549af978d6 2 * DISCLAIMER
mbed_official 62:c1549af978d6 3 * This software is supplied by Renesas Electronics Corporation and is only
mbed_official 62:c1549af978d6 4 * intended for use with Renesas products. No other uses are authorized. This
mbed_official 62:c1549af978d6 5 * software is owned by Renesas Electronics Corporation and is protected under
mbed_official 62:c1549af978d6 6 * all applicable laws, including copyright laws.
mbed_official 62:c1549af978d6 7 * THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
mbed_official 62:c1549af978d6 8 * THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
mbed_official 62:c1549af978d6 9 * LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
mbed_official 62:c1549af978d6 10 * AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
mbed_official 62:c1549af978d6 11 * TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
mbed_official 62:c1549af978d6 12 * ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
mbed_official 62:c1549af978d6 13 * FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
mbed_official 62:c1549af978d6 14 * ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
mbed_official 62:c1549af978d6 15 * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
mbed_official 62:c1549af978d6 16 * Renesas reserves the right, without notice, to make changes to this software
mbed_official 62:c1549af978d6 17 * and to discontinue the availability of this software. By using this software,
mbed_official 62:c1549af978d6 18 * you agree to the additional terms and conditions found by accessing the
mbed_official 62:c1549af978d6 19 * following link:
mbed_official 62:c1549af978d6 20 * http://www.renesas.com/disclaimer
mbed_official 62:c1549af978d6 21 * Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
mbed_official 62:c1549af978d6 22 *******************************************************************************/
mbed_official 62:c1549af978d6 23 /*******************************************************************************
mbed_official 62:c1549af978d6 24 * File Name : usb0_function_api.c
mbed_official 62:c1549af978d6 25 * $Rev: 1116 $
mbed_official 62:c1549af978d6 26 * $Date:: 2014-07-09 16:29:19 +0900#$
mbed_official 62:c1549af978d6 27 * Device(s) : RZ/A1H
mbed_official 62:c1549af978d6 28 * Tool-Chain :
mbed_official 62:c1549af978d6 29 * OS : None
mbed_official 62:c1549af978d6 30 * H/W Platform :
mbed_official 62:c1549af978d6 31 * Description : RZ/A1H R7S72100 USB Sample Program
mbed_official 62:c1549af978d6 32 * Operation :
mbed_official 62:c1549af978d6 33 * Limitations :
mbed_official 62:c1549af978d6 34 *******************************************************************************/
mbed_official 62:c1549af978d6 35
mbed_official 62:c1549af978d6 36
mbed_official 62:c1549af978d6 37 /*******************************************************************************
mbed_official 62:c1549af978d6 38 Includes <System Includes> , "Project Includes"
mbed_official 62:c1549af978d6 39 *******************************************************************************/
mbed_official 62:c1549af978d6 40 #include "usb0_function.h"
mbed_official 62:c1549af978d6 41 #include "dev_drv.h"
mbed_official 62:c1549af978d6 42
mbed_official 62:c1549af978d6 43
mbed_official 62:c1549af978d6 44 /*******************************************************************************
mbed_official 62:c1549af978d6 45 Typedef definitions
mbed_official 62:c1549af978d6 46 *******************************************************************************/
mbed_official 62:c1549af978d6 47
mbed_official 62:c1549af978d6 48
mbed_official 62:c1549af978d6 49 /*******************************************************************************
mbed_official 62:c1549af978d6 50 Macro definitions
mbed_official 62:c1549af978d6 51 *******************************************************************************/
mbed_official 62:c1549af978d6 52
mbed_official 62:c1549af978d6 53
mbed_official 62:c1549af978d6 54 /*******************************************************************************
mbed_official 62:c1549af978d6 55 Imported global variables and functions (from other files)
mbed_official 62:c1549af978d6 56 *******************************************************************************/
mbed_official 62:c1549af978d6 57
mbed_official 62:c1549af978d6 58
mbed_official 62:c1549af978d6 59 /*******************************************************************************
mbed_official 62:c1549af978d6 60 Exported global variables and functions (to be accessed by other files)
mbed_official 62:c1549af978d6 61 *******************************************************************************/
mbed_official 62:c1549af978d6 62
mbed_official 62:c1549af978d6 63
mbed_official 62:c1549af978d6 64 /*******************************************************************************
mbed_official 62:c1549af978d6 65 Private global variables and functions
mbed_official 62:c1549af978d6 66 *******************************************************************************/
mbed_official 62:c1549af978d6 67
mbed_official 62:c1549af978d6 68
mbed_official 62:c1549af978d6 69 /*******************************************************************************
mbed_official 62:c1549af978d6 70 * Function Name: usb0_api_function_init
mbed_official 62:c1549af978d6 71 * Description : Initializes the USB module in the USB function mode.
mbed_official 62:c1549af978d6 72 * Arguments : uint8_t int_level ; interruput level
mbed_official 62:c1549af978d6 73 * : uint16_t mode : Speed modes
mbed_official 62:c1549af978d6 74 * : : USB_FUCNTION_HIGH_SPEED: High-speed device
mbed_official 62:c1549af978d6 75 * : : USB_FUCNTION_FULL_SPEED: Full-speed device
mbed_official 62:c1549af978d6 76 * : uint16_t clockmode ; 48MHz ; USBFCLOCK_X1_48MHZ
mbed_official 62:c1549af978d6 77 * : ; 12MHz ; USBFCLOCK_EXTAL_12MHZ
mbed_official 62:c1549af978d6 78 * Return Value : none
mbed_official 62:c1549af978d6 79 *******************************************************************************/
mbed_official 62:c1549af978d6 80 #if 0
mbed_official 62:c1549af978d6 81 void usb0_api_function_init (uint8_t int_level, uint16_t mode, uint16_t clockmode)
mbed_official 62:c1549af978d6 82 {
mbed_official 62:c1549af978d6 83 volatile uint8_t dummy_buf;
mbed_official 62:c1549af978d6 84
mbed_official 62:c1549af978d6 85 CPG.STBCR7 &= 0xfd; /* The clock of USB0 modules is permitted */
mbed_official 62:c1549af978d6 86 dummy_buf = CPG.STBCR7; /* (Dummy read) */
mbed_official 62:c1549af978d6 87
mbed_official 62:c1549af978d6 88 usb0_function_setting_interrupt(int_level);
mbed_official 62:c1549af978d6 89
mbed_official 62:c1549af978d6 90 usb0_function_reset_module(clockmode); /* reset USB module with setting tranciever */
mbed_official 62:c1549af978d6 91 /* and HSE=1 */
mbed_official 62:c1549af978d6 92
mbed_official 62:c1549af978d6 93 usb0_function_init_status(); /* clear variables */
mbed_official 62:c1549af978d6 94
mbed_official 62:c1549af978d6 95 usb0_function_InitModule(mode); /* select USB Function and Interrupt Enable */
mbed_official 62:c1549af978d6 96 /* Detect USB Device to attach or detach */
mbed_official 62:c1549af978d6 97 }
mbed_official 62:c1549af978d6 98 #endif
mbed_official 62:c1549af978d6 99
mbed_official 62:c1549af978d6 100 /*******************************************************************************
mbed_official 62:c1549af978d6 101 * Function Name: usb0_api_function_IsConfigured
mbed_official 62:c1549af978d6 102 * Description : Checks if the USB device is configured to return the result as
mbed_official 62:c1549af978d6 103 * : the return value.
mbed_official 62:c1549af978d6 104 * Arguments : none
mbed_official 62:c1549af978d6 105 * Return Value : DEVDRV_USBF_YES : Configured & Configured Suspend
mbed_official 62:c1549af978d6 106 * : DEVDRV_USBF_NO : not Configured
mbed_official 62:c1549af978d6 107 *******************************************************************************/
mbed_official 62:c1549af978d6 108 uint16_t usb0_api_function_IsConfigured (void)
mbed_official 62:c1549af978d6 109 {
mbed_official 62:c1549af978d6 110 uint16_t dvst;
mbed_official 62:c1549af978d6 111
mbed_official 62:c1549af978d6 112 dvst = usb0_function_GetDeviceState();
mbed_official 62:c1549af978d6 113
mbed_official 62:c1549af978d6 114 if ((dvst == USB_FUNCTION_DVST_CONFIGURED) ||
mbed_official 62:c1549af978d6 115 (dvst == USB_FUNCTION_DVST_CONFIGURED_SUSPEND))
mbed_official 62:c1549af978d6 116 {
mbed_official 62:c1549af978d6 117 return DEVDRV_USBF_YES;
mbed_official 62:c1549af978d6 118 }
mbed_official 62:c1549af978d6 119
mbed_official 62:c1549af978d6 120 return DEVDRV_USBF_NO;
mbed_official 62:c1549af978d6 121 }
mbed_official 62:c1549af978d6 122
mbed_official 62:c1549af978d6 123 /*******************************************************************************
mbed_official 62:c1549af978d6 124 * Function Name: usb0_function_GetDeviceState
mbed_official 62:c1549af978d6 125 * Description : Returns the state of USB device.
mbed_official 62:c1549af978d6 126 * Arguments : none
mbed_official 62:c1549af978d6 127 * Return Value : Device States
mbed_official 62:c1549af978d6 128 *******************************************************************************/
mbed_official 62:c1549af978d6 129 uint16_t usb0_function_GetDeviceState (void)
mbed_official 62:c1549af978d6 130 {
mbed_official 62:c1549af978d6 131 uint16_t dvsq;
mbed_official 62:c1549af978d6 132 uint16_t dvst;
mbed_official 62:c1549af978d6 133
mbed_official 62:c1549af978d6 134 dvsq = USB200.INTSTS0;
mbed_official 62:c1549af978d6 135 switch(dvsq & USB_FUNCTION_BITDVSQ)
mbed_official 62:c1549af978d6 136 {
mbed_official 62:c1549af978d6 137 case USB_FUNCTION_DS_POWR: /* Power state *//* power-on */
mbed_official 62:c1549af978d6 138 dvst = USB_FUNCTION_DVST_POWERED;
mbed_official 62:c1549af978d6 139 break;
mbed_official 62:c1549af978d6 140
mbed_official 62:c1549af978d6 141 case USB_FUNCTION_DS_DFLT: /* Default state *//* bus-reset */
mbed_official 62:c1549af978d6 142 dvst = USB_FUNCTION_DVST_DEFAULT;
mbed_official 62:c1549af978d6 143 break;
mbed_official 62:c1549af978d6 144
mbed_official 62:c1549af978d6 145 case USB_FUNCTION_DS_ADDS: /* Address state */
mbed_official 62:c1549af978d6 146 dvst = USB_FUNCTION_DVST_ADDRESS;
mbed_official 62:c1549af978d6 147 break;
mbed_official 62:c1549af978d6 148
mbed_official 62:c1549af978d6 149 case USB_FUNCTION_DS_CNFG: /* Configured state */
mbed_official 62:c1549af978d6 150 dvst = USB_FUNCTION_DVST_CONFIGURED;
mbed_official 62:c1549af978d6 151 break;
mbed_official 62:c1549af978d6 152
mbed_official 62:c1549af978d6 153 case USB_FUNCTION_DS_SPD_CNFG: /* Configured Suspend state */
mbed_official 62:c1549af978d6 154 dvst = USB_FUNCTION_DVST_CONFIGURED_SUSPEND;
mbed_official 62:c1549af978d6 155 break;
mbed_official 62:c1549af978d6 156
mbed_official 62:c1549af978d6 157 case USB_FUNCTION_DS_SPD_POWR: /* Power Suspend state */
mbed_official 62:c1549af978d6 158 case USB_FUNCTION_DS_SPD_DFLT: /* Default Suspend state */
mbed_official 62:c1549af978d6 159 case USB_FUNCTION_DS_SPD_ADDR: /* Address Suspend state */
mbed_official 62:c1549af978d6 160 dvst = USB_FUNCTION_DVST_SUSPEND;
mbed_official 62:c1549af978d6 161 break;
mbed_official 62:c1549af978d6 162
mbed_official 62:c1549af978d6 163 default: /* error */
mbed_official 62:c1549af978d6 164 dvst = USB_FUNCTION_DVST_SUSPEND;
mbed_official 62:c1549af978d6 165 break;
mbed_official 62:c1549af978d6 166 }
mbed_official 62:c1549af978d6 167
mbed_official 62:c1549af978d6 168 return dvst;
mbed_official 62:c1549af978d6 169 }
mbed_official 62:c1549af978d6 170
mbed_official 62:c1549af978d6 171 /*******************************************************************************
mbed_official 62:c1549af978d6 172 * Function Name: usb0_api_function_start_receive_transfer
mbed_official 62:c1549af978d6 173 * Description : Starts USB data reception using the pipe specified in the argument.
mbed_official 62:c1549af978d6 174 * : The FIFO for using is set in the pipe definition table.
mbed_official 62:c1549af978d6 175 * Arguments : uint16_t pipe ; Pipe Number
mbed_official 62:c1549af978d6 176 * : uint32_t size ; Data Size
mbed_official 62:c1549af978d6 177 * : uint8_t *data ; Data data Address
mbed_official 62:c1549af978d6 178 * Return Value : none
mbed_official 62:c1549af978d6 179 *******************************************************************************/
mbed_official 62:c1549af978d6 180 void usb0_api_function_start_receive_transfer (uint16_t pipe, uint32_t size, uint8_t * data)
mbed_official 62:c1549af978d6 181 {
mbed_official 62:c1549af978d6 182 usb0_function_start_receive_transfer(pipe, size, data);
mbed_official 62:c1549af978d6 183 }
mbed_official 62:c1549af978d6 184
mbed_official 62:c1549af978d6 185 /*******************************************************************************
mbed_official 62:c1549af978d6 186 * Function Name: usb0_api_function_start_send_transfer
mbed_official 62:c1549af978d6 187 * Description : Starts the USB data communication using pipe specified by the argument.
mbed_official 62:c1549af978d6 188 * Arguments : uint16_t pipe ; Pipe Number
mbed_official 62:c1549af978d6 189 * : uint32_t size ; Data Size
mbed_official 62:c1549af978d6 190 * : uint8_t *data ; Data data Address
mbed_official 62:c1549af978d6 191 * Return Value : DEVDRV_USBF_WRITEEND ; Write end
mbed_official 62:c1549af978d6 192 * : DEVDRV_USBF_WRITESHRT ; short data
mbed_official 62:c1549af978d6 193 * : DEVDRV_USBF_WRITING ; Continue of data write
mbed_official 62:c1549af978d6 194 * : DEVDRV_USBF_WRITEDMA ; Write DMA
mbed_official 62:c1549af978d6 195 * : DEVDRV_USBF_FIFOERROR ; FIFO status
mbed_official 62:c1549af978d6 196 *******************************************************************************/
mbed_official 62:c1549af978d6 197 uint16_t usb0_api_function_start_send_transfer (uint16_t pipe, uint32_t size, uint8_t * data)
mbed_official 62:c1549af978d6 198 {
mbed_official 62:c1549af978d6 199 uint16_t status;
mbed_official 62:c1549af978d6 200
mbed_official 62:c1549af978d6 201 status = usb0_function_start_send_transfer(pipe, size, data);
mbed_official 62:c1549af978d6 202
mbed_official 62:c1549af978d6 203 return status;
mbed_official 62:c1549af978d6 204 }
mbed_official 62:c1549af978d6 205
mbed_official 62:c1549af978d6 206 /*******************************************************************************
mbed_official 62:c1549af978d6 207 * Function Name: usb0_api_function_check_pipe_status
mbed_official 62:c1549af978d6 208 * Description : Starts USB data reception using the pipe specified in the argument.
mbed_official 62:c1549af978d6 209 * : The FIFO for using is set in the pipe definition table.
mbed_official 62:c1549af978d6 210 * Arguments : uint16_t pipe ; Pipe Number
mbed_official 62:c1549af978d6 211 * : uint32_t *size ; Data Size
mbed_official 62:c1549af978d6 212 * Return Value : Pipe Status
mbed_official 62:c1549af978d6 213 *******************************************************************************/
mbed_official 62:c1549af978d6 214 uint16_t usb0_api_function_check_pipe_status (uint16_t pipe, uint32_t * size)
mbed_official 62:c1549af978d6 215 {
mbed_official 62:c1549af978d6 216 if (g_usb0_function_pipe_status[pipe] == DEVDRV_USBF_PIPE_DONE)
mbed_official 62:c1549af978d6 217 {
mbed_official 62:c1549af978d6 218 *size = g_usb0_function_PipeDataSize[pipe];
mbed_official 62:c1549af978d6 219 g_usb0_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_IDLE;
mbed_official 62:c1549af978d6 220
mbed_official 62:c1549af978d6 221 return DEVDRV_USBF_PIPE_DONE;
mbed_official 62:c1549af978d6 222 }
mbed_official 62:c1549af978d6 223 else if (g_usb0_function_pipe_status[pipe] == DEVDRV_USBF_PIPE_NORES)
mbed_official 62:c1549af978d6 224 {
mbed_official 62:c1549af978d6 225 *size = 0;
mbed_official 62:c1549af978d6 226 g_usb0_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_IDLE;
mbed_official 62:c1549af978d6 227
mbed_official 62:c1549af978d6 228 return DEVDRV_USBF_PIPE_NORES;
mbed_official 62:c1549af978d6 229 }
mbed_official 62:c1549af978d6 230 else if (g_usb0_function_pipe_status[pipe] == DEVDRV_USBF_PIPE_STALL)
mbed_official 62:c1549af978d6 231 {
mbed_official 62:c1549af978d6 232 *size = 0;
mbed_official 62:c1549af978d6 233 g_usb0_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_IDLE;
mbed_official 62:c1549af978d6 234
mbed_official 62:c1549af978d6 235 return DEVDRV_USBF_PIPE_STALL;
mbed_official 62:c1549af978d6 236 }
mbed_official 62:c1549af978d6 237 else if (g_usb0_function_pipe_status[pipe] == DEVDRV_USBF_FIFOERROR)
mbed_official 62:c1549af978d6 238 {
mbed_official 62:c1549af978d6 239 *size = 0;
mbed_official 62:c1549af978d6 240 g_usb0_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_IDLE;
mbed_official 62:c1549af978d6 241
mbed_official 62:c1549af978d6 242 return DEVDRV_USBF_FIFOERROR;
mbed_official 62:c1549af978d6 243 }
mbed_official 62:c1549af978d6 244 else
mbed_official 62:c1549af978d6 245 {
mbed_official 62:c1549af978d6 246 /* Do Nothing */
mbed_official 62:c1549af978d6 247 }
mbed_official 62:c1549af978d6 248
mbed_official 62:c1549af978d6 249 return g_usb0_function_pipe_status[pipe];
mbed_official 62:c1549af978d6 250 }
mbed_official 62:c1549af978d6 251
mbed_official 62:c1549af978d6 252 /*******************************************************************************
mbed_official 62:c1549af978d6 253 * Function Name: usb0_api_function_clear_pipe_status
mbed_official 62:c1549af978d6 254 * Description : Starts USB data reception using the pipe specified in the argument.
mbed_official 62:c1549af978d6 255 * : The FIFO for using is set in the pipe definition table.
mbed_official 62:c1549af978d6 256 * Arguments : uint16_t pipe ; Pipe Number
mbed_official 62:c1549af978d6 257 * Return Value : Pipe Status
mbed_official 62:c1549af978d6 258 *******************************************************************************/
mbed_official 62:c1549af978d6 259 void usb0_api_function_clear_pipe_status (uint16_t pipe)
mbed_official 62:c1549af978d6 260 {
mbed_official 62:c1549af978d6 261 g_usb0_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_IDLE;
mbed_official 62:c1549af978d6 262 g_usb0_function_PipeDataSize[pipe] = 0;
mbed_official 62:c1549af978d6 263 }
mbed_official 62:c1549af978d6 264
mbed_official 62:c1549af978d6 265 /*******************************************************************************
mbed_official 62:c1549af978d6 266 * Function Name: usb0_api_function_set_pid_buf
mbed_official 62:c1549af978d6 267 * Description : Enables communicaqtion in the pipe specified by the argument
mbed_official 62:c1549af978d6 268 * : (BUF).
mbed_official 62:c1549af978d6 269 * Arguments : uint16_t pipe ; pipe Number
mbed_official 62:c1549af978d6 270 * Return Value : none
mbed_official 62:c1549af978d6 271 *******************************************************************************/
mbed_official 62:c1549af978d6 272 void usb0_api_function_set_pid_buf (uint16_t pipe)
mbed_official 62:c1549af978d6 273 {
mbed_official 62:c1549af978d6 274 usb0_function_set_pid_buf(pipe);
mbed_official 62:c1549af978d6 275 }
mbed_official 62:c1549af978d6 276
mbed_official 62:c1549af978d6 277 /*******************************************************************************
mbed_official 62:c1549af978d6 278 * Function Name: usb0_api_function_set_pid_nak
mbed_official 62:c1549af978d6 279 * Description : Disables communication (NAK) in the pipe specified by the argument.
mbed_official 62:c1549af978d6 280 * : When the pipe status was enabling communication (BUF) before
mbed_official 62:c1549af978d6 281 * : executing before executing this function, waits in the software
mbed_official 62:c1549af978d6 282 * : until the pipe becomes ready after setting disabled.
mbed_official 62:c1549af978d6 283 * Arguments : uint16_t pipe ; pipe Number
mbed_official 62:c1549af978d6 284 * Return Value : none
mbed_official 62:c1549af978d6 285 *******************************************************************************/
mbed_official 62:c1549af978d6 286 void usb0_api_function_set_pid_nak (uint16_t pipe)
mbed_official 62:c1549af978d6 287 {
mbed_official 62:c1549af978d6 288 usb0_function_set_pid_nak(pipe);
mbed_official 62:c1549af978d6 289 }
mbed_official 62:c1549af978d6 290
mbed_official 62:c1549af978d6 291 /*******************************************************************************
mbed_official 62:c1549af978d6 292 * Function Name: usb0_api_function_set_pid_stall
mbed_official 62:c1549af978d6 293 * Description : Disables communication (STALL) in the pipe specified by the
mbed_official 62:c1549af978d6 294 * : argument.
mbed_official 62:c1549af978d6 295 * Arguments : uint16_t pipe ; pipe Number
mbed_official 62:c1549af978d6 296 * Return Value : none
mbed_official 62:c1549af978d6 297 *******************************************************************************/
mbed_official 62:c1549af978d6 298 void usb0_api_function_set_pid_stall (uint16_t pipe)
mbed_official 62:c1549af978d6 299 {
mbed_official 62:c1549af978d6 300 usb0_function_set_pid_stall(pipe);
mbed_official 62:c1549af978d6 301 }
mbed_official 62:c1549af978d6 302
mbed_official 62:c1549af978d6 303 /*******************************************************************************
mbed_official 62:c1549af978d6 304 * Function Name: usb0_api_function_clear_pid_stall
mbed_official 62:c1549af978d6 305 * Description : Disables communication (NAK) in the pipe specified by the argument.
mbed_official 62:c1549af978d6 306 * Arguments : uint16_t pipe ; pipe Number
mbed_official 62:c1549af978d6 307 * Return Value : none
mbed_official 62:c1549af978d6 308 *******************************************************************************/
mbed_official 62:c1549af978d6 309 void usb0_api_function_clear_pid_stall (uint16_t pipe)
mbed_official 62:c1549af978d6 310 {
mbed_official 62:c1549af978d6 311 usb0_function_clear_pid_stall(pipe);
mbed_official 62:c1549af978d6 312 }
mbed_official 62:c1549af978d6 313
mbed_official 62:c1549af978d6 314 /*******************************************************************************
mbed_official 62:c1549af978d6 315 * Function Name: usb0_api_function_get_pid
mbed_official 62:c1549af978d6 316 * Description : Returns the pipe state specified by the argument.
mbed_official 62:c1549af978d6 317 * Arguments : uint16_t pipe ; Pipe Number
mbed_official 62:c1549af978d6 318 * Return Value : PID
mbed_official 62:c1549af978d6 319 *******************************************************************************/
mbed_official 62:c1549af978d6 320 uint16_t usb0_api_function_get_pid (uint16_t pipe)
mbed_official 62:c1549af978d6 321 {
mbed_official 62:c1549af978d6 322 uint16_t pid;
mbed_official 62:c1549af978d6 323
mbed_official 62:c1549af978d6 324 pid = usb0_function_get_pid(pipe);
mbed_official 62:c1549af978d6 325
mbed_official 62:c1549af978d6 326 return pid;
mbed_official 62:c1549af978d6 327 }
mbed_official 62:c1549af978d6 328
mbed_official 62:c1549af978d6 329 /*******************************************************************************
mbed_official 62:c1549af978d6 330 * Function Name: usb0_api_function_check_stall
mbed_official 62:c1549af978d6 331 * Description :
mbed_official 62:c1549af978d6 332 * Arguments : uint16_t pipe ; Pipe Number
mbed_official 62:c1549af978d6 333 * Return Value : PID
mbed_official 62:c1549af978d6 334 *******************************************************************************/
mbed_official 62:c1549af978d6 335 int32_t usb0_api_function_check_stall (uint16_t pipe)
mbed_official 62:c1549af978d6 336 {
mbed_official 62:c1549af978d6 337 uint16_t pid;
mbed_official 62:c1549af978d6 338
mbed_official 62:c1549af978d6 339 pid = usb0_function_get_pid(pipe);
mbed_official 62:c1549af978d6 340
mbed_official 62:c1549af978d6 341 if ((pid & DEVDRV_USBF_PID_STALL) == DEVDRV_USBF_PID_STALL)
mbed_official 62:c1549af978d6 342 {
mbed_official 62:c1549af978d6 343 return DEVDRV_USBF_STALL;
mbed_official 62:c1549af978d6 344 }
mbed_official 62:c1549af978d6 345
mbed_official 62:c1549af978d6 346 return DEVDRV_SUCCESS;
mbed_official 62:c1549af978d6 347 }
mbed_official 62:c1549af978d6 348
mbed_official 62:c1549af978d6 349 /*******************************************************************************
mbed_official 62:c1549af978d6 350 * Function Name: usb0_api_function_set_sqclr
mbed_official 62:c1549af978d6 351 * Description : Sets the sequence bit of the pipe specified by the argument to
mbed_official 62:c1549af978d6 352 * : DATA0.
mbed_official 62:c1549af978d6 353 * Arguments : uint16_t pipe ; Pipe Number
mbed_official 62:c1549af978d6 354 * Return Value : none
mbed_official 62:c1549af978d6 355 *******************************************************************************/
mbed_official 62:c1549af978d6 356 void usb0_api_function_set_sqclr (uint16_t pipe)
mbed_official 62:c1549af978d6 357 {
mbed_official 62:c1549af978d6 358 usb0_function_set_sqclr(pipe);
mbed_official 62:c1549af978d6 359 }
mbed_official 62:c1549af978d6 360
mbed_official 62:c1549af978d6 361 /*******************************************************************************
mbed_official 62:c1549af978d6 362 * Function Name: usb0_api_function_set_sqset
mbed_official 62:c1549af978d6 363 * Description : Sets the sequence bit of the pipe specified by the argument to
mbed_official 62:c1549af978d6 364 * : DATA1.
mbed_official 62:c1549af978d6 365 * Arguments : uint16_t pipe ; Pipe number
mbed_official 62:c1549af978d6 366 * Return Value : none
mbed_official 62:c1549af978d6 367 *******************************************************************************/
mbed_official 62:c1549af978d6 368 void usb0_api_function_set_sqset (uint16_t pipe)
mbed_official 62:c1549af978d6 369 {
mbed_official 62:c1549af978d6 370 usb0_function_set_sqset(pipe);
mbed_official 62:c1549af978d6 371 }
mbed_official 62:c1549af978d6 372
mbed_official 62:c1549af978d6 373 /*******************************************************************************
mbed_official 62:c1549af978d6 374 * Function Name: usb0_api_function_set_csclr
mbed_official 62:c1549af978d6 375 * Description : CSPLIT status clear setting of sprit transaction in specified
mbed_official 62:c1549af978d6 376 * : pipe is performed.
mbed_official 62:c1549af978d6 377 * : When SQSET bit or SQCLR bit, and SQSET bit or SQCLR bit
mbed_official 62:c1549af978d6 378 * : in DCPCTR register are continuously changed (when the sequence
mbed_official 62:c1549af978d6 379 * : toggle bit of data PID is continuously changed over two or more pipes),
mbed_official 62:c1549af978d6 380 * : the access cycle with 120 ns and more than 5 cycle bus clock is necessary.
mbed_official 62:c1549af978d6 381 * : Do not set both SQCLR bit and SQSET bit to 1 at the same time.
mbed_official 62:c1549af978d6 382 * : In addition, both bits should be operated after PID is set to NAK.
mbed_official 62:c1549af978d6 383 * : However, when it is set to the isochronous transfer as the transfer type
mbed_official 62:c1549af978d6 384 * : (TYPE=11), writing in SQSET bit is disabled.
mbed_official 62:c1549af978d6 385 * Arguments : uint16_t pipe ; Pipe number
mbed_official 62:c1549af978d6 386 * Return Value : none
mbed_official 62:c1549af978d6 387 *******************************************************************************/
mbed_official 62:c1549af978d6 388 void usb0_api_function_set_csclr (uint16_t pipe)
mbed_official 62:c1549af978d6 389 {
mbed_official 62:c1549af978d6 390 usb0_function_set_csclr(pipe);
mbed_official 62:c1549af978d6 391 }
mbed_official 62:c1549af978d6 392
mbed_official 62:c1549af978d6 393 /*******************************************************************************
mbed_official 62:c1549af978d6 394 * Function Name: usb0_api_function_set_curpipe
mbed_official 62:c1549af978d6 395 * Description : Allocates FIF0 specifed by the argument in the pipe assigned
mbed_official 62:c1549af978d6 396 * : by the argument.
mbed_official 62:c1549af978d6 397 * Arguments : uint16_t pipe ; Pipe Number
mbed_official 62:c1549af978d6 398 * : uint16_t fifosel ; Select FIFO
mbed_official 62:c1549af978d6 399 * : uint16_t isel ; FIFO Access Direction
mbed_official 62:c1549af978d6 400 * : uint16_t mbw ; FIFO Port Access Bit Width
mbed_official 62:c1549af978d6 401 * Return Value : none
mbed_official 62:c1549af978d6 402 *******************************************************************************/
mbed_official 62:c1549af978d6 403 void usb0_api_function_set_curpipe (uint16_t pipe, uint16_t fifosel, uint16_t isel, uint16_t mbw)
mbed_official 62:c1549af978d6 404 {
mbed_official 62:c1549af978d6 405 usb0_function_set_curpipe(pipe, fifosel, isel, mbw);
mbed_official 62:c1549af978d6 406 }
mbed_official 62:c1549af978d6 407
mbed_official 62:c1549af978d6 408 /*******************************************************************************
mbed_official 62:c1549af978d6 409 * Function Name: usb0_api_function_clear_brdy_sts
mbed_official 62:c1549af978d6 410 * Description : Clear BRDY interrupt status in the pipe spceified by the argument.
mbed_official 62:c1549af978d6 411 * Arguments : uint16_t pipe ; pipe Number
mbed_official 62:c1549af978d6 412 * Return Value : none
mbed_official 62:c1549af978d6 413 *******************************************************************************/
mbed_official 62:c1549af978d6 414 void usb0_api_function_clear_brdy_sts (uint16_t pipe)
mbed_official 62:c1549af978d6 415 {
mbed_official 62:c1549af978d6 416 usb0_function_clear_brdy_sts(pipe);
mbed_official 62:c1549af978d6 417 }
mbed_official 62:c1549af978d6 418
mbed_official 62:c1549af978d6 419 /*******************************************************************************
mbed_official 62:c1549af978d6 420 * Function Name: usb0_api_function_clear_bemp_sts
mbed_official 62:c1549af978d6 421 * Description : Clear BEMP interrupt status in the pipe spceified by the argument.
mbed_official 62:c1549af978d6 422 * Arguments : uint16_t pipe ; pipe Number
mbed_official 62:c1549af978d6 423 * Return Value : none
mbed_official 62:c1549af978d6 424 *******************************************************************************/
mbed_official 62:c1549af978d6 425 void usb0_api_function_clear_bemp_sts (uint16_t pipe)
mbed_official 62:c1549af978d6 426 {
mbed_official 62:c1549af978d6 427 usb0_function_clear_bemp_sts(pipe);
mbed_official 62:c1549af978d6 428 }
mbed_official 62:c1549af978d6 429
mbed_official 62:c1549af978d6 430 /*******************************************************************************
mbed_official 62:c1549af978d6 431 * Function Name: usb0_api_function_clear_nrdy_sts
mbed_official 62:c1549af978d6 432 * Description : Clear NRDY interrupt status in the pipe spceified by the argument.
mbed_official 62:c1549af978d6 433 * Arguments : uint16_t pipe ; pipe Number
mbed_official 62:c1549af978d6 434 * Return Value : none
mbed_official 62:c1549af978d6 435 *******************************************************************************/
mbed_official 62:c1549af978d6 436 void usb0_api_function_clear_nrdy_sts (uint16_t pipe)
mbed_official 62:c1549af978d6 437 {
mbed_official 62:c1549af978d6 438 usb0_function_clear_nrdy_sts(pipe);
mbed_official 62:c1549af978d6 439 }
mbed_official 62:c1549af978d6 440
mbed_official 62:c1549af978d6 441 /* End of File */