USBHost library. NOTE: This library is only officially supported on the LPC1768 platform. For more information, please see the handbook page.

Dependencies:   FATFileSystem mbed-rtos

Dependents:   BTstack WallbotWii SD to Flash Data Transfer USBHost-MSD_HelloWorld ... more

Legacy Warning

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

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

Committer:
mbed_official
Date:
Tue Mar 31 16:15:42 2015 +0100
Revision:
29:d3b77affed28
Synchronized with git revision 251f3f8b55a4dc98b831c80e032464ed45cce309

Full URL: https://github.com/mbedmicro/mbed/commit/251f3f8b55a4dc98b831c80e032464ed45cce309/

[RZ/A1H]Add some function(USB 2port, NVIC wrapper) and modify some settings(OS, Terminal).

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 29:d3b77affed28 1 /*******************************************************************************
mbed_official 29:d3b77affed28 2 * DISCLAIMER
mbed_official 29:d3b77affed28 3 * This software is supplied by Renesas Electronics Corporation and is only
mbed_official 29:d3b77affed28 4 * intended for use with Renesas products. No other uses are authorized. This
mbed_official 29:d3b77affed28 5 * software is owned by Renesas Electronics Corporation and is protected under
mbed_official 29:d3b77affed28 6 * all applicable laws, including copyright laws.
mbed_official 29:d3b77affed28 7 * THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
mbed_official 29:d3b77affed28 8 * THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
mbed_official 29:d3b77affed28 9 * LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
mbed_official 29:d3b77affed28 10 * AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
mbed_official 29:d3b77affed28 11 * TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
mbed_official 29:d3b77affed28 12 * ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
mbed_official 29:d3b77affed28 13 * FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
mbed_official 29:d3b77affed28 14 * ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
mbed_official 29:d3b77affed28 15 * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
mbed_official 29:d3b77affed28 16 * Renesas reserves the right, without notice, to make changes to this software
mbed_official 29:d3b77affed28 17 * and to discontinue the availability of this software. By using this software,
mbed_official 29:d3b77affed28 18 * you agree to the additional terms and conditions found by accessing the
mbed_official 29:d3b77affed28 19 * following link:
mbed_official 29:d3b77affed28 20 * http://www.renesas.com/disclaimer
mbed_official 29:d3b77affed28 21 * Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
mbed_official 29:d3b77affed28 22 *******************************************************************************/
mbed_official 29:d3b77affed28 23 /*******************************************************************************
mbed_official 29:d3b77affed28 24 * File Name : usb1_host_dma.c
mbed_official 29:d3b77affed28 25 * $Rev: 1116 $
mbed_official 29:d3b77affed28 26 * $Date:: 2014-07-09 16:29:19 +0900#$
mbed_official 29:d3b77affed28 27 * Device(s) : RZ/A1H
mbed_official 29:d3b77affed28 28 * Tool-Chain :
mbed_official 29:d3b77affed28 29 * OS : None
mbed_official 29:d3b77affed28 30 * H/W Platform :
mbed_official 29:d3b77affed28 31 * Description : RZ/A1H R7S72100 USB Sample Program
mbed_official 29:d3b77affed28 32 * Operation :
mbed_official 29:d3b77affed28 33 * Limitations :
mbed_official 29:d3b77affed28 34 *******************************************************************************/
mbed_official 29:d3b77affed28 35
mbed_official 29:d3b77affed28 36
mbed_official 29:d3b77affed28 37 /*******************************************************************************
mbed_official 29:d3b77affed28 38 Includes <System Includes> , "Project Includes"
mbed_official 29:d3b77affed28 39 *******************************************************************************/
mbed_official 29:d3b77affed28 40 #include "usb1_host.h"
mbed_official 29:d3b77affed28 41 /* #include "usb1_host_dmacdrv.h" */
mbed_official 29:d3b77affed28 42
mbed_official 29:d3b77affed28 43
mbed_official 29:d3b77affed28 44 /*******************************************************************************
mbed_official 29:d3b77affed28 45 Typedef definitions
mbed_official 29:d3b77affed28 46 *******************************************************************************/
mbed_official 29:d3b77affed28 47
mbed_official 29:d3b77affed28 48
mbed_official 29:d3b77affed28 49 /*******************************************************************************
mbed_official 29:d3b77affed28 50 Macro definitions
mbed_official 29:d3b77affed28 51 *******************************************************************************/
mbed_official 29:d3b77affed28 52
mbed_official 29:d3b77affed28 53
mbed_official 29:d3b77affed28 54 /*******************************************************************************
mbed_official 29:d3b77affed28 55 Imported global variables and functions (from other files)
mbed_official 29:d3b77affed28 56 *******************************************************************************/
mbed_official 29:d3b77affed28 57
mbed_official 29:d3b77affed28 58
mbed_official 29:d3b77affed28 59 /*******************************************************************************
mbed_official 29:d3b77affed28 60 Exported global variables and functions (to be accessed by other files)
mbed_official 29:d3b77affed28 61 *******************************************************************************/
mbed_official 29:d3b77affed28 62
mbed_official 29:d3b77affed28 63
mbed_official 29:d3b77affed28 64 /*******************************************************************************
mbed_official 29:d3b77affed28 65 Private global variables and functions
mbed_official 29:d3b77affed28 66 *******************************************************************************/
mbed_official 29:d3b77affed28 67 static void usb1_host_dmaint(uint16_t fifo);
mbed_official 29:d3b77affed28 68 static void usb1_host_dmaint_buf2fifo(uint16_t pipe);
mbed_official 29:d3b77affed28 69 static void usb1_host_dmaint_fifo2buf(uint16_t pipe);
mbed_official 29:d3b77affed28 70
mbed_official 29:d3b77affed28 71
mbed_official 29:d3b77affed28 72 /*******************************************************************************
mbed_official 29:d3b77affed28 73 * Function Name: usb1_host_dma_stop_d0
mbed_official 29:d3b77affed28 74 * Description : D0FIFO DMA stop
mbed_official 29:d3b77affed28 75 * Arguments : uint16_t pipe : pipe number
mbed_official 29:d3b77affed28 76 * : uint32_t remain : transfer byte
mbed_official 29:d3b77affed28 77 * Return Value : none
mbed_official 29:d3b77affed28 78 *******************************************************************************/
mbed_official 29:d3b77affed28 79 void usb1_host_dma_stop_d0 (uint16_t pipe, uint32_t remain)
mbed_official 29:d3b77affed28 80 {
mbed_official 29:d3b77affed28 81 uint16_t dtln;
mbed_official 29:d3b77affed28 82 uint16_t dfacc;
mbed_official 29:d3b77affed28 83 uint16_t buffer;
mbed_official 29:d3b77affed28 84 uint16_t sds_b = 1;
mbed_official 29:d3b77affed28 85
mbed_official 29:d3b77affed28 86 dfacc = RZA_IO_RegRead_16(&USB201.D0FBCFG,
mbed_official 29:d3b77affed28 87 USB_DnFBCFG_DFACC_SHIFT,
mbed_official 29:d3b77affed28 88 USB_DnFBCFG_DFACC);
mbed_official 29:d3b77affed28 89 if (dfacc == 2)
mbed_official 29:d3b77affed28 90 {
mbed_official 29:d3b77affed28 91 sds_b = 32;
mbed_official 29:d3b77affed28 92 }
mbed_official 29:d3b77affed28 93 else if (dfacc == 1)
mbed_official 29:d3b77affed28 94 {
mbed_official 29:d3b77affed28 95 sds_b = 16;
mbed_official 29:d3b77affed28 96 }
mbed_official 29:d3b77affed28 97 else
mbed_official 29:d3b77affed28 98 {
mbed_official 29:d3b77affed28 99 if (g_usb1_host_DmaInfo[USB_HOST_D0FIFO].size == 2)
mbed_official 29:d3b77affed28 100 {
mbed_official 29:d3b77affed28 101 sds_b = 4;
mbed_official 29:d3b77affed28 102 }
mbed_official 29:d3b77affed28 103 else if (g_usb1_host_DmaInfo[USB_HOST_D0FIFO].size == 1)
mbed_official 29:d3b77affed28 104 {
mbed_official 29:d3b77affed28 105 sds_b = 2;
mbed_official 29:d3b77affed28 106 }
mbed_official 29:d3b77affed28 107 else
mbed_official 29:d3b77affed28 108 {
mbed_official 29:d3b77affed28 109 sds_b = 1;
mbed_official 29:d3b77affed28 110 }
mbed_official 29:d3b77affed28 111 }
mbed_official 29:d3b77affed28 112
mbed_official 29:d3b77affed28 113 if (RZA_IO_RegRead_16(&g_usb1_host_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 1)
mbed_official 29:d3b77affed28 114 {
mbed_official 29:d3b77affed28 115 if (g_usb1_host_pipe_status[pipe] != USB_HOST_PIPE_DONE)
mbed_official 29:d3b77affed28 116 {
mbed_official 29:d3b77affed28 117 buffer = USB201.D0FIFOCTR;
mbed_official 29:d3b77affed28 118 dtln = (buffer & USB_HOST_BITDTLN);
mbed_official 29:d3b77affed28 119
mbed_official 29:d3b77affed28 120 if ((dtln % sds_b) != 0)
mbed_official 29:d3b77affed28 121 {
mbed_official 29:d3b77affed28 122 remain += (sds_b - (dtln % sds_b));
mbed_official 29:d3b77affed28 123 }
mbed_official 29:d3b77affed28 124 g_usb1_host_PipeDataSize[pipe] = (g_usb1_host_data_count[pipe] - remain);
mbed_official 29:d3b77affed28 125 g_usb1_host_data_count[pipe] = remain;
mbed_official 29:d3b77affed28 126 }
mbed_official 29:d3b77affed28 127 }
mbed_official 29:d3b77affed28 128
mbed_official 29:d3b77affed28 129 RZA_IO_RegWrite_16(&USB201.D0FIFOSEL,
mbed_official 29:d3b77affed28 130 0,
mbed_official 29:d3b77affed28 131 USB_DnFIFOSEL_DREQE_SHIFT,
mbed_official 29:d3b77affed28 132 USB_DnFIFOSEL_DREQE);
mbed_official 29:d3b77affed28 133 }
mbed_official 29:d3b77affed28 134
mbed_official 29:d3b77affed28 135 /*******************************************************************************
mbed_official 29:d3b77affed28 136 * Function Name: usb1_host_dma_stop_d1
mbed_official 29:d3b77affed28 137 * Description : D1FIFO DMA stop
mbed_official 29:d3b77affed28 138 * Arguments : uint16_t pipe : pipe number
mbed_official 29:d3b77affed28 139 * : uint32_t remain : transfer byte
mbed_official 29:d3b77affed28 140 * Return Value : none
mbed_official 29:d3b77affed28 141 *******************************************************************************/
mbed_official 29:d3b77affed28 142 void usb1_host_dma_stop_d1 (uint16_t pipe, uint32_t remain)
mbed_official 29:d3b77affed28 143 {
mbed_official 29:d3b77affed28 144 uint16_t dtln;
mbed_official 29:d3b77affed28 145 uint16_t dfacc;
mbed_official 29:d3b77affed28 146 uint16_t buffer;
mbed_official 29:d3b77affed28 147 uint16_t sds_b = 1;
mbed_official 29:d3b77affed28 148
mbed_official 29:d3b77affed28 149 dfacc = RZA_IO_RegRead_16(&USB201.D1FBCFG,
mbed_official 29:d3b77affed28 150 USB_DnFBCFG_DFACC_SHIFT,
mbed_official 29:d3b77affed28 151 USB_DnFBCFG_DFACC);
mbed_official 29:d3b77affed28 152 if (dfacc == 2)
mbed_official 29:d3b77affed28 153 {
mbed_official 29:d3b77affed28 154 sds_b = 32;
mbed_official 29:d3b77affed28 155 }
mbed_official 29:d3b77affed28 156 else if (dfacc == 1)
mbed_official 29:d3b77affed28 157 {
mbed_official 29:d3b77affed28 158 sds_b = 16;
mbed_official 29:d3b77affed28 159 }
mbed_official 29:d3b77affed28 160 else
mbed_official 29:d3b77affed28 161 {
mbed_official 29:d3b77affed28 162 if (g_usb1_host_DmaInfo[USB_HOST_D1FIFO].size == 2)
mbed_official 29:d3b77affed28 163 {
mbed_official 29:d3b77affed28 164 sds_b = 4;
mbed_official 29:d3b77affed28 165 }
mbed_official 29:d3b77affed28 166 else if (g_usb1_host_DmaInfo[USB_HOST_D1FIFO].size == 1)
mbed_official 29:d3b77affed28 167 {
mbed_official 29:d3b77affed28 168 sds_b = 2;
mbed_official 29:d3b77affed28 169 }
mbed_official 29:d3b77affed28 170 else
mbed_official 29:d3b77affed28 171 {
mbed_official 29:d3b77affed28 172 sds_b = 1;
mbed_official 29:d3b77affed28 173 }
mbed_official 29:d3b77affed28 174 }
mbed_official 29:d3b77affed28 175
mbed_official 29:d3b77affed28 176 if (RZA_IO_RegRead_16(&g_usb1_host_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 1)
mbed_official 29:d3b77affed28 177 {
mbed_official 29:d3b77affed28 178 if (g_usb1_host_pipe_status[pipe] != USB_HOST_PIPE_DONE)
mbed_official 29:d3b77affed28 179 {
mbed_official 29:d3b77affed28 180 buffer = USB201.D1FIFOCTR;
mbed_official 29:d3b77affed28 181 dtln = (buffer & USB_HOST_BITDTLN);
mbed_official 29:d3b77affed28 182
mbed_official 29:d3b77affed28 183 if ((dtln % sds_b) != 0)
mbed_official 29:d3b77affed28 184 {
mbed_official 29:d3b77affed28 185 remain += (sds_b - (dtln % sds_b));
mbed_official 29:d3b77affed28 186 }
mbed_official 29:d3b77affed28 187 g_usb1_host_PipeDataSize[pipe] = (g_usb1_host_data_count[pipe] - remain);
mbed_official 29:d3b77affed28 188 g_usb1_host_data_count[pipe] = remain;
mbed_official 29:d3b77affed28 189 }
mbed_official 29:d3b77affed28 190 }
mbed_official 29:d3b77affed28 191
mbed_official 29:d3b77affed28 192 RZA_IO_RegWrite_16(&USB201.D1FIFOSEL,
mbed_official 29:d3b77affed28 193 0,
mbed_official 29:d3b77affed28 194 USB_DnFIFOSEL_DREQE_SHIFT,
mbed_official 29:d3b77affed28 195 USB_DnFIFOSEL_DREQE);
mbed_official 29:d3b77affed28 196 }
mbed_official 29:d3b77affed28 197
mbed_official 29:d3b77affed28 198 /*******************************************************************************
mbed_official 29:d3b77affed28 199 * Function Name: usb1_host_dma_interrupt_d0fifo
mbed_official 29:d3b77affed28 200 * Description : This function is DMA interrupt handler entry.
mbed_official 29:d3b77affed28 201 * : Execute usb1_host_dmaint() after disabling DMA interrupt in this function.
mbed_official 29:d3b77affed28 202 * : Disable DMA interrupt to DMAC executed when USB_HOST_D0FIFO_DMA is
mbed_official 29:d3b77affed28 203 * : specified by dma->fifo.
mbed_official 29:d3b77affed28 204 * : Register this function as DMA complete interrupt.
mbed_official 29:d3b77affed28 205 * Arguments : uint32_t int_sense ; Interrupts detection mode
mbed_official 29:d3b77affed28 206 * : ; INTC_LEVEL_SENSITIVE : Level sense
mbed_official 29:d3b77affed28 207 * : ; INTC_EDGE_TRIGGER : Edge trigger
mbed_official 29:d3b77affed28 208 * Return Value : none
mbed_official 29:d3b77affed28 209 *******************************************************************************/
mbed_official 29:d3b77affed28 210 void usb1_host_dma_interrupt_d0fifo (uint32_t int_sense)
mbed_official 29:d3b77affed28 211 {
mbed_official 29:d3b77affed28 212 usb1_host_dmaint(USB_HOST_D0FIFO);
mbed_official 29:d3b77affed28 213 g_usb1_host_DmaStatus[USB_HOST_D0FIFO] = USB_HOST_DMA_READY;
mbed_official 29:d3b77affed28 214 }
mbed_official 29:d3b77affed28 215
mbed_official 29:d3b77affed28 216 /*******************************************************************************
mbed_official 29:d3b77affed28 217 * Function Name: usb1_host_dma_interrupt_d1fifo
mbed_official 29:d3b77affed28 218 * Description : This function is DMA interrupt handler entry.
mbed_official 29:d3b77affed28 219 * : Execute usb0_host_dmaint() after disabling DMA interrupt in this function.
mbed_official 29:d3b77affed28 220 * : Disable DMA interrupt to DMAC executed when USB_HOST_D1FIFO_DMA is
mbed_official 29:d3b77affed28 221 * : specified by dma->fifo.
mbed_official 29:d3b77affed28 222 * : Register this function as DMA complete interrupt.
mbed_official 29:d3b77affed28 223 * Arguments : uint32_t int_sense ; Interrupts detection mode
mbed_official 29:d3b77affed28 224 * : ; INTC_LEVEL_SENSITIVE : Level sense
mbed_official 29:d3b77affed28 225 * : ; INTC_EDGE_TRIGGER : Edge trigger
mbed_official 29:d3b77affed28 226 * Return Value : none
mbed_official 29:d3b77affed28 227 *******************************************************************************/
mbed_official 29:d3b77affed28 228 void usb1_host_dma_interrupt_d1fifo (uint32_t int_sense)
mbed_official 29:d3b77affed28 229 {
mbed_official 29:d3b77affed28 230 usb1_host_dmaint(USB_HOST_D1FIFO);
mbed_official 29:d3b77affed28 231 g_usb1_host_DmaStatus[USB_HOST_D1FIFO] = USB_HOST_DMA_READY;
mbed_official 29:d3b77affed28 232 }
mbed_official 29:d3b77affed28 233
mbed_official 29:d3b77affed28 234 /*******************************************************************************
mbed_official 29:d3b77affed28 235 * Function Name: usb1_host_dmaint
mbed_official 29:d3b77affed28 236 * Description : This function is DMA transfer end interrupt
mbed_official 29:d3b77affed28 237 * Arguments : uint16_t fifo ; fifo number
mbed_official 29:d3b77affed28 238 * : ; USB_HOST_D0FIFO
mbed_official 29:d3b77affed28 239 * : ; USB_HOST_D1FIFO
mbed_official 29:d3b77affed28 240 * Return Value : none
mbed_official 29:d3b77affed28 241 *******************************************************************************/
mbed_official 29:d3b77affed28 242 static void usb1_host_dmaint (uint16_t fifo)
mbed_official 29:d3b77affed28 243 {
mbed_official 29:d3b77affed28 244 uint16_t pipe;
mbed_official 29:d3b77affed28 245
mbed_official 29:d3b77affed28 246 pipe = g_usb1_host_DmaPipe[fifo];
mbed_official 29:d3b77affed28 247
mbed_official 29:d3b77affed28 248 if (g_usb1_host_DmaInfo[fifo].dir == USB_HOST_BUF2FIFO)
mbed_official 29:d3b77affed28 249 {
mbed_official 29:d3b77affed28 250 usb1_host_dmaint_buf2fifo(pipe);
mbed_official 29:d3b77affed28 251 }
mbed_official 29:d3b77affed28 252 else
mbed_official 29:d3b77affed28 253 {
mbed_official 29:d3b77affed28 254 usb1_host_dmaint_fifo2buf(pipe);
mbed_official 29:d3b77affed28 255 }
mbed_official 29:d3b77affed28 256 }
mbed_official 29:d3b77affed28 257
mbed_official 29:d3b77affed28 258 /*******************************************************************************
mbed_official 29:d3b77affed28 259 * Function Name: usb1_host_dmaint_fifo2buf
mbed_official 29:d3b77affed28 260 * Description : Executes read completion from FIFO by DMAC.
mbed_official 29:d3b77affed28 261 * Arguments : uint16_t pipe : pipe number
mbed_official 29:d3b77affed28 262 * Return Value : none
mbed_official 29:d3b77affed28 263 *******************************************************************************/
mbed_official 29:d3b77affed28 264 static void usb1_host_dmaint_fifo2buf (uint16_t pipe)
mbed_official 29:d3b77affed28 265 {
mbed_official 29:d3b77affed28 266 uint32_t remain;
mbed_official 29:d3b77affed28 267 uint16_t useport;
mbed_official 29:d3b77affed28 268
mbed_official 29:d3b77affed28 269 if (g_usb1_host_pipe_status[pipe] != USB_HOST_PIPE_DONE)
mbed_official 29:d3b77affed28 270 {
mbed_official 29:d3b77affed28 271 useport = (uint16_t)(g_usb1_host_PipeTbl[pipe] & USB_HOST_FIFO_USE);
mbed_official 29:d3b77affed28 272
mbed_official 29:d3b77affed28 273 if (useport == USB_HOST_D0FIFO_DMA)
mbed_official 29:d3b77affed28 274 {
mbed_official 29:d3b77affed28 275 remain = Userdef_USB_usb1_host_stop_dma0();
mbed_official 29:d3b77affed28 276 usb1_host_dma_stop_d0(pipe, remain);
mbed_official 29:d3b77affed28 277
mbed_official 29:d3b77affed28 278 if (RZA_IO_RegRead_16(&g_usb1_host_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 0)
mbed_official 29:d3b77affed28 279 {
mbed_official 29:d3b77affed28 280 if (g_usb1_host_DmaStatus[USB_HOST_D0FIFO] == USB_HOST_DMA_BUSYEND)
mbed_official 29:d3b77affed28 281 {
mbed_official 29:d3b77affed28 282 USB201.D0FIFOCTR = USB_HOST_BITBCLR;
mbed_official 29:d3b77affed28 283 g_usb1_host_pipe_status[pipe] = USB_HOST_PIPE_DONE;
mbed_official 29:d3b77affed28 284 }
mbed_official 29:d3b77affed28 285 else
mbed_official 29:d3b77affed28 286 {
mbed_official 29:d3b77affed28 287 usb1_host_enable_brdy_int(pipe);
mbed_official 29:d3b77affed28 288 }
mbed_official 29:d3b77affed28 289 }
mbed_official 29:d3b77affed28 290 }
mbed_official 29:d3b77affed28 291 else
mbed_official 29:d3b77affed28 292 {
mbed_official 29:d3b77affed28 293 remain = Userdef_USB_usb1_host_stop_dma1();
mbed_official 29:d3b77affed28 294 usb1_host_dma_stop_d1(pipe, remain);
mbed_official 29:d3b77affed28 295
mbed_official 29:d3b77affed28 296 if (RZA_IO_RegRead_16(&g_usb1_host_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 0)
mbed_official 29:d3b77affed28 297 {
mbed_official 29:d3b77affed28 298 if (g_usb1_host_DmaStatus[USB_HOST_D1FIFO] == USB_HOST_DMA_BUSYEND)
mbed_official 29:d3b77affed28 299 {
mbed_official 29:d3b77affed28 300 USB201.D1FIFOCTR = USB_HOST_BITBCLR;
mbed_official 29:d3b77affed28 301 g_usb1_host_pipe_status[pipe] = USB_HOST_PIPE_DONE;
mbed_official 29:d3b77affed28 302 }
mbed_official 29:d3b77affed28 303 else
mbed_official 29:d3b77affed28 304 {
mbed_official 29:d3b77affed28 305 usb1_host_enable_brdy_int(pipe);
mbed_official 29:d3b77affed28 306 }
mbed_official 29:d3b77affed28 307 }
mbed_official 29:d3b77affed28 308 }
mbed_official 29:d3b77affed28 309 }
mbed_official 29:d3b77affed28 310 }
mbed_official 29:d3b77affed28 311
mbed_official 29:d3b77affed28 312 /*******************************************************************************
mbed_official 29:d3b77affed28 313 * Function Name: usb1_host_dmaint_buf2fifo
mbed_official 29:d3b77affed28 314 * Description : Executes write completion in FIFO by DMAC.
mbed_official 29:d3b77affed28 315 * Arguments : uint16_t pipe : pipe number
mbed_official 29:d3b77affed28 316 * Return Value : none
mbed_official 29:d3b77affed28 317 *******************************************************************************/
mbed_official 29:d3b77affed28 318 static void usb1_host_dmaint_buf2fifo (uint16_t pipe)
mbed_official 29:d3b77affed28 319 {
mbed_official 29:d3b77affed28 320 uint16_t useport;
mbed_official 29:d3b77affed28 321 uint32_t remain;
mbed_official 29:d3b77affed28 322
mbed_official 29:d3b77affed28 323 useport = (uint16_t)(g_usb1_host_PipeTbl[pipe] & USB_HOST_FIFO_USE);
mbed_official 29:d3b77affed28 324
mbed_official 29:d3b77affed28 325 if (useport == USB_HOST_D0FIFO_DMA)
mbed_official 29:d3b77affed28 326 {
mbed_official 29:d3b77affed28 327 remain = Userdef_USB_usb1_host_stop_dma0();
mbed_official 29:d3b77affed28 328 usb1_host_dma_stop_d0(pipe, remain);
mbed_official 29:d3b77affed28 329
mbed_official 29:d3b77affed28 330 if (g_usb1_host_DmaBval[USB_HOST_D0FIFO] != 0)
mbed_official 29:d3b77affed28 331 {
mbed_official 29:d3b77affed28 332 RZA_IO_RegWrite_16(&USB201.D0FIFOCTR,
mbed_official 29:d3b77affed28 333 1,
mbed_official 29:d3b77affed28 334 USB_DnFIFOCTR_BVAL_SHIFT,
mbed_official 29:d3b77affed28 335 USB_DnFIFOCTR_BVAL);
mbed_official 29:d3b77affed28 336 }
mbed_official 29:d3b77affed28 337 }
mbed_official 29:d3b77affed28 338 else
mbed_official 29:d3b77affed28 339 {
mbed_official 29:d3b77affed28 340 remain = Userdef_USB_usb1_host_stop_dma1();
mbed_official 29:d3b77affed28 341 usb1_host_dma_stop_d1(pipe, remain);
mbed_official 29:d3b77affed28 342
mbed_official 29:d3b77affed28 343 if (g_usb1_host_DmaBval[USB_HOST_D1FIFO] != 0)
mbed_official 29:d3b77affed28 344 {
mbed_official 29:d3b77affed28 345 RZA_IO_RegWrite_16(&USB201.D1FIFOCTR,
mbed_official 29:d3b77affed28 346 1,
mbed_official 29:d3b77affed28 347 USB_DnFIFOCTR_BVAL_SHIFT,
mbed_official 29:d3b77affed28 348 USB_DnFIFOCTR_BVAL);
mbed_official 29:d3b77affed28 349 }
mbed_official 29:d3b77affed28 350 }
mbed_official 29:d3b77affed28 351
mbed_official 29:d3b77affed28 352 usb1_host_enable_bemp_int(pipe);
mbed_official 29:d3b77affed28 353 }
mbed_official 29:d3b77affed28 354
mbed_official 29:d3b77affed28 355 /* End of File */