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_lib.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 #if(1) /* ohci_wrapp */
mbed_official 29:d3b77affed28 42 #include "MBRZA1H.h" /* INTC Driver Header */
mbed_official 29:d3b77affed28 43 #else
mbed_official 29:d3b77affed28 44 #include "devdrv_intc.h" /* INTC Driver Header */
mbed_official 29:d3b77affed28 45 #endif
mbed_official 29:d3b77affed28 46
mbed_official 29:d3b77affed28 47
mbed_official 29:d3b77affed28 48 /*******************************************************************************
mbed_official 29:d3b77affed28 49 Typedef definitions
mbed_official 29:d3b77affed28 50 *******************************************************************************/
mbed_official 29:d3b77affed28 51
mbed_official 29:d3b77affed28 52
mbed_official 29:d3b77affed28 53 /*******************************************************************************
mbed_official 29:d3b77affed28 54 Macro definitions
mbed_official 29:d3b77affed28 55 *******************************************************************************/
mbed_official 29:d3b77affed28 56
mbed_official 29:d3b77affed28 57
mbed_official 29:d3b77affed28 58 /*******************************************************************************
mbed_official 29:d3b77affed28 59 Imported global variables and functions (from other files)
mbed_official 29:d3b77affed28 60 *******************************************************************************/
mbed_official 29:d3b77affed28 61
mbed_official 29:d3b77affed28 62
mbed_official 29:d3b77affed28 63 /*******************************************************************************
mbed_official 29:d3b77affed28 64 Exported global variables and functions (to be accessed by other files)
mbed_official 29:d3b77affed28 65 *******************************************************************************/
mbed_official 29:d3b77affed28 66
mbed_official 29:d3b77affed28 67
mbed_official 29:d3b77affed28 68 /*******************************************************************************
mbed_official 29:d3b77affed28 69 Private global variables and functions
mbed_official 29:d3b77affed28 70 *******************************************************************************/
mbed_official 29:d3b77affed28 71
mbed_official 29:d3b77affed28 72
mbed_official 29:d3b77affed28 73 /*******************************************************************************
mbed_official 29:d3b77affed28 74 * Function Name: usb1_host_enable_brdy_int
mbed_official 29:d3b77affed28 75 * Description : Enables BRDY interrupt in the pipe spceified by the argument.
mbed_official 29:d3b77affed28 76 * : Disables BEMP/NRDY/BRDY interrupts in all pipes before enabling
mbed_official 29:d3b77affed28 77 * : BRDY. Enables BRDY interrupt in the pipe specified by the argument
mbed_official 29:d3b77affed28 78 * : in the disabled status. After enabling BRDY, recover all
mbed_official 29:d3b77affed28 79 * : BEMP/NRDY/BRDY disabled/enabled status.
mbed_official 29:d3b77affed28 80 * Arguments : uint16_t pipe ; pipe Number
mbed_official 29:d3b77affed28 81 * Return Value : none
mbed_official 29:d3b77affed28 82 *******************************************************************************/
mbed_official 29:d3b77affed28 83 void usb1_host_enable_brdy_int (uint16_t pipe)
mbed_official 29:d3b77affed28 84 {
mbed_official 29:d3b77affed28 85 /* enable brdy interrupt */
mbed_official 29:d3b77affed28 86 USB201.BRDYENB |= (uint16_t)g_usb1_host_bit_set[pipe];
mbed_official 29:d3b77affed28 87 }
mbed_official 29:d3b77affed28 88
mbed_official 29:d3b77affed28 89 /*******************************************************************************
mbed_official 29:d3b77affed28 90 * Function Name: usb1_host_disable_brdy_int
mbed_official 29:d3b77affed28 91 * Description : Disables BRDY interrupt in the pipe spceified by the argument.
mbed_official 29:d3b77affed28 92 * : Disables BEMP/NRDY/BRDY interrupts in all pipes before disabling
mbed_official 29:d3b77affed28 93 * : BRDY. Enables BRDY interrupt in the pipe specified by the argument
mbed_official 29:d3b77affed28 94 * : in the disabled status. After disabling BRDY, recover all
mbed_official 29:d3b77affed28 95 * : BEMP/NRDY/BRDY disabled/enabled status.
mbed_official 29:d3b77affed28 96 * Arguments : uint16_t pipe ; pipe Number
mbed_official 29:d3b77affed28 97 * Return Value : none
mbed_official 29:d3b77affed28 98 *******************************************************************************/
mbed_official 29:d3b77affed28 99 void usb1_host_disable_brdy_int (uint16_t pipe)
mbed_official 29:d3b77affed28 100 {
mbed_official 29:d3b77affed28 101 /* disable brdy interrupt */
mbed_official 29:d3b77affed28 102 USB201.BRDYENB &= (uint16_t)~(g_usb1_host_bit_set[pipe]);
mbed_official 29:d3b77affed28 103 }
mbed_official 29:d3b77affed28 104
mbed_official 29:d3b77affed28 105 /*******************************************************************************
mbed_official 29:d3b77affed28 106 * Function Name: usb1_host_clear_brdy_sts
mbed_official 29:d3b77affed28 107 * Description : Clear BRDY interrupt status in the pipe spceified by the argument.
mbed_official 29:d3b77affed28 108 * Arguments : uint16_t pipe ; pipe Number
mbed_official 29:d3b77affed28 109 * Return Value : none
mbed_official 29:d3b77affed28 110 *******************************************************************************/
mbed_official 29:d3b77affed28 111 void usb1_host_clear_brdy_sts (uint16_t pipe)
mbed_official 29:d3b77affed28 112 {
mbed_official 29:d3b77affed28 113 /* clear brdy status */
mbed_official 29:d3b77affed28 114 USB201.BRDYSTS = (uint16_t)~(g_usb1_host_bit_set[pipe]);
mbed_official 29:d3b77affed28 115 }
mbed_official 29:d3b77affed28 116
mbed_official 29:d3b77affed28 117 /*******************************************************************************
mbed_official 29:d3b77affed28 118 * Function Name: usb1_host_enable_bemp_int
mbed_official 29:d3b77affed28 119 * Description : Enables BEMP interrupt in the pipe spceified by the argument.
mbed_official 29:d3b77affed28 120 * : Disables BEMP/NRDY/BRDY interrupts in all pipes before enabling
mbed_official 29:d3b77affed28 121 * : BEMP. Enables BEMP interrupt in the pipe specified by the argument
mbed_official 29:d3b77affed28 122 * : in the disabled status. After enabling BEMP, recover all
mbed_official 29:d3b77affed28 123 * : BEMP/NRDY/BRDY disabled/enabled status.
mbed_official 29:d3b77affed28 124 * Arguments : uint16_t pipe ; pipe Number
mbed_official 29:d3b77affed28 125 * Return Value : none
mbed_official 29:d3b77affed28 126 *******************************************************************************/
mbed_official 29:d3b77affed28 127 void usb1_host_enable_bemp_int (uint16_t pipe)
mbed_official 29:d3b77affed28 128 {
mbed_official 29:d3b77affed28 129 /* enable bemp interrupt */
mbed_official 29:d3b77affed28 130 USB201.BEMPENB |= (uint16_t)g_usb1_host_bit_set[pipe];
mbed_official 29:d3b77affed28 131 }
mbed_official 29:d3b77affed28 132
mbed_official 29:d3b77affed28 133 /*******************************************************************************
mbed_official 29:d3b77affed28 134 * Function Name: usb1_host_disable_bemp_int
mbed_official 29:d3b77affed28 135 * Description : Disables BEMP interrupt in the pipe spceified by the argument.
mbed_official 29:d3b77affed28 136 * : Disables BEMP/NRDY/BRDY interrupts in all pipes before disabling
mbed_official 29:d3b77affed28 137 * : BEMP. Enables BEMP interrupt in the pipe specified by the argument
mbed_official 29:d3b77affed28 138 * : in the disabled status. After enabling BEMP, recover all
mbed_official 29:d3b77affed28 139 * : BEMP/NRDY/BRDY disabled/enabled status.
mbed_official 29:d3b77affed28 140 * Arguments : uint16_t pipe ; pipe Number
mbed_official 29:d3b77affed28 141 * Return Value : none
mbed_official 29:d3b77affed28 142 *******************************************************************************/
mbed_official 29:d3b77affed28 143 void usb1_host_disable_bemp_int (uint16_t pipe)
mbed_official 29:d3b77affed28 144 {
mbed_official 29:d3b77affed28 145 /* disable bemp interrupt */
mbed_official 29:d3b77affed28 146 USB201.BEMPENB &= (uint16_t)~(g_usb1_host_bit_set[pipe]);
mbed_official 29:d3b77affed28 147 }
mbed_official 29:d3b77affed28 148
mbed_official 29:d3b77affed28 149 /*******************************************************************************
mbed_official 29:d3b77affed28 150 * Function Name: usb1_host_clear_bemp_sts
mbed_official 29:d3b77affed28 151 * Description : Clear BEMP interrupt status in the pipe spceified by the argument.
mbed_official 29:d3b77affed28 152 * Arguments : uint16_t pipe ; pipe Number
mbed_official 29:d3b77affed28 153 * Return Value : none
mbed_official 29:d3b77affed28 154 *******************************************************************************/
mbed_official 29:d3b77affed28 155 void usb1_host_clear_bemp_sts (uint16_t pipe)
mbed_official 29:d3b77affed28 156 {
mbed_official 29:d3b77affed28 157 /* clear bemp status */
mbed_official 29:d3b77affed28 158 USB201.BEMPSTS = (uint16_t)~(g_usb1_host_bit_set[pipe]);
mbed_official 29:d3b77affed28 159 }
mbed_official 29:d3b77affed28 160
mbed_official 29:d3b77affed28 161 /*******************************************************************************
mbed_official 29:d3b77affed28 162 * Function Name: usb1_host_enable_nrdy_int
mbed_official 29:d3b77affed28 163 * Description : Enables NRDY interrupt in the pipe spceified by the argument.
mbed_official 29:d3b77affed28 164 * : Disables BEMP/NRDY/BRDY interrupts in all pipes before enabling
mbed_official 29:d3b77affed28 165 * : NRDY. Enables NRDY interrupt in the pipe specified by the argument
mbed_official 29:d3b77affed28 166 * : in the disabled status. After enabling NRDY, recover all
mbed_official 29:d3b77affed28 167 * : BEMP/NRDY/BRDY disabled/enabled status.
mbed_official 29:d3b77affed28 168 * Arguments : uint16_t pipe ; pipe Number
mbed_official 29:d3b77affed28 169 * Return Value : none
mbed_official 29:d3b77affed28 170 *******************************************************************************/
mbed_official 29:d3b77affed28 171 void usb1_host_enable_nrdy_int (uint16_t pipe)
mbed_official 29:d3b77affed28 172 {
mbed_official 29:d3b77affed28 173 /* enable nrdy interrupt */
mbed_official 29:d3b77affed28 174 USB201.NRDYENB |= (uint16_t)g_usb1_host_bit_set[pipe];
mbed_official 29:d3b77affed28 175 }
mbed_official 29:d3b77affed28 176
mbed_official 29:d3b77affed28 177 /*******************************************************************************
mbed_official 29:d3b77affed28 178 * Function Name: usb1_host_disable_nrdy_int
mbed_official 29:d3b77affed28 179 * Description : Disables NRDY interrupt in the pipe spceified by the argument.
mbed_official 29:d3b77affed28 180 * : Disables BEMP/NRDY/BRDY interrupts in all pipes before disabling
mbed_official 29:d3b77affed28 181 * : NRDY. Disables NRDY interrupt in the pipe specified by the argument
mbed_official 29:d3b77affed28 182 * : in the disabled status. After disabling NRDY, recover all
mbed_official 29:d3b77affed28 183 * : BEMP/NRDY/BRDY disabled/enabled status.
mbed_official 29:d3b77affed28 184 * Arguments : uint16_t pipe ; pipe Number
mbed_official 29:d3b77affed28 185 * Return Value : none
mbed_official 29:d3b77affed28 186 *******************************************************************************/
mbed_official 29:d3b77affed28 187 void usb1_host_disable_nrdy_int (uint16_t pipe)
mbed_official 29:d3b77affed28 188 {
mbed_official 29:d3b77affed28 189 /* disable nrdy interrupt */
mbed_official 29:d3b77affed28 190 USB201.NRDYENB &= (uint16_t)~(g_usb1_host_bit_set[pipe]);
mbed_official 29:d3b77affed28 191 }
mbed_official 29:d3b77affed28 192
mbed_official 29:d3b77affed28 193 /*******************************************************************************
mbed_official 29:d3b77affed28 194 * Function Name: usb1_host_clear_nrdy_sts
mbed_official 29:d3b77affed28 195 * Description : Clear NRDY interrupt status in the pipe spceified by the argument.
mbed_official 29:d3b77affed28 196 * Arguments : uint16_t pipe ; pipe Number
mbed_official 29:d3b77affed28 197 * Return Value : none
mbed_official 29:d3b77affed28 198 *******************************************************************************/
mbed_official 29:d3b77affed28 199 void usb1_host_clear_nrdy_sts (uint16_t pipe)
mbed_official 29:d3b77affed28 200 {
mbed_official 29:d3b77affed28 201 /* clear nrdy status */
mbed_official 29:d3b77affed28 202 USB201.NRDYSTS = (uint16_t)~(g_usb1_host_bit_set[pipe]);
mbed_official 29:d3b77affed28 203 }
mbed_official 29:d3b77affed28 204
mbed_official 29:d3b77affed28 205 /*******************************************************************************
mbed_official 29:d3b77affed28 206 * Function Name: usb1_host_is_hispeed
mbed_official 29:d3b77affed28 207 * Description : Returns the result of USB reset hand shake (RHST) as
mbed_official 29:d3b77affed28 208 * : return value.
mbed_official 29:d3b77affed28 209 * Arguments : none
mbed_official 29:d3b77affed28 210 * Return Value : USB_HOST_HIGH_SPEED ; Hi-Speed
mbed_official 29:d3b77affed28 211 * : USB_HOST_FULL_SPEED ; Full-Speed
mbed_official 29:d3b77affed28 212 * : USB_HOST_LOW_SPEED ; Low-Speed
mbed_official 29:d3b77affed28 213 * : USB_HOST_NON_SPEED ; error
mbed_official 29:d3b77affed28 214 *******************************************************************************/
mbed_official 29:d3b77affed28 215 uint16_t usb1_host_is_hispeed (void)
mbed_official 29:d3b77affed28 216 {
mbed_official 29:d3b77affed28 217 uint16_t rhst;
mbed_official 29:d3b77affed28 218 uint16_t speed;
mbed_official 29:d3b77affed28 219
mbed_official 29:d3b77affed28 220 rhst = RZA_IO_RegRead_16(&USB201.DVSTCTR0,
mbed_official 29:d3b77affed28 221 USB_DVSTCTR0_RHST_SHIFT,
mbed_official 29:d3b77affed28 222 USB_DVSTCTR0_RHST);
mbed_official 29:d3b77affed28 223 if (rhst == USB_HOST_HSMODE)
mbed_official 29:d3b77affed28 224 {
mbed_official 29:d3b77affed28 225 speed = USB_HOST_HIGH_SPEED;
mbed_official 29:d3b77affed28 226 }
mbed_official 29:d3b77affed28 227 else if (rhst == USB_HOST_FSMODE)
mbed_official 29:d3b77affed28 228 {
mbed_official 29:d3b77affed28 229 speed = USB_HOST_FULL_SPEED;
mbed_official 29:d3b77affed28 230 }
mbed_official 29:d3b77affed28 231 else if (rhst == USB_HOST_LSMODE)
mbed_official 29:d3b77affed28 232 {
mbed_official 29:d3b77affed28 233 speed = USB_HOST_LOW_SPEED;
mbed_official 29:d3b77affed28 234 }
mbed_official 29:d3b77affed28 235 else
mbed_official 29:d3b77affed28 236 {
mbed_official 29:d3b77affed28 237 speed = USB_HOST_NON_SPEED;
mbed_official 29:d3b77affed28 238 }
mbed_official 29:d3b77affed28 239
mbed_official 29:d3b77affed28 240 return speed;
mbed_official 29:d3b77affed28 241 }
mbed_official 29:d3b77affed28 242
mbed_official 29:d3b77affed28 243 /*******************************************************************************
mbed_official 29:d3b77affed28 244 * Function Name: usb1_host_is_hispeed_enable
mbed_official 29:d3b77affed28 245 * Description : Returns the USB High-Speed connection enabled status as
mbed_official 29:d3b77affed28 246 * : return value.
mbed_official 29:d3b77affed28 247 * Arguments : none
mbed_official 29:d3b77affed28 248 * Return Value : USB_HOST_YES : Hi-Speed Enable
mbed_official 29:d3b77affed28 249 * : USB_HOST_NO : Hi-Speed Disable
mbed_official 29:d3b77affed28 250 *******************************************************************************/
mbed_official 29:d3b77affed28 251 uint16_t usb1_host_is_hispeed_enable (void)
mbed_official 29:d3b77affed28 252 {
mbed_official 29:d3b77affed28 253 uint16_t ret;
mbed_official 29:d3b77affed28 254
mbed_official 29:d3b77affed28 255 ret = USB_HOST_NO;
mbed_official 29:d3b77affed28 256
mbed_official 29:d3b77affed28 257 if (RZA_IO_RegRead_16(&USB201.SYSCFG0,
mbed_official 29:d3b77affed28 258 USB_SYSCFG_HSE_SHIFT,
mbed_official 29:d3b77affed28 259 USB_SYSCFG_HSE) == 1)
mbed_official 29:d3b77affed28 260 {
mbed_official 29:d3b77affed28 261 ret = USB_HOST_YES;
mbed_official 29:d3b77affed28 262 }
mbed_official 29:d3b77affed28 263
mbed_official 29:d3b77affed28 264 return ret;
mbed_official 29:d3b77affed28 265 }
mbed_official 29:d3b77affed28 266
mbed_official 29:d3b77affed28 267 /*******************************************************************************
mbed_official 29:d3b77affed28 268 * Function Name: usb1_host_set_pid_buf
mbed_official 29:d3b77affed28 269 * Description : Enables communicaqtion in the pipe specified by the argument
mbed_official 29:d3b77affed28 270 * : (BUF).
mbed_official 29:d3b77affed28 271 * Arguments : uint16_t pipe ; pipe Number
mbed_official 29:d3b77affed28 272 * Return Value : none
mbed_official 29:d3b77affed28 273 *******************************************************************************/
mbed_official 29:d3b77affed28 274 void usb1_host_set_pid_buf (uint16_t pipe)
mbed_official 29:d3b77affed28 275 {
mbed_official 29:d3b77affed28 276 uint16_t pid;
mbed_official 29:d3b77affed28 277
mbed_official 29:d3b77affed28 278 pid = usb1_host_get_pid(pipe);
mbed_official 29:d3b77affed28 279
mbed_official 29:d3b77affed28 280 if (pid == USB_HOST_PID_STALL2)
mbed_official 29:d3b77affed28 281 {
mbed_official 29:d3b77affed28 282 usb1_host_set_pid_nak(pipe);
mbed_official 29:d3b77affed28 283 }
mbed_official 29:d3b77affed28 284
mbed_official 29:d3b77affed28 285 switch (pipe)
mbed_official 29:d3b77affed28 286 {
mbed_official 29:d3b77affed28 287 case USB_HOST_PIPE0:
mbed_official 29:d3b77affed28 288 RZA_IO_RegWrite_16(&USB201.DCPCTR,
mbed_official 29:d3b77affed28 289 USB_HOST_PID_BUF,
mbed_official 29:d3b77affed28 290 USB_DCPCTR_PID_SHIFT,
mbed_official 29:d3b77affed28 291 USB_DCPCTR_PID);
mbed_official 29:d3b77affed28 292 break;
mbed_official 29:d3b77affed28 293
mbed_official 29:d3b77affed28 294 case USB_HOST_PIPE1:
mbed_official 29:d3b77affed28 295 RZA_IO_RegWrite_16(&USB201.PIPE1CTR,
mbed_official 29:d3b77affed28 296 USB_HOST_PID_BUF,
mbed_official 29:d3b77affed28 297 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 298 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 299 break;
mbed_official 29:d3b77affed28 300
mbed_official 29:d3b77affed28 301 case USB_HOST_PIPE2:
mbed_official 29:d3b77affed28 302 RZA_IO_RegWrite_16(&USB201.PIPE2CTR,
mbed_official 29:d3b77affed28 303 USB_HOST_PID_BUF,
mbed_official 29:d3b77affed28 304 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 305 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 306 break;
mbed_official 29:d3b77affed28 307
mbed_official 29:d3b77affed28 308 case USB_HOST_PIPE3:
mbed_official 29:d3b77affed28 309 RZA_IO_RegWrite_16(&USB201.PIPE3CTR,
mbed_official 29:d3b77affed28 310 USB_HOST_PID_BUF,
mbed_official 29:d3b77affed28 311 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 312 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 313 break;
mbed_official 29:d3b77affed28 314
mbed_official 29:d3b77affed28 315 case USB_HOST_PIPE4:
mbed_official 29:d3b77affed28 316 RZA_IO_RegWrite_16(&USB201.PIPE4CTR,
mbed_official 29:d3b77affed28 317 USB_HOST_PID_BUF,
mbed_official 29:d3b77affed28 318 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 319 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 320 break;
mbed_official 29:d3b77affed28 321
mbed_official 29:d3b77affed28 322 case USB_HOST_PIPE5:
mbed_official 29:d3b77affed28 323 RZA_IO_RegWrite_16(&USB201.PIPE5CTR,
mbed_official 29:d3b77affed28 324 USB_HOST_PID_BUF,
mbed_official 29:d3b77affed28 325 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 326 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 327 break;
mbed_official 29:d3b77affed28 328
mbed_official 29:d3b77affed28 329 case USB_HOST_PIPE6:
mbed_official 29:d3b77affed28 330 RZA_IO_RegWrite_16(&USB201.PIPE6CTR,
mbed_official 29:d3b77affed28 331 USB_HOST_PID_BUF,
mbed_official 29:d3b77affed28 332 USB_PIPEnCTR_6_8_PID_SHIFT,
mbed_official 29:d3b77affed28 333 USB_PIPEnCTR_6_8_PID);
mbed_official 29:d3b77affed28 334 break;
mbed_official 29:d3b77affed28 335
mbed_official 29:d3b77affed28 336 case USB_HOST_PIPE7:
mbed_official 29:d3b77affed28 337 RZA_IO_RegWrite_16(&USB201.PIPE7CTR,
mbed_official 29:d3b77affed28 338 USB_HOST_PID_BUF,
mbed_official 29:d3b77affed28 339 USB_PIPEnCTR_6_8_PID_SHIFT,
mbed_official 29:d3b77affed28 340 USB_PIPEnCTR_6_8_PID);
mbed_official 29:d3b77affed28 341 break;
mbed_official 29:d3b77affed28 342
mbed_official 29:d3b77affed28 343 case USB_HOST_PIPE8:
mbed_official 29:d3b77affed28 344 RZA_IO_RegWrite_16(&USB201.PIPE8CTR,
mbed_official 29:d3b77affed28 345 USB_HOST_PID_BUF,
mbed_official 29:d3b77affed28 346 USB_PIPEnCTR_6_8_PID_SHIFT,
mbed_official 29:d3b77affed28 347 USB_PIPEnCTR_6_8_PID);
mbed_official 29:d3b77affed28 348 break;
mbed_official 29:d3b77affed28 349
mbed_official 29:d3b77affed28 350 case USB_HOST_PIPE9:
mbed_official 29:d3b77affed28 351 RZA_IO_RegWrite_16(&USB201.PIPE9CTR,
mbed_official 29:d3b77affed28 352 USB_HOST_PID_BUF,
mbed_official 29:d3b77affed28 353 USB_PIPEnCTR_9_PID_SHIFT,
mbed_official 29:d3b77affed28 354 USB_PIPEnCTR_9_PID);
mbed_official 29:d3b77affed28 355 break;
mbed_official 29:d3b77affed28 356
mbed_official 29:d3b77affed28 357 default:
mbed_official 29:d3b77affed28 358 break;
mbed_official 29:d3b77affed28 359 }
mbed_official 29:d3b77affed28 360 }
mbed_official 29:d3b77affed28 361
mbed_official 29:d3b77affed28 362 /*******************************************************************************
mbed_official 29:d3b77affed28 363 * Function Name: usb1_host_set_pid_nak
mbed_official 29:d3b77affed28 364 * Description : Disables communication (NAK) in the pipe specified by the argument.
mbed_official 29:d3b77affed28 365 * : When the pipe status was enabling communication (BUF) before
mbed_official 29:d3b77affed28 366 * : executing before executing this function, waits in the software
mbed_official 29:d3b77affed28 367 * : until the pipe becomes ready after setting disabled.
mbed_official 29:d3b77affed28 368 * Arguments : uint16_t pipe ; pipe Number
mbed_official 29:d3b77affed28 369 * Return Value : none
mbed_official 29:d3b77affed28 370 *******************************************************************************/
mbed_official 29:d3b77affed28 371 void usb1_host_set_pid_nak (uint16_t pipe)
mbed_official 29:d3b77affed28 372 {
mbed_official 29:d3b77affed28 373 uint16_t pid;
mbed_official 29:d3b77affed28 374 uint16_t pbusy;
mbed_official 29:d3b77affed28 375 uint32_t loop;
mbed_official 29:d3b77affed28 376
mbed_official 29:d3b77affed28 377 pid = usb1_host_get_pid(pipe);
mbed_official 29:d3b77affed28 378
mbed_official 29:d3b77affed28 379 if (pid == USB_HOST_PID_STALL2)
mbed_official 29:d3b77affed28 380 {
mbed_official 29:d3b77affed28 381 usb1_host_set_pid_stall(pipe);
mbed_official 29:d3b77affed28 382 }
mbed_official 29:d3b77affed28 383
mbed_official 29:d3b77affed28 384 switch (pipe)
mbed_official 29:d3b77affed28 385 {
mbed_official 29:d3b77affed28 386 case USB_HOST_PIPE0:
mbed_official 29:d3b77affed28 387 RZA_IO_RegWrite_16(&USB201.DCPCTR,
mbed_official 29:d3b77affed28 388 USB_HOST_PID_NAK,
mbed_official 29:d3b77affed28 389 USB_DCPCTR_PID_SHIFT,
mbed_official 29:d3b77affed28 390 USB_DCPCTR_PID);
mbed_official 29:d3b77affed28 391 break;
mbed_official 29:d3b77affed28 392
mbed_official 29:d3b77affed28 393 case USB_HOST_PIPE1:
mbed_official 29:d3b77affed28 394 RZA_IO_RegWrite_16(&USB201.PIPE1CTR,
mbed_official 29:d3b77affed28 395 USB_HOST_PID_NAK,
mbed_official 29:d3b77affed28 396 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 397 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 398 break;
mbed_official 29:d3b77affed28 399
mbed_official 29:d3b77affed28 400 case USB_HOST_PIPE2:
mbed_official 29:d3b77affed28 401 RZA_IO_RegWrite_16(&USB201.PIPE2CTR,
mbed_official 29:d3b77affed28 402 USB_HOST_PID_NAK,
mbed_official 29:d3b77affed28 403 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 404 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 405 break;
mbed_official 29:d3b77affed28 406
mbed_official 29:d3b77affed28 407 case USB_HOST_PIPE3:
mbed_official 29:d3b77affed28 408 RZA_IO_RegWrite_16(&USB201.PIPE3CTR,
mbed_official 29:d3b77affed28 409 USB_HOST_PID_NAK,
mbed_official 29:d3b77affed28 410 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 411 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 412 break;
mbed_official 29:d3b77affed28 413
mbed_official 29:d3b77affed28 414 case USB_HOST_PIPE4:
mbed_official 29:d3b77affed28 415 RZA_IO_RegWrite_16(&USB201.PIPE4CTR,
mbed_official 29:d3b77affed28 416 USB_HOST_PID_NAK,
mbed_official 29:d3b77affed28 417 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 418 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 419 break;
mbed_official 29:d3b77affed28 420
mbed_official 29:d3b77affed28 421 case USB_HOST_PIPE5:
mbed_official 29:d3b77affed28 422 RZA_IO_RegWrite_16(&USB201.PIPE5CTR,
mbed_official 29:d3b77affed28 423 USB_HOST_PID_NAK,
mbed_official 29:d3b77affed28 424 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 425 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 426 break;
mbed_official 29:d3b77affed28 427
mbed_official 29:d3b77affed28 428 case USB_HOST_PIPE6:
mbed_official 29:d3b77affed28 429 RZA_IO_RegWrite_16(&USB201.PIPE6CTR,
mbed_official 29:d3b77affed28 430 USB_HOST_PID_NAK,
mbed_official 29:d3b77affed28 431 USB_PIPEnCTR_6_8_PID_SHIFT,
mbed_official 29:d3b77affed28 432 USB_PIPEnCTR_6_8_PID);
mbed_official 29:d3b77affed28 433 break;
mbed_official 29:d3b77affed28 434
mbed_official 29:d3b77affed28 435 case USB_HOST_PIPE7:
mbed_official 29:d3b77affed28 436 RZA_IO_RegWrite_16(&USB201.PIPE7CTR,
mbed_official 29:d3b77affed28 437 USB_HOST_PID_NAK,
mbed_official 29:d3b77affed28 438 USB_PIPEnCTR_6_8_PID_SHIFT,
mbed_official 29:d3b77affed28 439 USB_PIPEnCTR_6_8_PID);
mbed_official 29:d3b77affed28 440 break;
mbed_official 29:d3b77affed28 441
mbed_official 29:d3b77affed28 442 case USB_HOST_PIPE8:
mbed_official 29:d3b77affed28 443 RZA_IO_RegWrite_16(&USB201.PIPE8CTR,
mbed_official 29:d3b77affed28 444 USB_HOST_PID_NAK,
mbed_official 29:d3b77affed28 445 USB_PIPEnCTR_6_8_PID_SHIFT,
mbed_official 29:d3b77affed28 446 USB_PIPEnCTR_6_8_PID);
mbed_official 29:d3b77affed28 447 break;
mbed_official 29:d3b77affed28 448
mbed_official 29:d3b77affed28 449 case USB_HOST_PIPE9:
mbed_official 29:d3b77affed28 450 RZA_IO_RegWrite_16(&USB201.PIPE9CTR,
mbed_official 29:d3b77affed28 451 USB_HOST_PID_NAK,
mbed_official 29:d3b77affed28 452 USB_PIPEnCTR_9_PID_SHIFT,
mbed_official 29:d3b77affed28 453 USB_PIPEnCTR_9_PID);
mbed_official 29:d3b77affed28 454 break;
mbed_official 29:d3b77affed28 455
mbed_official 29:d3b77affed28 456 default:
mbed_official 29:d3b77affed28 457 break;
mbed_official 29:d3b77affed28 458 }
mbed_official 29:d3b77affed28 459
mbed_official 29:d3b77affed28 460 if (pid == USB_HOST_PID_BUF)
mbed_official 29:d3b77affed28 461 {
mbed_official 29:d3b77affed28 462 for (loop = 0; loop < 200; loop++)
mbed_official 29:d3b77affed28 463 {
mbed_official 29:d3b77affed28 464 switch (pipe)
mbed_official 29:d3b77affed28 465 {
mbed_official 29:d3b77affed28 466 case USB_HOST_PIPE0:
mbed_official 29:d3b77affed28 467 pbusy = RZA_IO_RegRead_16(&USB201.DCPCTR,
mbed_official 29:d3b77affed28 468 USB_DCPCTR_PBUSY_SHIFT,
mbed_official 29:d3b77affed28 469 USB_DCPCTR_PBUSY);
mbed_official 29:d3b77affed28 470 break;
mbed_official 29:d3b77affed28 471
mbed_official 29:d3b77affed28 472 case USB_HOST_PIPE1:
mbed_official 29:d3b77affed28 473 pbusy = RZA_IO_RegRead_16(&USB201.PIPE1CTR,
mbed_official 29:d3b77affed28 474 USB_PIPEnCTR_1_5_PBUSY_SHIFT,
mbed_official 29:d3b77affed28 475 USB_PIPEnCTR_1_5_PBUSY);
mbed_official 29:d3b77affed28 476 break;
mbed_official 29:d3b77affed28 477
mbed_official 29:d3b77affed28 478 case USB_HOST_PIPE2:
mbed_official 29:d3b77affed28 479 pbusy = RZA_IO_RegRead_16(&USB201.PIPE2CTR,
mbed_official 29:d3b77affed28 480 USB_PIPEnCTR_1_5_PBUSY_SHIFT,
mbed_official 29:d3b77affed28 481 USB_PIPEnCTR_1_5_PBUSY);
mbed_official 29:d3b77affed28 482 break;
mbed_official 29:d3b77affed28 483
mbed_official 29:d3b77affed28 484 case USB_HOST_PIPE3:
mbed_official 29:d3b77affed28 485 pbusy = RZA_IO_RegRead_16(&USB201.PIPE3CTR,
mbed_official 29:d3b77affed28 486 USB_PIPEnCTR_1_5_PBUSY_SHIFT,
mbed_official 29:d3b77affed28 487 USB_PIPEnCTR_1_5_PBUSY);
mbed_official 29:d3b77affed28 488 break;
mbed_official 29:d3b77affed28 489
mbed_official 29:d3b77affed28 490 case USB_HOST_PIPE4:
mbed_official 29:d3b77affed28 491 pbusy = RZA_IO_RegRead_16(&USB201.PIPE4CTR,
mbed_official 29:d3b77affed28 492 USB_PIPEnCTR_1_5_PBUSY_SHIFT,
mbed_official 29:d3b77affed28 493 USB_PIPEnCTR_1_5_PBUSY);
mbed_official 29:d3b77affed28 494 break;
mbed_official 29:d3b77affed28 495
mbed_official 29:d3b77affed28 496 case USB_HOST_PIPE5:
mbed_official 29:d3b77affed28 497 pbusy = RZA_IO_RegRead_16(&USB201.PIPE5CTR,
mbed_official 29:d3b77affed28 498 USB_PIPEnCTR_1_5_PBUSY_SHIFT,
mbed_official 29:d3b77affed28 499 USB_PIPEnCTR_1_5_PBUSY);
mbed_official 29:d3b77affed28 500 break;
mbed_official 29:d3b77affed28 501
mbed_official 29:d3b77affed28 502 case USB_HOST_PIPE6:
mbed_official 29:d3b77affed28 503 pbusy = RZA_IO_RegRead_16(&USB201.PIPE6CTR,
mbed_official 29:d3b77affed28 504 USB_PIPEnCTR_6_8_PBUSY_SHIFT,
mbed_official 29:d3b77affed28 505 USB_PIPEnCTR_6_8_PBUSY);
mbed_official 29:d3b77affed28 506 break;
mbed_official 29:d3b77affed28 507
mbed_official 29:d3b77affed28 508 case USB_HOST_PIPE7:
mbed_official 29:d3b77affed28 509 pbusy = RZA_IO_RegRead_16(&USB201.PIPE7CTR,
mbed_official 29:d3b77affed28 510 USB_PIPEnCTR_6_8_PBUSY_SHIFT,
mbed_official 29:d3b77affed28 511 USB_PIPEnCTR_6_8_PBUSY);
mbed_official 29:d3b77affed28 512 break;
mbed_official 29:d3b77affed28 513
mbed_official 29:d3b77affed28 514 case USB_HOST_PIPE8:
mbed_official 29:d3b77affed28 515 pbusy = RZA_IO_RegRead_16(&USB201.PIPE8CTR,
mbed_official 29:d3b77affed28 516 USB_PIPEnCTR_6_8_PBUSY_SHIFT,
mbed_official 29:d3b77affed28 517 USB_PIPEnCTR_6_8_PBUSY);
mbed_official 29:d3b77affed28 518 break;
mbed_official 29:d3b77affed28 519
mbed_official 29:d3b77affed28 520 case USB_HOST_PIPE9:
mbed_official 29:d3b77affed28 521 pbusy = RZA_IO_RegRead_16(&USB201.PIPE9CTR,
mbed_official 29:d3b77affed28 522 USB_PIPEnCTR_9_PBUSY_SHIFT,
mbed_official 29:d3b77affed28 523 USB_PIPEnCTR_9_PBUSY);
mbed_official 29:d3b77affed28 524 break;
mbed_official 29:d3b77affed28 525
mbed_official 29:d3b77affed28 526 default:
mbed_official 29:d3b77affed28 527 pbusy = 1;
mbed_official 29:d3b77affed28 528 break;
mbed_official 29:d3b77affed28 529 }
mbed_official 29:d3b77affed28 530
mbed_official 29:d3b77affed28 531 if (pbusy == 0)
mbed_official 29:d3b77affed28 532 {
mbed_official 29:d3b77affed28 533 break;
mbed_official 29:d3b77affed28 534 }
mbed_official 29:d3b77affed28 535
mbed_official 29:d3b77affed28 536 Userdef_USB_usb1_host_delay_500ns();
mbed_official 29:d3b77affed28 537 }
mbed_official 29:d3b77affed28 538 }
mbed_official 29:d3b77affed28 539 }
mbed_official 29:d3b77affed28 540
mbed_official 29:d3b77affed28 541 /*******************************************************************************
mbed_official 29:d3b77affed28 542 * Function Name: usb1_host_set_pid_stall
mbed_official 29:d3b77affed28 543 * Description : Disables communication (STALL) in the pipe specified by the
mbed_official 29:d3b77affed28 544 * : argument.
mbed_official 29:d3b77affed28 545 * Arguments : uint16_t pipe ; pipe Number
mbed_official 29:d3b77affed28 546 * Return Value : none
mbed_official 29:d3b77affed28 547 *******************************************************************************/
mbed_official 29:d3b77affed28 548 void usb1_host_set_pid_stall (uint16_t pipe)
mbed_official 29:d3b77affed28 549 {
mbed_official 29:d3b77affed28 550 uint16_t pid;
mbed_official 29:d3b77affed28 551
mbed_official 29:d3b77affed28 552 pid = usb1_host_get_pid(pipe);
mbed_official 29:d3b77affed28 553
mbed_official 29:d3b77affed28 554 if (pid == USB_HOST_PID_BUF)
mbed_official 29:d3b77affed28 555 {
mbed_official 29:d3b77affed28 556 switch (pipe)
mbed_official 29:d3b77affed28 557 {
mbed_official 29:d3b77affed28 558 case USB_HOST_PIPE0:
mbed_official 29:d3b77affed28 559 RZA_IO_RegWrite_16(&USB201.DCPCTR,
mbed_official 29:d3b77affed28 560 USB_HOST_PID_STALL2,
mbed_official 29:d3b77affed28 561 USB_DCPCTR_PID_SHIFT,
mbed_official 29:d3b77affed28 562 USB_DCPCTR_PID);
mbed_official 29:d3b77affed28 563 break;
mbed_official 29:d3b77affed28 564
mbed_official 29:d3b77affed28 565 case USB_HOST_PIPE1:
mbed_official 29:d3b77affed28 566 RZA_IO_RegWrite_16(&USB201.PIPE1CTR,
mbed_official 29:d3b77affed28 567 USB_HOST_PID_STALL2,
mbed_official 29:d3b77affed28 568 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 569 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 570 break;
mbed_official 29:d3b77affed28 571
mbed_official 29:d3b77affed28 572 case USB_HOST_PIPE2:
mbed_official 29:d3b77affed28 573 RZA_IO_RegWrite_16(&USB201.PIPE2CTR,
mbed_official 29:d3b77affed28 574 USB_HOST_PID_STALL2,
mbed_official 29:d3b77affed28 575 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 576 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 577 break;
mbed_official 29:d3b77affed28 578
mbed_official 29:d3b77affed28 579 case USB_HOST_PIPE3:
mbed_official 29:d3b77affed28 580 RZA_IO_RegWrite_16(&USB201.PIPE3CTR,
mbed_official 29:d3b77affed28 581 USB_HOST_PID_STALL2,
mbed_official 29:d3b77affed28 582 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 583 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 584 break;
mbed_official 29:d3b77affed28 585
mbed_official 29:d3b77affed28 586 case USB_HOST_PIPE4:
mbed_official 29:d3b77affed28 587 RZA_IO_RegWrite_16(&USB201.PIPE4CTR,
mbed_official 29:d3b77affed28 588 USB_HOST_PID_STALL2,
mbed_official 29:d3b77affed28 589 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 590 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 591 break;
mbed_official 29:d3b77affed28 592
mbed_official 29:d3b77affed28 593 case USB_HOST_PIPE5:
mbed_official 29:d3b77affed28 594 RZA_IO_RegWrite_16(&USB201.PIPE5CTR,
mbed_official 29:d3b77affed28 595 USB_HOST_PID_STALL2,
mbed_official 29:d3b77affed28 596 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 597 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 598 break;
mbed_official 29:d3b77affed28 599
mbed_official 29:d3b77affed28 600 case USB_HOST_PIPE6:
mbed_official 29:d3b77affed28 601 RZA_IO_RegWrite_16(&USB201.PIPE6CTR,
mbed_official 29:d3b77affed28 602 USB_HOST_PID_STALL2,
mbed_official 29:d3b77affed28 603 USB_PIPEnCTR_6_8_PID_SHIFT,
mbed_official 29:d3b77affed28 604 USB_PIPEnCTR_6_8_PID);
mbed_official 29:d3b77affed28 605 break;
mbed_official 29:d3b77affed28 606
mbed_official 29:d3b77affed28 607 case USB_HOST_PIPE7:
mbed_official 29:d3b77affed28 608 RZA_IO_RegWrite_16(&USB201.PIPE7CTR,
mbed_official 29:d3b77affed28 609 USB_HOST_PID_STALL2,
mbed_official 29:d3b77affed28 610 USB_PIPEnCTR_6_8_PID_SHIFT,
mbed_official 29:d3b77affed28 611 USB_PIPEnCTR_6_8_PID);
mbed_official 29:d3b77affed28 612 break;
mbed_official 29:d3b77affed28 613
mbed_official 29:d3b77affed28 614 case USB_HOST_PIPE8:
mbed_official 29:d3b77affed28 615 RZA_IO_RegWrite_16(&USB201.PIPE8CTR,
mbed_official 29:d3b77affed28 616 USB_HOST_PID_STALL2,
mbed_official 29:d3b77affed28 617 USB_PIPEnCTR_6_8_PID_SHIFT,
mbed_official 29:d3b77affed28 618 USB_PIPEnCTR_6_8_PID);
mbed_official 29:d3b77affed28 619 break;
mbed_official 29:d3b77affed28 620
mbed_official 29:d3b77affed28 621 case USB_HOST_PIPE9:
mbed_official 29:d3b77affed28 622 RZA_IO_RegWrite_16(&USB201.PIPE9CTR,
mbed_official 29:d3b77affed28 623 USB_HOST_PID_STALL2,
mbed_official 29:d3b77affed28 624 USB_PIPEnCTR_9_PID_SHIFT,
mbed_official 29:d3b77affed28 625 USB_PIPEnCTR_9_PID);
mbed_official 29:d3b77affed28 626 break;
mbed_official 29:d3b77affed28 627
mbed_official 29:d3b77affed28 628 default:
mbed_official 29:d3b77affed28 629 break;
mbed_official 29:d3b77affed28 630 }
mbed_official 29:d3b77affed28 631 }
mbed_official 29:d3b77affed28 632 else
mbed_official 29:d3b77affed28 633 {
mbed_official 29:d3b77affed28 634 switch (pipe)
mbed_official 29:d3b77affed28 635 {
mbed_official 29:d3b77affed28 636 case USB_HOST_PIPE0:
mbed_official 29:d3b77affed28 637 RZA_IO_RegWrite_16(&USB201.DCPCTR,
mbed_official 29:d3b77affed28 638 USB_HOST_PID_STALL,
mbed_official 29:d3b77affed28 639 USB_DCPCTR_PID_SHIFT,
mbed_official 29:d3b77affed28 640 USB_DCPCTR_PID);
mbed_official 29:d3b77affed28 641 break;
mbed_official 29:d3b77affed28 642
mbed_official 29:d3b77affed28 643 case USB_HOST_PIPE1:
mbed_official 29:d3b77affed28 644 RZA_IO_RegWrite_16(&USB201.PIPE1CTR,
mbed_official 29:d3b77affed28 645 USB_HOST_PID_STALL,
mbed_official 29:d3b77affed28 646 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 647 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 648 break;
mbed_official 29:d3b77affed28 649
mbed_official 29:d3b77affed28 650 case USB_HOST_PIPE2:
mbed_official 29:d3b77affed28 651 RZA_IO_RegWrite_16(&USB201.PIPE2CTR,
mbed_official 29:d3b77affed28 652 USB_HOST_PID_STALL,
mbed_official 29:d3b77affed28 653 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 654 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 655 break;
mbed_official 29:d3b77affed28 656
mbed_official 29:d3b77affed28 657 case USB_HOST_PIPE3:
mbed_official 29:d3b77affed28 658 RZA_IO_RegWrite_16(&USB201.PIPE3CTR,
mbed_official 29:d3b77affed28 659 USB_HOST_PID_STALL,
mbed_official 29:d3b77affed28 660 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 661 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 662 break;
mbed_official 29:d3b77affed28 663
mbed_official 29:d3b77affed28 664 case USB_HOST_PIPE4:
mbed_official 29:d3b77affed28 665 RZA_IO_RegWrite_16(&USB201.PIPE4CTR,
mbed_official 29:d3b77affed28 666 USB_HOST_PID_STALL,
mbed_official 29:d3b77affed28 667 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 668 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 669 break;
mbed_official 29:d3b77affed28 670
mbed_official 29:d3b77affed28 671 case USB_HOST_PIPE5:
mbed_official 29:d3b77affed28 672 RZA_IO_RegWrite_16(&USB201.PIPE5CTR,
mbed_official 29:d3b77affed28 673 USB_HOST_PID_STALL,
mbed_official 29:d3b77affed28 674 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 675 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 676 break;
mbed_official 29:d3b77affed28 677
mbed_official 29:d3b77affed28 678 case USB_HOST_PIPE6:
mbed_official 29:d3b77affed28 679 RZA_IO_RegWrite_16(&USB201.PIPE6CTR,
mbed_official 29:d3b77affed28 680 USB_HOST_PID_STALL,
mbed_official 29:d3b77affed28 681 USB_PIPEnCTR_6_8_PID_SHIFT,
mbed_official 29:d3b77affed28 682 USB_PIPEnCTR_6_8_PID);
mbed_official 29:d3b77affed28 683 break;
mbed_official 29:d3b77affed28 684
mbed_official 29:d3b77affed28 685 case USB_HOST_PIPE7:
mbed_official 29:d3b77affed28 686 RZA_IO_RegWrite_16(&USB201.PIPE7CTR,
mbed_official 29:d3b77affed28 687 USB_HOST_PID_STALL,
mbed_official 29:d3b77affed28 688 USB_PIPEnCTR_6_8_PID_SHIFT,
mbed_official 29:d3b77affed28 689 USB_PIPEnCTR_6_8_PID);
mbed_official 29:d3b77affed28 690 break;
mbed_official 29:d3b77affed28 691
mbed_official 29:d3b77affed28 692 case USB_HOST_PIPE8:
mbed_official 29:d3b77affed28 693 RZA_IO_RegWrite_16(&USB201.PIPE8CTR,
mbed_official 29:d3b77affed28 694 USB_HOST_PID_STALL,
mbed_official 29:d3b77affed28 695 USB_PIPEnCTR_6_8_PID_SHIFT,
mbed_official 29:d3b77affed28 696 USB_PIPEnCTR_6_8_PID);
mbed_official 29:d3b77affed28 697 break;
mbed_official 29:d3b77affed28 698
mbed_official 29:d3b77affed28 699 case USB_HOST_PIPE9:
mbed_official 29:d3b77affed28 700 RZA_IO_RegWrite_16(&USB201.PIPE9CTR,
mbed_official 29:d3b77affed28 701 USB_HOST_PID_STALL,
mbed_official 29:d3b77affed28 702 USB_PIPEnCTR_9_PID_SHIFT,
mbed_official 29:d3b77affed28 703 USB_PIPEnCTR_9_PID);
mbed_official 29:d3b77affed28 704 break;
mbed_official 29:d3b77affed28 705
mbed_official 29:d3b77affed28 706 default:
mbed_official 29:d3b77affed28 707 break;
mbed_official 29:d3b77affed28 708 }
mbed_official 29:d3b77affed28 709 }
mbed_official 29:d3b77affed28 710 }
mbed_official 29:d3b77affed28 711
mbed_official 29:d3b77affed28 712 /*******************************************************************************
mbed_official 29:d3b77affed28 713 * Function Name: usb1_host_clear_pid_stall
mbed_official 29:d3b77affed28 714 * Description : Disables communication (NAK) in the pipe specified by the argument.
mbed_official 29:d3b77affed28 715 * Arguments : uint16_t pipe ; pipe Number
mbed_official 29:d3b77affed28 716 * Return Value : none
mbed_official 29:d3b77affed28 717 *******************************************************************************/
mbed_official 29:d3b77affed28 718 void usb1_host_clear_pid_stall (uint16_t pipe)
mbed_official 29:d3b77affed28 719 {
mbed_official 29:d3b77affed28 720 usb1_host_set_pid_nak(pipe);
mbed_official 29:d3b77affed28 721 }
mbed_official 29:d3b77affed28 722
mbed_official 29:d3b77affed28 723 /*******************************************************************************
mbed_official 29:d3b77affed28 724 * Function Name: usb1_host_get_pid
mbed_official 29:d3b77affed28 725 * Description : Returns the pipe state specified by the argument.
mbed_official 29:d3b77affed28 726 * Arguments : uint16_t pipe ; Pipe Number
mbed_official 29:d3b77affed28 727 * Return Value : PID
mbed_official 29:d3b77affed28 728 *******************************************************************************/
mbed_official 29:d3b77affed28 729 uint16_t usb1_host_get_pid (uint16_t pipe)
mbed_official 29:d3b77affed28 730 {
mbed_official 29:d3b77affed28 731 uint16_t pid;
mbed_official 29:d3b77affed28 732
mbed_official 29:d3b77affed28 733 switch (pipe)
mbed_official 29:d3b77affed28 734 {
mbed_official 29:d3b77affed28 735 case USB_HOST_PIPE0:
mbed_official 29:d3b77affed28 736 pid = RZA_IO_RegRead_16(&USB201.DCPCTR,
mbed_official 29:d3b77affed28 737 USB_DCPCTR_PID_SHIFT,
mbed_official 29:d3b77affed28 738 USB_DCPCTR_PID);
mbed_official 29:d3b77affed28 739 break;
mbed_official 29:d3b77affed28 740
mbed_official 29:d3b77affed28 741 case USB_HOST_PIPE1:
mbed_official 29:d3b77affed28 742 pid = RZA_IO_RegRead_16(&USB201.PIPE1CTR,
mbed_official 29:d3b77affed28 743 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 744 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 745 break;
mbed_official 29:d3b77affed28 746
mbed_official 29:d3b77affed28 747 case USB_HOST_PIPE2:
mbed_official 29:d3b77affed28 748 pid = RZA_IO_RegRead_16(&USB201.PIPE2CTR,
mbed_official 29:d3b77affed28 749 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 750 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 751 break;
mbed_official 29:d3b77affed28 752
mbed_official 29:d3b77affed28 753 case USB_HOST_PIPE3:
mbed_official 29:d3b77affed28 754 pid = RZA_IO_RegRead_16(&USB201.PIPE3CTR,
mbed_official 29:d3b77affed28 755 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 756 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 757 break;
mbed_official 29:d3b77affed28 758
mbed_official 29:d3b77affed28 759 case USB_HOST_PIPE4:
mbed_official 29:d3b77affed28 760 pid = RZA_IO_RegRead_16(&USB201.PIPE4CTR,
mbed_official 29:d3b77affed28 761 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 762 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 763 break;
mbed_official 29:d3b77affed28 764
mbed_official 29:d3b77affed28 765 case USB_HOST_PIPE5:
mbed_official 29:d3b77affed28 766 pid = RZA_IO_RegRead_16(&USB201.PIPE5CTR,
mbed_official 29:d3b77affed28 767 USB_PIPEnCTR_1_5_PID_SHIFT,
mbed_official 29:d3b77affed28 768 USB_PIPEnCTR_1_5_PID);
mbed_official 29:d3b77affed28 769 break;
mbed_official 29:d3b77affed28 770
mbed_official 29:d3b77affed28 771 case USB_HOST_PIPE6:
mbed_official 29:d3b77affed28 772 pid = RZA_IO_RegRead_16(&USB201.PIPE6CTR,
mbed_official 29:d3b77affed28 773 USB_PIPEnCTR_6_8_PID_SHIFT,
mbed_official 29:d3b77affed28 774 USB_PIPEnCTR_6_8_PID);
mbed_official 29:d3b77affed28 775 break;
mbed_official 29:d3b77affed28 776
mbed_official 29:d3b77affed28 777 case USB_HOST_PIPE7:
mbed_official 29:d3b77affed28 778 pid = RZA_IO_RegRead_16(&USB201.PIPE7CTR,
mbed_official 29:d3b77affed28 779 USB_PIPEnCTR_6_8_PID_SHIFT,
mbed_official 29:d3b77affed28 780 USB_PIPEnCTR_6_8_PID);
mbed_official 29:d3b77affed28 781 break;
mbed_official 29:d3b77affed28 782
mbed_official 29:d3b77affed28 783 case USB_HOST_PIPE8:
mbed_official 29:d3b77affed28 784 pid = RZA_IO_RegRead_16(&USB201.PIPE8CTR,
mbed_official 29:d3b77affed28 785 USB_PIPEnCTR_6_8_PID_SHIFT,
mbed_official 29:d3b77affed28 786 USB_PIPEnCTR_6_8_PID);
mbed_official 29:d3b77affed28 787 break;
mbed_official 29:d3b77affed28 788
mbed_official 29:d3b77affed28 789 case USB_HOST_PIPE9:
mbed_official 29:d3b77affed28 790 pid = RZA_IO_RegRead_16(&USB201.PIPE9CTR,
mbed_official 29:d3b77affed28 791 USB_PIPEnCTR_9_PID_SHIFT,
mbed_official 29:d3b77affed28 792 USB_PIPEnCTR_9_PID);
mbed_official 29:d3b77affed28 793 break;
mbed_official 29:d3b77affed28 794
mbed_official 29:d3b77affed28 795 default:
mbed_official 29:d3b77affed28 796 pid = 0;
mbed_official 29:d3b77affed28 797 break;
mbed_official 29:d3b77affed28 798 }
mbed_official 29:d3b77affed28 799
mbed_official 29:d3b77affed28 800 return pid;
mbed_official 29:d3b77affed28 801 }
mbed_official 29:d3b77affed28 802
mbed_official 29:d3b77affed28 803 /*******************************************************************************
mbed_official 29:d3b77affed28 804 * Function Name: usb1_host_set_csclr
mbed_official 29:d3b77affed28 805 * Description : CSPLIT status clear setting of sprit transaction in specified
mbed_official 29:d3b77affed28 806 * : pipe is performed.
mbed_official 29:d3b77affed28 807 * : When SQSET bit or SQCLR bit, and SQSET bit or SQCLR bit
mbed_official 29:d3b77affed28 808 * : in DCPCTR register are continuously changed (when the sequence
mbed_official 29:d3b77affed28 809 * : toggle bit of data PID is continuously changed over two or more pipes),
mbed_official 29:d3b77affed28 810 * : the access cycle with 120 ns and more than 5 cycle bus clock is necessary.
mbed_official 29:d3b77affed28 811 * : Do not set both SQCLR bit and SQSET bit to 1 at the same time.
mbed_official 29:d3b77affed28 812 * : In addition, both bits should be operated after PID is set to NAK.
mbed_official 29:d3b77affed28 813 * : However, when it is set to the isochronous transfer as the transfer type
mbed_official 29:d3b77affed28 814 * : (TYPE=11), writing in SQSET bit is disabled.
mbed_official 29:d3b77affed28 815 * Arguments : uint16_t pipe ; Pipe number
mbed_official 29:d3b77affed28 816 * Return Value : none
mbed_official 29:d3b77affed28 817 *******************************************************************************/
mbed_official 29:d3b77affed28 818 void usb1_host_set_csclr (uint16_t pipe)
mbed_official 29:d3b77affed28 819 {
mbed_official 29:d3b77affed28 820 switch (pipe)
mbed_official 29:d3b77affed28 821 {
mbed_official 29:d3b77affed28 822 case USB_HOST_PIPE0:
mbed_official 29:d3b77affed28 823 RZA_IO_RegWrite_16(&USB201.DCPCTR,
mbed_official 29:d3b77affed28 824 1,
mbed_official 29:d3b77affed28 825 USB_DCPCTR_CSCLR_SHIFT,
mbed_official 29:d3b77affed28 826 USB_DCPCTR_CSCLR);
mbed_official 29:d3b77affed28 827 break;
mbed_official 29:d3b77affed28 828
mbed_official 29:d3b77affed28 829 case USB_HOST_PIPE1:
mbed_official 29:d3b77affed28 830 RZA_IO_RegWrite_16(&USB201.PIPE1CTR,
mbed_official 29:d3b77affed28 831 1,
mbed_official 29:d3b77affed28 832 USB_PIPEnCTR_1_5_CSCLR_SHIFT,
mbed_official 29:d3b77affed28 833 USB_PIPEnCTR_1_5_CSCLR);
mbed_official 29:d3b77affed28 834 break;
mbed_official 29:d3b77affed28 835
mbed_official 29:d3b77affed28 836 case USB_HOST_PIPE2:
mbed_official 29:d3b77affed28 837 RZA_IO_RegWrite_16(&USB201.PIPE2CTR,
mbed_official 29:d3b77affed28 838 1,
mbed_official 29:d3b77affed28 839 USB_PIPEnCTR_1_5_CSCLR_SHIFT,
mbed_official 29:d3b77affed28 840 USB_PIPEnCTR_1_5_CSCLR);
mbed_official 29:d3b77affed28 841 break;
mbed_official 29:d3b77affed28 842
mbed_official 29:d3b77affed28 843 case USB_HOST_PIPE3:
mbed_official 29:d3b77affed28 844 RZA_IO_RegWrite_16(&USB201.PIPE3CTR,
mbed_official 29:d3b77affed28 845 1,
mbed_official 29:d3b77affed28 846 USB_PIPEnCTR_1_5_CSCLR_SHIFT,
mbed_official 29:d3b77affed28 847 USB_PIPEnCTR_1_5_CSCLR);
mbed_official 29:d3b77affed28 848 break;
mbed_official 29:d3b77affed28 849
mbed_official 29:d3b77affed28 850 case USB_HOST_PIPE4:
mbed_official 29:d3b77affed28 851 RZA_IO_RegWrite_16(&USB201.PIPE4CTR,
mbed_official 29:d3b77affed28 852 1,
mbed_official 29:d3b77affed28 853 USB_PIPEnCTR_1_5_CSCLR_SHIFT,
mbed_official 29:d3b77affed28 854 USB_PIPEnCTR_1_5_CSCLR);
mbed_official 29:d3b77affed28 855 break;
mbed_official 29:d3b77affed28 856
mbed_official 29:d3b77affed28 857 case USB_HOST_PIPE5:
mbed_official 29:d3b77affed28 858 RZA_IO_RegWrite_16(&USB201.PIPE5CTR,
mbed_official 29:d3b77affed28 859 1,
mbed_official 29:d3b77affed28 860 USB_PIPEnCTR_1_5_CSCLR_SHIFT,
mbed_official 29:d3b77affed28 861 USB_PIPEnCTR_1_5_CSCLR);
mbed_official 29:d3b77affed28 862 break;
mbed_official 29:d3b77affed28 863
mbed_official 29:d3b77affed28 864 case USB_HOST_PIPE6:
mbed_official 29:d3b77affed28 865 RZA_IO_RegWrite_16(&USB201.PIPE6CTR,
mbed_official 29:d3b77affed28 866 1,
mbed_official 29:d3b77affed28 867 USB_PIPEnCTR_6_8_CSCLR_SHIFT,
mbed_official 29:d3b77affed28 868 USB_PIPEnCTR_6_8_CSCLR);
mbed_official 29:d3b77affed28 869 break;
mbed_official 29:d3b77affed28 870
mbed_official 29:d3b77affed28 871 case USB_HOST_PIPE7:
mbed_official 29:d3b77affed28 872 RZA_IO_RegWrite_16(&USB201.PIPE7CTR,
mbed_official 29:d3b77affed28 873 1,
mbed_official 29:d3b77affed28 874 USB_PIPEnCTR_6_8_CSCLR_SHIFT,
mbed_official 29:d3b77affed28 875 USB_PIPEnCTR_6_8_CSCLR);
mbed_official 29:d3b77affed28 876 break;
mbed_official 29:d3b77affed28 877
mbed_official 29:d3b77affed28 878 case USB_HOST_PIPE8:
mbed_official 29:d3b77affed28 879 RZA_IO_RegWrite_16(&USB201.PIPE8CTR,
mbed_official 29:d3b77affed28 880 1,
mbed_official 29:d3b77affed28 881 USB_PIPEnCTR_6_8_CSCLR_SHIFT,
mbed_official 29:d3b77affed28 882 USB_PIPEnCTR_6_8_CSCLR);
mbed_official 29:d3b77affed28 883 break;
mbed_official 29:d3b77affed28 884
mbed_official 29:d3b77affed28 885 case USB_HOST_PIPE9:
mbed_official 29:d3b77affed28 886 RZA_IO_RegWrite_16(&USB201.PIPE9CTR,
mbed_official 29:d3b77affed28 887 1,
mbed_official 29:d3b77affed28 888 USB_PIPEnCTR_9_CSCLR_SHIFT,
mbed_official 29:d3b77affed28 889 USB_PIPEnCTR_9_CSCLR);
mbed_official 29:d3b77affed28 890 break;
mbed_official 29:d3b77affed28 891
mbed_official 29:d3b77affed28 892 default:
mbed_official 29:d3b77affed28 893 break;
mbed_official 29:d3b77affed28 894 }
mbed_official 29:d3b77affed28 895 }
mbed_official 29:d3b77affed28 896
mbed_official 29:d3b77affed28 897 /*******************************************************************************
mbed_official 29:d3b77affed28 898 * Function Name: usb1_host_set_sqclr
mbed_official 29:d3b77affed28 899 * Description : Sets the sequence bit of the pipe specified by the argument to
mbed_official 29:d3b77affed28 900 * : DATA0.
mbed_official 29:d3b77affed28 901 * Arguments : uint16_t pipe ; Pipe Number
mbed_official 29:d3b77affed28 902 * Return Value : none
mbed_official 29:d3b77affed28 903 *******************************************************************************/
mbed_official 29:d3b77affed28 904 void usb1_host_set_sqclr (uint16_t pipe)
mbed_official 29:d3b77affed28 905 {
mbed_official 29:d3b77affed28 906 switch (pipe)
mbed_official 29:d3b77affed28 907 {
mbed_official 29:d3b77affed28 908 case USB_HOST_PIPE0:
mbed_official 29:d3b77affed28 909 RZA_IO_RegWrite_16(&USB201.DCPCTR,
mbed_official 29:d3b77affed28 910 1,
mbed_official 29:d3b77affed28 911 USB_DCPCTR_SQCLR_SHIFT,
mbed_official 29:d3b77affed28 912 USB_DCPCTR_SQCLR);
mbed_official 29:d3b77affed28 913 break;
mbed_official 29:d3b77affed28 914
mbed_official 29:d3b77affed28 915 case USB_HOST_PIPE1:
mbed_official 29:d3b77affed28 916 RZA_IO_RegWrite_16(&USB201.PIPE1CTR,
mbed_official 29:d3b77affed28 917 1,
mbed_official 29:d3b77affed28 918 USB_PIPEnCTR_1_5_SQCLR_SHIFT,
mbed_official 29:d3b77affed28 919 USB_PIPEnCTR_1_5_SQCLR);
mbed_official 29:d3b77affed28 920 break;
mbed_official 29:d3b77affed28 921
mbed_official 29:d3b77affed28 922 case USB_HOST_PIPE2:
mbed_official 29:d3b77affed28 923 RZA_IO_RegWrite_16(&USB201.PIPE2CTR,
mbed_official 29:d3b77affed28 924 1,
mbed_official 29:d3b77affed28 925 USB_PIPEnCTR_1_5_SQCLR_SHIFT,
mbed_official 29:d3b77affed28 926 USB_PIPEnCTR_1_5_SQCLR);
mbed_official 29:d3b77affed28 927 break;
mbed_official 29:d3b77affed28 928
mbed_official 29:d3b77affed28 929 case USB_HOST_PIPE3:
mbed_official 29:d3b77affed28 930 RZA_IO_RegWrite_16(&USB201.PIPE3CTR,
mbed_official 29:d3b77affed28 931 1,
mbed_official 29:d3b77affed28 932 USB_PIPEnCTR_1_5_SQCLR_SHIFT,
mbed_official 29:d3b77affed28 933 USB_PIPEnCTR_1_5_SQCLR);
mbed_official 29:d3b77affed28 934 break;
mbed_official 29:d3b77affed28 935
mbed_official 29:d3b77affed28 936 case USB_HOST_PIPE4:
mbed_official 29:d3b77affed28 937 RZA_IO_RegWrite_16(&USB201.PIPE4CTR,
mbed_official 29:d3b77affed28 938 1,
mbed_official 29:d3b77affed28 939 USB_PIPEnCTR_1_5_SQCLR_SHIFT,
mbed_official 29:d3b77affed28 940 USB_PIPEnCTR_1_5_SQCLR);
mbed_official 29:d3b77affed28 941 break;
mbed_official 29:d3b77affed28 942
mbed_official 29:d3b77affed28 943 case USB_HOST_PIPE5:
mbed_official 29:d3b77affed28 944 RZA_IO_RegWrite_16(&USB201.PIPE5CTR,
mbed_official 29:d3b77affed28 945 1,
mbed_official 29:d3b77affed28 946 USB_PIPEnCTR_1_5_SQCLR_SHIFT,
mbed_official 29:d3b77affed28 947 USB_PIPEnCTR_1_5_SQCLR);
mbed_official 29:d3b77affed28 948 break;
mbed_official 29:d3b77affed28 949
mbed_official 29:d3b77affed28 950 case USB_HOST_PIPE6:
mbed_official 29:d3b77affed28 951 RZA_IO_RegWrite_16(&USB201.PIPE6CTR,
mbed_official 29:d3b77affed28 952 1,
mbed_official 29:d3b77affed28 953 USB_PIPEnCTR_6_8_SQCLR_SHIFT,
mbed_official 29:d3b77affed28 954 USB_PIPEnCTR_6_8_SQCLR);
mbed_official 29:d3b77affed28 955 break;
mbed_official 29:d3b77affed28 956
mbed_official 29:d3b77affed28 957 case USB_HOST_PIPE7:
mbed_official 29:d3b77affed28 958 RZA_IO_RegWrite_16(&USB201.PIPE7CTR,
mbed_official 29:d3b77affed28 959 1,
mbed_official 29:d3b77affed28 960 USB_PIPEnCTR_6_8_SQCLR_SHIFT,
mbed_official 29:d3b77affed28 961 USB_PIPEnCTR_6_8_SQCLR);
mbed_official 29:d3b77affed28 962 break;
mbed_official 29:d3b77affed28 963
mbed_official 29:d3b77affed28 964 case USB_HOST_PIPE8:
mbed_official 29:d3b77affed28 965 RZA_IO_RegWrite_16(&USB201.PIPE8CTR,
mbed_official 29:d3b77affed28 966 1,
mbed_official 29:d3b77affed28 967 USB_PIPEnCTR_6_8_SQCLR_SHIFT,
mbed_official 29:d3b77affed28 968 USB_PIPEnCTR_6_8_SQCLR);
mbed_official 29:d3b77affed28 969 break;
mbed_official 29:d3b77affed28 970
mbed_official 29:d3b77affed28 971 case USB_HOST_PIPE9:
mbed_official 29:d3b77affed28 972 RZA_IO_RegWrite_16(&USB201.PIPE9CTR,
mbed_official 29:d3b77affed28 973 1,
mbed_official 29:d3b77affed28 974 USB_PIPEnCTR_9_SQCLR_SHIFT,
mbed_official 29:d3b77affed28 975 USB_PIPEnCTR_9_SQCLR);
mbed_official 29:d3b77affed28 976 break;
mbed_official 29:d3b77affed28 977
mbed_official 29:d3b77affed28 978 default:
mbed_official 29:d3b77affed28 979 break;
mbed_official 29:d3b77affed28 980 }
mbed_official 29:d3b77affed28 981 }
mbed_official 29:d3b77affed28 982
mbed_official 29:d3b77affed28 983 /*******************************************************************************
mbed_official 29:d3b77affed28 984 * Function Name: usb1_host_set_sqset
mbed_official 29:d3b77affed28 985 * Description : Sets the sequence bit of the pipe specified by the argument to
mbed_official 29:d3b77affed28 986 * : DATA1.
mbed_official 29:d3b77affed28 987 * Arguments : uint16_t pipe ; Pipe number
mbed_official 29:d3b77affed28 988 * Return Value : none
mbed_official 29:d3b77affed28 989 *******************************************************************************/
mbed_official 29:d3b77affed28 990 void usb1_host_set_sqset (uint16_t pipe)
mbed_official 29:d3b77affed28 991 {
mbed_official 29:d3b77affed28 992 switch (pipe)
mbed_official 29:d3b77affed28 993 {
mbed_official 29:d3b77affed28 994 case USB_HOST_PIPE0:
mbed_official 29:d3b77affed28 995 RZA_IO_RegWrite_16(&USB201.DCPCTR,
mbed_official 29:d3b77affed28 996 1,
mbed_official 29:d3b77affed28 997 USB_DCPCTR_SQSET_SHIFT,
mbed_official 29:d3b77affed28 998 USB_DCPCTR_SQSET);
mbed_official 29:d3b77affed28 999 break;
mbed_official 29:d3b77affed28 1000
mbed_official 29:d3b77affed28 1001 case USB_HOST_PIPE1:
mbed_official 29:d3b77affed28 1002 RZA_IO_RegWrite_16(&USB201.PIPE1CTR,
mbed_official 29:d3b77affed28 1003 1,
mbed_official 29:d3b77affed28 1004 USB_PIPEnCTR_1_5_SQSET_SHIFT,
mbed_official 29:d3b77affed28 1005 USB_PIPEnCTR_1_5_SQSET);
mbed_official 29:d3b77affed28 1006 break;
mbed_official 29:d3b77affed28 1007
mbed_official 29:d3b77affed28 1008 case USB_HOST_PIPE2:
mbed_official 29:d3b77affed28 1009 RZA_IO_RegWrite_16(&USB201.PIPE2CTR,
mbed_official 29:d3b77affed28 1010 1,
mbed_official 29:d3b77affed28 1011 USB_PIPEnCTR_1_5_SQSET_SHIFT,
mbed_official 29:d3b77affed28 1012 USB_PIPEnCTR_1_5_SQSET);
mbed_official 29:d3b77affed28 1013 break;
mbed_official 29:d3b77affed28 1014
mbed_official 29:d3b77affed28 1015 case USB_HOST_PIPE3:
mbed_official 29:d3b77affed28 1016 RZA_IO_RegWrite_16(&USB201.PIPE3CTR,
mbed_official 29:d3b77affed28 1017 1,
mbed_official 29:d3b77affed28 1018 USB_PIPEnCTR_1_5_SQSET_SHIFT,
mbed_official 29:d3b77affed28 1019 USB_PIPEnCTR_1_5_SQSET);
mbed_official 29:d3b77affed28 1020 break;
mbed_official 29:d3b77affed28 1021
mbed_official 29:d3b77affed28 1022 case USB_HOST_PIPE4:
mbed_official 29:d3b77affed28 1023 RZA_IO_RegWrite_16(&USB201.PIPE4CTR,
mbed_official 29:d3b77affed28 1024 1,
mbed_official 29:d3b77affed28 1025 USB_PIPEnCTR_1_5_SQSET_SHIFT,
mbed_official 29:d3b77affed28 1026 USB_PIPEnCTR_1_5_SQSET);
mbed_official 29:d3b77affed28 1027 break;
mbed_official 29:d3b77affed28 1028
mbed_official 29:d3b77affed28 1029 case USB_HOST_PIPE5:
mbed_official 29:d3b77affed28 1030 RZA_IO_RegWrite_16(&USB201.PIPE5CTR,
mbed_official 29:d3b77affed28 1031 1,
mbed_official 29:d3b77affed28 1032 USB_PIPEnCTR_1_5_SQSET_SHIFT,
mbed_official 29:d3b77affed28 1033 USB_PIPEnCTR_1_5_SQSET);
mbed_official 29:d3b77affed28 1034 break;
mbed_official 29:d3b77affed28 1035
mbed_official 29:d3b77affed28 1036 case USB_HOST_PIPE6:
mbed_official 29:d3b77affed28 1037 RZA_IO_RegWrite_16(&USB201.PIPE6CTR,
mbed_official 29:d3b77affed28 1038 1,
mbed_official 29:d3b77affed28 1039 USB_PIPEnCTR_6_8_SQSET_SHIFT,
mbed_official 29:d3b77affed28 1040 USB_PIPEnCTR_6_8_SQSET);
mbed_official 29:d3b77affed28 1041 break;
mbed_official 29:d3b77affed28 1042
mbed_official 29:d3b77affed28 1043 case USB_HOST_PIPE7:
mbed_official 29:d3b77affed28 1044 RZA_IO_RegWrite_16(&USB201.PIPE7CTR,
mbed_official 29:d3b77affed28 1045 1,
mbed_official 29:d3b77affed28 1046 USB_PIPEnCTR_6_8_SQSET_SHIFT,
mbed_official 29:d3b77affed28 1047 USB_PIPEnCTR_6_8_SQSET);
mbed_official 29:d3b77affed28 1048 break;
mbed_official 29:d3b77affed28 1049
mbed_official 29:d3b77affed28 1050 case USB_HOST_PIPE8:
mbed_official 29:d3b77affed28 1051 RZA_IO_RegWrite_16(&USB201.PIPE8CTR,
mbed_official 29:d3b77affed28 1052 1,
mbed_official 29:d3b77affed28 1053 USB_PIPEnCTR_6_8_SQSET_SHIFT,
mbed_official 29:d3b77affed28 1054 USB_PIPEnCTR_6_8_SQSET);
mbed_official 29:d3b77affed28 1055 break;
mbed_official 29:d3b77affed28 1056
mbed_official 29:d3b77affed28 1057 case USB_HOST_PIPE9:
mbed_official 29:d3b77affed28 1058 RZA_IO_RegWrite_16(&USB201.PIPE9CTR,
mbed_official 29:d3b77affed28 1059 1,
mbed_official 29:d3b77affed28 1060 USB_PIPEnCTR_9_SQSET_SHIFT,
mbed_official 29:d3b77affed28 1061 USB_PIPEnCTR_9_SQSET);
mbed_official 29:d3b77affed28 1062 break;
mbed_official 29:d3b77affed28 1063
mbed_official 29:d3b77affed28 1064 default:
mbed_official 29:d3b77affed28 1065 break;
mbed_official 29:d3b77affed28 1066 }
mbed_official 29:d3b77affed28 1067 }
mbed_official 29:d3b77affed28 1068
mbed_official 29:d3b77affed28 1069 /*******************************************************************************
mbed_official 29:d3b77affed28 1070 * Function Name: usb1_host_get_sqmon
mbed_official 29:d3b77affed28 1071 * Description : Toggle bit of specified pipe is obtained
mbed_official 29:d3b77affed28 1072 * Arguments : uint16_t pipe ; Pipe number
mbed_official 29:d3b77affed28 1073 * Return Value : sqmon
mbed_official 29:d3b77affed28 1074 *******************************************************************************/
mbed_official 29:d3b77affed28 1075 uint16_t usb1_host_get_sqmon (uint16_t pipe)
mbed_official 29:d3b77affed28 1076 {
mbed_official 29:d3b77affed28 1077 uint16_t sqmon;
mbed_official 29:d3b77affed28 1078
mbed_official 29:d3b77affed28 1079 switch (pipe)
mbed_official 29:d3b77affed28 1080 {
mbed_official 29:d3b77affed28 1081 case USB_HOST_PIPE0:
mbed_official 29:d3b77affed28 1082 sqmon = RZA_IO_RegRead_16(&USB201.DCPCTR,
mbed_official 29:d3b77affed28 1083 USB_DCPCTR_SQMON_SHIFT,
mbed_official 29:d3b77affed28 1084 USB_DCPCTR_SQMON);
mbed_official 29:d3b77affed28 1085 break;
mbed_official 29:d3b77affed28 1086
mbed_official 29:d3b77affed28 1087 case USB_HOST_PIPE1:
mbed_official 29:d3b77affed28 1088 sqmon = RZA_IO_RegRead_16(&USB201.PIPE1CTR,
mbed_official 29:d3b77affed28 1089 USB_PIPEnCTR_1_5_SQMON_SHIFT,
mbed_official 29:d3b77affed28 1090 USB_PIPEnCTR_1_5_SQMON);
mbed_official 29:d3b77affed28 1091 break;
mbed_official 29:d3b77affed28 1092
mbed_official 29:d3b77affed28 1093 case USB_HOST_PIPE2:
mbed_official 29:d3b77affed28 1094 sqmon = RZA_IO_RegRead_16(&USB201.PIPE2CTR,
mbed_official 29:d3b77affed28 1095 USB_PIPEnCTR_1_5_SQMON_SHIFT,
mbed_official 29:d3b77affed28 1096 USB_PIPEnCTR_1_5_SQMON);
mbed_official 29:d3b77affed28 1097 break;
mbed_official 29:d3b77affed28 1098
mbed_official 29:d3b77affed28 1099 case USB_HOST_PIPE3:
mbed_official 29:d3b77affed28 1100 sqmon = RZA_IO_RegRead_16(&USB201.PIPE3CTR,
mbed_official 29:d3b77affed28 1101 USB_PIPEnCTR_1_5_SQMON_SHIFT,
mbed_official 29:d3b77affed28 1102 USB_PIPEnCTR_1_5_SQMON);
mbed_official 29:d3b77affed28 1103 break;
mbed_official 29:d3b77affed28 1104
mbed_official 29:d3b77affed28 1105 case USB_HOST_PIPE4:
mbed_official 29:d3b77affed28 1106 sqmon = RZA_IO_RegRead_16(&USB201.PIPE4CTR,
mbed_official 29:d3b77affed28 1107 USB_PIPEnCTR_1_5_SQMON_SHIFT,
mbed_official 29:d3b77affed28 1108 USB_PIPEnCTR_1_5_SQMON);
mbed_official 29:d3b77affed28 1109 break;
mbed_official 29:d3b77affed28 1110
mbed_official 29:d3b77affed28 1111 case USB_HOST_PIPE5:
mbed_official 29:d3b77affed28 1112 sqmon = RZA_IO_RegRead_16(&USB201.PIPE5CTR,
mbed_official 29:d3b77affed28 1113 USB_PIPEnCTR_1_5_SQMON_SHIFT,
mbed_official 29:d3b77affed28 1114 USB_PIPEnCTR_1_5_SQMON);
mbed_official 29:d3b77affed28 1115 break;
mbed_official 29:d3b77affed28 1116
mbed_official 29:d3b77affed28 1117 case USB_HOST_PIPE6:
mbed_official 29:d3b77affed28 1118 sqmon = RZA_IO_RegRead_16(&USB201.PIPE6CTR,
mbed_official 29:d3b77affed28 1119 USB_PIPEnCTR_6_8_SQMON_SHIFT,
mbed_official 29:d3b77affed28 1120 USB_PIPEnCTR_6_8_SQMON);
mbed_official 29:d3b77affed28 1121 break;
mbed_official 29:d3b77affed28 1122
mbed_official 29:d3b77affed28 1123 case USB_HOST_PIPE7:
mbed_official 29:d3b77affed28 1124 sqmon = RZA_IO_RegRead_16(&USB201.PIPE7CTR,
mbed_official 29:d3b77affed28 1125 USB_PIPEnCTR_6_8_SQMON_SHIFT,
mbed_official 29:d3b77affed28 1126 USB_PIPEnCTR_6_8_SQMON);
mbed_official 29:d3b77affed28 1127 break;
mbed_official 29:d3b77affed28 1128
mbed_official 29:d3b77affed28 1129 case USB_HOST_PIPE8:
mbed_official 29:d3b77affed28 1130 sqmon = RZA_IO_RegRead_16(&USB201.PIPE8CTR,
mbed_official 29:d3b77affed28 1131 USB_PIPEnCTR_6_8_SQMON_SHIFT,
mbed_official 29:d3b77affed28 1132 USB_PIPEnCTR_6_8_SQMON);
mbed_official 29:d3b77affed28 1133 break;
mbed_official 29:d3b77affed28 1134
mbed_official 29:d3b77affed28 1135 case USB_HOST_PIPE9:
mbed_official 29:d3b77affed28 1136 sqmon = RZA_IO_RegRead_16(&USB201.PIPE9CTR,
mbed_official 29:d3b77affed28 1137 USB_PIPEnCTR_9_SQMON_SHIFT,
mbed_official 29:d3b77affed28 1138 USB_PIPEnCTR_9_SQMON);
mbed_official 29:d3b77affed28 1139 break;
mbed_official 29:d3b77affed28 1140
mbed_official 29:d3b77affed28 1141 default:
mbed_official 29:d3b77affed28 1142 sqmon = 0;
mbed_official 29:d3b77affed28 1143 break;
mbed_official 29:d3b77affed28 1144 }
mbed_official 29:d3b77affed28 1145
mbed_official 29:d3b77affed28 1146 return sqmon;
mbed_official 29:d3b77affed28 1147 }
mbed_official 29:d3b77affed28 1148
mbed_official 29:d3b77affed28 1149 /*******************************************************************************
mbed_official 29:d3b77affed28 1150 * Function Name: usb1_host_aclrm
mbed_official 29:d3b77affed28 1151 * Description : The buffer of specified pipe is initialized
mbed_official 29:d3b77affed28 1152 * Arguments : uint16_t pipe : Pipe
mbed_official 29:d3b77affed28 1153 * Return Value : none
mbed_official 29:d3b77affed28 1154 *******************************************************************************/
mbed_official 29:d3b77affed28 1155 void usb1_host_aclrm (uint16_t pipe)
mbed_official 29:d3b77affed28 1156 {
mbed_official 29:d3b77affed28 1157 usb1_host_set_aclrm(pipe);
mbed_official 29:d3b77affed28 1158 usb1_host_clr_aclrm(pipe);
mbed_official 29:d3b77affed28 1159 }
mbed_official 29:d3b77affed28 1160
mbed_official 29:d3b77affed28 1161 /*******************************************************************************
mbed_official 29:d3b77affed28 1162 * Function Name: usb1_host_set_aclrm
mbed_official 29:d3b77affed28 1163 * Description : The auto buffer clear mode of specified pipe is enabled
mbed_official 29:d3b77affed28 1164 * Arguments : uint16_t pipe : Pipe
mbed_official 29:d3b77affed28 1165 * Return Value : none
mbed_official 29:d3b77affed28 1166 *******************************************************************************/
mbed_official 29:d3b77affed28 1167 void usb1_host_set_aclrm (uint16_t pipe)
mbed_official 29:d3b77affed28 1168 {
mbed_official 29:d3b77affed28 1169 switch (pipe)
mbed_official 29:d3b77affed28 1170 {
mbed_official 29:d3b77affed28 1171 case USB_HOST_PIPE0:
mbed_official 29:d3b77affed28 1172 break;
mbed_official 29:d3b77affed28 1173
mbed_official 29:d3b77affed28 1174 case USB_HOST_PIPE1:
mbed_official 29:d3b77affed28 1175 RZA_IO_RegWrite_16(&USB201.PIPE1CTR,
mbed_official 29:d3b77affed28 1176 1,
mbed_official 29:d3b77affed28 1177 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
mbed_official 29:d3b77affed28 1178 USB_PIPEnCTR_1_5_ACLRM);
mbed_official 29:d3b77affed28 1179 break;
mbed_official 29:d3b77affed28 1180
mbed_official 29:d3b77affed28 1181 case USB_HOST_PIPE2:
mbed_official 29:d3b77affed28 1182 RZA_IO_RegWrite_16(&USB201.PIPE2CTR,
mbed_official 29:d3b77affed28 1183 1,
mbed_official 29:d3b77affed28 1184 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
mbed_official 29:d3b77affed28 1185 USB_PIPEnCTR_1_5_ACLRM);
mbed_official 29:d3b77affed28 1186 break;
mbed_official 29:d3b77affed28 1187
mbed_official 29:d3b77affed28 1188 case USB_HOST_PIPE3:
mbed_official 29:d3b77affed28 1189 RZA_IO_RegWrite_16(&USB201.PIPE3CTR,
mbed_official 29:d3b77affed28 1190 1,
mbed_official 29:d3b77affed28 1191 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
mbed_official 29:d3b77affed28 1192 USB_PIPEnCTR_1_5_ACLRM);
mbed_official 29:d3b77affed28 1193 break;
mbed_official 29:d3b77affed28 1194
mbed_official 29:d3b77affed28 1195 case USB_HOST_PIPE4:
mbed_official 29:d3b77affed28 1196 RZA_IO_RegWrite_16(&USB201.PIPE4CTR,
mbed_official 29:d3b77affed28 1197 1,
mbed_official 29:d3b77affed28 1198 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
mbed_official 29:d3b77affed28 1199 USB_PIPEnCTR_1_5_ACLRM);
mbed_official 29:d3b77affed28 1200 break;
mbed_official 29:d3b77affed28 1201
mbed_official 29:d3b77affed28 1202 case USB_HOST_PIPE5:
mbed_official 29:d3b77affed28 1203 RZA_IO_RegWrite_16(&USB201.PIPE5CTR,
mbed_official 29:d3b77affed28 1204 1,
mbed_official 29:d3b77affed28 1205 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
mbed_official 29:d3b77affed28 1206 USB_PIPEnCTR_1_5_ACLRM);
mbed_official 29:d3b77affed28 1207 break;
mbed_official 29:d3b77affed28 1208
mbed_official 29:d3b77affed28 1209 case USB_HOST_PIPE6:
mbed_official 29:d3b77affed28 1210 RZA_IO_RegWrite_16(&USB201.PIPE6CTR,
mbed_official 29:d3b77affed28 1211 1,
mbed_official 29:d3b77affed28 1212 USB_PIPEnCTR_6_8_ACLRM_SHIFT,
mbed_official 29:d3b77affed28 1213 USB_PIPEnCTR_6_8_ACLRM);
mbed_official 29:d3b77affed28 1214 break;
mbed_official 29:d3b77affed28 1215
mbed_official 29:d3b77affed28 1216 case USB_HOST_PIPE7:
mbed_official 29:d3b77affed28 1217 RZA_IO_RegWrite_16(&USB201.PIPE7CTR,
mbed_official 29:d3b77affed28 1218 1,
mbed_official 29:d3b77affed28 1219 USB_PIPEnCTR_6_8_ACLRM_SHIFT,
mbed_official 29:d3b77affed28 1220 USB_PIPEnCTR_6_8_ACLRM);
mbed_official 29:d3b77affed28 1221 break;
mbed_official 29:d3b77affed28 1222
mbed_official 29:d3b77affed28 1223 case USB_HOST_PIPE8:
mbed_official 29:d3b77affed28 1224 RZA_IO_RegWrite_16(&USB201.PIPE8CTR,
mbed_official 29:d3b77affed28 1225 1,
mbed_official 29:d3b77affed28 1226 USB_PIPEnCTR_6_8_ACLRM_SHIFT,
mbed_official 29:d3b77affed28 1227 USB_PIPEnCTR_6_8_ACLRM);
mbed_official 29:d3b77affed28 1228 break;
mbed_official 29:d3b77affed28 1229
mbed_official 29:d3b77affed28 1230 case USB_HOST_PIPE9:
mbed_official 29:d3b77affed28 1231 RZA_IO_RegWrite_16(&USB201.PIPE9CTR,
mbed_official 29:d3b77affed28 1232 1,
mbed_official 29:d3b77affed28 1233 USB_PIPEnCTR_9_ACLRM_SHIFT,
mbed_official 29:d3b77affed28 1234 USB_PIPEnCTR_9_ACLRM);
mbed_official 29:d3b77affed28 1235 break;
mbed_official 29:d3b77affed28 1236
mbed_official 29:d3b77affed28 1237 default:
mbed_official 29:d3b77affed28 1238 break;
mbed_official 29:d3b77affed28 1239 }
mbed_official 29:d3b77affed28 1240 }
mbed_official 29:d3b77affed28 1241
mbed_official 29:d3b77affed28 1242 /*******************************************************************************
mbed_official 29:d3b77affed28 1243 * Function Name: usb1_host_clr_aclrm
mbed_official 29:d3b77affed28 1244 * Description : The auto buffer clear mode of specified pipe is enabled
mbed_official 29:d3b77affed28 1245 * Arguments : uint16_t pipe : Pipe
mbed_official 29:d3b77affed28 1246 * Return Value : none
mbed_official 29:d3b77affed28 1247 *******************************************************************************/
mbed_official 29:d3b77affed28 1248 void usb1_host_clr_aclrm (uint16_t pipe)
mbed_official 29:d3b77affed28 1249 {
mbed_official 29:d3b77affed28 1250 switch (pipe)
mbed_official 29:d3b77affed28 1251 {
mbed_official 29:d3b77affed28 1252 case USB_HOST_PIPE0:
mbed_official 29:d3b77affed28 1253 break;
mbed_official 29:d3b77affed28 1254
mbed_official 29:d3b77affed28 1255 case USB_HOST_PIPE1:
mbed_official 29:d3b77affed28 1256 RZA_IO_RegWrite_16(&USB201.PIPE1CTR,
mbed_official 29:d3b77affed28 1257 0,
mbed_official 29:d3b77affed28 1258 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
mbed_official 29:d3b77affed28 1259 USB_PIPEnCTR_1_5_ACLRM);
mbed_official 29:d3b77affed28 1260 break;
mbed_official 29:d3b77affed28 1261
mbed_official 29:d3b77affed28 1262 case USB_HOST_PIPE2:
mbed_official 29:d3b77affed28 1263 RZA_IO_RegWrite_16(&USB201.PIPE2CTR,
mbed_official 29:d3b77affed28 1264 0,
mbed_official 29:d3b77affed28 1265 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
mbed_official 29:d3b77affed28 1266 USB_PIPEnCTR_1_5_ACLRM);
mbed_official 29:d3b77affed28 1267 break;
mbed_official 29:d3b77affed28 1268
mbed_official 29:d3b77affed28 1269 case USB_HOST_PIPE3:
mbed_official 29:d3b77affed28 1270 RZA_IO_RegWrite_16(&USB201.PIPE3CTR,
mbed_official 29:d3b77affed28 1271 0,
mbed_official 29:d3b77affed28 1272 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
mbed_official 29:d3b77affed28 1273 USB_PIPEnCTR_1_5_ACLRM);
mbed_official 29:d3b77affed28 1274 break;
mbed_official 29:d3b77affed28 1275
mbed_official 29:d3b77affed28 1276 case USB_HOST_PIPE4:
mbed_official 29:d3b77affed28 1277 RZA_IO_RegWrite_16(&USB201.PIPE4CTR,
mbed_official 29:d3b77affed28 1278 0,
mbed_official 29:d3b77affed28 1279 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
mbed_official 29:d3b77affed28 1280 USB_PIPEnCTR_1_5_ACLRM);
mbed_official 29:d3b77affed28 1281 break;
mbed_official 29:d3b77affed28 1282
mbed_official 29:d3b77affed28 1283 case USB_HOST_PIPE5:
mbed_official 29:d3b77affed28 1284 RZA_IO_RegWrite_16(&USB201.PIPE5CTR,
mbed_official 29:d3b77affed28 1285 0,
mbed_official 29:d3b77affed28 1286 USB_PIPEnCTR_1_5_ACLRM_SHIFT,
mbed_official 29:d3b77affed28 1287 USB_PIPEnCTR_1_5_ACLRM);
mbed_official 29:d3b77affed28 1288 break;
mbed_official 29:d3b77affed28 1289
mbed_official 29:d3b77affed28 1290 case USB_HOST_PIPE6:
mbed_official 29:d3b77affed28 1291 RZA_IO_RegWrite_16(&USB201.PIPE6CTR,
mbed_official 29:d3b77affed28 1292 0,
mbed_official 29:d3b77affed28 1293 USB_PIPEnCTR_6_8_ACLRM_SHIFT,
mbed_official 29:d3b77affed28 1294 USB_PIPEnCTR_6_8_ACLRM);
mbed_official 29:d3b77affed28 1295 break;
mbed_official 29:d3b77affed28 1296
mbed_official 29:d3b77affed28 1297 case USB_HOST_PIPE7:
mbed_official 29:d3b77affed28 1298 RZA_IO_RegWrite_16(&USB201.PIPE7CTR,
mbed_official 29:d3b77affed28 1299 0,
mbed_official 29:d3b77affed28 1300 USB_PIPEnCTR_6_8_ACLRM_SHIFT,
mbed_official 29:d3b77affed28 1301 USB_PIPEnCTR_6_8_ACLRM);
mbed_official 29:d3b77affed28 1302 break;
mbed_official 29:d3b77affed28 1303
mbed_official 29:d3b77affed28 1304 case USB_HOST_PIPE8:
mbed_official 29:d3b77affed28 1305 RZA_IO_RegWrite_16(&USB201.PIPE8CTR,
mbed_official 29:d3b77affed28 1306 0,
mbed_official 29:d3b77affed28 1307 USB_PIPEnCTR_6_8_ACLRM_SHIFT,
mbed_official 29:d3b77affed28 1308 USB_PIPEnCTR_6_8_ACLRM);
mbed_official 29:d3b77affed28 1309 break;
mbed_official 29:d3b77affed28 1310
mbed_official 29:d3b77affed28 1311 case USB_HOST_PIPE9:
mbed_official 29:d3b77affed28 1312 RZA_IO_RegWrite_16(&USB201.PIPE9CTR,
mbed_official 29:d3b77affed28 1313 0,
mbed_official 29:d3b77affed28 1314 USB_PIPEnCTR_9_ACLRM_SHIFT,
mbed_official 29:d3b77affed28 1315 USB_PIPEnCTR_9_ACLRM);
mbed_official 29:d3b77affed28 1316 break;
mbed_official 29:d3b77affed28 1317
mbed_official 29:d3b77affed28 1318 default:
mbed_official 29:d3b77affed28 1319 break;
mbed_official 29:d3b77affed28 1320 }
mbed_official 29:d3b77affed28 1321 }
mbed_official 29:d3b77affed28 1322
mbed_official 29:d3b77affed28 1323 /*******************************************************************************
mbed_official 29:d3b77affed28 1324 * Function Name: usb1_host_get_inbuf
mbed_official 29:d3b77affed28 1325 * Description : Returns INBUFM of the pipe specified by the argument.
mbed_official 29:d3b77affed28 1326 * Arguments : uint16_t pipe ; Pipe Number
mbed_official 29:d3b77affed28 1327 * Return Value : inbuf
mbed_official 29:d3b77affed28 1328 *******************************************************************************/
mbed_official 29:d3b77affed28 1329 uint16_t usb1_host_get_inbuf (uint16_t pipe)
mbed_official 29:d3b77affed28 1330 {
mbed_official 29:d3b77affed28 1331 uint16_t inbuf;
mbed_official 29:d3b77affed28 1332
mbed_official 29:d3b77affed28 1333 switch (pipe)
mbed_official 29:d3b77affed28 1334 {
mbed_official 29:d3b77affed28 1335 case USB_HOST_PIPE0:
mbed_official 29:d3b77affed28 1336 inbuf = 0;
mbed_official 29:d3b77affed28 1337 break;
mbed_official 29:d3b77affed28 1338
mbed_official 29:d3b77affed28 1339 case USB_HOST_PIPE1:
mbed_official 29:d3b77affed28 1340 inbuf = RZA_IO_RegRead_16(&USB201.PIPE1CTR,
mbed_official 29:d3b77affed28 1341 USB_PIPEnCTR_1_5_INBUFM_SHIFT,
mbed_official 29:d3b77affed28 1342 USB_PIPEnCTR_1_5_INBUFM);
mbed_official 29:d3b77affed28 1343 break;
mbed_official 29:d3b77affed28 1344
mbed_official 29:d3b77affed28 1345 case USB_HOST_PIPE2:
mbed_official 29:d3b77affed28 1346 inbuf = RZA_IO_RegRead_16(&USB201.PIPE2CTR,
mbed_official 29:d3b77affed28 1347 USB_PIPEnCTR_1_5_INBUFM_SHIFT,
mbed_official 29:d3b77affed28 1348 USB_PIPEnCTR_1_5_INBUFM);
mbed_official 29:d3b77affed28 1349 break;
mbed_official 29:d3b77affed28 1350
mbed_official 29:d3b77affed28 1351 case USB_HOST_PIPE3:
mbed_official 29:d3b77affed28 1352 inbuf = RZA_IO_RegRead_16(&USB201.PIPE3CTR,
mbed_official 29:d3b77affed28 1353 USB_PIPEnCTR_1_5_INBUFM_SHIFT,
mbed_official 29:d3b77affed28 1354 USB_PIPEnCTR_1_5_INBUFM);
mbed_official 29:d3b77affed28 1355 break;
mbed_official 29:d3b77affed28 1356
mbed_official 29:d3b77affed28 1357 case USB_HOST_PIPE4:
mbed_official 29:d3b77affed28 1358 inbuf = RZA_IO_RegRead_16(&USB201.PIPE4CTR,
mbed_official 29:d3b77affed28 1359 USB_PIPEnCTR_1_5_INBUFM_SHIFT,
mbed_official 29:d3b77affed28 1360 USB_PIPEnCTR_1_5_INBUFM);
mbed_official 29:d3b77affed28 1361 break;
mbed_official 29:d3b77affed28 1362
mbed_official 29:d3b77affed28 1363 case USB_HOST_PIPE5:
mbed_official 29:d3b77affed28 1364 inbuf = RZA_IO_RegRead_16(&USB201.PIPE5CTR,
mbed_official 29:d3b77affed28 1365 USB_PIPEnCTR_1_5_INBUFM_SHIFT,
mbed_official 29:d3b77affed28 1366 USB_PIPEnCTR_1_5_INBUFM);
mbed_official 29:d3b77affed28 1367 break;
mbed_official 29:d3b77affed28 1368
mbed_official 29:d3b77affed28 1369 case USB_HOST_PIPE6:
mbed_official 29:d3b77affed28 1370 inbuf = 0;
mbed_official 29:d3b77affed28 1371 break;
mbed_official 29:d3b77affed28 1372
mbed_official 29:d3b77affed28 1373 case USB_HOST_PIPE7:
mbed_official 29:d3b77affed28 1374 inbuf = 0;
mbed_official 29:d3b77affed28 1375 break;
mbed_official 29:d3b77affed28 1376
mbed_official 29:d3b77affed28 1377 case USB_HOST_PIPE8:
mbed_official 29:d3b77affed28 1378 inbuf = 0;
mbed_official 29:d3b77affed28 1379 break;
mbed_official 29:d3b77affed28 1380
mbed_official 29:d3b77affed28 1381 case USB_HOST_PIPE9:
mbed_official 29:d3b77affed28 1382 inbuf = RZA_IO_RegRead_16(&USB201.PIPE9CTR,
mbed_official 29:d3b77affed28 1383 USB_PIPEnCTR_9_INBUFM_SHIFT,
mbed_official 29:d3b77affed28 1384 USB_PIPEnCTR_9_INBUFM);
mbed_official 29:d3b77affed28 1385 break;
mbed_official 29:d3b77affed28 1386
mbed_official 29:d3b77affed28 1387 default:
mbed_official 29:d3b77affed28 1388 inbuf = 0;
mbed_official 29:d3b77affed28 1389 break;
mbed_official 29:d3b77affed28 1390 }
mbed_official 29:d3b77affed28 1391
mbed_official 29:d3b77affed28 1392 return inbuf;
mbed_official 29:d3b77affed28 1393 }
mbed_official 29:d3b77affed28 1394
mbed_official 29:d3b77affed28 1395 /*******************************************************************************
mbed_official 29:d3b77affed28 1396 * Function Name: usb1_host_setting_interrupt
mbed_official 29:d3b77affed28 1397 * Description : Sets the USB module interrupt level.
mbed_official 29:d3b77affed28 1398 * Arguments : uint8_t level ; interrupt level
mbed_official 29:d3b77affed28 1399 * Return Value : none
mbed_official 29:d3b77affed28 1400 *******************************************************************************/
mbed_official 29:d3b77affed28 1401 void usb1_host_setting_interrupt (uint8_t level)
mbed_official 29:d3b77affed28 1402 {
mbed_official 29:d3b77affed28 1403 #if(1) /* ohci_wrapp */
mbed_official 29:d3b77affed28 1404 IRQn_Type d0fifo_dmaintid;
mbed_official 29:d3b77affed28 1405 IRQn_Type d1fifo_dmaintid;
mbed_official 29:d3b77affed28 1406
mbed_official 29:d3b77affed28 1407 InterruptHandlerRegister(USBI1_IRQn, usb1_host_interrupt);
mbed_official 29:d3b77affed28 1408 GIC_SetPriority(USBI1_IRQn, level);
mbed_official 29:d3b77affed28 1409 GIC_EnableIRQ(USBI1_IRQn);
mbed_official 29:d3b77affed28 1410
mbed_official 29:d3b77affed28 1411 d0fifo_dmaintid = (IRQn_Type)Userdef_USB_usb1_host_d0fifo_dmaintid();
mbed_official 29:d3b77affed28 1412
mbed_official 29:d3b77affed28 1413 if (d0fifo_dmaintid != 0xFFFF)
mbed_official 29:d3b77affed28 1414 {
mbed_official 29:d3b77affed28 1415 InterruptHandlerRegister(d0fifo_dmaintid, usb1_host_dma_interrupt_d0fifo);
mbed_official 29:d3b77affed28 1416 GIC_SetPriority(d0fifo_dmaintid, level);
mbed_official 29:d3b77affed28 1417 GIC_EnableIRQ(d0fifo_dmaintid);
mbed_official 29:d3b77affed28 1418 }
mbed_official 29:d3b77affed28 1419
mbed_official 29:d3b77affed28 1420 d1fifo_dmaintid = (IRQn_Type)Userdef_USB_usb1_host_d1fifo_dmaintid();
mbed_official 29:d3b77affed28 1421
mbed_official 29:d3b77affed28 1422 if (d1fifo_dmaintid != 0xFFFF)
mbed_official 29:d3b77affed28 1423 {
mbed_official 29:d3b77affed28 1424 InterruptHandlerRegister(d1fifo_dmaintid, usb1_host_dma_interrupt_d1fifo);
mbed_official 29:d3b77affed28 1425 GIC_SetPriority(d1fifo_dmaintid, level);
mbed_official 29:d3b77affed28 1426 GIC_EnableIRQ(d1fifo_dmaintid);
mbed_official 29:d3b77affed28 1427 }
mbed_official 29:d3b77affed28 1428 #else
mbed_official 29:d3b77affed28 1429 uint16_t d0fifo_dmaintid;
mbed_official 29:d3b77affed28 1430 uint16_t d1fifo_dmaintid;
mbed_official 29:d3b77affed28 1431
mbed_official 29:d3b77affed28 1432 R_INTC_RegistIntFunc(INTC_ID_USBI1, usb1_host_interrupt);
mbed_official 29:d3b77affed28 1433 R_INTC_SetPriority(INTC_ID_USBI1, level);
mbed_official 29:d3b77affed28 1434 R_INTC_Enable(INTC_ID_USBI1);
mbed_official 29:d3b77affed28 1435
mbed_official 29:d3b77affed28 1436 d0fifo_dmaintid = Userdef_USB_usb1_host_d0fifo_dmaintid();
mbed_official 29:d3b77affed28 1437
mbed_official 29:d3b77affed28 1438 if (d0fifo_dmaintid != 0xFFFF)
mbed_official 29:d3b77affed28 1439 {
mbed_official 29:d3b77affed28 1440 R_INTC_RegistIntFunc(d0fifo_dmaintid, usb1_host_dma_interrupt_d0fifo);
mbed_official 29:d3b77affed28 1441 R_INTC_SetPriority(d0fifo_dmaintid, level);
mbed_official 29:d3b77affed28 1442 R_INTC_Enable(d0fifo_dmaintid);
mbed_official 29:d3b77affed28 1443 }
mbed_official 29:d3b77affed28 1444
mbed_official 29:d3b77affed28 1445 d1fifo_dmaintid = Userdef_USB_usb1_host_d1fifo_dmaintid();
mbed_official 29:d3b77affed28 1446
mbed_official 29:d3b77affed28 1447 if (d1fifo_dmaintid != 0xFFFF)
mbed_official 29:d3b77affed28 1448 {
mbed_official 29:d3b77affed28 1449 R_INTC_RegistIntFunc(d1fifo_dmaintid, usb1_host_dma_interrupt_d1fifo);
mbed_official 29:d3b77affed28 1450 R_INTC_SetPriority(d1fifo_dmaintid, level);
mbed_official 29:d3b77affed28 1451 R_INTC_Enable(d1fifo_dmaintid);
mbed_official 29:d3b77affed28 1452 }
mbed_official 29:d3b77affed28 1453 #endif
mbed_official 29:d3b77affed28 1454 }
mbed_official 29:d3b77affed28 1455
mbed_official 29:d3b77affed28 1456 /*******************************************************************************
mbed_official 29:d3b77affed28 1457 * Function Name: usb1_host_reset_module
mbed_official 29:d3b77affed28 1458 * Description : Initializes the USB module.
mbed_official 29:d3b77affed28 1459 * : Enables providing clock to the USB module.
mbed_official 29:d3b77affed28 1460 * : Sets USB bus wait register.
mbed_official 29:d3b77affed28 1461 * Arguments : uint16_t clockmode ; 48MHz ; USBHCLOCK_X1_48MHZ
mbed_official 29:d3b77affed28 1462 * : ; 12MHz ; USBHCLOCK_EXTAL_12MHZ
mbed_official 29:d3b77affed28 1463 * Return Value : none
mbed_official 29:d3b77affed28 1464 *******************************************************************************/
mbed_official 29:d3b77affed28 1465 void usb1_host_reset_module (uint16_t clockmode)
mbed_official 29:d3b77affed28 1466 {
mbed_official 29:d3b77affed28 1467 if (RZA_IO_RegRead_16(&USB200.SYSCFG0,
mbed_official 29:d3b77affed28 1468 USB_SYSCFG_UPLLE_SHIFT,
mbed_official 29:d3b77affed28 1469 USB_SYSCFG_UPLLE) == 1)
mbed_official 29:d3b77affed28 1470 {
mbed_official 29:d3b77affed28 1471 if ((USB200.SYSCFG0 & USB_HOST_BITUCKSEL) != clockmode)
mbed_official 29:d3b77affed28 1472 {
mbed_official 29:d3b77affed28 1473 RZA_IO_RegWrite_16(&USB201.SUSPMODE,
mbed_official 29:d3b77affed28 1474 0,
mbed_official 29:d3b77affed28 1475 USB_SUSPMODE_SUSPM_SHIFT,
mbed_official 29:d3b77affed28 1476 USB_SUSPMODE_SUSPM);
mbed_official 29:d3b77affed28 1477 RZA_IO_RegWrite_16(&USB200.SUSPMODE,
mbed_official 29:d3b77affed28 1478 0,
mbed_official 29:d3b77affed28 1479 USB_SUSPMODE_SUSPM_SHIFT,
mbed_official 29:d3b77affed28 1480 USB_SUSPMODE_SUSPM);
mbed_official 29:d3b77affed28 1481 USB201.SYSCFG0 = 0;
mbed_official 29:d3b77affed28 1482 USB200.SYSCFG0 = 0;
mbed_official 29:d3b77affed28 1483 USB200.SYSCFG0 = (USB_HOST_BITUPLLE | clockmode);
mbed_official 29:d3b77affed28 1484 Userdef_USB_usb1_host_delay_xms(1);
mbed_official 29:d3b77affed28 1485 RZA_IO_RegWrite_16(&USB200.SUSPMODE,
mbed_official 29:d3b77affed28 1486 1,
mbed_official 29:d3b77affed28 1487 USB_SUSPMODE_SUSPM_SHIFT,
mbed_official 29:d3b77affed28 1488 USB_SUSPMODE_SUSPM);
mbed_official 29:d3b77affed28 1489 RZA_IO_RegWrite_16(&USB201.SUSPMODE,
mbed_official 29:d3b77affed28 1490 1,
mbed_official 29:d3b77affed28 1491 USB_SUSPMODE_SUSPM_SHIFT,
mbed_official 29:d3b77affed28 1492 USB_SUSPMODE_SUSPM);
mbed_official 29:d3b77affed28 1493 }
mbed_official 29:d3b77affed28 1494 else
mbed_official 29:d3b77affed28 1495 {
mbed_official 29:d3b77affed28 1496 RZA_IO_RegWrite_16(&USB201.SUSPMODE,
mbed_official 29:d3b77affed28 1497 0,
mbed_official 29:d3b77affed28 1498 USB_SUSPMODE_SUSPM_SHIFT,
mbed_official 29:d3b77affed28 1499 USB_SUSPMODE_SUSPM);
mbed_official 29:d3b77affed28 1500 Userdef_USB_usb1_host_delay_xms(1);
mbed_official 29:d3b77affed28 1501 RZA_IO_RegWrite_16(&USB201.SUSPMODE,
mbed_official 29:d3b77affed28 1502 1,
mbed_official 29:d3b77affed28 1503 USB_SUSPMODE_SUSPM_SHIFT,
mbed_official 29:d3b77affed28 1504 USB_SUSPMODE_SUSPM);
mbed_official 29:d3b77affed28 1505 }
mbed_official 29:d3b77affed28 1506 }
mbed_official 29:d3b77affed28 1507 else
mbed_official 29:d3b77affed28 1508 {
mbed_official 29:d3b77affed28 1509 RZA_IO_RegWrite_16(&USB201.SUSPMODE,
mbed_official 29:d3b77affed28 1510 0,
mbed_official 29:d3b77affed28 1511 USB_SUSPMODE_SUSPM_SHIFT,
mbed_official 29:d3b77affed28 1512 USB_SUSPMODE_SUSPM);
mbed_official 29:d3b77affed28 1513 RZA_IO_RegWrite_16(&USB200.SUSPMODE,
mbed_official 29:d3b77affed28 1514 0,
mbed_official 29:d3b77affed28 1515 USB_SUSPMODE_SUSPM_SHIFT,
mbed_official 29:d3b77affed28 1516 USB_SUSPMODE_SUSPM);
mbed_official 29:d3b77affed28 1517 USB201.SYSCFG0 = 0;
mbed_official 29:d3b77affed28 1518 USB200.SYSCFG0 = 0;
mbed_official 29:d3b77affed28 1519 USB200.SYSCFG0 = (USB_HOST_BITUPLLE | clockmode);
mbed_official 29:d3b77affed28 1520 Userdef_USB_usb1_host_delay_xms(1);
mbed_official 29:d3b77affed28 1521 RZA_IO_RegWrite_16(&USB200.SUSPMODE,
mbed_official 29:d3b77affed28 1522 1,
mbed_official 29:d3b77affed28 1523 USB_SUSPMODE_SUSPM_SHIFT,
mbed_official 29:d3b77affed28 1524 USB_SUSPMODE_SUSPM);
mbed_official 29:d3b77affed28 1525 RZA_IO_RegWrite_16(&USB201.SUSPMODE,
mbed_official 29:d3b77affed28 1526 1,
mbed_official 29:d3b77affed28 1527 USB_SUSPMODE_SUSPM_SHIFT,
mbed_official 29:d3b77affed28 1528 USB_SUSPMODE_SUSPM);
mbed_official 29:d3b77affed28 1529 }
mbed_official 29:d3b77affed28 1530
mbed_official 29:d3b77affed28 1531 USB201.BUSWAIT = (uint16_t)(USB_HOST_BUSWAIT_05 & USB_HOST_BITBWAIT);
mbed_official 29:d3b77affed28 1532 }
mbed_official 29:d3b77affed28 1533
mbed_official 29:d3b77affed28 1534 /*******************************************************************************
mbed_official 29:d3b77affed28 1535 * Function Name: usb1_host_get_buf_size
mbed_official 29:d3b77affed28 1536 * Description : Obtains pipe buffer size specified by the argument and
mbed_official 29:d3b77affed28 1537 * : maximum packet size of the USB device in use.
mbed_official 29:d3b77affed28 1538 * : When USB_HOST_PIPE0 is specified by the argument, obtains the maximum
mbed_official 29:d3b77affed28 1539 * : packet size of the USB device using the corresponding pipe.
mbed_official 29:d3b77affed28 1540 * : For the case that USB_HOST_PIPE0 is not assigned by the argument, when the
mbed_official 29:d3b77affed28 1541 * : corresponding pipe is in continuous transfer mode,
mbed_official 29:d3b77affed28 1542 * : obtains the buffer size allocated in the corresponcing pipe,
mbed_official 29:d3b77affed28 1543 * : when incontinuous transfer, obtains maximum packet size.
mbed_official 29:d3b77affed28 1544 * Arguments : uint16_t ; pipe Number
mbed_official 29:d3b77affed28 1545 * Return Value : Maximum packet size or buffer size
mbed_official 29:d3b77affed28 1546 *******************************************************************************/
mbed_official 29:d3b77affed28 1547 uint16_t usb1_host_get_buf_size (uint16_t pipe)
mbed_official 29:d3b77affed28 1548 {
mbed_official 29:d3b77affed28 1549 uint16_t size;
mbed_official 29:d3b77affed28 1550 uint16_t bufsize;
mbed_official 29:d3b77affed28 1551
mbed_official 29:d3b77affed28 1552 if (pipe == USB_HOST_PIPE0)
mbed_official 29:d3b77affed28 1553 {
mbed_official 29:d3b77affed28 1554 size = RZA_IO_RegRead_16(&USB201.DCPMAXP,
mbed_official 29:d3b77affed28 1555 USB_DCPMAXP_MXPS_SHIFT,
mbed_official 29:d3b77affed28 1556 USB_DCPMAXP_MXPS);
mbed_official 29:d3b77affed28 1557 }
mbed_official 29:d3b77affed28 1558 else
mbed_official 29:d3b77affed28 1559 {
mbed_official 29:d3b77affed28 1560 if (RZA_IO_RegRead_16(&g_usb1_host_pipecfg[pipe], USB_PIPECFG_CNTMD_SHIFT, USB_PIPECFG_CNTMD) == 1)
mbed_official 29:d3b77affed28 1561 {
mbed_official 29:d3b77affed28 1562 bufsize = RZA_IO_RegRead_16(&g_usb1_host_pipebuf[pipe], USB_PIPEBUF_BUFSIZE_SHIFT, USB_PIPEBUF_BUFSIZE);
mbed_official 29:d3b77affed28 1563 size = (uint16_t)((bufsize + 1) * USB_HOST_PIPExBUF);
mbed_official 29:d3b77affed28 1564 }
mbed_official 29:d3b77affed28 1565 else
mbed_official 29:d3b77affed28 1566 {
mbed_official 29:d3b77affed28 1567 size = RZA_IO_RegRead_16(&g_usb1_host_pipemaxp[pipe], USB_PIPEMAXP_MXPS_SHIFT, USB_PIPEMAXP_MXPS);
mbed_official 29:d3b77affed28 1568 }
mbed_official 29:d3b77affed28 1569 }
mbed_official 29:d3b77affed28 1570 return size;
mbed_official 29:d3b77affed28 1571 }
mbed_official 29:d3b77affed28 1572
mbed_official 29:d3b77affed28 1573 /*******************************************************************************
mbed_official 29:d3b77affed28 1574 * Function Name: usb1_host_get_mxps
mbed_official 29:d3b77affed28 1575 * Description : Obtains maximum packet size of the USB device using the pipe
mbed_official 29:d3b77affed28 1576 * : specified by the argument.
mbed_official 29:d3b77affed28 1577 * Arguments : uint16_t ; Pipe Number
mbed_official 29:d3b77affed28 1578 * Return Value : Max Packet Size
mbed_official 29:d3b77affed28 1579 *******************************************************************************/
mbed_official 29:d3b77affed28 1580 uint16_t usb1_host_get_mxps (uint16_t pipe)
mbed_official 29:d3b77affed28 1581 {
mbed_official 29:d3b77affed28 1582 uint16_t size;
mbed_official 29:d3b77affed28 1583
mbed_official 29:d3b77affed28 1584 if (pipe == USB_HOST_PIPE0)
mbed_official 29:d3b77affed28 1585 {
mbed_official 29:d3b77affed28 1586 size = RZA_IO_RegRead_16(&USB201.DCPMAXP,
mbed_official 29:d3b77affed28 1587 USB_DCPMAXP_MXPS_SHIFT,
mbed_official 29:d3b77affed28 1588 USB_DCPMAXP_MXPS);
mbed_official 29:d3b77affed28 1589 }
mbed_official 29:d3b77affed28 1590 else
mbed_official 29:d3b77affed28 1591 {
mbed_official 29:d3b77affed28 1592 size = RZA_IO_RegRead_16(&g_usb1_host_pipemaxp[pipe], USB_PIPEMAXP_MXPS_SHIFT, USB_PIPEMAXP_MXPS);
mbed_official 29:d3b77affed28 1593 }
mbed_official 29:d3b77affed28 1594
mbed_official 29:d3b77affed28 1595 return size;
mbed_official 29:d3b77affed28 1596 }
mbed_official 29:d3b77affed28 1597
mbed_official 29:d3b77affed28 1598 /* End of File */