X-TOUCH to djay bridge

Dependencies:   mbed mbed-rtos FATFileSystem

Committer:
okini3939
Date:
Wed Jun 05 04:54:37 2019 +0000
Revision:
1:0dac72ab5910
sample

Who changed what in which revision?

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