Devan Lai / USBDevice_STM32F103

Dependents:   STM32F103C8T6_WebUSBDFU STM32F103C8T6_USBDFU STM32F103C8T6_USBDFU dfu_usb_stm32f103

Fork of USBDevice_STM32F103 by Zoltan Hudak

Files at this revision

API Documentation at this revision

Comitter:
hudakz
Date:
Fri Jul 08 21:16:25 2016 +0000
Parent:
64:c3d0530b6d82
Child:
66:390c4a31db54
Commit message:
Working fork of Norimasa Okamoto's library for STM32F103 boards.

Changed in this revision

USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/inc/devdrv_usb_function_api.h Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/inc/usb_function.h Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/inc/usb_function_version.h Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/inc/usb0_function.h Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/inc/usb0_function_api.h Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/inc/usb0_function_dmacdrv.h Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/src/common/usb0_function_dataio.c Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/src/common/usb0_function_dma.c Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/src/common/usb0_function_intrn.c Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/src/common/usb0_function_lib.c Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/src/function/usb0_function_api.c Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/src/function/usb0_function_controlrw.c Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/src/function/usb0_function_global.c Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/src/function/usb0_function_sig.c Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/src/function/usb0_function_sub.c Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/src/userdef/usb0_function_dmacdrv.c Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/src/userdef/usb0_function_userdef.c Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/inc/usb1_function.h Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/inc/usb1_function_api.h Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/inc/usb1_function_dmacdrv.h Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/common/usb1_function_dataio.c Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/common/usb1_function_dma.c Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/common/usb1_function_intrn.c Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/common/usb1_function_lib.c Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/function/usb1_function_api.c Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/function/usb1_function_controlrw.c Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/function/usb1_function_global.c Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/function/usb1_function_sig.c Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/function/usb1_function_sub.c Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/userdef/usb1_function_dmacdrv.c Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/userdef/usb1_function_userdef.c Show diff for this revision Revisions of this file
USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb_function_setting.h Show diff for this revision Revisions of this file
USBDevice/USBEndpoints.h Show annotated file Show diff for this revision Revisions of this file
USBDevice/USBEndpoints_KL25Z.h Show diff for this revision Revisions of this file
USBDevice/USBEndpoints_LPC11U.h Show diff for this revision Revisions of this file
USBDevice/USBEndpoints_LPC17_LPC23.h Show diff for this revision Revisions of this file
USBDevice/USBEndpoints_Maxim.h Show diff for this revision Revisions of this file
USBDevice/USBEndpoints_RZ_A1H.h Show diff for this revision Revisions of this file
USBDevice/USBEndpoints_STM32F1.h Show annotated file Show diff for this revision Revisions of this file
USBDevice/USBEndpoints_STM32F4.h Show diff for this revision Revisions of this file
USBDevice/USBEndpoints_STM32L1.h Show diff for this revision Revisions of this file
USBDevice/USBHAL_KL25Z.cpp Show diff for this revision Revisions of this file
USBDevice/USBHAL_LPC11U.cpp Show diff for this revision Revisions of this file
USBDevice/USBHAL_LPC17.cpp Show diff for this revision Revisions of this file
USBDevice/USBHAL_LPC40.cpp Show diff for this revision Revisions of this file
USBDevice/USBHAL_Maxim.cpp Show diff for this revision Revisions of this file
USBDevice/USBHAL_RZ_A1H.cpp Show diff for this revision Revisions of this file
USBDevice/USBHAL_STM32F1.cpp Show annotated file Show diff for this revision Revisions of this file
USBDevice/USBHAL_STM32F4.cpp Show diff for this revision Revisions of this file
USBDevice/USBHAL_STM32L1.cpp Show diff for this revision Revisions of this file
USBSerial/CircBuffer.h Show annotated file Show diff for this revision Revisions of this file
USBSerial/USBCDC.cpp Show annotated file Show diff for this revision Revisions of this file
USBSerial/USBCDC.h Show annotated file Show diff for this revision Revisions of this file
USBSerial/USBSerial.cpp Show annotated file Show diff for this revision Revisions of this file
USBSerial/USBSerial.h Show annotated file Show diff for this revision Revisions of this file
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/inc/devdrv_usb_function_api.h	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,365 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : devdrv_usb_function_api.h
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Description  : RZ/A1H R7S72100 USB Sample Program
-*******************************************************************************/
-#ifndef USB_FUNCTION_API_H
-#define USB_FUNCTION_API_H
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include <MBRZA1H.h>
-#include "r_typedefs.h"
-#include "usb0_function_api.h"
-#include "usb1_function_api.h"
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-typedef struct
-{
-    uint32_t fifo;
-    uint32_t buffer;
-    uint32_t bytes;
-    uint32_t dir;
-    uint32_t size;
-} USB_FUNCTION_DMA_t;
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-#define USBFCLOCK_X1_48MHZ                          (0x0000u)       /* USB_X1_48MHz */
-#define USBFCLOCK_EXTAL_12MHZ                       (0x0004u)       /* EXTAL_12MHz  */
-
-#define DEVDRV_USBF_ON                              (1)
-#define DEVDRV_USBF_OFF                             (0)
-#define DEVDRV_USBF_YES                             (1)
-#define DEVDRV_USBF_NO                              (0)
-
-#define DEVDRV_USBF_STALL                           (-2)
-
-#define DEVDRV_USBF_WRITEEND                        (0)
-#define DEVDRV_USBF_WRITESHRT                       (1)
-#define DEVDRV_USBF_WRITING                         (2)
-#define DEVDRV_USBF_WRITEDMA                        (3)
-
-#define DEVDRV_USBF_FIFOERROR                       (0xffff)
-
-#define DEVDRV_USBF_PIPE_IDLE                       (0x00)
-#define DEVDRV_USBF_PIPE_WAIT                       (0x01)
-#define DEVDRV_USBF_PIPE_DONE                       (0x02)
-#define DEVDRV_USBF_PIPE_NORES                      (0x03)
-#define DEVDRV_USBF_PIPE_STALL                      (0x04)
-
-#define DEVDRV_USBF_PID_NAK                         (0x0000u)
-#define DEVDRV_USBF_PID_BUF                         (0x0001u)
-#define DEVDRV_USBF_PID_STALL                       (0x0002u)
-#define DEVDRV_USBF_PID_STALL2                      (0x0003u)
-
-#define USB_FUNCTION_NON_SPEED                      (0)
-#define USB_FUNCTION_LOW_SPEED                      (1)
-#define USB_FUNCTION_FULL_SPEED                     (2)
-#define USB_FUNCTION_HIGH_SPEED                     (3)
-
-#define USB_FUNCTION_READEND                        (0)
-#define USB_FUNCTION_READSHRT                       (1)
-#define USB_FUNCTION_READING                        (2)
-#define USB_FUNCTION_READOVER                       (3)
-#define USB_FUNCTION_READZERO                       (4)
-
-#define USB_FUNCTION_MAX_PIPE_NO                    (15u)
-#define USB_FUNCTION_PIPE0                          (0)
-#define USB_FUNCTION_PIPE1                          (1)
-#define USB_FUNCTION_PIPE2                          (2)
-#define USB_FUNCTION_PIPE3                          (3)
-#define USB_FUNCTION_PIPE4                          (4)
-#define USB_FUNCTION_PIPE5                          (5)
-#define USB_FUNCTION_PIPE6                          (6)
-#define USB_FUNCTION_PIPE7                          (7)
-#define USB_FUNCTION_PIPE8                          (8)
-#define USB_FUNCTION_PIPE9                          (9)
-#define USB_FUNCTION_PIPEA                          (10)
-#define USB_FUNCTION_PIPEB                          (11)
-#define USB_FUNCTION_PIPEC                          (12)
-#define USB_FUNCTION_PIPED                          (13)
-#define USB_FUNCTION_PIPEE                          (14)
-#define USB_FUNCTION_PIPEF                          (15)
-
-#define USB_FUNCTION_ISO                            (0xc000u)
-#define USB_FUNCTION_INTERRUPT                      (0x8000u)
-#define USB_FUNCTION_BULK                           (0x4000u)
-
-#define USB_FUNCTION_NONE                           (0x0000u)
-#define USB_FUNCTON_BFREFIELD                       (0x0400u)
-#define USB_FUNCTION_BFREON                         (0x0400u)
-#define USB_FUNCTION_BFREOFF                        (0x0000u)
-#define USB_FUNCTION_DBLBFIELD                      (0x0200u)
-#define USB_FUNCTION_DBLBON                         (0x0200u)
-#define USB_FUNCTION_DBLBOFF                        (0x0000u)
-#define USB_FUNCTION_CNTMDFIELD                     (0x0100u)
-#define USB_FUNCTION_CNTMDON                        (0x0100u)
-#define USB_FUNCTION_CNTMDOFF                       (0x0000u)
-#define USB_FUNCTION_SHTNAKON                       (0x0080u)
-#define USB_FUNCTION_SHTNAKOFF                      (0x0000u)
-#define USB_FUNCTION_DIRFIELD                       (0x0010u)
-#define USB_FUNCTION_DIR_P_OUT                      (0x0000u)
-#define USB_FUNCTION_DIR_P_IN                       (0x0010u)
-#define USB_FUNCTION_EPNUMFIELD                     (0x000fu)
-#define USB_FUNCTION_MAX_EP_NO                      (15u)
-#define USB_FUNCTION_EP0                            (0u)
-#define USB_FUNCTION_EP1                            (1u)
-#define USB_FUNCTION_EP2                            (2u)
-#define USB_FUNCTION_EP3                            (3u)
-#define USB_FUNCTION_EP4                            (4u)
-#define USB_FUNCTION_EP5                            (5u)
-#define USB_FUNCTION_EP6                            (6u)
-#define USB_FUNCTION_EP7                            (7u)
-#define USB_FUNCTION_EP8                            (8u)
-#define USB_FUNCTION_EP9                            (9u)
-#define USB_FUNCTION_EP10                           (10u)
-#define USB_FUNCTION_EP11                           (11u)
-#define USB_FUNCTION_EP12                           (12u)
-#define USB_FUNCTION_EP13                           (13u)
-#define USB_FUNCTION_EP14                           (14u)
-#define USB_FUNCTION_EP15                           (15u)
-
-#define USB_FUNCTION_EPTABLE_LENGTH                 (5u)
-
-#define USB_FUNCTION_CUSE                           (0)
-#define USB_FUNCTION_D0USE                          (1)
-#define USB_FUNCTION_D0DMA                          (2)
-#define USB_FUNCTION_D1USE                          (3)
-#define USB_FUNCTION_D1DMA                          (4)
-
-#define USB_FUNCTION_CFIFO_USE                      (0x0000)
-#define USB_FUNCTION_D0FIFO_USE                     (0x1000)
-#define USB_FUNCTION_D1FIFO_USE                     (0x2000)
-#define USB_FUNCTION_D0FIFO_DMA                     (0x5000)
-#define USB_FUNCTION_D1FIFO_DMA                     (0x6000)
-
-#define USB_FUNCTION_BUF2FIFO                       (0)
-#define USB_FUNCTION_FIFO2BUF                       (1)
-
-#define USB_FUNCTION_DVST_POWERED                   (0x0001)
-#define USB_FUNCTION_DVST_DEFAULT                   (0x0002)
-#define USB_FUNCTION_DVST_ADDRESS                   (0x0003)
-#define USB_FUNCTION_DVST_CONFIGURED                (0x0004)
-#define USB_FUNCTION_DVST_SUSPEND                   (0x0005)
-#define USB_FUNCTION_DVST_CONFIGURED_SUSPEND        (0x0006)
-
-#define USB_FUNCTION_FUNCTION_TEST_SELECT           (0xff00u)
-#define USB_FUNCTION_FUNCTION_TEST_J                (0x0100u)
-#define USB_FUNCTION_FUNCTION_TEST_K                (0x0200u)
-#define USB_FUNCTION_FUNCTION_TEST_SE0_NAK          (0x0300u)
-#define USB_FUNCTION_FUNCTION_TEST_PACKET           (0x0400u)
-#define USB_FUNCTION_FUNCTION_TEST_FORCE_ENABLE     (0x0500u)
-#define USB_FUNCTION_FUNCTION_TEST_STSelectors      (0x0600u)
-#define USB_FUNCTION_FUNCTION_TEST_Reserved         (0x4000u)
-#define USB_FUNCTION_FUNCTION_TEST_VSTModes         (0xc000u)
-
-#define USB_FUNCTION_DT_TYPE                        (0xff00u)
-#define USB_FUNCTION_DT_INDEX                       (0xff)
-#define USB_FUNCTION_DT_DEVICE                      (0x01)
-#define USB_FUNCTION_DT_CONFIGURATION               (0x02)
-#define USB_FUNCTION_DT_STRING                      (0x03)
-#define USB_FUNCTION_DT_INTERFACE                   (0x04)
-#define USB_FUNCTION_DT_ENDPOINT                    (0x05)
-#define USB_FUNCTION_DT_DEVICE_QUALIFIER            (0x06)
-#define USB_FUNCTION_DT_OTHER_SPEED_CONFIGURATION   (0x07)
-#define USB_FUNCTION_DT_INTERFACE_POWER             (0x08)
-
-#define USB_FUNCTION_CF_RESERVED                    (0x80)
-#define USB_FUNCTION_CF_SELF                        (0x40)
-#define USB_FUNCTION_CF_RWUP                        (0x20)
-#define USB_FUNCTION_CF_NORWUP                      (0x00)
-#define USB_FUNCTION_EP_ERROR                       (0xff)
-
-#define USB_FUNCTION_EP_OUT                         (0x00)
-#define USB_FUNCTION_EP_IN                          (0x80)
-#define USB_FUNCTION_EP_CNTRL                       (0x00)
-#define USB_FUNCTION_EP_ISO                         (0x01)
-#define USB_FUNCTION_EP_BULK                        (0x02)
-#define USB_FUNCTION_EP_INT                         (0x03)
-
-#define USB_FUNCTION_STANDARD_REQUEST               (0x0000u)
-#define USB_FUNCTION_CLASS_REQUEST                  (0x0020u)
-#define USB_FUNCTION_VENDOR_REQUEST                 (0x0040u)
-#define USB_FUNCTION_DEVICE_REQUEST                 (0x0000u)
-#define USB_FUNCTION_INTERFACE_REQUEST              (0x0001u)
-#define USB_FUNCTION_ENDPOINT_REQUEST               (0x0002u)
-
-#define USB_FUNCTION_GETSTATUS_BUSPOWERD            (0x0000u)
-#define USB_FUNCTION_GETSTATUS_SELFPOWERD           (0x0001u)
-#define USB_FUNCTION_GETSTATUS_REMOTEWAKEUP         (0x0002u)
-#define USB_FUNCTION_GETSTATUS_NOTHALT              (0x0000u)
-#define USB_FUNCTION_GETSTATUS_HALT                 (0x0001u)
-
-#define USB_FUNCTION_FEATURE_ENDPOINT_HALT          (0x0000u)
-#define USB_FUNCTION_FEATURE_REMOTE_WAKEUP          (0x0001u)
-#define USB_FUNCTION_FEATURE_TEST_MODE              (0x0002u)
-
-#define USB_FUNCTION_bRequest                       (0xff00u)       /* b15-8:bRequest */
-#define USB_FUNCTION_bmRequestType                  (0x00ffu)       /* b7-0: bmRequestType */
-#define USB_FUNCTION_bmRequestTypeDir               (0x0080u)       /* b7  : Data transfer direction */
-#define USB_FUNCTION_bmRequestTypeType              (0x0060u)       /* b6-5: Type */
-#define USB_FUNCTION_bmRequestTypeRecip             (0x001fu)       /* b4-0: Recipient */
-
-
-/*******************************************************************************
-Variable Externs
-*******************************************************************************/
-
-
-/*******************************************************************************
-Functions Prototypes
-*******************************************************************************/
-#if 0
-void     R_USB_api_function_init(uint16_t root, uint8_t int_level, uint16_t mode, uint16_t clockmode);
-uint16_t R_USB_api_function_IsConfigured(uint16_t root);
-uint16_t R_USB_api_function_CtrlReadStart(uint16_t root, uint32_t size, uint8_t *data);
-void     R_USB_api_function_CtrlWriteStart(uint16_t root, uint32_t size, uint8_t *data);
-uint16_t R_USB_api_function_start_send_transfer(uint16_t root, uint16_t pipe, uint32_t size, uint8_t *data);
-uint16_t R_USB_api_function_check_pipe_status(uint16_t root, uint16_t pipe, uint32_t *size);
-void     R_USB_api_function_clear_pipe_status(uint16_t root, uint16_t pipe);
-void     R_USB_api_function_start_receive_transfer(uint16_t root, uint16_t pipe, uint32_t size, uint8_t *data);
-void     R_USB_api_function_set_pid_buf(uint16_t root, uint16_t pipe);
-void     R_USB_api_function_set_pid_nak(uint16_t root, uint16_t pipe);
-void     R_USB_api_function_set_pid_stall(uint16_t root, uint16_t pipe);
-void     R_USB_api_function_clear_pid_stall(uint16_t root, uint16_t pipe);
-uint16_t R_USB_api_function_get_pid(uint16_t root, uint16_t pipe);
-int32_t  R_USB_api_function_check_stall(uint16_t root, uint16_t pipe);
-void     R_USB_api_function_set_sqclr(uint16_t root, uint16_t pipe);
-void     R_USB_api_function_set_sqset(uint16_t root, uint16_t pipe);
-void     R_USB_api_function_set_csclr(uint16_t root, uint16_t pipe);
-void     R_USB_api_function_set_curpipe(uint16_t root, uint16_t pipe, uint16_t fifosel, uint16_t isel, uint16_t mbw);
-void     R_USB_api_function_clear_brdy_sts(uint16_t root, uint16_t pipe);
-void     R_USB_api_function_clear_bemp_sts(uint16_t root, uint16_t pipe);
-void     R_USB_api_function_clear_nrdy_sts(uint16_t root, uint16_t pipe);
-void     R_USB_api_function_enable_brdy_int(uint16_t root, uint16_t pipe);
-void     R_USB_api_function_disable_brdy_int(uint16_t root, uint16_t pipe);
-void     R_USB_api_function_enable_bemp_int(uint16_t root, uint16_t pipe);
-void     R_USB_api_function_disable_bemp_int(uint16_t root, uint16_t pipe);
-void     R_USB_api_function_enable_nrdy_int(uint16_t root, uint16_t pipe);
-void     R_USB_api_function_disable_nrdy_int(uint16_t root, uint16_t pipe);
-void     R_USB_api_function_stop_transfer(uint16_t root, uint16_t pipe);
-#endif
-
-#ifdef USB0_FUNCTION_API_H
-void     usb0_function_interrupt(uint32_t int_sense);
-void     usb0_function_dma_interrupt_d0fifo(uint32_t int_sense);
-void     usb0_function_dma_interrupt_d1fifo(uint32_t int_sense);
-
-void     usb0_function_Class0(uint16_t type, uint16_t req, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_Class1(uint16_t type, uint16_t req, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_Class2(uint16_t type, uint16_t req, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_Class3(uint16_t type, uint16_t req, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_Class4(uint16_t type, uint16_t req, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_Class5(uint16_t type, uint16_t req, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_Vendor0(uint16_t type, uint16_t req, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_Vendor1(uint16_t type, uint16_t req, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_Vendor2(uint16_t type, uint16_t req, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_Vendor3(uint16_t type, uint16_t req, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_Vendor4(uint16_t type, uint16_t req, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_Vendor5(uint16_t type, uint16_t req, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_ResetDescriptor(uint16_t mode);
-
-IRQn_Type Userdef_USB_usb0_function_d0fifo_dmaintid(void);
-IRQn_Type Userdef_USB_usb0_function_d1fifo_dmaintid(void);
-void     Userdef_USB_usb0_function_attach(void);
-void     Userdef_USB_usb0_function_detach(void);
-void     Userdef_USB_usb0_function_delay_1ms(void);
-void     Userdef_USB_usb0_function_delay_xms(uint32_t msec);
-void     Userdef_USB_usb0_function_delay_10us(uint32_t usec);
-void     Userdef_USB_usb0_function_delay_500ns(void);
-void     Userdef_USB_usb0_function_start_dma(USB_FUNCTION_DMA_t *dma, uint16_t dfacc);
-uint32_t Userdef_USB_usb0_function_stop_dma0(void);
-uint32_t Userdef_USB_usb0_function_stop_dma1(void);
-
-void     usb0_function_stop_transfer(uint16_t pipe);
-void     usb0_function_enable_brdy_int(uint16_t pipe);
-void     usb0_function_disable_brdy_int(uint16_t pipe);
-void     usb0_function_enable_bemp_int(uint16_t pipe);
-void     usb0_function_disable_bemp_int(uint16_t pipe);
-void     usb0_function_enable_nrdy_int(uint16_t pipe);
-void     usb0_function_disable_nrdy_int(uint16_t pipe);
-#endif
-
-#ifdef  USB1_FUNCTION_API_H
-void     usb1_function_interrupt(uint32_t int_sense);
-void     usb1_function_dma_interrupt_d0fifo(uint32_t int_sense);
-void     usb1_function_dma_interrupt_d1fifo(uint32_t int_sense);
-
-void     usb1_function_Class0(uint16_t type, uint16_t req, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_Class1(uint16_t type, uint16_t req, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_Class2(uint16_t type, uint16_t req, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_Class3(uint16_t type, uint16_t req, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_Class4(uint16_t type, uint16_t req, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_Class5(uint16_t type, uint16_t req, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_Vendor0(uint16_t type, uint16_t req, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_Vendor1(uint16_t type, uint16_t req, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_Vendor2(uint16_t type, uint16_t req, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_Vendor3(uint16_t type, uint16_t req, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_Vendor4(uint16_t type, uint16_t req, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_Vendor5(uint16_t type, uint16_t req, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_ResetDescriptor(uint16_t mode);
-
-uint16_t Userdef_USB_usb1_function_d0fifo_dmaintid(void);
-uint16_t Userdef_USB_usb1_function_d1fifo_dmaintid(void);
-void     Userdef_USB_usb1_function_attach(void);
-void     Userdef_USB_usb1_function_detach(void);
-void     Userdef_USB_usb1_function_delay_1ms(void);
-void     Userdef_USB_usb1_function_delay_xms(uint32_t msec);
-void     Userdef_USB_usb1_function_delay_10us(uint32_t usec);
-void     Userdef_USB_usb1_function_delay_500ns(void);
-void     Userdef_USB_usb1_function_start_dma(USB_FUNCTION_DMA_t *dma, uint16_t dfacc);
-uint32_t Userdef_USB_usb1_function_stop_dma0(void);
-uint32_t Userdef_USB_usb1_function_stop_dma1(void);
-
-void     usb1_function_stop_transfer(uint16_t pipe);
-void     usb1_function_enable_brdy_int(uint16_t pipe);
-void     usb1_function_disable_brdy_int(uint16_t pipe);
-void     usb1_function_enable_bemp_int(uint16_t pipe);
-void     usb1_function_disable_bemp_int(uint16_t pipe);
-void     usb1_function_enable_nrdy_int(uint16_t pipe);
-void     usb1_function_disable_nrdy_int(uint16_t pipe);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* USB_FUNCTION_API_H */
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/inc/usb_function.h	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,143 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb_function.h
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Description  : RZ/A1H R7S72100 USB Sample Program
-*******************************************************************************/
-#ifndef USB_FUNCTION_H
-#define USB_FUNCTION_H
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include "r_typedefs.h"
-#include "iodefine.h"
-#include "rza_io_regrw.h"
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-#define USB_FUNCTION_ALT_NO         (255)
-#define USB_FUNCTION_ALT_SET        (0xff)
-
-#define USB_FUNCTION_BITUPLLE       (0x0002u)
-#define USB_FUNCTION_BITUCKSEL      (0x0004u)
-#define USB_FUNCTION_BITBWAIT       (0x003fu)
-
-#define USB_FUNCTION_BUSWAIT_02     (0x0000u)
-#define USB_FUNCTION_BUSWAIT_03     (0x0001u)
-#define USB_FUNCTION_BUSWAIT_04     (0x0002u)
-#define USB_FUNCTION_BUSWAIT_05     (0x0003u)
-#define USB_FUNCTION_BUSWAIT_06     (0x0004u)
-#define USB_FUNCTION_BUSWAIT_07     (0x0005u)
-#define USB_FUNCTION_BUSWAIT_08     (0x0006u)
-#define USB_FUNCTION_BUSWAIT_09     (0x0007u)
-#define USB_FUNCTION_BUSWAIT_10     (0x0008u)
-#define USB_FUNCTION_BUSWAIT_11     (0x0009u)
-#define USB_FUNCTION_BUSWAIT_12     (0x000au)
-#define USB_FUNCTION_BUSWAIT_13     (0x000bu)
-#define USB_FUNCTION_BUSWAIT_14     (0x000cu)
-#define USB_FUNCTION_BUSWAIT_15     (0x000du)
-#define USB_FUNCTION_BUSWAIT_16     (0x000eu)
-#define USB_FUNCTION_BUSWAIT_17     (0x000fu)
-
-#define USB_FUNCTION_BITRESUME      (0x0020u)
-#define USB_FUNCTION_BITUACT        (0x0010u)
-#define USB_FUNCTION_HSPROC         (0x0004u)
-#define USB_FUNCTION_HSMODE         (0x0003u)
-#define USB_FUNCTION_FSMODE         (0x0002u)
-#define USB_FUNCTION_LSMODE         (0x0001u)
-#define USB_FUNCTION_UNDECID        (0x0000u)
-
-#define USB_FUNCTION_BITRCNT        (0x8000u)
-#define USB_FUNCTION_BITDREQE       (0x1000u)
-#define USB_FUNCTION_BITMBW         (0x0c00u)
-#define USB_FUNCTION_BITMBW_8       (0x0000u)
-#define USB_FUNCTION_BITMBW_16      (0x0400u)
-#define USB_FUNCTION_BITMBW_32      (0x0800u)
-#define USB_FUNCTION_BITBYTE_LITTLE (0x0000u)
-#define USB_FUNCTION_BITBYTE_BIG    (0x0100u)
-#define USB_FUNCTION_BITISEL        (0x0020u)
-#define USB_FUNCTION_BITCURPIPE     (0x000fu)
-
-#define USB_FUNCTION_CFIFO_READ     (0x0000u)
-#define USB_FUNCTION_CFIFO_WRITE    (0x0020u)
-
-#define USB_FUNCTION_BITBVAL        (0x8000u)
-#define USB_FUNCTION_BITBCLR        (0x4000u)
-#define USB_FUNCTION_BITFRDY        (0x2000u)
-#define USB_FUNCTION_BITDTLN        (0x0fffu)
-
-#define USB_FUNCTION_BITVBSE        (0x8000u)
-#define USB_FUNCTION_BITRSME        (0x4000u)
-#define USB_FUNCTION_BITSOFE        (0x2000u)
-#define USB_FUNCTION_BITDVSE        (0x1000u)
-#define USB_FUNCTION_BITCTRE        (0x0800u)
-#define USB_FUNCTION_BITVBINT       (0x8000u)
-#define USB_FUNCTION_BITRESM        (0x4000u)
-#define USB_FUNCTION_BITSOFR        (0x2000u)
-#define USB_FUNCTION_BITDVST        (0x1000u)
-#define USB_FUNCTION_BITCTRT        (0x0800u)
-
-#define USB_FUNCTION_BITBEMPE       (0x0400u)
-#define USB_FUNCTION_BITNRDYE       (0x0200u)
-#define USB_FUNCTION_BITBRDYE       (0x0100u)
-#define USB_FUNCTION_BITBEMP        (0x0400u)
-#define USB_FUNCTION_BITNRDY        (0x0200u)
-#define USB_FUNCTION_BITBRDY        (0x0100u)
-
-#define USB_FUNCTION_BITDVSQ        (0x0070u)
-#define USB_FUNCTION_BITDVSQS       (0x0030u)
-#define USB_FUNCTION_DS_SPD_CNFG    (0x0070u)
-#define USB_FUNCTION_DS_SPD_ADDR    (0x0060u)
-#define USB_FUNCTION_DS_SPD_DFLT    (0x0050u)
-#define USB_FUNCTION_DS_SPD_POWR    (0x0040u)
-#define USB_FUNCTION_DS_CNFG        (0x0030u)
-#define USB_FUNCTION_DS_ADDS        (0x0020u)
-#define USB_FUNCTION_DS_DFLT        (0x0010u)
-#define USB_FUNCTION_DS_POWR        (0x0000u)
-#define USB_FUNCTION_BITVALID       (0x0008u)
-#define USB_FUNCTION_BITCTSQ        (0x0007u)
-#define USB_FUNCTION_CS_SQER        (0x0006u)
-#define USB_FUNCTION_CS_WRND        (0x0005u)
-#define USB_FUNCTION_CS_WRSS        (0x0004u)
-#define USB_FUNCTION_CS_WRDS        (0x0003u)
-#define USB_FUNCTION_CS_RDSS        (0x0002u)
-#define USB_FUNCTION_CS_RDDS        (0x0001u)
-#define USB_FUNCTION_CS_IDST        (0x0000u)
-
-#define USB_FUNCTION_PIPExBUF       (64u)
-
-#define USB_FUNCTION_D0FIFO         (0)
-#define USB_FUNCTION_D1FIFO         (1)
-#define USB_FUNCTION_DMA_READY      (0)
-#define USB_FUNCTION_DMA_BUSY       (1)
-#define USB_FUNCTION_DMA_BUSYEND    (2)
-
-#define USB_FUNCTION_FIFO_USE       (0x7000)
-
-#endif /* USB_FUNCTION_FUNCTION_H */
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/inc/usb_function_version.h	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb_function_version.h
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Description  : RZ/A1H R7S72100 USB Sample Program
-*******************************************************************************/
-
-#define USB_FUNCTION_LOCAL_Rev  "VER080_140709"
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/inc/usb0_function.h	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,171 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb0_function.h
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Description  : RZ/A1H R7S72100 USB Sample Program
-*******************************************************************************/
-#ifndef USB0_FUNCTION_H
-#define USB0_FUNCTION_H
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include "devdrv_usb_function_api.h"
-#include "usb_function.h"
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Imported global variables and functions (from other files)
-*******************************************************************************/
-extern const uint16_t       g_usb0_function_bit_set[];
-extern uint32_t             g_usb0_function_data_count[USB_FUNCTION_MAX_PIPE_NO + 1];
-extern uint8_t              *g_usb0_function_data_pointer[USB_FUNCTION_MAX_PIPE_NO + 1];
-
-extern uint16_t             g_usb0_function_PipeIgnore[];
-extern uint16_t             g_usb0_function_PipeTbl[];
-extern uint16_t             g_usb0_function_pipe_status[];
-extern uint32_t             g_usb0_function_PipeDataSize[];
-
-extern USB_FUNCTION_DMA_t   g_usb0_function_DmaInfo[];
-extern uint16_t             g_usb0_function_DmaPipe[];
-extern uint16_t             g_usb0_function_DmaBval[];
-extern uint16_t             g_usb0_function_DmaStatus[];
-
-extern uint16_t             g_usb0_function_CtrZeroLengthFlag;
-
-extern uint16_t             g_usb0_function_ConfigNum;
-extern uint16_t             g_usb0_function_Alternate[USB_FUNCTION_ALT_NO];
-extern uint16_t             g_usb0_function_RemoteWakeupFlag;
-extern uint16_t             g_usb0_function_TestModeFlag;
-extern uint16_t             g_usb0_function_TestModeSelectors;
-
-extern uint16_t             g_usb0_function_ReqType;
-extern uint16_t             g_usb0_function_ReqTypeType;
-extern uint16_t             g_usb0_function_ReqTypeRecip;
-extern uint16_t             g_usb0_function_ReqRequest;
-extern uint16_t             g_usb0_function_ReqValue;
-extern uint16_t             g_usb0_function_ReqIndex;
-extern uint16_t             g_usb0_function_ReqLength;
-
-extern uint16_t             g_usb0_function_EPTableIndex[USB_FUNCTION_MAX_EP_NO + 1];
-
-extern uint16_t             g_usb0_function_pipecfg[USB_FUNCTION_MAX_PIPE_NO + 1];
-extern uint16_t             g_usb0_function_pipebuf[USB_FUNCTION_MAX_PIPE_NO + 1];
-extern uint16_t             g_usb0_function_pipemaxp[USB_FUNCTION_MAX_PIPE_NO + 1];
-extern uint16_t             g_usb0_function_pipeperi[USB_FUNCTION_MAX_PIPE_NO + 1];
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-/* ==== common ==== */
-void     usb0_function_dma_stop_d0(uint16_t pipe, uint32_t remain);
-void     usb0_function_dma_stop_d1(uint16_t pipe, uint32_t remain);
-uint16_t usb0_function_is_hispeed(void);
-uint16_t usb0_function_is_hispeed_enable(void);
-uint16_t usb0_function_start_send_transfer(uint16_t pipe, uint32_t size, uint8_t *data);
-uint16_t usb0_function_write_buffer(uint16_t pipe);
-uint16_t usb0_function_write_buffer_c(uint16_t pipe);
-uint16_t usb0_function_write_buffer_d0(uint16_t pipe);
-uint16_t usb0_function_write_buffer_d1(uint16_t pipe);
-void     usb0_function_start_receive_transfer(uint16_t pipe, uint32_t size, uint8_t *data);
-uint16_t usb0_function_read_buffer(uint16_t pipe);
-uint16_t usb0_function_read_buffer_c(uint16_t pipe);
-uint16_t usb0_function_read_buffer_d0(uint16_t pipe);
-uint16_t usb0_function_read_buffer_d1(uint16_t pipe);
-uint16_t usb0_function_change_fifo_port(uint16_t pipe, uint16_t fifosel, uint16_t isel, uint16_t mbw);
-void     usb0_function_set_curpipe(uint16_t pipe, uint16_t fifosel, uint16_t isel, uint16_t mbw);
-void     usb0_function_set_curpipe2(uint16_t pipe, uint16_t fifosel, uint16_t isel, uint16_t mbw, uint16_t dfacc);
-uint16_t usb0_function_get_mbw(uint32_t trncount, uint32_t dtptr);
-uint16_t usb0_function_read_dma(uint16_t pipe);
-void     usb0_function_brdy_int(uint16_t status, uint16_t int_enb);
-void     usb0_function_nrdy_int(uint16_t status, uint16_t int_enb);
-void     usb0_function_bemp_int(uint16_t status, uint16_t int_enb);
-void     usb0_function_setting_interrupt(uint8_t level);
-void     usb0_function_reset_module(uint16_t clockmode);
-uint16_t usb0_function_get_buf_size(uint16_t pipe);
-uint16_t usb0_function_get_mxps(uint16_t pipe);
-void     usb0_function_clear_brdy_sts(uint16_t pipe);
-void     usb0_function_clear_bemp_sts(uint16_t pipe);
-void     usb0_function_clear_nrdy_sts(uint16_t pipe);
-void     usb0_function_set_pid_buf(uint16_t pipe);
-void     usb0_function_set_pid_nak(uint16_t pipe);
-void     usb0_function_set_pid_stall(uint16_t pipe);
-void     usb0_function_clear_pid_stall(uint16_t pipe);
-uint16_t usb0_function_get_pid(uint16_t pipe);
-void     usb0_function_set_sqclr(uint16_t pipe);
-void     usb0_function_set_sqset(uint16_t pipe);
-void     usb0_function_set_csclr(uint16_t pipe);
-void     usb0_function_aclrm(uint16_t pipe);
-void     usb0_function_set_aclrm(uint16_t pipe);
-void     usb0_function_clr_aclrm(uint16_t pipe);
-uint16_t usb0_function_get_sqmon(uint16_t pipe);
-uint16_t usb0_function_get_inbuf(uint16_t pipe);
-
-/* ==== function ==== */
-void     usb0_function_init_status(void);
-void     usb0_function_InitModule(uint16_t mode);
-uint16_t usb0_function_CheckVBUStaus(void);
-void     usb0_function_USB_FUNCTION_Attach(void);
-void     usb0_function_USB_FUNCTION_Detach(void);
-void     usb0_function_USB_FUNCTION_BusReset(void);
-void     usb0_function_USB_FUNCTION_Resume(void);
-void     usb0_function_USB_FUNCTION_Suspend(void);
-void     usb0_function_USB_FUNCTION_TestMode(void);
-void     usb0_function_ResetDCP(void);
-void     usb0_function_ResetEP(uint16_t num);
-uint16_t usb0_function_EpToPipe(uint16_t ep);
-void     usb0_function_InitEPTable(uint16_t Con_Num, uint16_t Int_Num, uint16_t Alt_Num);
-uint16_t usb0_function_GetConfigNum(void);
-uint16_t usb0_function_GetAltNum(uint16_t Con_Num, uint16_t Int_Num);
-uint16_t usb0_function_CheckRemoteWakeup(void);
-void     usb0_function_clear_alt(void);
-void     usb0_function_clear_pipe_tbl(void);
-void     usb0_function_clear_ep_table_index(void);
-uint16_t usb0_function_GetInterfaceNum(uint16_t num);
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* USB0_FUNCTION_H */
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/inc/usb0_function_api.h	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb0_function_api.h
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Description  : RZ/A1H R7S72100 USB Sample Program
-*******************************************************************************/
-#ifndef USB0_FUNCTION_API_H
-#define USB0_FUNCTION_API_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Variable Externs
-*******************************************************************************/
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-void     usb0_api_function_init(uint8_t int_level, uint16_t mode, uint16_t clockmode);
-uint16_t usb0_api_function_IsConfigured(void);
-uint16_t usb0_function_GetDeviceState(void);
-uint16_t usb0_api_function_CtrlReadStart(uint32_t size, uint8_t *data);
-void     usb0_api_function_CtrlWriteStart(uint32_t size, uint8_t *data);
-uint16_t usb0_api_function_start_send_transfer(uint16_t pipe, uint32_t size, uint8_t *data);
-uint16_t usb0_api_function_check_pipe_status(uint16_t pipe, uint32_t *size);
-void     usb0_api_function_clear_pipe_status(uint16_t pipe);
-void     usb0_api_function_start_receive_transfer(uint16_t pipe, uint32_t size, uint8_t *data);
-void     usb0_api_function_set_pid_buf(uint16_t pipe);
-void     usb0_api_function_set_pid_nak(uint16_t pipe);
-void     usb0_api_function_set_pid_stall(uint16_t pipe);
-void     usb0_api_function_clear_pid_stall(uint16_t pipe);
-uint16_t usb0_api_function_get_pid(uint16_t pipe);
-int32_t  usb0_api_function_check_stall(uint16_t pipe);
-void     usb0_api_function_set_sqclr(uint16_t pipe);
-void     usb0_api_function_set_sqset(uint16_t pipe);
-void     usb0_api_function_set_csclr(uint16_t pipe);
-void     usb0_api_function_set_curpipe(uint16_t pipe, uint16_t fifosel, uint16_t isel, uint16_t mbw);
-void     usb0_api_function_clear_brdy_sts(uint16_t pipe);
-void     usb0_api_function_clear_bemp_sts(uint16_t pipe);
-void     usb0_api_function_clear_nrdy_sts(uint16_t pipe);
-
-void     usb0_function_ClearFeature(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_SetFeature(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_SetAddress(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_SetDescriptor(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_SetConfiguration(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_SetInterface(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_SynchFrame(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_GetStatus(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_GetDescriptor(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_GetConfiguration(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_GetInterface(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_Resrv_0(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_Resrv_123(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_Resrv_4(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb0_function_Resrv_5(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* USB0_FUNCTION_API_H */
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/inc/usb0_function_dmacdrv.h	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb0_function_dmacdrv.h
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Description  : RZ/A1H R7S72100 USB Sample Program
-*******************************************************************************/
-#ifndef USB0_FUNCTION_DMACDRV_H
-#define USB0_FUNCTION_DMACDRV_H
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-typedef struct dmac_transinfo
-{
-    uint32_t src_addr;      /* Transfer source address                */
-    uint32_t dst_addr;      /* Transfer destination address           */
-    uint32_t count;         /* Transfer byte count                    */
-    uint32_t src_size;      /* Transfer source data size              */
-    uint32_t dst_size;      /* Transfer destination data size         */
-    uint32_t saddr_dir;     /* Transfer source address direction      */
-    uint32_t daddr_dir;     /* Transfer destination address direction */
-} dmac_transinfo_t;
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-/* ==== Transfer specification of the sample program ==== */
-#define DMAC_SAMPLE_SINGLE          (0)     /* Single transfer                   */
-#define DMAC_SAMPLE_CONTINUATION    (1)     /* Continuous transfer (use REN bit) */
-
-/* ==== DMA modes ==== */
-#define DMAC_MODE_REGISTER          (0)     /* Register mode */
-#define DMAC_MODE_LINK              (1)     /* Link mode     */
-
-/* ==== Transfer requests ==== */
-#define DMAC_REQ_MODE_EXT           (0)     /* External request                   */
-#define DMAC_REQ_MODE_PERI          (1)     /* On-chip peripheral module request  */
-#define DMAC_REQ_MODE_SOFT          (2)     /* Auto-request (request by software) */
-
-/* ==== DMAC transfer sizes ==== */
-#define DMAC_TRANS_SIZE_8           (0)     /* 8 bits    */
-#define DMAC_TRANS_SIZE_16          (1)     /* 16 bits   */
-#define DMAC_TRANS_SIZE_32          (2)     /* 32 bits   */
-#define DMAC_TRANS_SIZE_64          (3)     /* 64 bits   */
-#define DMAC_TRANS_SIZE_128         (4)     /* 128 bits  */
-#define DMAC_TRANS_SIZE_256         (5)     /* 256 bits  */
-#define DMAC_TRANS_SIZE_512         (6)     /* 512 bits  */
-#define DMAC_TRANS_SIZE_1024        (7)     /* 1024 bits */
-
-/* ==== Address increment for transferring ==== */
-#define DMAC_TRANS_ADR_NO_INC       (1)     /* Not increment */
-#define DMAC_TRANS_ADR_INC          (0)     /* Increment     */
-
-/* ==== Method for detecting DMA request ==== */
-#define DMAC_REQ_DET_FALL           (0)     /* Falling edge detection */
-#define DMAC_REQ_DET_RISE           (1)     /* Rising edge detection  */
-#define DMAC_REQ_DET_LOW            (2)     /* Low level detection    */
-#define DMAC_REQ_DET_HIGH           (3)     /* High level detection   */
-
-/* ==== Request Direction ==== */
-#define DMAC_REQ_DIR_SRC            (0)     /* DMAREQ is the source/ DMAACK is active when reading      */
-#define DMAC_REQ_DIR_DST            (1)     /* DMAREQ is the destination/ DMAACK is active when writing */
-
-/* ==== Descriptors ==== */
-#define DMAC_DESC_HEADER            (0)     /* Header              */
-#define DMAC_DESC_SRC_ADDR          (1)     /* Source Address      */
-#define DMAC_DESC_DST_ADDR          (2)     /* Destination Address */
-#define DMAC_DESC_COUNT             (3)     /* Transaction Byte    */
-#define DMAC_DESC_CHCFG             (4)     /* Channel Confg       */
-#define DMAC_DESC_CHITVL            (5)     /* Channel Interval    */
-#define DMAC_DESC_CHEXT             (6)     /* Channel Extension   */
-#define DMAC_DESC_LINK_ADDR         (7)     /* Link Address        */
-
-/* ==== On-chip peripheral module requests ===== */
-typedef enum dmac_request_factor
-{
-    DMAC_REQ_USB0_DMA0_TX,      /* USB_0 channel 0 transmit FIFO empty            */
-    DMAC_REQ_USB0_DMA0_RX,      /* USB_0 channel 0 receive FIFO full              */
-    DMAC_REQ_USB0_DMA1_TX,      /* USB_0 channel 1 transmit FIFO empty            */
-    DMAC_REQ_USB0_DMA1_RX,      /* USB_0 channel 1 receive FIFO full              */
-    DMAC_REQ_USB1_DMA0_TX,      /* USB_1 channel 0 transmit FIFO empty            */
-    DMAC_REQ_USB1_DMA0_RX,      /* USB_1 channel 0 receive FIFO full              */
-    DMAC_REQ_USB1_DMA1_TX,      /* USB_1 channel 1 transmit FIFO empty            */
-    DMAC_REQ_USB1_DMA1_RX,      /* USB_1 channel 1 receive FIFO full              */
-} dmac_request_factor_t;
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-void usb0_function_DMAC1_PeriReqInit(const dmac_transinfo_t *trans_info, uint32_t dmamode, uint32_t continuation,
-                                        uint32_t request_factor, uint32_t req_direction);
-int32_t usb0_function_DMAC1_Open(uint32_t req);
-void usb0_function_DMAC1_Close(uint32_t *remain);
-void usb0_function_DMAC1_Load_Set(uint32_t src_addr, uint32_t dst_addr, uint32_t count);
-
-void usb0_function_DMAC2_PeriReqInit(const dmac_transinfo_t *trans_info, uint32_t dmamode, uint32_t continuation,
-                                        uint32_t request_factor, uint32_t req_direction);
-int32_t usb0_function_DMAC2_Open(uint32_t req);
-void usb0_function_DMAC2_Close(uint32_t *remain);
-void usb0_function_DMAC2_Load_Set(uint32_t src_addr, uint32_t dst_addr, uint32_t count);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* USB0_FUNCTION_DMACDRV_H */
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/src/common/usb0_function_dataio.c	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2933 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb0_function_dataio.c
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Device(s)    : RZ/A1H
-* Tool-Chain   :
-* OS           : None
-* H/W Platform :
-* Description  : RZ/A1H R7S72100 USB Sample Program
-* Operation    :
-* Limitations  :
-*******************************************************************************/
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include "usb0_function.h"
-
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Imported global variables and functions (from other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Private global variables and functions
-*******************************************************************************/
-static uint16_t g_usb0_function_mbw[(USB_FUNCTION_MAX_PIPE_NO + 1)];
-
-static void     usb0_function_start_receive_trns_c(uint16_t pipe, uint32_t size, uint8_t *data);
-static void     usb0_function_start_receive_trns_d0(uint16_t pipe, uint32_t size, uint8_t *data);
-static void     usb0_function_start_receive_trns_d1(uint16_t pipe, uint32_t size, uint8_t *data);
-static void     usb0_function_start_receive_dma_d0(uint16_t pipe, uint32_t size, uint8_t *data);
-static void     usb0_function_start_receive_dma_d1(uint16_t pipe, uint32_t size, uint8_t *data);
-static uint16_t usb0_function_read_dma_d0(uint16_t pipe);
-static uint16_t usb0_function_read_dma_d1(uint16_t pipe);
-static uint16_t usb0_function_write_dma_d0(uint16_t pipe);
-static uint16_t usb0_function_write_dma_d1(uint16_t pipe);
-
-static void     usb0_function_read_c_fifo(uint16_t pipe, uint16_t count);
-static void     usb0_function_write_c_fifo(uint16_t Pipe, uint16_t count);
-static void     usb0_function_read_d0_fifo(uint16_t pipe, uint16_t count);
-static void     usb0_function_write_d0_fifo(uint16_t pipe, uint16_t count);
-static void     usb0_function_read_d1_fifo(uint16_t pipe, uint16_t count);
-static void     usb0_function_write_d1_fifo(uint16_t pipe, uint16_t count);
-
-static void     usb0_function_clear_transaction_counter(uint16_t pipe);
-static void     usb0_function_set_transaction_counter(uint16_t pipe, uint32_t count);
-
-static uint32_t usb0_function_com_get_dmasize(uint32_t trncount, uint32_t dtptr);
-
-static uint16_t usb0_function_set_dfacc_d0(uint16_t mbw, uint32_t count);
-static uint16_t usb0_function_set_dfacc_d1(uint16_t mbw, uint32_t count);
-
-
-/*******************************************************************************
-* Function Name: usb0_function_start_send_transfer
-* Description  : Starts the USB data communication using pipe specified by the argument.
-* Arguments    : uint16_t  pipe    ; Pipe Number
-*              : uint32_t size     ; Data Size
-*              : uint8_t  *data    ; Data Address
-* Return Value : DEVDRV_USBF_WRITEEND           ; Write end
-*              : DEVDRV_USBF_WRITESHRT          ; short data
-*              : DEVDRV_USBF_WRITING            ; Continue of data write
-*              : DEVDRV_USBF_WRITEDMA           ; Write DMA
-*              : DEVDRV_USBF_FIFOERROR          ; FIFO status
-*******************************************************************************/
-uint16_t usb0_function_start_send_transfer (uint16_t pipe, uint32_t size, uint8_t * data)
-{
-    uint16_t status;
-    uint16_t usefifo;
-    uint16_t mbw;
-
-    g_usb0_function_data_count[pipe]   = size;
-    g_usb0_function_data_pointer[pipe] = (uint8_t *)data;
-    g_usb0_function_pipe_status[pipe]  = DEVDRV_USBF_PIPE_WAIT;
-
-    usb0_function_clear_bemp_sts(pipe);
-    usb0_function_clear_brdy_sts(pipe);
-    usb0_function_clear_nrdy_sts(pipe);
-
-    mbw = usb0_function_get_mbw(size, (uint32_t)data);
-
-    usefifo = (uint16_t)(g_usb0_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE);
-
-    switch (usefifo)
-    {
-        case USB_FUNCTION_D0FIFO_USE:
-        case USB_FUNCTION_D0FIFO_DMA:
-            usefifo = USB_FUNCTION_D0USE;
-        break;
-
-        case USB_FUNCTION_D1FIFO_USE:
-        case USB_FUNCTION_D1FIFO_DMA:
-            usefifo = USB_FUNCTION_D1USE;
-        break;
-
-        default:
-            usefifo = USB_FUNCTION_CUSE;
-        break;
-    };
-
-    usb0_function_set_curpipe(USB_FUNCTION_PIPE0, usefifo, DEVDRV_USBF_NO, mbw);
-
-    usb0_function_clear_transaction_counter(pipe);
-
-    usb0_function_aclrm(pipe);
-
-    status = usb0_function_write_buffer(pipe);
-
-    if (status != DEVDRV_USBF_FIFOERROR)
-    {
-        usb0_function_set_pid_buf(pipe);
-    }
-
-    return status;
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_write_buffer
-* Description  : Writes data in the buffer allocated in the pipe specified by
-*              : the argument. The FIFO for using is set in the pipe definition table.
-* Arguments    : uint16_t pipe      ; Pipe Number
-* Return Value : DEVDRV_USBF_WRITEEND           ; Write end
-*              : DEVDRV_USBF_WRITESHRT          ; short data
-*              : DEVDRV_USBF_WRITING            ; Continue of data write
-*              : DEVDRV_USBF_WRITEDMA           ; Write DMA
-*              : DEVDRV_USBF_FIFOERROR          ; FIFO status
-*******************************************************************************/
-uint16_t usb0_function_write_buffer (uint16_t pipe)
-{
-    uint16_t status;
-    uint16_t usefifo;
-
-    g_usb0_function_PipeIgnore[pipe] = 0;
-    usefifo = (uint16_t)(g_usb0_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE);
-
-    switch (usefifo)
-    {
-        case USB_FUNCTION_D0FIFO_USE:
-            status = usb0_function_write_buffer_d0(pipe);
-        break;
-
-        case USB_FUNCTION_D1FIFO_USE:
-            status = usb0_function_write_buffer_d1(pipe);
-        break;
-
-        case USB_FUNCTION_D0FIFO_DMA:
-            status = usb0_function_write_dma_d0(pipe);
-        break;
-
-        case USB_FUNCTION_D1FIFO_DMA:
-            status = usb0_function_write_dma_d1(pipe);
-        break;
-
-        default:
-            status = usb0_function_write_buffer_c(pipe);
-        break;
-    };
-
-    switch (status)
-    {
-        case DEVDRV_USBF_WRITING:                       /* Continue of data write */
-            usb0_function_enable_nrdy_int(pipe);        /* Error (NORES or STALL) */
-            usb0_function_enable_brdy_int(pipe);        /* Enable Ready Interrupt */
-        break;
-
-        case DEVDRV_USBF_WRITEEND:                      /* End of data write */
-        case DEVDRV_USBF_WRITESHRT:                     /* End of data write */
-            usb0_function_disable_brdy_int(pipe);       /* Disable Ready Interrupt */
-            usb0_function_clear_nrdy_sts(pipe);
-            usb0_function_enable_nrdy_int(pipe);        /* Error (NORES or STALL) */
-            /* for last transfer */
-            usb0_function_enable_bemp_int(pipe);        /* Enable Empty Interrupt */
-        break;
-
-        case DEVDRV_USBF_WRITEDMA:                      /* DMA write */
-            usb0_function_clear_nrdy_sts(pipe);
-            usb0_function_enable_nrdy_int(pipe);        /* Error (NORES or STALL) */
-        break;
-
-        case DEVDRV_USBF_FIFOERROR:                     /* FIFO access status */
-        default:
-            usb0_function_disable_brdy_int(pipe);       /* Disable Ready Interrupt */
-            usb0_function_disable_bemp_int(pipe);       /* Disable Empty Interrupt */
-            g_usb0_function_pipe_status[pipe] = DEVDRV_USBF_FIFOERROR;
-        break;
-    }
-
-    return status;                      /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_write_buffer_c
-* Description  : Writes data in the buffer allocated in the pipe specified in
-*              : the argument. Writes data by CPU transfer using CFIFO.
-* Arguments    : uint16_t pipe      ; Pipe Number
-* Return Value : DEVDRV_USBF_WRITEEND           ; Write end
-*              : DEVDRV_USBF_WRITESHRT          ; short data
-*              : DEVDRV_USBF_WRITING            ; Continue of data write
-*              : DEVDRV_USBF_WRITEDMA           ; Write DMA
-*              : DEVDRV_USBF_FIFOERROR          ; FIFO status
-*******************************************************************************/
-uint16_t usb0_function_write_buffer_c (uint16_t pipe)
-{
-    uint32_t count;
-    uint16_t size;
-    uint16_t buffer;
-    uint16_t mxps;
-    uint16_t status;
-    uint16_t mbw;
-
-    if (g_usb0_function_CtrZeroLengthFlag == 1)
-    {
-        g_usb0_function_CtrZeroLengthFlag = 0;                  /* Zero Length Packet Flag CLR */
-        return DEVDRV_USBF_WRITEEND;
-    }
-
-    mbw = usb0_function_get_mbw(g_usb0_function_data_count[pipe], (uint32_t)g_usb0_function_data_pointer[pipe]);
-    if (pipe == USB_FUNCTION_PIPE0)
-    {
-        buffer = usb0_function_change_fifo_port(pipe, USB_FUNCTION_CUSE, USB_FUNCTION_CFIFO_WRITE, mbw);
-    }
-    else
-    {
-        buffer = usb0_function_change_fifo_port(pipe, USB_FUNCTION_CUSE, DEVDRV_USBF_NO, mbw);
-    }
-
-    if (buffer == DEVDRV_USBF_FIFOERROR)                        /* FIFO access status */
-    {
-        return DEVDRV_USBF_FIFOERROR;
-    }
-
-    size = usb0_function_get_buf_size(pipe);                    /* Data buffer size */
-    mxps = usb0_function_get_mxps(pipe);                        /* Max Packet Size */
-
-    if (g_usb0_function_data_count[pipe] <= (uint32_t)size)
-    {
-        status = DEVDRV_USBF_WRITEEND;                          /* write continues */
-        count  = g_usb0_function_data_count[pipe];
-
-        if (count == 0)
-        {
-            status = DEVDRV_USBF_WRITESHRT;                     /* Null Packet is end of write */
-        }
-
-        if ((count % mxps) != 0)
-        {
-            status = DEVDRV_USBF_WRITESHRT;                     /* Short Packet is end of write */
-        }
-    }
-    else
-    {
-        status = DEVDRV_USBF_WRITING;                           /* write continues */
-        count  = (uint32_t)size;
-    }
-
-    usb0_function_write_c_fifo(pipe, (uint16_t)count);
-
-    if (g_usb0_function_data_count[pipe] < (uint32_t)size)
-    {
-        g_usb0_function_data_count[pipe] = 0;
-
-        if (RZA_IO_RegRead_16(&USB200.CFIFOCTR, USB_CFIFOCTR_BVAL_SHIFT, USB_CFIFOCTR_BVAL) == 0)
-        {
-            USB200.CFIFOCTR = USB_FUNCTION_BITBVAL;             /* Short Packet */
-            g_usb0_function_CtrZeroLengthFlag = 1;              /* Zero Length Packet Flag */
-        }
-    }
-    else
-    {
-        g_usb0_function_data_count[pipe] -= count;
-    }
-
-    return status;                                              /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_write_buffer_d0
-* Description  : Writes data in the buffer allocated in the pipe specified in the argument.
-*              : Writes data by CPU transfer using D0FIFO.
-* Arguments    : uint16_t pipe      ; Pipe Number
-* Return Value : DEVDRV_USBF_WRITEEND           ; Write end
-*              : DEVDRV_USBF_WRITESHRT          ; short data
-*              : DEVDRV_USBF_WRITING            ; Continue of data write
-*              : DEVDRV_USBF_WRITEDMA           ; Write DMA
-*              : DEVDRV_USBF_FIFOERROR          ; FIFO status
-*******************************************************************************/
-uint16_t usb0_function_write_buffer_d0 (uint16_t pipe)
-{
-    uint32_t count;
-    uint16_t size;
-    uint16_t buffer;
-    uint16_t mxps;
-    uint16_t status;
-    uint16_t mbw;
-
-    mbw    = usb0_function_get_mbw(g_usb0_function_data_count[pipe], (uint32_t)g_usb0_function_data_pointer[pipe]);
-    buffer = usb0_function_change_fifo_port(pipe, USB_FUNCTION_D0USE, DEVDRV_USBF_NO, mbw);
-    if (buffer == DEVDRV_USBF_FIFOERROR)                        /* FIFO access status */
-    {
-        return DEVDRV_USBF_FIFOERROR;
-    }
-
-    size = usb0_function_get_buf_size(pipe);                    /* Data buffer size */
-    mxps = usb0_function_get_mxps(pipe);                        /* Max Packet Size */
-
-    if (g_usb0_function_data_count[pipe] <= (uint32_t)size)
-    {
-        status = DEVDRV_USBF_WRITEEND;                          /* write continues */
-        count  = g_usb0_function_data_count[pipe];
-
-        if (count == 0)
-        {
-            status = DEVDRV_USBF_WRITESHRT;                     /* Null Packet is end of write */
-        }
-
-        if ((count % mxps) != 0)
-        {
-            status = DEVDRV_USBF_WRITESHRT;                     /* Short Packet is end of write */
-        }
-    }
-    else
-    {
-        status = DEVDRV_USBF_WRITING;                           /* write continues */
-        count  = (uint32_t)size;
-    }
-
-    usb0_function_write_d0_fifo(pipe, (uint16_t)count);
-
-    if (g_usb0_function_data_count[pipe] < (uint32_t)size)
-    {
-        g_usb0_function_data_count[pipe] = 0;
-        if (RZA_IO_RegRead_16(&USB200.D0FIFOCTR, USB_DnFIFOCTR_BVAL_SHIFT, USB_DnFIFOCTR_BVAL) == 0)
-        {
-            USB200.D0FIFOCTR = USB_FUNCTION_BITBVAL;            /* Short Packet */
-        }
-    }
-    else
-    {
-        g_usb0_function_data_count[pipe] -= count;
-    }
-
-    return status;                                              /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_write_buffer_d1
-* Description  : Writes data in the buffer allocated in the pipe specified in the argument.
-*              : Writes data by CPU transfer using D1FIFO.
-* Arguments    : uint16_t pipe      ; Pipe Number
-* Return Value : DEVDRV_USBF_WRITEEND           ; Write end
-*              : DEVDRV_USBF_WRITESHRT          ; short data
-*              : DEVDRV_USBF_WRITING            ; Continue of data write
-*              : DEVDRV_USBF_WRITEDMA           ; Write DMA
-*              : DEVDRV_USBF_FIFOERROR          ; FIFO status
-*******************************************************************************/
-uint16_t usb0_function_write_buffer_d1 (uint16_t pipe)
-{
-    uint32_t count;
-    uint16_t size;
-    uint16_t buffer;
-    uint16_t mxps;
-    uint16_t status;
-    uint16_t mbw;
-
-    mbw = usb0_function_get_mbw(g_usb0_function_data_count[pipe], (uint32_t)g_usb0_function_data_pointer[pipe]);
-    buffer = usb0_function_change_fifo_port(pipe, USB_FUNCTION_D1USE, DEVDRV_USBF_NO, mbw);
-
-    if (buffer == DEVDRV_USBF_FIFOERROR)                        /* FIFO access status */
-    {
-        return DEVDRV_USBF_FIFOERROR;
-    }
-
-    size = usb0_function_get_buf_size(pipe);                    /* Data buffer size */
-    mxps = usb0_function_get_mxps(pipe);                        /* Max Packet Size */
-
-    if (g_usb0_function_data_count[pipe] <= (uint32_t)size)
-    {
-        status = DEVDRV_USBF_WRITEEND;                          /* write continues */
-        count  = g_usb0_function_data_count[pipe];
-
-        if (count == 0)
-        {
-            status = DEVDRV_USBF_WRITESHRT;                     /* Null Packet is end of write */
-        }
-
-        if ((count % mxps) != 0)
-        {
-            status = DEVDRV_USBF_WRITESHRT;                     /* Short Packet is end of write */
-        }
-    }
-    else
-    {
-        status = DEVDRV_USBF_WRITING;                           /* write continues */
-        count  = (uint32_t)size;
-    }
-
-    usb0_function_write_d1_fifo(pipe, (uint16_t)count);
-
-    if (g_usb0_function_data_count[pipe] < (uint32_t)size)
-    {
-        g_usb0_function_data_count[pipe] = 0;
-
-        if (RZA_IO_RegRead_16(&USB200.D1FIFOCTR, USB_DnFIFOCTR_BVAL_SHIFT, USB_DnFIFOCTR_BVAL) == 0)
-        {
-            USB200.D1FIFOCTR = USB_FUNCTION_BITBVAL;            /* Short Packet */
-        }
-    }
-    else
-    {
-        g_usb0_function_data_count[pipe] -= count;
-    }
-
-    return status;                                              /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_write_dma_d0
-* Description  : Writes data in the buffer allocated in the pipe specified in the argument.
-*              : Writes data by DMA transfer using D0FIFO.
-*              : The DMA-ch for using is specified by Userdef_USB_usb0_function_start_dma().
-* Arguments    : uint16_t pipe     ; Pipe Number
-* Return Value : DEVDRV_USBF_WRITEEND           : Write end
-*              : DEVDRV_USBF_WRITESHRT          : short data
-*              : DEVDRV_USBF_WRITING            : Continue of data write
-*              : DEVDRV_USBF_WRITEDMA           : Write DMA
-*              : DEVDRV_USBF_FIFOERROR          : FIFO status
-*******************************************************************************/
-static uint16_t usb0_function_write_dma_d0 (uint16_t pipe)
-{
-    uint32_t count;
-    uint16_t size;
-    uint16_t buffer;
-    uint16_t status;
-    uint16_t mbw;
-    uint16_t dfacc = 0;
-
-    mbw = usb0_function_get_mbw(g_usb0_function_data_count[pipe], (uint32_t)g_usb0_function_data_pointer[pipe]);
-    buffer = usb0_function_change_fifo_port(pipe, USB_FUNCTION_D0DMA, DEVDRV_USBF_NO, mbw);
-
-    if (buffer == DEVDRV_USBF_FIFOERROR)                            /* FIFO access status */
-    {
-        return DEVDRV_USBF_FIFOERROR;
-    }
-
-    size  = usb0_function_get_buf_size(pipe);                       /* Data buffer size */
-    count = g_usb0_function_data_count[pipe];
-
-    if (count != 0)
-    {
-        g_usb0_function_DmaPipe[USB_FUNCTION_D0FIFO] = pipe;
-
-        if ((count % size) != 0)
-        {
-            g_usb0_function_DmaBval[USB_FUNCTION_D0FIFO] = 1;
-        }
-        else
-        {
-            g_usb0_function_DmaBval[USB_FUNCTION_D0FIFO] = 0;
-        }
-
-        dfacc = usb0_function_set_dfacc_d0(mbw, count);
-
-        if (mbw == USB_FUNCTION_BITMBW_32)
-        {
-            g_usb0_function_DmaInfo[USB_FUNCTION_D0FIFO].size = 2;  /* 32bit transfer */
-        }
-        else if (mbw == USB_FUNCTION_BITMBW_16)
-        {
-            g_usb0_function_DmaInfo[USB_FUNCTION_D0FIFO].size = 1;  /* 16bit transfer */
-        }
-        else
-        {
-            g_usb0_function_DmaInfo[USB_FUNCTION_D0FIFO].size = 0;  /* 8bit transfer */
-        }
-
-        g_usb0_function_DmaInfo[USB_FUNCTION_D0FIFO].fifo   = USB_FUNCTION_D0FIFO_DMA;
-        g_usb0_function_DmaInfo[USB_FUNCTION_D0FIFO].dir    = USB_FUNCTION_BUF2FIFO;
-        g_usb0_function_DmaInfo[USB_FUNCTION_D0FIFO].buffer = (uint32_t)g_usb0_function_data_pointer[pipe];
-        g_usb0_function_DmaInfo[USB_FUNCTION_D0FIFO].bytes  = count;
-
-        Userdef_USB_usb0_function_start_dma(&g_usb0_function_DmaInfo[USB_FUNCTION_D0FIFO], dfacc);
-
-        usb0_function_set_curpipe2(pipe, USB_FUNCTION_D0DMA, DEVDRV_USBF_NO, mbw, dfacc);
-
-        RZA_IO_RegWrite_16(&USB200.D0FIFOSEL, 1, USB_DnFIFOSEL_DREQE_SHIFT, USB_DnFIFOSEL_DREQE);
-
-        g_usb0_function_data_count[pipe]    = 0;
-        g_usb0_function_data_pointer[pipe] += count;
-        status = DEVDRV_USBF_WRITEDMA;                              /* DMA write  */
-    }
-    else
-    {
-        if (RZA_IO_RegRead_16(&USB200.D0FIFOCTR, USB_DnFIFOCTR_BVAL_SHIFT, USB_DnFIFOCTR_BVAL) == 0)
-        {
-            RZA_IO_RegWrite_16(&USB200.D0FIFOCTR, 1, USB_DnFIFOCTR_BVAL_SHIFT, USB_DnFIFOCTR_BVAL); /* Short Packet */
-        }
-        status = DEVDRV_USBF_WRITESHRT;                             /* Short Packet is end of write */
-    }
-
-    return status;                                                  /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_write_dma_d1
-* Description  : Writes data in the buffer allocated in the pipe specified in the argument.
-*              : Writes data by DMA transfer using D1FIFO.
-*              : The DMA-ch for using is specified by Userdef_USB_usb0_function_start_dma().
-* Arguments    : uint16_t pipe      ; Pipe Number
-* Return Value : DEVDRV_USBF_WRITEEND           : Write end
-*              : DEVDRV_USBF_WRITESHRT          : short data
-*              : DEVDRV_USBF_WRITING            : Continue of data write
-*              : DEVDRV_USBF_WRITEDMA           : Write DMA
-*              : DEVDRV_USBF_FIFOERROR          : FIFO status
-*******************************************************************************/
-static uint16_t usb0_function_write_dma_d1 (uint16_t pipe)
-{
-    uint32_t count;
-    uint16_t size;
-    uint16_t buffer;
-    uint16_t status;
-    uint16_t mbw;
-    uint16_t dfacc=0;
-
-    mbw = usb0_function_get_mbw(g_usb0_function_data_count[pipe], (uint32_t)g_usb0_function_data_pointer[pipe]);
-    buffer = usb0_function_change_fifo_port(pipe, USB_FUNCTION_D1DMA, DEVDRV_USBF_NO, mbw);
-
-    if (buffer == DEVDRV_USBF_FIFOERROR)                            /* FIFO access status */
-    {
-        return DEVDRV_USBF_FIFOERROR;
-    }
-
-    size  = usb0_function_get_buf_size(pipe);                       /* Data buffer size */
-    count = g_usb0_function_data_count[pipe];
-
-    if (count != 0)
-    {
-        g_usb0_function_DmaPipe[USB_FUNCTION_D1FIFO] = pipe;
-        if ((count % size) != 0)
-        {
-            g_usb0_function_DmaBval[USB_FUNCTION_D1FIFO] = 1;
-        }
-        else
-        {
-            g_usb0_function_DmaBval[USB_FUNCTION_D1FIFO] = 0;
-        }
-
-        dfacc = usb0_function_set_dfacc_d1(mbw, count);
-
-        if (mbw == USB_FUNCTION_BITMBW_32)
-        {
-            g_usb0_function_DmaInfo[USB_FUNCTION_D1FIFO].size = 2;  /* 32bit transfer */
-        }
-        else if (mbw == USB_FUNCTION_BITMBW_16)
-        {
-            g_usb0_function_DmaInfo[USB_FUNCTION_D1FIFO].size = 1;  /* 16bit transfer */
-        }
-        else
-        {
-            g_usb0_function_DmaInfo[USB_FUNCTION_D1FIFO].size = 0;  /* 8bit transfer */
-        }
-
-        g_usb0_function_DmaInfo[USB_FUNCTION_D1FIFO].fifo   = USB_FUNCTION_D1FIFO_DMA;
-        g_usb0_function_DmaInfo[USB_FUNCTION_D1FIFO].dir    = USB_FUNCTION_BUF2FIFO;
-        g_usb0_function_DmaInfo[USB_FUNCTION_D1FIFO].buffer = (uint32_t)g_usb0_function_data_pointer[pipe];
-        g_usb0_function_DmaInfo[USB_FUNCTION_D1FIFO].bytes  = count;
-
-        Userdef_USB_usb0_function_start_dma(&g_usb0_function_DmaInfo[USB_FUNCTION_D1FIFO], dfacc);
-
-        usb0_function_set_curpipe2(pipe, USB_FUNCTION_D1DMA, DEVDRV_USBF_NO, mbw, dfacc);
-
-        RZA_IO_RegWrite_16(&USB200.D1FIFOSEL, 1, USB_DnFIFOSEL_DREQE_SHIFT, USB_DnFIFOSEL_DREQE);
-
-        g_usb0_function_data_count[pipe]    = 0;
-        g_usb0_function_data_pointer[pipe] += count;
-
-        status = DEVDRV_USBF_WRITEDMA;                             /* DMA write  */
-    }
-    else
-    {
-        if (RZA_IO_RegRead_16(&USB200.D1FIFOCTR, USB_DnFIFOCTR_BVAL_SHIFT, USB_DnFIFOCTR_BVAL) == 0)
-        {
-            RZA_IO_RegWrite_16(&USB200.D1FIFOCTR, 1, USB_DnFIFOCTR_BVAL_SHIFT, USB_DnFIFOCTR_BVAL); /* Short Packet */
-        }
-        status = DEVDRV_USBF_WRITESHRT;                             /* Short Packet is end of write */
-    }
-
-    return status;                                                  /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_start_receive_transfer
-* Description  : Starts USB data reception using the pipe specified in the argument.
-*              : The FIFO for using is set in the pipe definition table.
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint32_t size      ; Data Size
-*              : uint8_t *data      ; Data Address
-* Return Value : none
-*******************************************************************************/
-void usb0_function_start_receive_transfer (uint16_t pipe, uint32_t size, uint8_t * data)
-{
-    uint16_t usefifo;
-
-    usb0_function_clear_bemp_sts(pipe);
-    usb0_function_clear_brdy_sts(pipe);
-    usb0_function_clear_nrdy_sts(pipe);
-
-    usefifo = (uint16_t)(g_usb0_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE);
-
-    switch (usefifo)
-    {
-        case USB_FUNCTION_D0FIFO_USE:
-            usb0_function_start_receive_trns_d0(pipe, size, data);
-        break;
-
-        case USB_FUNCTION_D1FIFO_USE:
-            usb0_function_start_receive_trns_d1(pipe, size, data);
-        break;
-
-        case USB_FUNCTION_D0FIFO_DMA:
-            usb0_function_start_receive_dma_d0(pipe, size, data);
-        break;
-
-        case USB_FUNCTION_D1FIFO_DMA:
-            usb0_function_start_receive_dma_d1(pipe, size, data);
-        break;
-
-        default:
-            usb0_function_start_receive_trns_c(pipe, size, data);
-        break;
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_start_receive_trns_c
-* Description  : Reads data from the buffer allocated in the pipe specified in the argument.
-*              : Reads data by CPU transfer using CFIFO.
-*              : When storing data in the buffer allocated in the pipe specified in the
-*              : argument, BRDY interrupt is generated to read data
-*              : in the interrupt.
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint32_t size      ; Data Size
-*              : uint8_t *data      ; Data Address
-* Return Value : none
-*******************************************************************************/
-static void usb0_function_start_receive_trns_c (uint16_t pipe, uint32_t size, uint8_t * data)
-{
-    uint16_t mbw;
-
-    usb0_function_set_pid_nak(pipe);
-    g_usb0_function_data_count[pipe]   = size;
-    g_usb0_function_data_pointer[pipe] = (uint8_t *)data;
-    g_usb0_function_PipeIgnore[pipe]   = 0;
-
-    g_usb0_function_PipeDataSize[pipe] = size;
-    g_usb0_function_pipe_status[pipe]  = DEVDRV_USBF_PIPE_WAIT;
-
-    mbw = usb0_function_get_mbw(size, (uint32_t)data);
-    usb0_function_set_curpipe(USB_FUNCTION_PIPE0, USB_FUNCTION_CUSE, USB_FUNCTION_CFIFO_READ, mbw);
-    USB200.CFIFOCTR = USB_FUNCTION_BITBCLR;
-
-    usb0_function_set_transaction_counter(pipe, size);
-
-    usb0_function_aclrm(pipe);
-
-    usb0_function_enable_nrdy_int(pipe);
-    usb0_function_enable_brdy_int(pipe);
-
-    usb0_function_set_pid_buf(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_start_receive_trns_d0
-* Description  : Reads data from the buffer allocated in the pipe specified in the argument.
-*              : Reads data by CPU transfer using D0FIFO.
-*              : This function does not read data from the buffer.
-*              : When storing data in the buffer allocated in the pipe specified
-*              : in the argument, BRDY interrupt is generated to read data in the
-*              : interrupt.
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint32_t size      ; Data Size
-*              : uint8_t *data      ; Data Address
-* Return Value : none
-*******************************************************************************/
-static void usb0_function_start_receive_trns_d0 (uint16_t pipe, uint32_t size, uint8_t * data)
-{
-    uint16_t mbw;
-
-    usb0_function_set_pid_nak(pipe);
-    g_usb0_function_data_count[pipe]   = size;
-    g_usb0_function_data_pointer[pipe] = (uint8_t *)data;
-    g_usb0_function_PipeIgnore[pipe]   = 0;
-
-    g_usb0_function_PipeDataSize[pipe] = size;
-    g_usb0_function_pipe_status[pipe]  = DEVDRV_USBF_PIPE_WAIT;
-
-    mbw = usb0_function_get_mbw(size, (uint32_t)data);
-    usb0_function_set_curpipe(USB_FUNCTION_PIPE0, USB_FUNCTION_D0USE, DEVDRV_USBF_NO, mbw);
-
-    usb0_function_set_transaction_counter(pipe, size);
-
-    usb0_function_aclrm(pipe);
-
-    usb0_function_enable_nrdy_int(pipe);
-    usb0_function_enable_brdy_int(pipe);
-
-    usb0_function_set_pid_buf(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_start_receive_trns_d1
-* Description  : Reads data from the buffer allocated in the pipe specified in the argument.
-*              : Reads data by CPU transfer using D1FIFO.
-*              : This function does not read data from the buffer.
-*              : When storing data in the buffer allocated in the pipe specified
-*              : in the argument, BRDY interrupt is generated to read data.
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint32_t size      ; Data Size
-*              : uint8_t *data      ; Data Address
-* Return Value : none
-*******************************************************************************/
-static void usb0_function_start_receive_trns_d1 (uint16_t pipe, uint32_t size, uint8_t * data)
-{
-    uint16_t mbw;
-
-    usb0_function_set_pid_nak(pipe);
-    g_usb0_function_data_count[pipe]   = size;
-    g_usb0_function_data_pointer[pipe] = (uint8_t *)data;
-    g_usb0_function_PipeIgnore[pipe]   = 0;
-
-    g_usb0_function_PipeDataSize[pipe] = size;
-    g_usb0_function_pipe_status[pipe]  = DEVDRV_USBF_PIPE_WAIT;
-
-    mbw = usb0_function_get_mbw(size, (uint32_t)data);
-    usb0_function_set_curpipe(USB_FUNCTION_PIPE0, USB_FUNCTION_D1USE, DEVDRV_USBF_NO, mbw);
-
-    usb0_function_set_transaction_counter(pipe, size);
-
-    usb0_function_aclrm(pipe);
-
-    usb0_function_enable_nrdy_int(pipe);
-    usb0_function_enable_brdy_int(pipe);
-
-    usb0_function_set_pid_buf(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_start_receive_dma_d0
-* Description  : Reads data from the buffer allocated in the pipe specified in the argument.
-*              : Reads data by DMA transfer using D0FIFO.
-*              : This function does not read data from the buffer.
-*              : When storing data in the buffer allocated in the pipe specified
-*              : in the argument, delivered read request to DMAC to read data from
-*              : the buffer by DMAC.
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint32_t size      ; Data Size
-*              : uint8_t *data      ; Data Address
-* Return Value : none
-*******************************************************************************/
-static void usb0_function_start_receive_dma_d0 (uint16_t pipe, uint32_t size, uint8_t * data)
-{
-    uint16_t mbw;
-
-    usb0_function_set_pid_nak(pipe);
-    g_usb0_function_data_count[pipe]   = size;
-    g_usb0_function_data_pointer[pipe] = (uint8_t *)data;
-    g_usb0_function_PipeIgnore[pipe]   = 0;
-
-    g_usb0_function_PipeDataSize[pipe] = 0;
-    g_usb0_function_pipe_status[pipe]  = DEVDRV_USBF_PIPE_WAIT;
-
-    mbw = usb0_function_get_mbw(size, (uint32_t)data);
-    usb0_function_set_curpipe(USB_FUNCTION_PIPE0, USB_FUNCTION_D0USE, DEVDRV_USBF_NO, mbw);
-
-    usb0_function_set_transaction_counter(pipe, size);
-
-    usb0_function_aclrm(pipe);
-
-    if (RZA_IO_RegRead_16(&g_usb0_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 1)
-    {
-        usb0_function_read_dma(pipe);
-
-        usb0_function_enable_nrdy_int(pipe);
-        usb0_function_enable_brdy_int(pipe);
-    }
-    else
-    {
-        usb0_function_enable_nrdy_int(pipe);
-        usb0_function_enable_brdy_int(pipe);
-    }
-
-    usb0_function_set_pid_buf(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_start_receive_dma_d1
-* Description  : Read data from the buffer allocated in the pipe specified in the argument.
-*              : Reads data by DMA transfer using D0FIFO.
-*              : This function does not read data from the buffer.
-*              : When storing data in the buffer allocated in the pipe specified
-*              : in the argument, delivered read request to DMAC to read data from
-*              : the buffer by DMAC.
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint32_t size      ; Data Size
-*              : uint8_t *data      ; Data Address
-* Return Value : none
-*******************************************************************************/
-static void usb0_function_start_receive_dma_d1 (uint16_t pipe, uint32_t size, uint8_t * data)
-{
-    uint16_t mbw;
-
-    usb0_function_set_pid_nak(pipe);
-    g_usb0_function_data_count[pipe]   = size;
-    g_usb0_function_data_pointer[pipe] = (uint8_t *)data;
-    g_usb0_function_PipeIgnore[pipe]   = 0;
-
-    g_usb0_function_PipeDataSize[pipe] = 0;
-    g_usb0_function_pipe_status[pipe]  = DEVDRV_USBF_PIPE_WAIT;
-
-    mbw = usb0_function_get_mbw(size, (uint32_t)data);
-    usb0_function_set_curpipe(USB_FUNCTION_PIPE0, USB_FUNCTION_D1USE, DEVDRV_USBF_NO, mbw);
-
-    usb0_function_set_transaction_counter(pipe, size);
-
-    usb0_function_aclrm(pipe);
-
-    if (RZA_IO_RegRead_16(&g_usb0_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 1)
-    {
-        usb0_function_read_dma(pipe);
-
-        usb0_function_enable_nrdy_int(pipe);
-        usb0_function_enable_brdy_int(pipe);
-    }
-    else
-    {
-        usb0_function_enable_nrdy_int(pipe);
-        usb0_function_enable_brdy_int(pipe);
-    }
-
-    usb0_function_set_pid_buf(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_read_buffer
-* Description  : Reads data from the buffer allocated in the pipe specified
-*              : in the argument.
-*              : Uses FIF0 set in the pipe definition table.
-* Arguments    : uint16_t pipe     ; Pipe Number
-* Return Value : USB_FUNCTION_READEND          ; Read end
-*              : USB_FUNCTION_READSHRT         ; short data
-*              : USB_FUNCTION_READING          ; Continue of data read
-*              : USB_FUNCTION_READOVER         ; buffer over
-*              : DEVDRV_USBF_FIFOERROR         ; FIFO status
-*******************************************************************************/
-uint16_t usb0_function_read_buffer (uint16_t pipe)
-{
-    uint16_t status;
-
-    g_usb0_function_PipeIgnore[pipe] = 0;
-
-    if ((g_usb0_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE) == USB_FUNCTION_D0FIFO_USE)
-    {
-        status = usb0_function_read_buffer_d0(pipe);
-    }
-    else if ((g_usb0_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE) == USB_FUNCTION_D1FIFO_USE)
-    {
-        status = usb0_function_read_buffer_d1(pipe);
-    }
-    else
-    {
-        status = usb0_function_read_buffer_c(pipe);
-    }
-
-    switch (status)
-    {
-        case USB_FUNCTION_READING:                                      /* Continue of data read */
-        break;
-
-        case USB_FUNCTION_READEND:                                      /* End of data read */
-        case USB_FUNCTION_READSHRT:                                     /* End of data read */
-            usb0_function_disable_brdy_int(pipe);
-            g_usb0_function_PipeDataSize[pipe] -= g_usb0_function_data_count[pipe];
-            g_usb0_function_pipe_status[pipe]   = DEVDRV_USBF_PIPE_DONE;
-        break;
-
-        case USB_FUNCTION_READOVER:                                     /* buffer over */
-            if ((g_usb0_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE) == USB_FUNCTION_D0FIFO_USE)
-            {
-                USB200.D0FIFOCTR = USB_FUNCTION_BITBCLR;                /* Clear BCLR */
-            }
-            else if ((g_usb0_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE) == USB_FUNCTION_D1FIFO_USE)
-            {
-                USB200.D1FIFOCTR = USB_FUNCTION_BITBCLR;                /* Clear BCLR */
-            }
-            else
-            {
-                USB200.CFIFOCTR = USB_FUNCTION_BITBCLR;                 /* Clear BCLR */
-            }
-            usb0_function_disable_brdy_int(pipe);                       /* Disable Ready Interrupt */
-            g_usb0_function_PipeDataSize[pipe] -= g_usb0_function_data_count[pipe];
-            g_usb0_function_pipe_status[pipe]   = DEVDRV_USBF_FIFOERROR;
-        break;
-
-        case DEVDRV_USBF_FIFOERROR:                                     /* FIFO access status */
-        default:
-            usb0_function_disable_brdy_int(pipe);                       /* Disable Ready Interrupt */
-            g_usb0_function_pipe_status[pipe] = DEVDRV_USBF_FIFOERROR;
-        break;
-    }
-
-    return status;                                                      /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_read_buffer_c
-* Description  : Reads data from the buffer allocated in the pipe specified in the argument.
-*              : Reads data by CPU transfer using CFIFO.
-* Arguments    : uint16_t pipe     ; Pipe Number
-* Return Value : USB_FUNCTION_READEND          ; Read end
-*              : USB_FUNCTION_READSHRT         ; short data
-*              : USB_FUNCTION_READING          ; Continue of data read
-*              : USB_FUNCTION_READOVER         ; buffer over
-*              : DEVDRV_USBF_FIFOERROR         ; FIFO status
-*******************************************************************************/
-uint16_t usb0_function_read_buffer_c (uint16_t pipe)
-{
-    uint32_t count;
-    uint32_t dtln;
-    uint16_t buffer;
-    uint16_t mxps;
-    uint16_t status;
-    uint16_t mbw;
-
-    mbw    = usb0_function_get_mbw(g_usb0_function_data_count[pipe], (uint32_t)g_usb0_function_data_pointer[pipe]);
-    buffer = usb0_function_change_fifo_port(pipe, USB_FUNCTION_CUSE, DEVDRV_USBF_NO, mbw);
-
-    if (buffer == DEVDRV_USBF_FIFOERROR)                        /* FIFO access status */
-    {
-        return DEVDRV_USBF_FIFOERROR;
-    }
-
-    dtln = (uint32_t)(buffer & USB_FUNCTION_BITDTLN);
-    mxps = usb0_function_get_mxps(pipe);                        /* Max Packet Size */
-
-    if (g_usb0_function_data_count[pipe] < dtln)                /* Buffer Over ? */
-    {
-        status = USB_FUNCTION_READOVER;
-        usb0_function_set_pid_nak(pipe);                        /* Set NAK */
-        count = g_usb0_function_data_count[pipe];
-    }
-    else if (g_usb0_function_data_count[pipe] == dtln)          /* just Receive Size */
-    {
-        status = USB_FUNCTION_READEND;
-        usb0_function_set_pid_nak(pipe);                        /* Set NAK */
-        count = dtln;
-
-        if (count == 0)
-        {
-            status = USB_FUNCTION_READSHRT;                     /* Null Packet receive */
-        }
-
-        if ((count % mxps) != 0)
-        {
-            status = USB_FUNCTION_READSHRT;                     /* Short Packet receive */
-        }
-    }
-    else                                                        /* continue Receive data */
-    {
-        status = USB_FUNCTION_READING;
-        count  = dtln;
-
-        if (count == 0)
-        {
-            status = USB_FUNCTION_READSHRT;                     /* Null Packet receive */
-            usb0_function_set_pid_nak(pipe);                    /* Set NAK */
-        }
-
-        if ((count % mxps) != 0)
-        {
-            status = USB_FUNCTION_READSHRT;                     /* Short Packet receive */
-            usb0_function_set_pid_nak(pipe);                    /* Set NAK */
-        }
-    }
-
-    if (count == 0)                                             /* 0 length packet */
-    {
-        USB200.CFIFOCTR = USB_FUNCTION_BITBCLR;                 /* Clear BCLR */
-    }
-    else
-    {
-        usb0_function_read_c_fifo(pipe, (uint16_t)count);
-    }
-
-    g_usb0_function_data_count[pipe] -= count;
-
-    return status;                                              /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_read_buffer_d0
-* Description  : Reads data from the buffer allocated in the pipe specified in
-*              : the argument.
-*              : Reads data by CPU transfer using D0FIFO.
-* Arguments    : uint16_t pipe     ; Pipe Number
-* Return Value : USB_FUNCTION_READEND          ; Read end
-*              : USB_FUNCTION_READSHRT         ; short data
-*              : USB_FUNCTION_READING          ; Continue of data read
-*              : USB_FUNCTION_READOVER         ; buffer over
-*              : DEVDRV_USBF_FIFOERROR         ; FIFO status
-*******************************************************************************/
-uint16_t usb0_function_read_buffer_d0 (uint16_t pipe)
-{
-    uint32_t count;
-    uint32_t dtln;
-    uint16_t buffer;
-    uint16_t mxps;
-    uint16_t status;
-    uint16_t mbw;
-    uint16_t pipebuf_size;
-
-    mbw    = usb0_function_get_mbw(g_usb0_function_data_count[pipe], (uint32_t)g_usb0_function_data_pointer[pipe]);
-    buffer = usb0_function_change_fifo_port(pipe, USB_FUNCTION_D0USE, DEVDRV_USBF_NO, mbw);
-
-    if (buffer == DEVDRV_USBF_FIFOERROR)                        /* FIFO access status */
-    {
-        return DEVDRV_USBF_FIFOERROR;
-    }
-
-    dtln = (uint32_t)(buffer & USB_FUNCTION_BITDTLN);
-    mxps = usb0_function_get_mxps(pipe);                        /* Max Packet Size */
-
-    if (g_usb0_function_data_count[pipe] < dtln)                /* Buffer Over ? */
-    {
-        status = USB_FUNCTION_READOVER;
-        usb0_function_set_pid_nak(pipe);                        /* Set NAK */
-        count = g_usb0_function_data_count[pipe];
-    }
-    else if (g_usb0_function_data_count[pipe] == dtln)          /* just Receive Size */
-    {
-        status = USB_FUNCTION_READEND;
-        usb0_function_set_pid_nak(pipe);                        /* Set NAK */
-        count = dtln;
-
-        if (count == 0)
-        {
-            status = USB_FUNCTION_READSHRT;                     /* Null Packet receive */
-        }
-
-        if ((count % mxps) != 0)
-        {
-            status = USB_FUNCTION_READSHRT;                     /* Short Packet receive */
-        }
-    }
-    else                                                        /* continue Receive data */
-    {
-        status = USB_FUNCTION_READING;
-        count  = dtln;
-
-        if (count == 0)
-        {
-            status = USB_FUNCTION_READSHRT;                     /* Null Packet receive */
-            usb0_function_set_pid_nak(pipe);                    /* Set NAK */
-        }
-
-        if ((count % mxps) != 0)
-        {
-            status = USB_FUNCTION_READSHRT;                     /* Short Packet receive */
-            usb0_function_set_pid_nak(pipe);                    /* Set NAK */
-        }
-        else
-        {
-            pipebuf_size = usb0_function_get_buf_size(pipe);    /* Data buffer size */
-
-            if (count != pipebuf_size)
-            {
-                status = USB_FUNCTION_READSHRT;                 /* Short Packet receive */
-                usb0_function_set_pid_nak(pipe);                /* Set NAK */
-            }
-        }
-    }
-
-    if (count == 0)                                             /* 0 length packet */
-    {
-        USB200.D0FIFOCTR = USB_FUNCTION_BITBCLR;                /* Clear BCLR */
-    }
-    else
-    {
-        usb0_function_read_d0_fifo(pipe, (uint16_t)count);
-    }
-
-    g_usb0_function_data_count[pipe] -= count;
-
-    return status;                                              /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_read_buffer_d1
-* Description  : Reads data from the buffer allocated in the pipe specified
-*              : in the argument.
-*              : Reads data by CPU transfer using D1FIFO.
-* Arguments    : uint16_t pipe     ; Pipe Number
-* Return Value : USB_FUNCTION_READEND          ; Read end
-*              : USB_FUNCTION_READSHRT         ; short data
-*              : USB_FUNCTION_READING          ; Continue of data read
-*              : USB_FUNCTION_READOVER         ; buffer over
-*              : DEVDRV_USBF_FIFOERROR         ; FIFO status
-*******************************************************************************/
-uint16_t usb0_function_read_buffer_d1 (uint16_t pipe)
-{
-    uint32_t count;
-    uint32_t dtln;
-    uint16_t buffer;
-    uint16_t mxps;
-    uint16_t status;
-    uint16_t mbw;
-    uint16_t pipebuf_size;
-
-    mbw    = usb0_function_get_mbw(g_usb0_function_data_count[pipe], (uint32_t)g_usb0_function_data_pointer[pipe]);
-    buffer = usb0_function_change_fifo_port(pipe, USB_FUNCTION_D1USE, DEVDRV_USBF_NO, mbw);
-
-    if (buffer == DEVDRV_USBF_FIFOERROR)                        /* FIFO access status */
-    {
-        return DEVDRV_USBF_FIFOERROR;
-    }
-
-    dtln = (uint32_t)(buffer & USB_FUNCTION_BITDTLN);
-    mxps = usb0_function_get_mxps(pipe);                        /* Max Packet Size */
-
-    if (g_usb0_function_data_count[pipe] < dtln)                /* Buffer Over ? */
-    {
-        status = USB_FUNCTION_READOVER;
-        usb0_function_set_pid_nak(pipe);                        /* Set NAK */
-        count = g_usb0_function_data_count[pipe];
-    }
-    else if (g_usb0_function_data_count[pipe] == dtln)          /* just Receive Size */
-    {
-        status = USB_FUNCTION_READEND;
-        usb0_function_set_pid_nak(pipe);                        /* Set NAK */
-        count = dtln;
-        if (count == 0)
-        {
-            status = USB_FUNCTION_READSHRT;                     /* Null Packet receive */
-        }
-
-        if ((count % mxps) != 0)
-        {
-            status = USB_FUNCTION_READSHRT;                     /* Short Packet receive */
-        }
-    }
-    else                                                        /* continue Receive data */
-    {
-        status = USB_FUNCTION_READING;
-        count  = dtln;
-        if (count == 0)
-        {
-            status = USB_FUNCTION_READSHRT;                     /* Null Packet receive */
-            usb0_function_set_pid_nak(pipe);                    /* Set NAK */
-        }
-
-        if ((count % mxps) != 0)
-        {
-            status = USB_FUNCTION_READSHRT;                     /* Short Packet receive */
-            usb0_function_set_pid_nak(pipe);                    /* Set NAK */
-        }
-        else
-        {
-            pipebuf_size = usb0_function_get_buf_size(pipe);    /* Data buffer size */
-
-            if (count != pipebuf_size)
-            {
-                status = USB_FUNCTION_READSHRT;                 /* Short Packet receive */
-                usb0_function_set_pid_nak(pipe);                /* Set NAK */
-            }
-        }
-    }
-
-    if (count == 0)                                             /* 0 length packet */
-    {
-        USB200.D1FIFOCTR = USB_FUNCTION_BITBCLR;                /* Clear BCLR */
-    }
-    else
-    {
-        usb0_function_read_d1_fifo(pipe, (uint16_t)count);
-    }
-
-    g_usb0_function_data_count[pipe] -= count;
-
-    return status;                                              /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_read_dma
-* Description  : Reads data from the buffer allocated in the pipe specified
-*              : in the argument.
-*              : Reads data by DMA transfer using D0FIFO or D1FIFO.
-* Arguments    : uint16_t pipe     ; Pipe Number
-* Return Value : USB_FUNCTION_READEND          ; Read end
-*              : USB_FUNCTION_READSHRT         ; short data
-*              : USB_FUNCTION_READING          ; Continue of data read
-*              : USB_FUNCTION_READOVER         ; buffer over
-*              : DEVDRV_USBF_FIFOERROR         ; FIFO status
-*******************************************************************************/
-uint16_t usb0_function_read_dma (uint16_t pipe)
-{
-    uint16_t status;
-
-    g_usb0_function_PipeIgnore[pipe] = 0;
-    if ((g_usb0_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE) == USB_FUNCTION_D0FIFO_DMA)
-    {
-        status = usb0_function_read_dma_d0(pipe);
-    }
-    else
-    {
-        status = usb0_function_read_dma_d1(pipe);
-    }
-
-    switch (status)
-    {
-        case USB_FUNCTION_READING:                                      /* Continue of data read */
-        break;
-
-        case USB_FUNCTION_READZERO:                                     /* End of data read */
-            usb0_function_disable_brdy_int(pipe);
-            g_usb0_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_DONE;
-        break;
-
-        case USB_FUNCTION_READEND:                                      /* End of data read */
-        case USB_FUNCTION_READSHRT:                                     /* End of data read */
-            usb0_function_disable_brdy_int(pipe);
-
-            if (RZA_IO_RegRead_16(&g_usb0_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 1)
-            {
-                g_usb0_function_PipeDataSize[pipe] -= g_usb0_function_data_count[pipe];
-            }
-        break;
-
-        case USB_FUNCTION_READOVER:                                     /* buffer over */
-            usb0_function_disable_brdy_int(pipe);                       /* Disable Ready Interrupt */
-
-            if (RZA_IO_RegRead_16(&g_usb0_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 1)
-            {
-                g_usb0_function_PipeDataSize[pipe] -= g_usb0_function_data_count[pipe];
-            }
-            g_usb0_function_pipe_status[pipe] = DEVDRV_USBF_FIFOERROR;
-        break;
-
-        case DEVDRV_USBF_FIFOERROR:                                     /* FIFO access status */
-        default:
-            usb0_function_disable_brdy_int(pipe);                       /* Disable Ready Interrupt */
-            g_usb0_function_pipe_status[pipe] = DEVDRV_USBF_FIFOERROR;
-        break;
-    }
-
-    return status;                                                      /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_read_dma_d0
-* Description  : Writes data in the buffer allocated in the pipe specified
-*              : in the argument.
-*              : Reads data by DMA transfer using D0FIFO.
-* Arguments    : uint16_t pipe     ; Pipe Number
-* Return Value : USB_FUNCTION_READEND          ; Read end
-*              : USB_FUNCTION_READSHRT         ; short data
-*              : USB_FUNCTION_READZERO         ; zero data
-*              : USB_FUNCTION_READING          ; Continue of data read
-*              : USB_FUNCTION_READOVER         ; buffer over
-*              : DEVDRV_USBF_FIFOERROR         ; FIFO status
-*******************************************************************************/
-static uint16_t usb0_function_read_dma_d0 (uint16_t pipe)
-{
-    uint32_t count;
-    uint32_t dtln;
-    uint16_t buffer;
-    uint16_t mxps;
-    uint16_t status;
-    uint16_t mbw;
-    uint16_t dfacc = 0;
-    uint16_t pipebuf_size;
-
-    g_usb0_function_DmaStatus[USB_FUNCTION_D0FIFO] = USB_FUNCTION_DMA_READY;
-
-    mbw = usb0_function_get_mbw(g_usb0_function_data_count[pipe], (uint32_t)g_usb0_function_data_pointer[pipe]);
-
-    if (RZA_IO_RegRead_16(&g_usb0_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 1)
-    {
-        count  = g_usb0_function_data_count[pipe];
-        status = USB_FUNCTION_READING;
-    }
-    else
-    {
-        buffer = usb0_function_change_fifo_port(pipe, USB_FUNCTION_D0DMA, DEVDRV_USBF_NO, mbw);
-
-        if (buffer == DEVDRV_USBF_FIFOERROR)                        /* FIFO access status */
-        {
-            return DEVDRV_USBF_FIFOERROR;
-        }
-
-        dtln = (uint32_t)(buffer & USB_FUNCTION_BITDTLN);
-        mxps = usb0_function_get_mxps(pipe);                        /* Max Packet Size */
-
-        if (g_usb0_function_data_count[pipe] < dtln)                /* Buffer Over ? */
-        {
-            status = USB_FUNCTION_READOVER;
-            count  = g_usb0_function_data_count[pipe];
-        }
-        else if (g_usb0_function_data_count[pipe] == dtln)          /* just Receive Size */
-        {
-            status = USB_FUNCTION_READEND;
-            count  = dtln;
-            if (count == 0)
-            {
-                status = USB_FUNCTION_READSHRT;                     /* Null Packet receive */
-            }
-
-            if ((count % mxps) != 0)
-            {
-                status = USB_FUNCTION_READSHRT;                     /* Short Packet receive */
-            }
-        }
-        else                                                        /* continue Receive data */
-        {
-            status = USB_FUNCTION_READING;
-            count  = dtln;
-
-            if (count == 0)
-            {
-                status = USB_FUNCTION_READSHRT;                     /* Null Packet receive */
-            }
-
-            if ((count % mxps) != 0)
-            {
-                status = USB_FUNCTION_READSHRT;                     /* Short Packet receive */
-            }
-            else
-            {
-                pipebuf_size = usb0_function_get_buf_size(pipe);    /* Data buffer size */
-                if (count != pipebuf_size)
-                {
-                    status = USB_FUNCTION_READSHRT;                 /* Short Packet receive */
-                }
-            }
-        }
-    }
-
-    if (count == 0)                                                 /* 0 length packet */
-    {
-        if (RZA_IO_RegRead_16(&g_usb0_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 0)
-        {
-            USB200.D0FIFOCTR = USB_FUNCTION_BITBCLR;                /* Clear BCLR */
-            status = USB_FUNCTION_READZERO;                         /* Null Packet receive */
-        }
-        else
-        {
-            usb0_function_set_curpipe(pipe, USB_FUNCTION_D0DMA, DEVDRV_USBF_NO, mbw);
-                                                                    /* transaction counter No set */
-                                                                    /* FRDY = 1, DTLN = 0 -> BRDY */
-        }
-    }
-    else
-    {
-        dfacc = usb0_function_set_dfacc_d0(mbw, count);
-
-        if (mbw == USB_FUNCTION_BITMBW_32)
-        {
-            g_usb0_function_DmaInfo[USB_FUNCTION_D0FIFO].size = 2;  /* 32bit transfer */
-        }
-        else if (mbw == USB_FUNCTION_BITMBW_16)
-        {
-            g_usb0_function_DmaInfo[USB_FUNCTION_D0FIFO].size = 1;  /* 16bit transfer */
-        }
-        else
-        {
-            g_usb0_function_DmaInfo[USB_FUNCTION_D0FIFO].size = 0;  /* 8bit transfer */
-        }
-
-        g_usb0_function_DmaPipe[USB_FUNCTION_D0FIFO] = pipe;        /* not use in read operation */
-        g_usb0_function_DmaBval[USB_FUNCTION_D0FIFO] = 0;           /* not use in read operation */
-
-        g_usb0_function_DmaInfo[USB_FUNCTION_D0FIFO].fifo   = USB_FUNCTION_D0FIFO_DMA;
-        g_usb0_function_DmaInfo[USB_FUNCTION_D0FIFO].dir    = USB_FUNCTION_FIFO2BUF;
-        g_usb0_function_DmaInfo[USB_FUNCTION_D0FIFO].buffer = (uint32_t)g_usb0_function_data_pointer[pipe];
-        g_usb0_function_DmaInfo[USB_FUNCTION_D0FIFO].bytes  = count;
-
-        if (status == USB_FUNCTION_READING)
-        {
-            g_usb0_function_DmaStatus[USB_FUNCTION_D0FIFO] = USB_FUNCTION_DMA_BUSY;
-        }
-        else
-        {
-            g_usb0_function_DmaStatus[USB_FUNCTION_D0FIFO] = USB_FUNCTION_DMA_BUSYEND;
-        }
-
-        Userdef_USB_usb0_function_start_dma(&g_usb0_function_DmaInfo[USB_FUNCTION_D0FIFO], dfacc);
-
-        usb0_function_set_curpipe2(pipe, USB_FUNCTION_D0DMA, DEVDRV_USBF_NO, mbw, dfacc);
-
-        RZA_IO_RegWrite_16(&USB200.D0FIFOSEL,
-                            1,
-                            USB_DnFIFOSEL_DREQE_SHIFT,
-                            USB_DnFIFOSEL_DREQE);
-    }
-
-    if (RZA_IO_RegRead_16(&g_usb0_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 0)
-    {
-        g_usb0_function_data_count[pipe]   -= count;
-        g_usb0_function_data_pointer[pipe] += count;
-        g_usb0_function_PipeDataSize[pipe] += count;
-    }
-
-    return status;                                                  /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_read_dma_d1
-* Description  : Reads data from the buffer allocated in the pipe specified in
-*              : the argument.
-*              : Reads data by DMA transfer using D1FIFO.
-* Arguments    : uint16_t pipe     ; Pipe Number
-* Return Value : USB_FUNCTION_READEND          ; Read end
-*              : USB_FUNCTION_READSHRT         ; short data
-*              : USB_FUNCTION_READZERO         ; zero data
-*              : USB_FUNCTION_READING          ; Continue of data read
-*              : USB_FUNCTION_READOVER         ; buffer over
-*              : DEVDRV_USBF_FIFOERROR         ; FIFO status
-*******************************************************************************/
-static uint16_t usb0_function_read_dma_d1 (uint16_t pipe)
-{
-    uint32_t count;
-    uint32_t dtln;
-    uint16_t buffer;
-    uint16_t mxps;
-    uint16_t status;
-    uint16_t mbw;
-    uint16_t dfacc=0;
-    uint16_t pipebuf_size;
-
-    g_usb0_function_DmaStatus[USB_FUNCTION_D1FIFO] = USB_FUNCTION_DMA_READY;
-
-    mbw = usb0_function_get_mbw(g_usb0_function_data_count[pipe], (uint32_t)g_usb0_function_data_pointer[pipe]);
-
-    if (RZA_IO_RegRead_16(&g_usb0_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 1)
-    {
-        count  = g_usb0_function_data_count[pipe];
-        status = USB_FUNCTION_READING;
-    }
-    else
-    {
-        buffer = usb0_function_change_fifo_port(pipe, USB_FUNCTION_D1DMA, DEVDRV_USBF_NO, mbw);
-        if (buffer == DEVDRV_USBF_FIFOERROR)                        /* FIFO access status */
-        {
-            return DEVDRV_USBF_FIFOERROR;
-        }
-
-        dtln = (uint32_t)(buffer & USB_FUNCTION_BITDTLN);
-        mxps = usb0_function_get_mxps(pipe);                        /* Max Packet Size */
-
-        if (g_usb0_function_data_count[pipe] < dtln)                /* Buffer Over ? */
-        {
-            status = USB_FUNCTION_READOVER;
-            count  = g_usb0_function_data_count[pipe];
-        }
-        else if (g_usb0_function_data_count[pipe] == dtln)          /* just Receive Size */
-        {
-            status = USB_FUNCTION_READEND;
-            count  = dtln;
-            if (count == 0)
-            {
-                status = USB_FUNCTION_READSHRT;                     /* Null Packet receive */
-            }
-
-            if ((count % mxps) != 0)
-            {
-                status = USB_FUNCTION_READSHRT;                     /* Short Packet receive */
-            }
-        }
-        else                                                        /* continue Receive data */
-        {
-            status = USB_FUNCTION_READING;
-            count  = dtln;
-            if (count == 0)
-            {
-                status = USB_FUNCTION_READSHRT;                     /* Null Packet receive */
-            }
-
-            if ((count % mxps) != 0)
-            {
-                status = USB_FUNCTION_READSHRT;                     /* Short Packet receive */
-            }
-            else
-            {
-                pipebuf_size = usb0_function_get_buf_size(pipe);    /* Data buffer size */
-                if (count != pipebuf_size)
-                {
-                    status = USB_FUNCTION_READSHRT;                 /* Short Packet receive */
-                }
-            }
-        }
-    }
-
-    if (count == 0)                                                 /* 0 length packet */
-    {
-        if (RZA_IO_RegRead_16(&g_usb0_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 0)
-        {
-            USB200.D1FIFOCTR = USB_FUNCTION_BITBCLR;                /* Clear BCLR */
-            status = USB_FUNCTION_READZERO;                         /* Null Packet receive */
-        }
-        else
-        {
-            usb0_function_set_curpipe(pipe, USB_FUNCTION_D1DMA, DEVDRV_USBF_NO, mbw);
-                                                                    /* transaction counter No set */
-                                                                    /* FRDY = 1, DTLN = 0 -> BRDY */
-        }
-    }
-    else
-    {
-        dfacc = usb0_function_set_dfacc_d1(mbw, count);
-
-        if (mbw == USB_FUNCTION_BITMBW_32)
-        {
-            g_usb0_function_DmaInfo[USB_FUNCTION_D1FIFO].size = 2;  /* 32bit transfer */
-        }
-        else if (mbw == USB_FUNCTION_BITMBW_16)
-        {
-            g_usb0_function_DmaInfo[USB_FUNCTION_D1FIFO].size = 1;  /* 16bit transfer */
-        }
-        else
-        {
-            g_usb0_function_DmaInfo[USB_FUNCTION_D1FIFO].size = 0;  /* 8bit transfer */
-        }
-
-        g_usb0_function_DmaPipe[USB_FUNCTION_D1FIFO] = pipe;        /* not use in read operation */
-        g_usb0_function_DmaBval[USB_FUNCTION_D1FIFO] = 0;           /* not use in read operation */
-
-        g_usb0_function_DmaInfo[USB_FUNCTION_D1FIFO].fifo   = USB_FUNCTION_D1FIFO_DMA;
-        g_usb0_function_DmaInfo[USB_FUNCTION_D1FIFO].dir    = USB_FUNCTION_FIFO2BUF;
-        g_usb0_function_DmaInfo[USB_FUNCTION_D1FIFO].buffer = (uint32_t)g_usb0_function_data_pointer[pipe];
-        g_usb0_function_DmaInfo[USB_FUNCTION_D1FIFO].bytes  = count;
-
-        if (status == USB_FUNCTION_READING)
-        {
-            g_usb0_function_DmaStatus[USB_FUNCTION_D1FIFO] = USB_FUNCTION_DMA_BUSY;
-        }
-        else
-        {
-            g_usb0_function_DmaStatus[USB_FUNCTION_D1FIFO] = USB_FUNCTION_DMA_BUSYEND;
-        }
-
-        Userdef_USB_usb0_function_start_dma(&g_usb0_function_DmaInfo[USB_FUNCTION_D1FIFO], dfacc);
-
-        usb0_function_set_curpipe2(pipe, USB_FUNCTION_D1DMA, DEVDRV_USBF_NO, mbw, dfacc);
-
-        RZA_IO_RegWrite_16(&USB200.D1FIFOSEL,
-                            1,
-                            USB_DnFIFOSEL_DREQE_SHIFT,
-                            USB_DnFIFOSEL_DREQE);
-    }
-
-    if (RZA_IO_RegRead_16(&g_usb0_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 0)
-    {
-        g_usb0_function_data_count[pipe]   -= count;
-        g_usb0_function_data_pointer[pipe] += count;
-        g_usb0_function_PipeDataSize[pipe] += count;
-    }
-
-    return status;                                                  /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_change_fifo_port
-* Description  : Allocates FIF0 specified by the argument in the pipe assigned
-*              : by the argument. After allocating FIF0, waits in the software
-*              : till the corresponding pipe becomes ready.
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint16_t fifosel   ; Select FIFO
-*              : uint16_t isel      ; FIFO Access Direction
-*              : uint16_t mbw       ; FIFO Port Access Bit Width
-* Return Value : DEVDRV_USBF_FIFOERROR         ; Error
-*              : Others            ; CFIFOCTR/D0FIFOCTR/D1FIFOCTR Register Value
-*******************************************************************************/
-uint16_t usb0_function_change_fifo_port (uint16_t pipe, uint16_t fifosel, uint16_t isel, uint16_t mbw)
-{
-    uint16_t buffer;
-    uint32_t loop;
-    volatile uint32_t loop2;
-
-    usb0_function_set_curpipe(pipe, fifosel, isel, mbw);
-
-    for (loop = 0; loop < 4; loop++)
-    {
-        switch (fifosel)
-        {
-            case USB_FUNCTION_CUSE:
-                buffer = USB200.CFIFOCTR;
-            break;
-
-            case USB_FUNCTION_D0USE:
-            case USB_FUNCTION_D0DMA:
-                buffer = USB200.D0FIFOCTR;
-            break;
-
-            case USB_FUNCTION_D1USE:
-            case USB_FUNCTION_D1DMA:
-                buffer = USB200.D1FIFOCTR;
-            break;
-
-            default:
-                buffer = 0;
-            break;
-        }
-
-        if ((buffer & USB_FUNCTION_BITFRDY) == USB_FUNCTION_BITFRDY)
-        {
-            return buffer;
-        }
-
-        loop2 = 25;
-        while (loop2-- > 0)
-        {
-            /* wait */
-        }
-    }
-
-    return DEVDRV_USBF_FIFOERROR;
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_set_curpipe
-* Description  : Allocates FIF0 specified by the argument in the pipe assigned
-*              : by the argument.
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint16_t fifosel   ; Select FIFO
-*              : uint16_t isel      ; FIFO Access Direction
-*              : uint16_t mbw       ; FIFO Port Access Bit Width
-* Return Value : none
-*******************************************************************************/
-void usb0_function_set_curpipe (uint16_t pipe, uint16_t fifosel, uint16_t isel, uint16_t mbw)
-{
-    uint16_t buffer;
-    uint32_t loop;
-    volatile uint32_t loop2;
-
-    g_usb0_function_mbw[pipe] = mbw;
-
-    switch (fifosel)
-    {
-        case USB_FUNCTION_CUSE:
-            buffer  = USB200.CFIFOSEL;
-            buffer &= (uint16_t)~(USB_FUNCTION_BITISEL | USB_FUNCTION_BITCURPIPE);
-            buffer |= (uint16_t)(~isel & USB_FUNCTION_BITISEL);
-            USB200.CFIFOSEL = buffer;
-
-            for (loop = 0; loop < 4; loop++)
-            {
-                if ((USB200.CFIFOSEL & (USB_FUNCTION_BITISEL | USB_FUNCTION_BITCURPIPE)) ==
-                        (buffer & (USB_FUNCTION_BITISEL | USB_FUNCTION_BITCURPIPE)))
-                {
-                    break;
-                }
-
-                loop2 = 100;
-
-                while (loop2-- > 0)
-                {
-                    /* wait */
-                }
-            }
-            buffer &= (uint16_t)~(USB_FUNCTION_BITISEL | USB_FUNCTION_BITCURPIPE | USB_FUNCTION_BITMBW);
-            buffer |= (uint16_t)(isel | pipe | mbw);
-            USB200.CFIFOSEL = buffer;
-
-            for (loop = 0; loop < 4; loop++)
-            {
-                if ((USB200.CFIFOSEL & (USB_FUNCTION_BITISEL | USB_FUNCTION_BITCURPIPE)) ==
-                        (buffer & (USB_FUNCTION_BITISEL | USB_FUNCTION_BITCURPIPE)))
-                {
-                    break;
-                }
-
-                loop2 = 100;
-
-                while (loop2-- > 0)
-                {
-                    /* wait */
-                }
-            }
-        break;
-
-        case USB_FUNCTION_D0DMA:
-        case USB_FUNCTION_D0USE:
-            buffer  = USB200.D0FIFOSEL;
-            buffer &= (uint16_t)~(USB_FUNCTION_BITCURPIPE);
-            USB200.D0FIFOSEL = buffer;
-
-            for (loop = 0; loop < 4; loop++)
-            {
-                if ((USB200.D0FIFOSEL & USB_FUNCTION_BITCURPIPE) ==
-                        (buffer & USB_FUNCTION_BITCURPIPE))
-                {
-                    break;
-                }
-
-                loop2 = 100;
-
-                while (loop2-- > 0)
-                {
-                    /* wait */
-                }
-            }
-            buffer &= (uint16_t)~(USB_FUNCTION_BITCURPIPE | USB_FUNCTION_BITMBW);
-            buffer |= (uint16_t)(pipe | mbw);
-            USB200.D0FIFOSEL = buffer;
-
-            for (loop = 0; loop < 4; loop++)
-            {
-                if ((USB200.D0FIFOSEL & USB_FUNCTION_BITCURPIPE) ==
-                        (buffer & USB_FUNCTION_BITCURPIPE))
-                {
-                    break;
-                }
-
-                loop2 = 100;
-                while (loop2-- > 0)
-                {
-                    /* wait */
-                }
-            }
-        break;
-
-        case USB_FUNCTION_D1DMA:
-        case USB_FUNCTION_D1USE:
-            buffer  = USB200.D1FIFOSEL;
-            buffer &= (uint16_t)~(USB_FUNCTION_BITCURPIPE);
-            USB200.D1FIFOSEL = buffer;
-
-            for (loop = 0; loop < 4; loop++)
-            {
-                if ((USB200.D1FIFOSEL & USB_FUNCTION_BITCURPIPE) ==
-                        (buffer & USB_FUNCTION_BITCURPIPE))
-                {
-                    break;
-                }
-
-                loop2 = 100;
-
-                while (loop2-- > 0)
-                {
-                    /* wait */
-                }
-            }
-            buffer &= (uint16_t)~(USB_FUNCTION_BITCURPIPE | USB_FUNCTION_BITMBW);
-            buffer |= (uint16_t)(pipe | mbw);
-            USB200.D1FIFOSEL = buffer;
-
-            for (loop = 0; loop < 4; loop++)
-            {
-                if ((USB200.D1FIFOSEL & USB_FUNCTION_BITCURPIPE) ==
-                        (buffer & USB_FUNCTION_BITCURPIPE))
-                {
-                    break;
-                }
-
-                loop2 = 100;
-
-                while (loop2-- > 0)
-                {
-                    /* wait */
-                }
-            }
-        break;
-
-        default:
-        break;
-    }
-
-    /* Cautions !!!
-     * Depending on the external bus speed of CPU, you may need to wait for 450ns here.
-     * For details, please look at the data sheet.   */
-    loop2 = 100;
-
-    while (loop2-- > 0)
-    {
-        /* wait */
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_set_curpipe2
-* Description  : Allocates FIF0 specified by the argument in the pipe assigned
-*              : by the argument.
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint16_t fifosel   ; Select FIFO
-*              : uint16_t isel      ; FIFO Access Direction
-*              : uint16_t mbw       ; FIFO Port Access Bit Width
-*              : uint16_t dfacc     ; DFACC Access mode
-* Return Value : none
-*******************************************************************************/
-void usb0_function_set_curpipe2 (uint16_t pipe, uint16_t fifosel, uint16_t isel, uint16_t mbw, uint16_t dfacc)
-{
-    uint16_t buffer;
-    uint32_t loop;
-#ifdef  __USB_FUNCTION_DF_ACC_ENABLE__
-    uint32_t dummy;
-#endif
-    volatile uint32_t loop2;
-
-    g_usb0_function_mbw[pipe] = mbw;
-
-    switch (fifosel)
-    {
-        case USB_FUNCTION_CUSE:
-            buffer  = USB200.CFIFOSEL;
-            buffer &= (uint16_t)~(USB_FUNCTION_BITISEL | USB_FUNCTION_BITCURPIPE);
-            buffer |= (uint16_t)(~isel & USB_FUNCTION_BITISEL);
-            USB200.CFIFOSEL = buffer;
-
-            for (loop = 0; loop < 4; loop++)
-            {
-                if ((USB200.CFIFOSEL & (USB_FUNCTION_BITISEL | USB_FUNCTION_BITCURPIPE)) ==
-                        (buffer & (USB_FUNCTION_BITISEL | USB_FUNCTION_BITCURPIPE)))
-                {
-                    break;
-                }
-
-                loop2 = 100;
-                while (loop2-- > 0)
-                {
-                    /* wait */
-                }
-            }
-            buffer &= (uint16_t)~(USB_FUNCTION_BITISEL | USB_FUNCTION_BITCURPIPE | USB_FUNCTION_BITMBW);
-            buffer |= (uint16_t)(isel | pipe | mbw);
-            USB200.CFIFOSEL = buffer;
-
-            for (loop = 0; loop < 4; loop++)
-            {
-                if ((USB200.CFIFOSEL & (USB_FUNCTION_BITISEL | USB_FUNCTION_BITCURPIPE)) ==
-                        (buffer & (USB_FUNCTION_BITISEL | USB_FUNCTION_BITCURPIPE)))
-                {
-                    break;
-                }
-
-                loop2 = 100;
-
-                while (loop2-- > 0)
-                {
-                    /* wait */
-                }
-            }
-        break;
-
-        case USB_FUNCTION_D0DMA:
-        case USB_FUNCTION_D0USE:
-            buffer  = USB200.D0FIFOSEL;
-#ifdef  __USB_FUNCTION_DF_ACC_ENABLE__
-            buffer &= (uint16_t)~(USB_FUNCTION_BITCURPIPE | USB_FUNCTION_BITMBW);
-
-            if (dfacc != 0)
-            {
-                buffer |= (uint16_t)(USB_FUNCTION_BITMBW_32);
-            }
-#else
-            buffer &= (uint16_t)~(USB_FUNCTION_BITCURPIPE);
-#endif
-            USB200.D0FIFOSEL = buffer;
-
-            for (loop = 0; loop < 4; loop++)
-            {
-                if ((USB200.D0FIFOSEL & USB_FUNCTION_BITCURPIPE) == (buffer & USB_FUNCTION_BITCURPIPE))
-                {
-                    break;
-                }
-
-                loop2 = 100;
-
-                while (loop2-- > 0)
-                {
-                    /* wait */
-                }
-            }
-
-#ifdef  __USB_FUNCTION_DF_ACC_ENABLE__
-            if (dfacc != 0)
-            {
-                dummy = USB200.D0FIFO.UINT32;
-            }
-#endif
-            buffer &= (uint16_t)~(USB_FUNCTION_BITCURPIPE | USB_FUNCTION_BITMBW);
-            buffer |= (uint16_t)(pipe | mbw);
-            USB200.D0FIFOSEL = buffer;
-
-            for (loop = 0; loop < 4; loop++)
-            {
-                if ((USB200.D0FIFOSEL & USB_FUNCTION_BITCURPIPE) == (buffer & USB_FUNCTION_BITCURPIPE))
-                {
-                    break;
-                }
-
-                loop2 = 100;
-
-                while (loop2-- > 0)
-                {
-                    /* wait */
-                }
-            }
-        break;
-
-        case USB_FUNCTION_D1DMA:
-        case USB_FUNCTION_D1USE:
-            buffer  = USB200.D1FIFOSEL;
-#ifdef  __USB_FUNCTION_DF_ACC_ENABLE__
-            buffer &= (uint16_t)~(USB_FUNCTION_BITCURPIPE | USB_FUNCTION_BITMBW);
-
-            if (dfacc != 0)
-            {
-                buffer |= (uint16_t)(USB_FUNCTION_BITMBW_32);
-            }
-#else
-            buffer &= (uint16_t)~(USB_FUNCTION_BITCURPIPE);
-#endif
-            USB200.D1FIFOSEL = buffer;
-
-            for (loop = 0; loop < 4; loop++)
-            {
-                if ((USB200.D1FIFOSEL & USB_FUNCTION_BITCURPIPE) == (buffer & USB_FUNCTION_BITCURPIPE))
-                {
-                    break;
-                }
-
-                loop2 = 100;
-
-                while (loop2-- > 0)
-                {
-                    /* wait */
-                }
-            }
-#ifdef  __USB_FUNCTION_DF_ACC_ENABLE__
-            if (dfacc != 0)
-            {
-                dummy = USB200.D1FIFO.UINT32;
-                loop = dummy;                   // avoid warning.
-            }
-#endif
-            buffer &= (uint16_t)~(USB_FUNCTION_BITCURPIPE | USB_FUNCTION_BITMBW);
-            buffer |= (uint16_t)(pipe | mbw);
-            USB200.D1FIFOSEL = buffer;
-
-            for (loop = 0; loop < 4; loop++)
-            {
-                if ((USB200.D1FIFOSEL & USB_FUNCTION_BITCURPIPE) == (buffer & USB_FUNCTION_BITCURPIPE))
-                {
-                    break;
-                }
-
-                loop2 = 100;
-
-                while (loop2-- > 0)
-                {
-                    /* wait */
-                }
-            }
-        break;
-
-        default:
-        break;
-    }
-
-    /* Cautions !!!
-     * Depending on the external bus speed of CPU, you may need to wait for 450ns here.
-     * For details, please look at the data sheet.   */
-    loop2 = 100;
-
-    while (loop2-- > 0)
-    {
-        /* wait */
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_write_c_fifo
-* Description  : Writes data in CFIFO.
-*              : Writes data by BYTE/WORD/LONG according to access size
-*              : to the pipe specified by the arguments.
-*              : Before executing this function, allocating CFIF0 in the specified pipe
-*              : should be completed.
-*              : Before executing this function, access size to the specified pipe
-*              : should be fixed and set in g_usb0_function_mbw[].
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint16_t count     ; Data Size(Byte)
-* Return Value : none
-*******************************************************************************/
-static void usb0_function_write_c_fifo (uint16_t pipe, uint16_t count)
-{
-    uint16_t even;
-
-    if (g_usb0_function_mbw[pipe] == USB_FUNCTION_BITMBW_8)
-    {
-        for (even = count; even; --even)
-        {
-            USB200.CFIFO.UINT8[HH] = *g_usb0_function_data_pointer[pipe];
-            g_usb0_function_data_pointer[pipe] += 1;
-        }
-    }
-    else if (g_usb0_function_mbw[pipe] == USB_FUNCTION_BITMBW_16)
-    {
-        for (even = (uint16_t)(count / 2); even; --even)
-        {
-            USB200.CFIFO.UINT16[H] = *((uint16_t *)g_usb0_function_data_pointer[pipe]);
-            g_usb0_function_data_pointer[pipe] += 2;
-        }
-    }
-    else
-    {
-        for (even = (uint16_t)(count / 4); even; --even)
-        {
-            USB200.CFIFO.UINT32 = *((uint32_t *)g_usb0_function_data_pointer[pipe]);
-            g_usb0_function_data_pointer[pipe] += 4;
-        }
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_read_c_fifo
-* Description  : Reads data from CFIFO.
-*              : Reads data by BYTE/WORD/LONG according to access size
-*              : to the pipe specified by the arguments.
-*              : Before executing this function, allocating CFIF0 in the specified pipe
-*              : should be completed.
-*              : Before executing this function, access size to the specified pipe
-*              : should be fixed and set in g_usb0_function_mbw[].
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint16_t count     ; Data Size(Byte)
-* Return Value : none
-*******************************************************************************/
-static void usb0_function_read_c_fifo (uint16_t pipe, uint16_t count)
-{
-    uint16_t even;
-
-    if (g_usb0_function_mbw[pipe] == USB_FUNCTION_BITMBW_8)
-    {
-        for (even = count; even; --even)
-        {
-            *g_usb0_function_data_pointer[pipe] = USB200.CFIFO.UINT8[HH];
-            g_usb0_function_data_pointer[pipe] += 1;
-        }
-    }
-    else if (g_usb0_function_mbw[pipe] == USB_FUNCTION_BITMBW_16)
-    {
-        for (even = (uint16_t)((count + 1) / 2); even; --even)
-        {
-            *((uint16_t *)g_usb0_function_data_pointer[pipe]) = USB200.CFIFO.UINT16[H];
-            g_usb0_function_data_pointer[pipe] += 2;
-        }
-    }
-    else
-    {
-        for (even = (uint16_t)((count + 3) / 4); even; --even)
-        {
-            *((uint32_t *)g_usb0_function_data_pointer[pipe]) = USB200.CFIFO.UINT32;
-            g_usb0_function_data_pointer[pipe] += 4;
-        }
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_write_d0_fifo
-* Description  : Writes data in D0FIFO.
-*              : Writes data by BYTE/WORD/LONG according to access size
-*              : to the pipe specified by the arguments.
-*              : Before executing this function, allocating CFIF0 in the specified pipe
-*              : should be completed.
-*              : Before executing this function, access size to the specified pipe
-*              : should be fixed and set in g_usb0_function_mbw[].
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint16_t count     ; Data Size(Byte)
-* Return Value : none
-*******************************************************************************/
-static void usb0_function_write_d0_fifo (uint16_t pipe, uint16_t count)
-{
-    uint16_t even;
-
-    if (g_usb0_function_mbw[pipe] == USB_FUNCTION_BITMBW_8)
-    {
-        for (even = count; even; --even)
-        {
-            USB200.D0FIFO.UINT8[HH] = *g_usb0_function_data_pointer[pipe];
-            g_usb0_function_data_pointer[pipe] += 1;
-        }
-    }
-    else if (g_usb0_function_mbw[pipe] == USB_FUNCTION_BITMBW_16)
-    {
-        for (even = (uint16_t)(count / 2); even; --even)
-        {
-            USB200.D0FIFO.UINT16[H] = *((uint16_t *)g_usb0_function_data_pointer[pipe]);
-            g_usb0_function_data_pointer[pipe] += 2;
-        }
-    }
-    else
-    {
-        for (even = (uint16_t)(count / 4); even; --even)
-        {
-            USB200.D0FIFO.UINT32 = *((uint32_t *)g_usb0_function_data_pointer[pipe]);
-            g_usb0_function_data_pointer[pipe] += 4;
-        }
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_read_d0_fifo
-* Description  : Reads data from D0FIFO.
-*              : Reads data by BYTE/WORD/LONG according to access size
-*              : to the pipe specified by the arguments.
-*              : Before executing this function, allocating DOFIF0 in the specified pipe
-*              : should be completed.
-*              : Before executing this function, access size to the specified pipe
-*              : should be fixed and set in g_usb0_function_mbw[].
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint16_t count     ; Data Size(Byte)
-* Return Value : none
-*******************************************************************************/
-static void usb0_function_read_d0_fifo (uint16_t pipe, uint16_t count)
-{
-    uint16_t even;
-
-    if (g_usb0_function_mbw[pipe] == USB_FUNCTION_BITMBW_8)
-    {
-        for (even = count; even; --even)
-        {
-            *g_usb0_function_data_pointer[pipe] = USB200.D0FIFO.UINT8[HH];
-            g_usb0_function_data_pointer[pipe] += 1;
-        }
-    }
-    else if (g_usb0_function_mbw[pipe] == USB_FUNCTION_BITMBW_16)
-    {
-        for (even = (uint16_t)((count + 1) / 2); even; --even)
-        {
-            *((uint16_t *)g_usb0_function_data_pointer[pipe]) = USB200.D0FIFO.UINT16[H];
-            g_usb0_function_data_pointer[pipe] += 2;
-        }
-    }
-    else
-    {
-        for (even = (uint16_t)((count + 3) / 4); even; --even)
-        {
-            *((uint32_t *)g_usb0_function_data_pointer[pipe]) = USB200.D0FIFO.UINT32;
-            g_usb0_function_data_pointer[pipe] += 4;
-        }
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_write_d1_fifo
-* Description  : Writes data in D1FIFO.
-*              : Writes data by BYTE/WORD/LONG according to access size
-*              : to the pipe specified by the arguments.
-*              : Before executing this function, allocating D1FIF0 in the specified pipe
-*              : should be completed.
-*              : Before executing this function, access size to the specified pipe
-*              : should be fixed and set in g_usb0_function_mbw[].
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint16_t count     ; Data Size(Byte)
-* Return Value : none
-*******************************************************************************/
-static void usb0_function_write_d1_fifo (uint16_t pipe, uint16_t count)
-{
-    uint16_t even;
-
-    if (g_usb0_function_mbw[pipe] == USB_FUNCTION_BITMBW_8)
-    {
-        for (even = count; even; --even)
-        {
-            USB200.D1FIFO.UINT8[HH] = *g_usb0_function_data_pointer[pipe];
-            g_usb0_function_data_pointer[pipe] += 1;
-        }
-    }
-    else if (g_usb0_function_mbw[pipe] == USB_FUNCTION_BITMBW_16)
-    {
-        for (even = (uint16_t)(count / 2); even; --even)
-        {
-            USB200.D1FIFO.UINT16[H] = *((uint16_t *)g_usb0_function_data_pointer[pipe]);
-            g_usb0_function_data_pointer[pipe] += 2;
-        }
-    }
-    else
-    {
-        for (even = (uint16_t)(count / 4); even; --even)
-        {
-            USB200.D1FIFO.UINT32 = *((uint32_t *)g_usb0_function_data_pointer[pipe]);
-            g_usb0_function_data_pointer[pipe] += 4;
-        }
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_read_d1_fifo
-* Description  : Reads data from D1FIFO.
-*              : Reads data by BYTE/WORD/LONG according to access size
-*              : to the pipe specified by the arguments.
-*              : Before executing this function, allocating D1FIF0 in the specified pipe
-*              : should be completed.
-*              : Before executing this function, access size to the specified pipe
-*              : should be fixed and set in g_usb0_function_mbw[].
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint16_t count     ; Data Size(Byte)
-* Return Value : none
-*******************************************************************************/
-static void usb0_function_read_d1_fifo (uint16_t pipe, uint16_t count)
-{
-    uint16_t even;
-
-    if (g_usb0_function_mbw[pipe] == USB_FUNCTION_BITMBW_8)
-    {
-        for (even = count; even; --even)
-        {
-            *g_usb0_function_data_pointer[pipe] = USB200.D1FIFO.UINT8[HH];
-            g_usb0_function_data_pointer[pipe] += 1;
-        }
-    }
-    else if (g_usb0_function_mbw[pipe] == USB_FUNCTION_BITMBW_16)
-    {
-        for (even = (uint16_t)((count + 1) / 2); even; --even)
-        {
-            *((uint16_t *)g_usb0_function_data_pointer[pipe]) = USB200.D1FIFO.UINT16[H];
-            g_usb0_function_data_pointer[pipe] += 2;
-        }
-    }
-    else
-    {
-        for (even = (uint16_t)((count + 3) / 4); even; --even)
-        {
-            *((uint32_t *)g_usb0_function_data_pointer[pipe]) = USB200.D1FIFO.UINT32;
-            g_usb0_function_data_pointer[pipe] += 4;
-        }
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_com_get_dmasize
-* Description  : Calculates access width of DMA transfer by the argument to
-*              : return as the Return Value.
-* Arguments    : uint32_t trncount   : transfer byte
-*              : uint32_t dtptr      : transfer data pointer
-* Return Value : DMA transfer size    : 0   8bit
-*              :                      : 1  16bit
-*              :                      : 2  32bit
-*******************************************************************************/
-static uint32_t usb0_function_com_get_dmasize (uint32_t trncount, uint32_t dtptr)
-{
-    uint32_t size;
-
-    if (((trncount & 0x0001) != 0) || ((dtptr & 0x00000001) != 0))
-    {
-        /*  When transfer byte count is odd         */
-        /* or transfer data area is 8-bit alignment */
-        size = 0;           /* 8bit */
-    }
-    else if (((trncount & 0x0003) != 0) || ((dtptr & 0x00000003) != 0))
-    {
-        /* When the transfer byte count is multiples of 2 */
-        /* or the transfer data area is 16-bit alignment */
-        size = 1;           /* 16bit */
-    }
-    else
-    {
-        /* When the transfer byte count is multiples of 4 */
-        /* or the transfer data area is 32-bit alignment */
-        size = 2;           /* 32bit */
-    }
-
-    return size;
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_get_mbw
-* Description  : Calculates access width of DMA to return the value set in MBW.
-* Arguments    : uint32_t trncount   : transfer byte
-*              : uint32_t dtptr      : transfer data pointer
-* Return Value : FIFO transfer size   : USB_FUNCTION_BITMBW_8    8bit
-*              :                      : USB_FUNCTION_BITMBW_16  16bit
-*              :                      : USB_FUNCTION_BITMBW_32  32bit
-*******************************************************************************/
-uint16_t usb0_function_get_mbw (uint32_t trncount, uint32_t dtptr)
-{
-    uint32_t size;
-    uint16_t mbw;
-
-    size = usb0_function_com_get_dmasize(trncount, dtptr);
-
-    if (size == 0)
-    {
-        /* 8bit */
-        mbw = USB_FUNCTION_BITMBW_8;
-    }
-    else if (size == 1)
-    {
-        /* 16bit */
-        mbw = USB_FUNCTION_BITMBW_16;
-    }
-    else
-    {
-        /* 32bit */
-        mbw = USB_FUNCTION_BITMBW_32;
-    }
-
-    return mbw;
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_set_transaction_counter
-* Description  : Sets transaction counter by the argument(PIPEnTRN).
-*              : Clears transaction before setting to enable transaction counter setting.
-* Arguments    : uint16_t pipe     ; Pipe number
-*              : uint32_t bsize    : Data transfer size
-* Return Value : none
-*******************************************************************************/
-static void usb0_function_set_transaction_counter (uint16_t pipe, uint32_t bsize)
-{
-    uint16_t mxps;
-    uint16_t cnt;
-
-    if (bsize  == 0)
-    {
-        return;
-    }
-
-    mxps = usb0_function_get_mxps(pipe);            /* Max Packet Size */
-
-    if ((bsize % mxps) == 0)
-    {
-        cnt = (uint16_t)(bsize / mxps);
-    }
-    else
-    {
-        cnt = (uint16_t)((bsize / mxps) + 1);
-    }
-
-    switch (pipe)
-    {
-        case USB_FUNCTION_PIPE1:
-            RZA_IO_RegWrite_16(&USB200.PIPE1TRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-            USB200.PIPE1TRN             = cnt;
-            RZA_IO_RegWrite_16(&USB200.PIPE1TRE,
-                                1,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-        break;
-
-        case USB_FUNCTION_PIPE2:
-            RZA_IO_RegWrite_16(&USB200.PIPE2TRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-            USB200.PIPE2TRN             = cnt;
-            RZA_IO_RegWrite_16(&USB200.PIPE2TRE,
-                                1,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-        break;
-
-        case USB_FUNCTION_PIPE3:
-            RZA_IO_RegWrite_16(&USB200.PIPE3TRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-            USB200.PIPE3TRN             = cnt;
-            RZA_IO_RegWrite_16(&USB200.PIPE3TRE,
-                                1,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-        break;
-
-        case USB_FUNCTION_PIPE4:
-            RZA_IO_RegWrite_16(&USB200.PIPE4TRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-            USB200.PIPE4TRN             = cnt;
-            RZA_IO_RegWrite_16(&USB200.PIPE4TRE,
-                                1,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-        break;
-
-        case USB_FUNCTION_PIPE5:
-            RZA_IO_RegWrite_16(&USB200.PIPE5TRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-            USB200.PIPE5TRN             = cnt;
-            RZA_IO_RegWrite_16(&USB200.PIPE5TRE,
-                                1,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-        break;
-
-        case USB_FUNCTION_PIPE9:
-            RZA_IO_RegWrite_16(&USB200.PIPE9TRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-            USB200.PIPE9TRN             = cnt;
-            RZA_IO_RegWrite_16(&USB200.PIPE9TRE,
-                                1,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-        break;
-
-        case USB_FUNCTION_PIPEA:
-            RZA_IO_RegWrite_16(&USB200.PIPEATRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-            USB200.PIPEATRN             = cnt;
-            RZA_IO_RegWrite_16(&USB200.PIPEATRE,
-                                1,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-        break;
-
-        case USB_FUNCTION_PIPEB:
-            RZA_IO_RegWrite_16(&USB200.PIPEBTRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-            USB200.PIPEBTRN             = cnt;
-            RZA_IO_RegWrite_16(&USB200.PIPEBTRE,
-                                1,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-        break;
-
-        case USB_FUNCTION_PIPEC:
-            RZA_IO_RegWrite_16(&USB200.PIPECTRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-            USB200.PIPECTRN             = cnt;
-            RZA_IO_RegWrite_16(&USB200.PIPECTRE,
-                                1,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-        break;
-
-        case USB_FUNCTION_PIPED:
-            RZA_IO_RegWrite_16(&USB200.PIPEDTRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-            USB200.PIPEDTRN             = cnt;
-            RZA_IO_RegWrite_16(&USB200.PIPEDTRE,
-                                1,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-        break;
-
-        case USB_FUNCTION_PIPEE:
-            RZA_IO_RegWrite_16(&USB200.PIPEETRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-            USB200.PIPEETRN             = cnt;
-            RZA_IO_RegWrite_16(&USB200.PIPEETRE,
-                                1,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-        break;
-
-        case USB_FUNCTION_PIPEF:
-            RZA_IO_RegWrite_16(&USB200.PIPEFTRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-            USB200.PIPEFTRN             = cnt;
-            RZA_IO_RegWrite_16(&USB200.PIPEFTRE,
-                                1,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-        break;
-
-        default:
-        break;
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_clear_transaction_counter
-* Description  : Clears the transaction counter by the argument.
-*              : After executing this function, the transaction counter is invalid.
-* Arguments    : uint16_t pipe     ; Pipe number
-* Return Value : none
-*******************************************************************************/
-void usb0_function_clear_transaction_counter (uint16_t pipe)
-{
-    switch (pipe)
-    {
-        case USB_FUNCTION_PIPE1:
-            RZA_IO_RegWrite_16(&USB200.PIPE1TRE,
-                                0,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-            RZA_IO_RegWrite_16(&USB200.PIPE1TRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-        break;
-
-        case USB_FUNCTION_PIPE2:
-            RZA_IO_RegWrite_16(&USB200.PIPE2TRE,
-                                0,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-            RZA_IO_RegWrite_16(&USB200.PIPE2TRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-        break;
-
-        case USB_FUNCTION_PIPE3:
-            RZA_IO_RegWrite_16(&USB200.PIPE3TRE,
-                                0,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-            RZA_IO_RegWrite_16(&USB200.PIPE3TRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-        break;
-
-        case USB_FUNCTION_PIPE4:
-            RZA_IO_RegWrite_16(&USB200.PIPE4TRE,
-                                0,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-            RZA_IO_RegWrite_16(&USB200.PIPE4TRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-        break;
-
-        case USB_FUNCTION_PIPE5:
-            RZA_IO_RegWrite_16(&USB200.PIPE5TRE,
-                                0,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-            RZA_IO_RegWrite_16(&USB200.PIPE5TRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-        break;
-
-        case USB_FUNCTION_PIPE9:
-            RZA_IO_RegWrite_16(&USB200.PIPE9TRE,
-                                0,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-            RZA_IO_RegWrite_16(&USB200.PIPE9TRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-        break;
-
-        case USB_FUNCTION_PIPEA:
-            RZA_IO_RegWrite_16(&USB200.PIPEATRE,
-                                0,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-            RZA_IO_RegWrite_16(&USB200.PIPEATRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-        break;
-
-        case USB_FUNCTION_PIPEB:
-            RZA_IO_RegWrite_16(&USB200.PIPEBTRE,
-                                0,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-            RZA_IO_RegWrite_16(&USB200.PIPEBTRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-        break;
-
-        case USB_FUNCTION_PIPEC:
-            RZA_IO_RegWrite_16(&USB200.PIPECTRE,
-                                0,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-            RZA_IO_RegWrite_16(&USB200.PIPECTRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-        break;
-
-        case USB_FUNCTION_PIPED:
-            RZA_IO_RegWrite_16(&USB200.PIPEDTRE,
-                                0,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-            RZA_IO_RegWrite_16(&USB200.PIPEDTRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-        break;
-
-        case USB_FUNCTION_PIPEE:
-            RZA_IO_RegWrite_16(&USB200.PIPEETRE,
-                                0,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-            RZA_IO_RegWrite_16(&USB200.PIPEETRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-        break;
-
-        case USB_FUNCTION_PIPEF:
-            RZA_IO_RegWrite_16(&USB200.PIPEFTRE,
-                                0,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-            RZA_IO_RegWrite_16(&USB200.PIPEFTRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-        break;
-
-        default:
-        break;
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_stop_transfer
-* Description  : Stops the USB transfer in the pipe specified by the argument.
-*              : After stopping the USB transfer, clears the buffer allocated in
-*              : the pipe.
-*              : After executing this function, allocation in FIF0 becomes USB_FUNCTION_PIPE0;
-*              : invalid. After executing this function, BRDY/NRDY/BEMP interrupt
-*              : in the corresponding pipe becomes invalid. Sequence bit is also
-*              : cleared.
-* Arguments    : uint16_t  pipe     ; Pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb0_function_stop_transfer (uint16_t pipe)
-{
-    uint16_t usefifo;
-    uint32_t remain;
-    uint16_t fifo;
-
-    usb0_function_set_pid_nak(pipe);
-
-    usefifo = (uint16_t)(g_usb0_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE);
-    switch (usefifo)
-    {
-        case USB_FUNCTION_D0FIFO_USE:
-            usb0_function_clear_transaction_counter(pipe);
-            USB200.D0FIFOCTR = USB_FUNCTION_BITBCLR;        /* Buffer Clear */
-            fifo = USB_FUNCTION_D0USE;
-        break;
-
-        case USB_FUNCTION_D1FIFO_USE:
-            usb0_function_clear_transaction_counter(pipe);
-            USB200.D1FIFOCTR = USB_FUNCTION_BITBCLR;        /* Buffer Clear */
-            fifo = USB_FUNCTION_D1USE;
-        break;
-
-        case USB_FUNCTION_D0FIFO_DMA:
-            remain = Userdef_USB_usb0_function_stop_dma0();
-            usb0_function_dma_stop_d0(pipe, remain);
-            usb0_function_clear_transaction_counter(pipe);
-            USB200.D0FIFOCTR = USB_FUNCTION_BITBCLR;        /* Buffer Clear */
-            fifo = USB_FUNCTION_D0DMA;
-        break;
-
-        case USB_FUNCTION_D1FIFO_DMA:
-            remain = Userdef_USB_usb0_function_stop_dma1();
-            usb0_function_dma_stop_d1(pipe, remain);
-            usb0_function_clear_transaction_counter(pipe);
-            USB200.D1FIFOCTR = USB_FUNCTION_BITBCLR;        /* Buffer Clear */
-            fifo = USB_FUNCTION_D1DMA;
-        break;
-
-        default:
-            usb0_function_clear_transaction_counter(pipe);
-            USB200.CFIFOCTR =  USB_FUNCTION_BITBCLR;        /* Buffer Clear */
-            fifo = USB_FUNCTION_CUSE;
-        break;
-    }
-
-    usb0_function_set_curpipe(USB_FUNCTION_PIPE0, fifo, DEVDRV_USBF_NO, USB_FUNCTION_BITMBW_16);
-
-    /* Interrupt of pipe set is disabled */
-    usb0_function_disable_brdy_int(pipe);
-    usb0_function_disable_nrdy_int(pipe);
-    usb0_function_disable_bemp_int(pipe);
-
-    usb0_function_aclrm(pipe);
-    usb0_function_set_csclr(pipe);
-
-    if ( g_usb0_function_pipe_status[pipe] == DEVDRV_USBF_PIPE_WAIT )
-    {
-        g_usb0_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_NORES;
-    }
-
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_set_dfacc_d0
-* Description  : Sets the DFACC setting value in D0FIFO using the transfer size.
-* Arguments    : uint16_t mbw     ; MBW
-*              : uint16_t count   ; data count
-* Return Value : DFACC Access mode
-*******************************************************************************/
-static uint16_t usb0_function_set_dfacc_d0 (uint16_t mbw, uint32_t count)
-{
-    uint16_t dfacc = 0;
-
-#ifndef __USB_FUNCTION_DF_ACC_ENABLE__
-    RZA_IO_RegWrite_16(&USB200.D0FBCFG,
-                        0,
-                        USB_DnFBCFG_DFACC_SHIFT,
-                        USB_DnFBCFG_DFACC);
-    RZA_IO_RegWrite_16(&USB200.D0FBCFG,
-                        0,
-                        USB_DnFBCFG_TENDE_SHIFT,
-                        USB_DnFBCFG_TENDE);
-    dfacc = 0;
-#else
-    if (mbw == USB_FUNCTION_BITMBW_32)
-    {
-        if ((count % 32) == 0)
-        {
-            /* 32byte transfer */
-            RZA_IO_RegWrite_16(&USB200.D0FBCFG,
-                                2,
-                                USB_DnFBCFG_DFACC_SHIFT,
-                                USB_DnFBCFG_DFACC);
-            RZA_IO_RegWrite_16(&USB200.D0FBCFG,
-                                0,
-                                USB_DnFBCFG_TENDE_SHIFT,
-                                USB_DnFBCFG_TENDE);
-            dfacc = 2;
-        }
-        else if ((count % 16) == 0)
-        {
-            /* 16byte transfer */
-            RZA_IO_RegWrite_16(&USB200.D0FBCFG,
-                                1,
-                                USB_DnFBCFG_DFACC_SHIFT,
-                                USB_DnFBCFG_DFACC);
-            RZA_IO_RegWrite_16(&USB200.D0FBCFG,
-                                0,
-                                USB_DnFBCFG_TENDE_SHIFT,
-                                USB_DnFBCFG_TENDE);
-            dfacc = 1;
-        }
-        else
-        {
-            RZA_IO_RegWrite_16(&USB200.D0FBCFG,
-                                0,
-                                USB_DnFBCFG_DFACC_SHIFT,
-                                USB_DnFBCFG_DFACC);
-            RZA_IO_RegWrite_16(&USB200.D0FBCFG,
-                                0,
-                                USB_DnFBCFG_TENDE_SHIFT,
-                                USB_DnFBCFG_TENDE);
-            dfacc = 0;
-        }
-    }
-    else if (mbw == USB_FUNCTION_BITMBW_16)
-    {
-        RZA_IO_RegWrite_16(&USB200.D0FBCFG,
-                            0,
-                            USB_DnFBCFG_DFACC_SHIFT,
-                            USB_DnFBCFG_DFACC);
-        RZA_IO_RegWrite_16(&USB200.D0FBCFG,
-                            0,
-                            USB_DnFBCFG_TENDE_SHIFT,
-                            USB_DnFBCFG_TENDE);
-        dfacc = 0;
-    }
-    else
-    {
-        RZA_IO_RegWrite_16(&USB200.D0FBCFG,
-                            0,
-                            USB_DnFBCFG_DFACC_SHIFT,
-                            USB_DnFBCFG_DFACC);
-        RZA_IO_RegWrite_16(&USB200.D0FBCFG,
-                            0,
-                            USB_DnFBCFG_TENDE_SHIFT,
-                            USB_DnFBCFG_TENDE);
-        dfacc = 0;
-    }
-#endif
-    return dfacc;
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_set_dfacc_d1
-* Description  : Set the DFACC setting value in D1FIFO using the transfer size.
-* Arguments    : uint16_t mbw     ; MBW
-*              : uint16_t count   ; data count
-* Return Value : DFACC Access mode
-*******************************************************************************/
-static uint16_t usb0_function_set_dfacc_d1 (uint16_t mbw, uint32_t count)
-{
-    uint16_t dfacc = 0;
-
-#ifndef __USB_FUNCTION_DF_ACC_ENABLE__
-    RZA_IO_RegWrite_16(&USB200.D1FBCFG,
-                        0,
-                        USB_DnFBCFG_DFACC_SHIFT,
-                        USB_DnFBCFG_DFACC);
-    RZA_IO_RegWrite_16(&USB200.D1FBCFG,
-                        0,
-                        USB_DnFBCFG_TENDE_SHIFT,
-                        USB_DnFBCFG_TENDE);
-    dfacc = 0;
-#else
-    if (mbw == USB_FUNCTION_BITMBW_32)
-    {
-        if ((count % 32) == 0)
-        {
-            /* 32byte transfer */
-            RZA_IO_RegWrite_16(&USB200.D1FBCFG,
-                                2,
-                                USB_DnFBCFG_DFACC_SHIFT,
-                                USB_DnFBCFG_DFACC);
-            RZA_IO_RegWrite_16(&USB200.D1FBCFG,
-                                0,
-                                USB_DnFBCFG_TENDE_SHIFT,
-                                USB_DnFBCFG_TENDE);
-            dfacc = 2;
-        }
-        else if ((count % 16) == 0)
-        {
-            /* 16byte transfer */
-            RZA_IO_RegWrite_16(&USB200.D1FBCFG,
-                                1,
-                                USB_DnFBCFG_DFACC_SHIFT,
-                                USB_DnFBCFG_DFACC);
-            RZA_IO_RegWrite_16(&USB200.D1FBCFG,
-                                0,
-                                USB_DnFBCFG_TENDE_SHIFT,
-                                USB_DnFBCFG_TENDE);
-            dfacc = 1;
-        }
-        else
-        {
-            RZA_IO_RegWrite_16(&USB200.D1FBCFG,
-                                0,
-                                USB_DnFBCFG_DFACC_SHIFT,
-                                USB_DnFBCFG_DFACC);
-            RZA_IO_RegWrite_16(&USB200.D1FBCFG,
-                                0,
-                                USB_DnFBCFG_TENDE_SHIFT,
-                                USB_DnFBCFG_TENDE);
-            dfacc = 0;
-        }
-    }
-    else if (mbw == USB_FUNCTION_BITMBW_16)
-    {
-        RZA_IO_RegWrite_16(&USB200.D1FBCFG,
-                            0,
-                            USB_DnFBCFG_DFACC_SHIFT,
-                            USB_DnFBCFG_DFACC);
-        RZA_IO_RegWrite_16(&USB200.D1FBCFG,
-                            0,
-                            USB_DnFBCFG_TENDE_SHIFT,
-                            USB_DnFBCFG_TENDE);
-        dfacc = 0;
-    }
-    else
-    {
-        RZA_IO_RegWrite_16(&USB200.D1FBCFG,
-                            0,
-                            USB_DnFBCFG_DFACC_SHIFT,
-                            USB_DnFBCFG_DFACC);
-        RZA_IO_RegWrite_16(&USB200.D1FBCFG,
-                            0,
-                            USB_DnFBCFG_TENDE_SHIFT,
-                            USB_DnFBCFG_TENDE);
-        dfacc = 0;
-    }
-#endif
-
-    return dfacc;
-}
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/src/common/usb0_function_dma.c	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,346 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb0_function_dma.c
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Device(s)    : RZ/A1H
-* Tool-Chain   :
-* OS           : None
-* H/W Platform :
-* Description  : RZ/A1H R7S72100 USB Sample Program
-* Operation    :
-* Limitations  :
-*******************************************************************************/
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include "usb0_function.h"
-
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Imported global variables and functions (from other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Private global variables and functions
-*******************************************************************************/
-static void usb0_function_dmaint(uint16_t fifo);
-static void usb0_function_dmaint_buf2fifo(uint16_t pipe);
-static void usb0_function_dmaint_fifo2buf(uint16_t pipe);
-
-
-/*******************************************************************************
-* Function Name: usb0_function_dma_stop_d0
-* Description  : D0FIFO DMA stop
-* Arguments    : uint16_t pipe      : pipe number
-*              : uint32_t remain    : transfer byte
-* Return Value : none
-*******************************************************************************/
-void usb0_function_dma_stop_d0 (uint16_t pipe, uint32_t remain)
-{
-    uint16_t dtln;
-    uint16_t dfacc;
-    uint16_t buffer;
-    uint16_t sds_b = 1;
-
-    dfacc = RZA_IO_RegRead_16(&USB200.D0FBCFG, USB_DnFBCFG_DFACC_SHIFT, USB_DnFBCFG_DFACC);
-
-    if (dfacc == 2)
-    {
-        sds_b = 32;
-    }
-    else if (dfacc == 1)
-    {
-        sds_b = 16;
-    }
-    else
-    {
-        if (g_usb0_function_DmaInfo[USB_FUNCTION_D0FIFO].size == 2)
-        {
-            sds_b = 4;
-        }
-        else if (g_usb0_function_DmaInfo[USB_FUNCTION_D0FIFO].size == 1)
-        {
-            sds_b = 2;
-        }
-        else
-        {
-            sds_b = 1;
-        }
-    }
-
-    if (RZA_IO_RegRead_16(&g_usb0_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 1)
-    {
-        if (g_usb0_function_pipe_status[pipe] != DEVDRV_USBF_PIPE_DONE)
-        {
-            buffer = USB200.D0FIFOCTR;
-            dtln   = (buffer & USB_FUNCTION_BITDTLN);
-
-            if ((dtln % sds_b) != 0)
-            {
-                remain += (sds_b - (dtln % sds_b));
-            }
-            g_usb0_function_PipeDataSize[pipe] = (g_usb0_function_data_count[pipe] - remain);
-            g_usb0_function_data_count[pipe]   = remain;
-        }
-    }
-
-    RZA_IO_RegWrite_16(&USB200.D0FIFOSEL, 0, USB_DnFIFOSEL_DREQE_SHIFT, USB_DnFIFOSEL_DREQE);
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_dma_stop_d1
-* Description  : D1FIFO DMA stop
-* Arguments    : uint16_t pipe      : pipe number
-*              : uint32_t remain    : transfer byte
-* Return Value : none
-*******************************************************************************/
-void usb0_function_dma_stop_d1 (uint16_t pipe, uint32_t remain)
-{
-    uint16_t dtln;
-    uint16_t dfacc;
-    uint16_t buffer;
-    uint16_t sds_b = 1;
-
-    dfacc = RZA_IO_RegRead_16(&USB200.D1FBCFG, USB_DnFBCFG_DFACC_SHIFT, USB_DnFBCFG_DFACC);
-
-    if (dfacc == 2)
-    {
-        sds_b = 32;
-    }
-    else if (dfacc == 1)
-    {
-        sds_b = 16;
-    }
-    else
-    {
-        if (g_usb0_function_DmaInfo[USB_FUNCTION_D1FIFO].size == 2)
-        {
-            sds_b = 4;
-        }
-        else if (g_usb0_function_DmaInfo[USB_FUNCTION_D1FIFO].size == 1)
-        {
-            sds_b = 2;
-        }
-        else
-        {
-            sds_b = 1;
-        }
-    }
-
-    if (RZA_IO_RegRead_16(&g_usb0_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 1)
-    {
-        if (g_usb0_function_pipe_status[pipe] != DEVDRV_USBF_PIPE_DONE)
-        {
-            buffer = USB200.D1FIFOCTR;
-            dtln   = (buffer & USB_FUNCTION_BITDTLN);
-
-            if ((dtln % sds_b) != 0)
-            {
-                remain += (sds_b - (dtln % sds_b));
-            }
-            g_usb0_function_PipeDataSize[pipe] = (g_usb0_function_data_count[pipe] - remain);
-            g_usb0_function_data_count[pipe]   = remain;
-        }
-    }
-
-    RZA_IO_RegWrite_16(&USB200.D1FIFOSEL, 0, USB_DnFIFOSEL_DREQE_SHIFT, USB_DnFIFOSEL_DREQE);
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_dma_interrupt_d0fifo
-* Description  : This function is DMA interrupt handler entry.
-*              : Execute usb0_function_dmaint() after disabling DMA interrupt in this function.
-*              : Disable DMA interrupt to DMAC executed when USB_FUNCTION_D0FIFO_DMA is
-*              : specified by dma->fifo.
-*              : Register this function as DMA complete interrupt.
-* Arguments    : uint32_t int_sense ; Interrupts detection mode
-*              :                    ;  INTC_LEVEL_SENSITIVE : Level sense
-*              :                    ;  INTC_EDGE_TRIGGER : Edge trigger
-* Return Value : none
-*******************************************************************************/
-void usb0_function_dma_interrupt_d0fifo (uint32_t int_sense)
-{
-    usb0_function_dmaint(USB_FUNCTION_D0FIFO);
-    g_usb0_function_DmaStatus[USB_FUNCTION_D0FIFO] = USB_FUNCTION_DMA_READY;
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_dma_interrupt_d1fifo
-* Description  : This function is DMA interrupt handler entry.
-*              : Execute usb0_function_dmaint() after disabling DMA interrupt in this function.
-*              : Disable DMA interrupt to DMAC executed when USB_FUNCTION_D1FIFO_DMA is
-*              : specified by dma->fifo.
-*              : Register this function as DMA complete interrupt.
-* Arguments    : uint32_t int_sense ; Interrupts detection mode
-*              :                    ;  INTC_LEVEL_SENSITIVE : Level sense
-*              :                    ;  INTC_EDGE_TRIGGER : Edge trigger
-* Return Value : none
-*******************************************************************************/
-void usb0_function_dma_interrupt_d1fifo (uint32_t int_sense)
-{
-    usb0_function_dmaint(USB_FUNCTION_D1FIFO);
-    g_usb0_function_DmaStatus[USB_FUNCTION_D1FIFO] = USB_FUNCTION_DMA_READY;
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_dmaint
-* Description  : This function is DMA transfer end interrupt
-* Arguments    : uint16_t fifo  ; fifo number
-*              :                ;  USB_FUNCTION_D0FIFO
-*              :                ;  USB_FUNCTION_D1FIFO
-* Return Value : none
-*******************************************************************************/
-static void usb0_function_dmaint (uint16_t fifo)
-{
-    uint16_t pipe;
-
-    pipe = g_usb0_function_DmaPipe[fifo];
-
-    if (g_usb0_function_DmaInfo[fifo].dir == USB_FUNCTION_BUF2FIFO)
-    {
-        usb0_function_dmaint_buf2fifo(pipe);
-    }
-    else
-    {
-        usb0_function_dmaint_fifo2buf(pipe);
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_dmaint_fifo2buf
-* Description  : Executes read completion from FIFO by DMAC.
-* Arguments    : uint16_t pipe      : pipe number
-* Return Value : none
-*******************************************************************************/
-static void usb0_function_dmaint_fifo2buf (uint16_t pipe)
-{
-    uint32_t remain;
-    uint16_t useport;
-
-    if (g_usb0_function_pipe_status[pipe] != DEVDRV_USBF_PIPE_DONE)
-    {
-        useport = (uint16_t)(g_usb0_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE);
-
-        if (useport == USB_FUNCTION_D0FIFO_DMA)
-        {
-            remain = Userdef_USB_usb0_function_stop_dma0();
-            usb0_function_dma_stop_d0(pipe, remain);
-
-            if (RZA_IO_RegRead_16(&g_usb0_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 0)
-            {
-                if (g_usb0_function_DmaStatus[USB_FUNCTION_D0FIFO] == USB_FUNCTION_DMA_BUSYEND)
-                {
-                    USB200.D0FIFOCTR = USB_FUNCTION_BITBCLR;
-                    g_usb0_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_DONE;
-                }
-                else
-                {
-                    usb0_function_enable_brdy_int(pipe);
-                }
-            }
-        }
-        else
-        {
-            remain = Userdef_USB_usb0_function_stop_dma1();
-            usb0_function_dma_stop_d1(pipe, remain);
-
-            if (RZA_IO_RegRead_16(&g_usb0_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 0)
-            {
-                if (g_usb0_function_DmaStatus[USB_FUNCTION_D1FIFO] == USB_FUNCTION_DMA_BUSYEND)
-                {
-                    USB200.D1FIFOCTR = USB_FUNCTION_BITBCLR;
-                    g_usb0_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_DONE;
-                }
-                else
-                {
-                    usb0_function_enable_brdy_int(pipe);
-                }
-            }
-        }
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_dmaint_buf2fifo
-* Description  : Executes write completion in FIFO by DMAC.
-* Arguments    : uint16_t pipe      : pipe number
-* Return Value : none
-*******************************************************************************/
-static void usb0_function_dmaint_buf2fifo (uint16_t pipe)
-{
-    uint32_t remain;
-    uint16_t useport;
-
-    useport = (uint16_t)(g_usb0_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE);
-
-    if (useport == USB_FUNCTION_D0FIFO_DMA)
-    {
-        remain = Userdef_USB_usb0_function_stop_dma0();
-        usb0_function_dma_stop_d0(pipe, remain);
-
-        if (g_usb0_function_DmaBval[USB_FUNCTION_D0FIFO] != 0)
-        {
-            RZA_IO_RegWrite_16(&USB200.D0FIFOCTR,
-                                1,
-                                USB_DnFIFOCTR_BVAL_SHIFT,
-                                USB_DnFIFOCTR_BVAL);
-        }
-    }
-    else
-    {
-        remain = Userdef_USB_usb0_function_stop_dma1();
-        usb0_function_dma_stop_d1(pipe, remain);
-
-        if (g_usb0_function_DmaBval[USB_FUNCTION_D1FIFO] != 0)
-        {
-            RZA_IO_RegWrite_16(&USB200.D1FIFOCTR,
-                                1,
-                                USB_DnFIFOCTR_BVAL_SHIFT,
-                                USB_DnFIFOCTR_BVAL);
-        }
-    }
-
-    usb0_function_enable_bemp_int(pipe);
-}
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/src/common/usb0_function_intrn.c	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,249 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb0_function_intrn.c
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Device(s)    : RZ/A1H
-* Tool-Chain   :
-* OS           : None
-* H/W Platform :
-* Description  : RZ/A1H R7S72100 USB Sample Program
-* Operation    :
-* Limitations  :
-*******************************************************************************/
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include "usb0_function.h"
-
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Imported global variables and functions (from other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Private global variables and functions
-*******************************************************************************/
-
-
-/*******************************************************************************
-* Function Name: usb0_function_brdy_int
-* Description  : Executes BRDY interrupt(USB_FUNCTION_PIPE1-9).
-*              : According to the pipe that interrupt is generated in,
-*              : reads/writes buffer allocated in the pipe.
-*              : This function is executed in the BRDY interrupt handler.
-*              : This function clears BRDY interrupt status and BEMP interrupt
-*              : status.
-* Arguments    : uint16_t Status       ; BRDYSTS Register Value
-*              : uint16_t Int_enbl     ; BRDYENB Register Value
-* Return Value : none
-*******************************************************************************/
-#if 0
-void usb0_function_brdy_int (uint16_t status, uint16_t int_enb)
-{
-    uint32_t int_sense = 0;
-    uint16_t pipe;
-    uint16_t pipebit;
-
-    for (pipe = USB_FUNCTION_PIPE1; pipe <= USB_FUNCTION_MAX_PIPE_NO; pipe++)
-    {
-        pipebit = g_usb0_function_bit_set[pipe];
-
-        if ((status & pipebit) && (int_enb & pipebit))
-        {
-            USB200.BRDYSTS = (uint16_t)~pipebit;
-            USB200.BEMPSTS = (uint16_t)~pipebit;
-            if ((g_usb0_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE) == USB_FUNCTION_D0FIFO_DMA)
-            {
-                if (g_usb0_function_DmaStatus[USB_FUNCTION_D0FIFO] != USB_FUNCTION_DMA_READY)
-                {
-                    usb0_function_dma_interrupt_d0fifo(int_sense);
-                }
-
-                if (RZA_IO_RegRead_16(&g_usb0_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 0)
-                {
-                    usb0_function_read_dma(pipe);
-                    usb0_function_disable_brdy_int(pipe);
-                }
-                else
-                {
-                    USB200.D0FIFOCTR = USB_FUNCTION_BITBCLR;
-                    g_usb0_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_DONE;
-                }
-            }
-            else if ((g_usb0_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE) == USB_FUNCTION_D1FIFO_DMA)
-            {
-                if (g_usb0_function_DmaStatus[USB_FUNCTION_D1FIFO] != USB_FUNCTION_DMA_READY)
-                {
-                    usb0_function_dma_interrupt_d1fifo(int_sense);
-                }
-
-                if (RZA_IO_RegRead_16(&g_usb0_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 0)
-                {
-                    usb0_function_read_dma(pipe);
-                    usb0_function_disable_brdy_int(pipe);
-                }
-                else
-                {
-                    USB200.D1FIFOCTR = USB_FUNCTION_BITBCLR;
-                    g_usb0_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_DONE;
-                }
-            }
-            else
-            {
-                if (RZA_IO_RegRead_16(&g_usb0_function_pipecfg[pipe], USB_PIPECFG_DIR_SHIFT, USB_PIPECFG_DIR) == 0)
-                {
-                    usb0_function_read_buffer(pipe);
-                }
-                else
-                {
-                    usb0_function_write_buffer(pipe);
-                }
-            }
-        }
-    }
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb0_function_nrdy_int
-* Description  : Executes NRDY interrupt(USB_FUNCTION_PIPE1-9).
-*              : Checks NRDY interrupt cause by PID. When the cause if STALL,
-*              : regards the pipe state as STALL and ends the processing.
-*              : Then the cause is not STALL, increments the error count to
-*              : communicate again. When the error count is 3, determines
-*              : the pipe state as DEVDRV_USBF_PIPE_NORES and ends the processing.
-*              : This function is executed in the NRDY interrupt handler.
-*              : This function clears NRDY interrupt status.
-* Arguments    : uint16_t status       ; NRDYSTS Register Value
-*              : uint16_t int_enb      ; NRDYENB Register Value
-* Return Value : none
-*******************************************************************************/
-void usb0_function_nrdy_int (uint16_t status, uint16_t int_enb)
-{
-    uint16_t pid;
-    uint16_t pipe;
-    uint16_t bitcheck;
-
-    bitcheck = (uint16_t)(status & int_enb);
-
-    USB200.NRDYSTS = (uint16_t)~status;
-
-    for (pipe = USB_FUNCTION_PIPE1; pipe <= USB_FUNCTION_MAX_PIPE_NO; pipe++)
-    {
-        if ((bitcheck&g_usb0_function_bit_set[pipe]) == g_usb0_function_bit_set[pipe])
-        {
-            if (RZA_IO_RegRead_16(&USB200.SYSCFG0, USB_SYSCFG_DCFM_SHIFT, USB_SYSCFG_DCFM) == 1)
-            {
-                if (g_usb0_function_pipe_status[pipe] == DEVDRV_USBF_PIPE_WAIT)
-                {
-                    pid = usb0_function_get_pid(pipe);
-                    if ((pid == DEVDRV_USBF_PID_STALL) || (pid == DEVDRV_USBF_PID_STALL2))
-                    {
-                        g_usb0_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_STALL;
-                    }
-                    else
-                    {
-                        g_usb0_function_PipeIgnore[pipe]++;
-                        if (g_usb0_function_PipeIgnore[pipe] == 3)
-                        {
-                            g_usb0_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_NORES;
-                        }
-                        else
-                        {
-                            usb0_function_set_pid_buf(pipe);
-                        }
-                    }
-                }
-            }
-            else
-            {
-                /* USB Function */
-            }
-        }
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_bemp_int
-* Description  : Executes BEMP interrupt(USB_FUNCTION_PIPE1-9).
-* Arguments    : uint16_t status       ; BEMPSTS Register Value
-*              : uint16_t int_enb      ; BEMPENB Register Value
-* Return Value : none
-*******************************************************************************/
-void usb0_function_bemp_int (uint16_t status, uint16_t int_enb)
-{
-    uint16_t pid;
-    uint16_t pipe;
-    uint16_t bitcheck;
-    uint16_t inbuf;
-
-    bitcheck = (uint16_t)(status & int_enb);
-
-    USB200.BEMPSTS = (uint16_t)~status;
-
-    for (pipe = USB_FUNCTION_PIPE1; pipe <= USB_FUNCTION_MAX_PIPE_NO; pipe++)
-    {
-        if ((bitcheck&g_usb0_function_bit_set[pipe]) == g_usb0_function_bit_set[pipe])
-        {
-            pid = usb0_function_get_pid(pipe);
-
-            if ((pid == DEVDRV_USBF_PID_STALL) || (pid == DEVDRV_USBF_PID_STALL2))
-            {
-                g_usb0_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_STALL;
-            }
-            else
-            {
-                inbuf = usb0_function_get_inbuf(pipe);
-
-                if (inbuf == 0)
-                {
-                    usb0_function_disable_bemp_int(pipe);
-                    usb0_function_set_pid_nak(pipe);
-                    g_usb0_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_DONE;
-                }
-            }
-        }
-    }
-}
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/src/common/usb0_function_lib.c	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2026 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb0_function_lib.c
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Device(s)    : RZ/A1H
-* Tool-Chain   :
-* OS           : None
-* H/W Platform :
-* Description  : RZ/A1H R7S72100 USB Sample Program
-* Operation    :
-* Limitations  :
-*******************************************************************************/
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include "usb0_function.h"
-
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Imported global variables and functions (from other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Private global variables and functions
-*******************************************************************************/
-
-
-/*******************************************************************************
-* Function Name: usb0_function_enable_brdy_int
-* Description  : Enables BRDY interrupt in the pipe spceified by the argument.
-*              : Disables BEMP/NRDY/BRDY interrupts in all pipes before enabling
-*              : BRDY. Enables BRDY interrupt in the pipe specified by the argument
-*              : in the disabled status. After enabling BRDY, recover all
-*              : BEMP/NRDY/BRDY disabled/enabled status.
-* Arguments    : uint16_t pipe           ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb0_function_enable_brdy_int (uint16_t pipe)
-{
-    /* enable brdy interrupt */
-    USB200.BRDYENB |= (uint16_t)g_usb0_function_bit_set[pipe];
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_disable_brdy_int
-* Description  : Disables BRDY interrupt in the pipe spceified by the argument.
-*              : Disables BEMP/NRDY/BRDY interrupts in all pipes before disabling
-*              : BRDY. Enables BRDY interrupt in the pipe specified by the argument
-*              : in the disabled status. After disabling BRDY, recover all
-*              : BEMP/NRDY/BRDY disabled/enabled status.
-* Arguments    : uint16_t pipe        ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb0_function_disable_brdy_int (uint16_t pipe)
-{
-    /* disable brdy interrupt */
-    USB200.BRDYENB &= (uint16_t)~(g_usb0_function_bit_set[pipe]);
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_clear_brdy_sts
-* Description  : Clear BRDY interrupt status in the pipe spceified by the argument.
-* Arguments    : uint16_t pipe        ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb0_function_clear_brdy_sts (uint16_t pipe)
-{
-    /* clear brdy status */
-    USB200.BRDYSTS = (uint16_t)~(g_usb0_function_bit_set[pipe]);
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_enable_bemp_int
-* Description  : Enables BEMP interrupt in the pipe spceified by the argument.
-*              : Disables BEMP/NRDY/BRDY interrupts in all pipes before enabling
-*              : BEMP. Enables BEMP interrupt in the pipe specified by the argument
-*              : in the disabled status. After enabling BEMP, recover all
-*              : BEMP/NRDY/BRDY disabled/enabled status.
-* Arguments    : uint16_t pipe           ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb0_function_enable_bemp_int (uint16_t pipe)
-{
-    /* enable bemp interrupt */
-    USB200.BEMPENB |= (uint16_t)g_usb0_function_bit_set[pipe];
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_disable_bemp_int
-* Description  : Disables BEMP interrupt in the pipe spceified by the argument.
-*              : Disables BEMP/NRDY/BRDY interrupts in all pipes before disabling
-*              : BEMP. Enables BEMP interrupt in the pipe specified by the argument
-*              : in the disabled status. After enabling BEMP, recover all
-*              : BEMP/NRDY/BRDY disabled/enabled status.
-* Arguments    : uint16_t pipe           ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb0_function_disable_bemp_int (uint16_t pipe)
-{
-    /* disable bemp interrupt */
-    USB200.BEMPENB &= (uint16_t)~(g_usb0_function_bit_set[pipe]);
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_clear_bemp_sts
-* Description  : Clear BEMP interrupt status in the pipe spceified by the argument.
-* Arguments    : uint16_t pipe        ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb0_function_clear_bemp_sts (uint16_t pipe)
-{
-    /* clear bemp status */
-    USB200.BEMPSTS = (uint16_t)~(g_usb0_function_bit_set[pipe]);
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_enable_nrdy_int
-* Description  : Enables NRDY interrupt in the pipe spceified by the argument.
-*              : Disables BEMP/NRDY/BRDY interrupts in all pipes before enabling
-*              : NRDY. Enables NRDY interrupt in the pipe specified by the argument
-*              : in the disabled status. After enabling NRDY, recover all
-*              : BEMP/NRDY/BRDY disabled/enabled status.
-* Arguments    : uint16_t pipe             ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb0_function_enable_nrdy_int (uint16_t pipe)
-{
-    /* enable nrdy interrupt */
-    USB200.NRDYENB |= (uint16_t)g_usb0_function_bit_set[pipe];
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_disable_nrdy_int
-* Description  : Disables NRDY interrupt in the pipe spceified by the argument.
-*              : Disables BEMP/NRDY/BRDY interrupts in all pipes before disabling
-*              : NRDY. Disables NRDY interrupt in the pipe specified by the argument
-*              : in the disabled status. After disabling NRDY, recover all
-*              : BEMP/NRDY/BRDY disabled/enabled status.
-* Arguments    : uint16_t pipe            ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb0_function_disable_nrdy_int (uint16_t pipe)
-{
-    /* disable nrdy interrupt */
-    USB200.NRDYENB &= (uint16_t)~(g_usb0_function_bit_set[pipe]);
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_clear_nrdy_sts
-* Description  : Clear NRDY interrupt status in the pipe spceified by the argument.
-* Arguments    : uint16_t pipe        ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb0_function_clear_nrdy_sts (uint16_t pipe)
-{
-    /* clear nrdy status */
-    USB200.NRDYSTS = (uint16_t)~(g_usb0_function_bit_set[pipe]);
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_is_hispeed
-* Description  : Returns the result of USB reset hand shake (RHST) as
-*              : return value.
-* Arguments    : none
-* Return Value : USB_FUNCTION_HIGH_SPEED    ; Hi-Speed
-*              : USB_FUNCTION_FULL_SPEED    ; Full-Speed
-*              : LOW_SPEED                  ; Low-Speed
-*              : USB_FUNCTION_NON_SPEED     ; error
-*******************************************************************************/
-uint16_t usb0_function_is_hispeed (void)
-{
-    uint16_t rhst;
-    uint16_t speed;
-
-    rhst = RZA_IO_RegRead_16(&USB200.DVSTCTR0, USB_DVSTCTR0_RHST_SHIFT, USB_DVSTCTR0_RHST);
-
-    if (rhst == USB_FUNCTION_HSMODE)
-    {
-        speed = USB_FUNCTION_HIGH_SPEED;
-    }
-    else if (rhst == USB_FUNCTION_FSMODE)
-    {
-        speed = USB_FUNCTION_FULL_SPEED;
-    }
-    else if (rhst == USB_FUNCTION_LSMODE)
-    {
-        speed = USB_FUNCTION_LOW_SPEED;
-    }
-    else
-    {
-        speed = USB_FUNCTION_NON_SPEED;
-    }
-
-    return speed;
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_is_hispeed_enable
-* Description  : Returns the USB High-Speed connection enabled status as
-*              : return value.
-* Arguments    : none
-* Return Value : DEVDRV_USBF_YES  : Hi-Speed Enable
-*              : DEVDRV_USBF_NO   : Hi-Speed Disable
-*******************************************************************************/
-uint16_t usb0_function_is_hispeed_enable (void)
-{
-    uint16_t ret;
-
-    ret = DEVDRV_USBF_NO;
-
-    if (RZA_IO_RegRead_16(&USB200.SYSCFG0, USB_SYSCFG_HSE_SHIFT, USB_SYSCFG_HSE) == 1)
-    {
-        ret = DEVDRV_USBF_YES;
-    }
-
-    return ret;
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_set_pid_buf
-* Description  : Enables communicaqtion in the pipe specified by the argument
-*              : (BUF).
-* Arguments    : uint16_t pipe             ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb0_function_set_pid_buf (uint16_t pipe)
-{
-    uint16_t pid;
-
-    pid = usb0_function_get_pid(pipe);
-
-    if (pid == DEVDRV_USBF_PID_STALL2)
-    {
-        usb0_function_set_pid_nak(pipe);
-    }
-
-    switch (pipe)
-    {
-        case USB_FUNCTION_PIPE0:
-            RZA_IO_RegWrite_16(&USB200.DCPCTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_DCPCTR_PID_SHIFT,
-                                USB_DCPCTR_PID);
-        break;
-
-        case USB_FUNCTION_PIPE1:
-            RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_1_5_PID_SHIFT,
-                                USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE2:
-            RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_1_5_PID_SHIFT,
-                                USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE3:
-            RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_1_5_PID_SHIFT,
-                                USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE4:
-            RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_1_5_PID_SHIFT,
-                                USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE5:
-            RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_1_5_PID_SHIFT,
-                                USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE6:
-            RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_6_8_PID_SHIFT,
-                                USB_PIPEnCTR_6_8_PID);
-        break;
-
-        case USB_FUNCTION_PIPE7:
-            RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_6_8_PID_SHIFT,
-                                USB_PIPEnCTR_6_8_PID);
-        break;
-
-        case USB_FUNCTION_PIPE8:
-            RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_6_8_PID_SHIFT,
-                                USB_PIPEnCTR_6_8_PID);
-        break;
-
-        case USB_FUNCTION_PIPE9:
-            RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_9_PID_SHIFT,
-                                USB_PIPEnCTR_9_PID);
-        break;
-
-        case USB_FUNCTION_PIPEA:
-            RZA_IO_RegWrite_16(&USB200.PIPEACTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_A_F_PID_SHIFT,
-                                USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPEB:
-            RZA_IO_RegWrite_16(&USB200.PIPEBCTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_A_F_PID_SHIFT,
-                                USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPEC:
-            RZA_IO_RegWrite_16(&USB200.PIPECCTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_A_F_PID_SHIFT,
-                                USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPED:
-            RZA_IO_RegWrite_16(&USB200.PIPEDCTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_A_F_PID_SHIFT,
-                                USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPEE:
-            RZA_IO_RegWrite_16(&USB200.PIPEECTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_A_F_PID_SHIFT,
-                                USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPEF:
-            RZA_IO_RegWrite_16(&USB200.PIPEFCTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_A_F_PID_SHIFT,
-                                USB_PIPEnCTR_A_F_PID);
-        break;
-
-        default:
-        break;
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_set_pid_nak
-* Description  : Disables communication (NAK) in the pipe specified by the argument.
-*              : When the pipe status was enabling communication (BUF) before
-*              : executing before executing this function, waits in the software
-*              : until the pipe becomes ready after setting disabled.
-* Arguments    : uint16_t pipe            ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb0_function_set_pid_nak (uint16_t pipe)
-{
-    uint16_t pid;
-    uint16_t pbusy;
-    uint32_t loop;
-
-    pid = usb0_function_get_pid(pipe);
-
-    if (pid == DEVDRV_USBF_PID_STALL2)
-    {
-        usb0_function_set_pid_stall(pipe);
-    }
-
-    switch (pipe)
-    {
-        case USB_FUNCTION_PIPE0:
-            RZA_IO_RegWrite_16(&USB200.DCPCTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_DCPCTR_PID_SHIFT,
-                                USB_DCPCTR_PID);
-        break;
-
-        case USB_FUNCTION_PIPE1:
-            RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_1_5_PID_SHIFT,
-                                USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE2:
-            RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_1_5_PID_SHIFT,
-                                USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE3:
-            RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_1_5_PID_SHIFT,
-                                USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE4:
-            RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_1_5_PID_SHIFT,
-                                USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE5:
-            RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_1_5_PID_SHIFT,
-                                USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE6:
-            RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_6_8_PID_SHIFT,
-                                USB_PIPEnCTR_6_8_PID);
-        break;
-
-        case USB_FUNCTION_PIPE7:
-            RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_6_8_PID_SHIFT,
-                                USB_PIPEnCTR_6_8_PID);
-        break;
-
-        case USB_FUNCTION_PIPE8:
-            RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_6_8_PID_SHIFT,
-                                USB_PIPEnCTR_6_8_PID);
-        break;
-
-        case USB_FUNCTION_PIPE9:
-            RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_9_PID_SHIFT,
-                                USB_PIPEnCTR_9_PID);
-        break;
-
-        case USB_FUNCTION_PIPEA:
-            RZA_IO_RegWrite_16(&USB200.PIPEACTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_A_F_PID_SHIFT,
-                                USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPEB:
-            RZA_IO_RegWrite_16(&USB200.PIPEBCTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_A_F_PID_SHIFT,
-                                USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPEC:
-            RZA_IO_RegWrite_16(&USB200.PIPECCTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_A_F_PID_SHIFT,
-                                USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPED:
-            RZA_IO_RegWrite_16(&USB200.PIPEDCTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_A_F_PID_SHIFT,
-                                USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPEE:
-            RZA_IO_RegWrite_16(&USB200.PIPEECTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_A_F_PID_SHIFT,
-                                USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPEF:
-            RZA_IO_RegWrite_16(&USB200.PIPEFCTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_A_F_PID_SHIFT,
-                                USB_PIPEnCTR_A_F_PID);
-        break;
-
-        default:
-        break;
-    }
-
-    if (pid == DEVDRV_USBF_PID_BUF)
-    {
-        for (loop = 0; loop < 200; loop++)
-        {
-            switch (pipe)
-            {
-                case USB_FUNCTION_PIPE0:
-                    pbusy = RZA_IO_RegRead_16(&USB200.DCPCTR,
-                                                USB_DCPCTR_PBUSY_SHIFT,
-                                                USB_DCPCTR_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPE1:
-                    pbusy = RZA_IO_RegRead_16(&USB200.PIPE1CTR,
-                                                USB_PIPEnCTR_1_5_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_1_5_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPE2:
-                    pbusy = RZA_IO_RegRead_16(&USB200.PIPE2CTR,
-                                                USB_PIPEnCTR_1_5_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_1_5_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPE3:
-                    pbusy = RZA_IO_RegRead_16(&USB200.PIPE3CTR,
-                                                USB_PIPEnCTR_1_5_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_1_5_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPE4:
-                    pbusy = RZA_IO_RegRead_16(&USB200.PIPE4CTR,
-                                                USB_PIPEnCTR_1_5_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_1_5_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPE5:
-                    pbusy = RZA_IO_RegRead_16(&USB200.PIPE5CTR,
-                                                USB_PIPEnCTR_1_5_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_1_5_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPE6:
-                    pbusy = RZA_IO_RegRead_16(&USB200.PIPE6CTR,
-                                                USB_PIPEnCTR_6_8_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_6_8_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPE7:
-                    pbusy = RZA_IO_RegRead_16(&USB200.PIPE7CTR,
-                                                USB_PIPEnCTR_6_8_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_6_8_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPE8:
-                    pbusy = RZA_IO_RegRead_16(&USB200.PIPE8CTR,
-                                                USB_PIPEnCTR_6_8_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_6_8_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPE9:
-                    pbusy = RZA_IO_RegRead_16(&USB200.PIPE9CTR,
-                                                USB_PIPEnCTR_9_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_9_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPEA:
-                    pbusy = RZA_IO_RegRead_16(&USB200.PIPEACTR,
-                                                USB_PIPEnCTR_A_F_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_A_F_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPEB:
-                    pbusy = RZA_IO_RegRead_16(&USB200.PIPEBCTR,
-                                                USB_PIPEnCTR_A_F_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_A_F_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPEC:
-                    pbusy = RZA_IO_RegRead_16(&USB200.PIPECCTR,
-                                                USB_PIPEnCTR_A_F_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_A_F_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPED:
-                    pbusy = RZA_IO_RegRead_16(&USB200.PIPEDCTR,
-                                                USB_PIPEnCTR_A_F_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_A_F_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPEE:
-                    pbusy = RZA_IO_RegRead_16(&USB200.PIPEECTR,
-                                                USB_PIPEnCTR_A_F_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_A_F_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPEF:
-                    pbusy = RZA_IO_RegRead_16(&USB200.PIPEFCTR,
-                                                USB_PIPEnCTR_A_F_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_A_F_PBUSY);
-                break;
-
-                default:
-                    pbusy   = 1;
-                break;
-            }
-
-            if (pbusy == 0)
-            {
-                break;
-            }
-            Userdef_USB_usb0_function_delay_500ns();
-        }
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_set_pid_stall
-* Description  : Disables communication (STALL) in the pipe specified by the
-*              : argument.
-* Arguments    : uint16_t pipe            ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb0_function_set_pid_stall (uint16_t pipe)
-{
-    uint16_t pid;
-
-    pid = usb0_function_get_pid(pipe);
-    if (pid == DEVDRV_USBF_PID_BUF)
-    {
-        switch (pipe)
-        {
-            case USB_FUNCTION_PIPE0:
-                RZA_IO_RegWrite_16(&USB200.DCPCTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_DCPCTR_PID_SHIFT,
-                                    USB_DCPCTR_PID);
-            break;
-
-            case USB_FUNCTION_PIPE1:
-                RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-            break;
-
-            case USB_FUNCTION_PIPE2:
-                RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-            break;
-
-            case USB_FUNCTION_PIPE3:
-                RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-            break;
-
-            case USB_FUNCTION_PIPE4:
-                RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-            break;
-
-            case USB_FUNCTION_PIPE5:
-                RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-            break;
-
-            case USB_FUNCTION_PIPE6:
-                RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_6_8_PID_SHIFT,
-                                    USB_PIPEnCTR_6_8_PID);
-            break;
-
-            case USB_FUNCTION_PIPE7:
-                RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_6_8_PID_SHIFT,
-                                    USB_PIPEnCTR_6_8_PID);
-            break;
-
-            case USB_FUNCTION_PIPE8:
-                RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_6_8_PID_SHIFT,
-                                    USB_PIPEnCTR_6_8_PID);
-            break;
-
-            case USB_FUNCTION_PIPE9:
-                RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_9_PID_SHIFT,
-                                    USB_PIPEnCTR_9_PID);
-            break;
-
-            case USB_FUNCTION_PIPEA:
-                RZA_IO_RegWrite_16(&USB200.PIPEACTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-            break;
-
-            case USB_FUNCTION_PIPEB:
-                RZA_IO_RegWrite_16(&USB200.PIPEBCTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-            break;
-
-            case USB_FUNCTION_PIPEC:
-                RZA_IO_RegWrite_16(&USB200.PIPECCTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-            break;
-
-            case USB_FUNCTION_PIPED:
-                RZA_IO_RegWrite_16(&USB200.PIPEDCTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-            break;
-
-            case USB_FUNCTION_PIPEE:
-                RZA_IO_RegWrite_16(&USB200.PIPEECTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-            break;
-
-            case USB_FUNCTION_PIPEF:
-                RZA_IO_RegWrite_16(&USB200.PIPEFCTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-            break;
-
-            default:
-            break;
-        }
-    }
-    else
-    {
-        switch (pipe)
-        {
-            case USB_FUNCTION_PIPE0:
-                RZA_IO_RegWrite_16(&USB200.DCPCTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_DCPCTR_PID_SHIFT,
-                                    USB_DCPCTR_PID);
-            break;
-
-            case USB_FUNCTION_PIPE1:
-                RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-            break;
-
-            case USB_FUNCTION_PIPE2:
-                RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-            break;
-
-            case USB_FUNCTION_PIPE3:
-                RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-            break;
-
-            case USB_FUNCTION_PIPE4:
-                RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-            break;
-
-            case USB_FUNCTION_PIPE5:
-                RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-            break;
-
-            case USB_FUNCTION_PIPE6:
-                RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_6_8_PID_SHIFT,
-                                    USB_PIPEnCTR_6_8_PID);
-            break;
-
-            case USB_FUNCTION_PIPE7:
-                RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_6_8_PID_SHIFT,
-                                    USB_PIPEnCTR_6_8_PID);
-            break;
-
-            case USB_FUNCTION_PIPE8:
-                RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_6_8_PID_SHIFT,
-                                    USB_PIPEnCTR_6_8_PID);
-            break;
-
-            case USB_FUNCTION_PIPE9:
-                RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_9_PID_SHIFT,
-                                    USB_PIPEnCTR_9_PID);
-            break;
-
-            case USB_FUNCTION_PIPEA:
-                RZA_IO_RegWrite_16(&USB200.PIPEACTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-            break;
-
-            case USB_FUNCTION_PIPEB:
-                RZA_IO_RegWrite_16(&USB200.PIPEBCTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-            break;
-
-            case USB_FUNCTION_PIPEC:
-                RZA_IO_RegWrite_16(&USB200.PIPECCTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-            break;
-
-            case USB_FUNCTION_PIPED:
-                RZA_IO_RegWrite_16(&USB200.PIPEDCTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-            break;
-
-            case USB_FUNCTION_PIPEE:
-                RZA_IO_RegWrite_16(&USB200.PIPEECTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-            break;
-
-            case USB_FUNCTION_PIPEF:
-                RZA_IO_RegWrite_16(&USB200.PIPEFCTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-            break;
-
-            default:
-            break;
-        }
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_clear_pid_stall
-* Description  : Disables communication (NAK) in the pipe specified by the argument.
-* Arguments    : uint16_t pipe            ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb0_function_clear_pid_stall (uint16_t pipe)
-{
-    usb0_function_set_pid_nak(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_get_pid
-* Description  : Returns the pipe state specified by the argument.
-* Arguments    : uint16_t pipe          ; Pipe Number
-* Return Value : PID
-*******************************************************************************/
-uint16_t usb0_function_get_pid (uint16_t pipe)
-{
-    uint16_t pid;
-
-    switch (pipe)
-    {
-        case USB_FUNCTION_PIPE0:
-            pid = RZA_IO_RegRead_16(&USB200.DCPCTR,
-                                    USB_DCPCTR_PID_SHIFT,
-                                    USB_DCPCTR_PID);
-        break;
-
-        case USB_FUNCTION_PIPE1:
-            pid = RZA_IO_RegRead_16(&USB200.PIPE1CTR,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE2:
-            pid = RZA_IO_RegRead_16(&USB200.PIPE2CTR,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE3:
-            pid = RZA_IO_RegRead_16(&USB200.PIPE3CTR,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE4:
-            pid = RZA_IO_RegRead_16(&USB200.PIPE4CTR,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE5:
-            pid = RZA_IO_RegRead_16(&USB200.PIPE5CTR,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE6:
-            pid = RZA_IO_RegRead_16(&USB200.PIPE6CTR,
-                                    USB_PIPEnCTR_6_8_PID_SHIFT,
-                                    USB_PIPEnCTR_6_8_PID);
-        break;
-
-        case USB_FUNCTION_PIPE7:
-            pid = RZA_IO_RegRead_16(&USB200.PIPE7CTR,
-                                    USB_PIPEnCTR_6_8_PID_SHIFT,
-                                    USB_PIPEnCTR_6_8_PID);
-        break;
-
-        case USB_FUNCTION_PIPE8:
-            pid = RZA_IO_RegRead_16(&USB200.PIPE8CTR,
-                                    USB_PIPEnCTR_6_8_PID_SHIFT,
-                                    USB_PIPEnCTR_6_8_PID);
-        break;
-
-        case USB_FUNCTION_PIPE9:
-            pid = RZA_IO_RegRead_16(&USB200.PIPE9CTR,
-                                    USB_PIPEnCTR_9_PID_SHIFT,
-                                    USB_PIPEnCTR_9_PID);
-        break;
-
-        case USB_FUNCTION_PIPEA:
-            pid = RZA_IO_RegRead_16(&USB200.PIPEACTR,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPEB:
-            pid = RZA_IO_RegRead_16(&USB200.PIPEBCTR,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPEC:
-            pid = RZA_IO_RegRead_16(&USB200.PIPECCTR,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPED:
-            pid = RZA_IO_RegRead_16(&USB200.PIPEDCTR,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPEE:
-            pid = RZA_IO_RegRead_16(&USB200.PIPEECTR,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPEF:
-            pid = RZA_IO_RegRead_16(&USB200.PIPEFCTR,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-        break;
-
-        default:
-            pid = 0;
-        break;
-    }
-
-    return pid;
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_set_csclr
-* Description  : CSPLIT status clear setting of sprit transaction in specified
-*              : pipe is performed.
-*              : When SQSET bit or SQCLR bit, and SQSET bit or SQCLR bit
-*              : in DCPCTR register are continuously changed (when the sequence
-*              : toggle bit of data PID is continuously changed over two or more pipes),
-*              : the access cycle with 120 ns and more than 5 cycle bus clock is necessary.
-*              : Do not set both SQCLR bit and SQSET bit to 1 at the same time.
-*              : In addition, both bits should be operated after PID is set to NAK.
-*              : However, when it is set to the isochronous transfer as the transfer type
-*              : (TYPE=11), writing in SQSET bit is disabled.
-* Arguments    : uint16_t pipe     ; Pipe number
-* Return Value : none
-*******************************************************************************/
-void usb0_function_set_csclr (uint16_t pipe)
-{
-    switch (pipe)
-    {
-        case USB_FUNCTION_PIPE0:
-            RZA_IO_RegWrite_16(&USB200.DCPCTR,
-                                1,
-                                USB_DCPCTR_CSCLR_SHIFT,
-                                USB_DCPCTR_CSCLR);
-        break;
-
-        case USB_FUNCTION_PIPE1:
-            RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_CSCLR_SHIFT,
-                                USB_PIPEnCTR_1_5_CSCLR);
-        break;
-
-        case USB_FUNCTION_PIPE2:
-            RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_CSCLR_SHIFT,
-                                USB_PIPEnCTR_1_5_CSCLR);
-        break;
-
-        case USB_FUNCTION_PIPE3:
-            RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_CSCLR_SHIFT,
-                                USB_PIPEnCTR_1_5_CSCLR);
-        break;
-
-        case USB_FUNCTION_PIPE4:
-            RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_CSCLR_SHIFT,
-                                USB_PIPEnCTR_1_5_CSCLR);
-        break;
-
-        case USB_FUNCTION_PIPE5:
-            RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_CSCLR_SHIFT,
-                                USB_PIPEnCTR_1_5_CSCLR);
-        break;
-
-        case USB_FUNCTION_PIPE6:
-            RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
-                                1,
-                                USB_PIPEnCTR_6_8_CSCLR_SHIFT,
-                                USB_PIPEnCTR_6_8_CSCLR);
-        break;
-
-        case USB_FUNCTION_PIPE7:
-            RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
-                                1,
-                                USB_PIPEnCTR_6_8_CSCLR_SHIFT,
-                                USB_PIPEnCTR_6_8_CSCLR);
-        break;
-
-        case USB_FUNCTION_PIPE8:
-            RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
-                                1,
-                                USB_PIPEnCTR_6_8_CSCLR_SHIFT,
-                                USB_PIPEnCTR_6_8_CSCLR);
-        break;
-
-        case USB_FUNCTION_PIPE9:
-            RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
-                                1,
-                                USB_PIPEnCTR_9_CSCLR_SHIFT,
-                                USB_PIPEnCTR_9_CSCLR);
-        break;
-
-        default:
-            /* PIPEA-F have not CSCLR */
-        break;
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_set_sqclr
-* Description  : Sets the sequence bit of the pipe specified by the argument to
-*              : DATA0.
-* Arguments    : uint16_t pipe              ; Pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb0_function_set_sqclr (uint16_t pipe)
-{
-    switch (pipe)
-    {
-        case USB_FUNCTION_PIPE0:
-            RZA_IO_RegWrite_16(&USB200.DCPCTR,
-                                1,
-                                USB_DCPCTR_SQCLR_SHIFT,
-                                USB_DCPCTR_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPE1:
-            RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_SQCLR_SHIFT,
-                                USB_PIPEnCTR_1_5_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPE2:
-            RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_SQCLR_SHIFT,
-                                USB_PIPEnCTR_1_5_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPE3:
-            RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_SQCLR_SHIFT,
-                                USB_PIPEnCTR_1_5_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPE4:
-            RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_SQCLR_SHIFT,
-                                USB_PIPEnCTR_1_5_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPE5:
-            RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_SQCLR_SHIFT,
-                                USB_PIPEnCTR_1_5_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPE6:
-            RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
-                                1,
-                                USB_PIPEnCTR_6_8_SQCLR_SHIFT,
-                                USB_PIPEnCTR_6_8_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPE7:
-            RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
-                                1,
-                                USB_PIPEnCTR_6_8_SQCLR_SHIFT,
-                                USB_PIPEnCTR_6_8_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPE8:
-            RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
-                                1,
-                                USB_PIPEnCTR_6_8_SQCLR_SHIFT,
-                                USB_PIPEnCTR_6_8_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPE9:
-            RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
-                                1,
-                                USB_PIPEnCTR_9_SQCLR_SHIFT,
-                                USB_PIPEnCTR_9_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPEA:
-            RZA_IO_RegWrite_16(&USB200.PIPEACTR,
-                                1,
-                                USB_PIPEnCTR_A_F_SQCLR_SHIFT,
-                                USB_PIPEnCTR_A_F_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPEB:
-            RZA_IO_RegWrite_16(&USB200.PIPEBCTR,
-                                1,
-                                USB_PIPEnCTR_A_F_SQCLR_SHIFT,
-                                USB_PIPEnCTR_A_F_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPEC:
-            RZA_IO_RegWrite_16(&USB200.PIPECCTR,
-                                1,
-                                USB_PIPEnCTR_A_F_SQCLR_SHIFT,
-                                USB_PIPEnCTR_A_F_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPED:
-            RZA_IO_RegWrite_16(&USB200.PIPEDCTR,
-                                1,
-                                USB_PIPEnCTR_A_F_SQCLR_SHIFT,
-                                USB_PIPEnCTR_A_F_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPEE:
-            RZA_IO_RegWrite_16(&USB200.PIPEECTR,
-                                1,
-                                USB_PIPEnCTR_A_F_SQCLR_SHIFT,
-                                USB_PIPEnCTR_A_F_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPEF:
-            RZA_IO_RegWrite_16(&USB200.PIPEFCTR,
-                                1,
-                                USB_PIPEnCTR_A_F_SQCLR_SHIFT,
-                                USB_PIPEnCTR_A_F_SQCLR);
-        break;
-
-        default:
-        break;
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_set_sqset
-* Description  : Sets the sequence bit of the pipe specified by the argument to
-*              : DATA1.
-* Arguments    : uint16_t pipe   ; Pipe number
-* Return Value : none
-*******************************************************************************/
-void usb0_function_set_sqset (uint16_t pipe)
-{
-    switch (pipe)
-    {
-        case USB_FUNCTION_PIPE0:
-            RZA_IO_RegWrite_16(&USB200.DCPCTR,
-                                1,
-                                USB_DCPCTR_SQSET_SHIFT,
-                                USB_DCPCTR_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPE1:
-            RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_SQSET_SHIFT,
-                                USB_PIPEnCTR_1_5_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPE2:
-            RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_SQSET_SHIFT,
-                                USB_PIPEnCTR_1_5_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPE3:
-            RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_SQSET_SHIFT,
-                                USB_PIPEnCTR_1_5_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPE4:
-            RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_SQSET_SHIFT,
-                                USB_PIPEnCTR_1_5_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPE5:
-            RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_SQSET_SHIFT,
-                                USB_PIPEnCTR_1_5_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPE6:
-            RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
-                                1,
-                                USB_PIPEnCTR_6_8_SQSET_SHIFT,
-                                USB_PIPEnCTR_6_8_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPE7:
-            RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
-                                1,
-                                USB_PIPEnCTR_6_8_SQSET_SHIFT,
-                                USB_PIPEnCTR_6_8_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPE8:
-            RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
-                                1,
-                                USB_PIPEnCTR_6_8_SQSET_SHIFT,
-                                USB_PIPEnCTR_6_8_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPE9:
-            RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
-                                1,
-                                USB_PIPEnCTR_9_SQSET_SHIFT,
-                                USB_PIPEnCTR_9_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPEA:
-            RZA_IO_RegWrite_16(&USB200.PIPEACTR,
-                                1,
-                                USB_PIPEnCTR_A_F_SQSET_SHIFT,
-                                USB_PIPEnCTR_A_F_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPEB:
-            RZA_IO_RegWrite_16(&USB200.PIPEBCTR,
-                                1,
-                                USB_PIPEnCTR_A_F_SQSET_SHIFT,
-                                USB_PIPEnCTR_A_F_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPEC:
-            RZA_IO_RegWrite_16(&USB200.PIPECCTR,
-                                1,
-                                USB_PIPEnCTR_A_F_SQSET_SHIFT,
-                                USB_PIPEnCTR_A_F_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPED:
-            RZA_IO_RegWrite_16(&USB200.PIPEDCTR,
-                                1,
-                                USB_PIPEnCTR_A_F_SQSET_SHIFT,
-                                USB_PIPEnCTR_A_F_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPEE:
-            RZA_IO_RegWrite_16(&USB200.PIPEECTR,
-                                1,
-                                USB_PIPEnCTR_A_F_SQSET_SHIFT,
-                                USB_PIPEnCTR_A_F_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPEF:
-            RZA_IO_RegWrite_16(&USB200.PIPEFCTR,
-                                1,
-                                USB_PIPEnCTR_A_F_SQSET_SHIFT,
-                                USB_PIPEnCTR_A_F_SQSET);
-        break;
-
-        default:
-        break;
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_get_sqmon
-* Description  : Toggle bit of specified pipe is obtained
-* Arguments    : uint16_t pipe   ; Pipe number
-* Return Value : sqmon
-*******************************************************************************/
-uint16_t usb0_function_get_sqmon (uint16_t pipe)
-{
-    uint16_t sqmon;
-
-    switch (pipe)
-    {
-        case USB_FUNCTION_PIPE0:
-            sqmon = RZA_IO_RegRead_16(&USB200.DCPCTR,
-                                        USB_DCPCTR_SQMON_SHIFT,
-                                        USB_DCPCTR_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPE1:
-            sqmon = RZA_IO_RegRead_16(&USB200.PIPE1CTR,
-                                        USB_PIPEnCTR_1_5_SQMON_SHIFT,
-                                        USB_PIPEnCTR_1_5_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPE2:
-            sqmon = RZA_IO_RegRead_16(&USB200.PIPE2CTR,
-                                        USB_PIPEnCTR_1_5_SQMON_SHIFT,
-                                        USB_PIPEnCTR_1_5_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPE3:
-            sqmon = RZA_IO_RegRead_16(&USB200.PIPE3CTR,
-                                        USB_PIPEnCTR_1_5_SQMON_SHIFT,
-                                        USB_PIPEnCTR_1_5_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPE4:
-            sqmon = RZA_IO_RegRead_16(&USB200.PIPE4CTR,
-                                        USB_PIPEnCTR_1_5_SQMON_SHIFT,
-                                        USB_PIPEnCTR_1_5_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPE5:
-            sqmon = RZA_IO_RegRead_16(&USB200.PIPE5CTR,
-                                        USB_PIPEnCTR_1_5_SQMON_SHIFT,
-                                        USB_PIPEnCTR_1_5_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPE6:
-            sqmon = RZA_IO_RegRead_16(&USB200.PIPE6CTR,
-                                        USB_PIPEnCTR_6_8_SQMON_SHIFT,
-                                        USB_PIPEnCTR_6_8_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPE7:
-            sqmon = RZA_IO_RegRead_16(&USB200.PIPE7CTR,
-                                        USB_PIPEnCTR_6_8_SQMON_SHIFT,
-                                        USB_PIPEnCTR_6_8_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPE8:
-            sqmon = RZA_IO_RegRead_16(&USB200.PIPE8CTR,
-                                        USB_PIPEnCTR_6_8_SQMON_SHIFT,
-                                        USB_PIPEnCTR_6_8_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPE9:
-            sqmon = RZA_IO_RegRead_16(&USB200.PIPE9CTR,
-                                        USB_PIPEnCTR_9_SQMON_SHIFT,
-                                        USB_PIPEnCTR_9_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPEA:
-            sqmon = RZA_IO_RegRead_16(&USB200.PIPEACTR,
-                                        USB_PIPEnCTR_A_F_SQMON_SHIFT,
-                                        USB_PIPEnCTR_A_F_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPEB:
-            sqmon = RZA_IO_RegRead_16(&USB200.PIPEBCTR,
-                                        USB_PIPEnCTR_A_F_SQMON_SHIFT,
-                                        USB_PIPEnCTR_A_F_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPEC:
-            sqmon = RZA_IO_RegRead_16(&USB200.PIPECCTR,
-                                        USB_PIPEnCTR_A_F_SQMON_SHIFT,
-                                        USB_PIPEnCTR_A_F_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPED:
-            sqmon = RZA_IO_RegRead_16(&USB200.PIPEDCTR,
-                                        USB_PIPEnCTR_A_F_SQMON_SHIFT,
-                                        USB_PIPEnCTR_A_F_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPEE:
-            sqmon = RZA_IO_RegRead_16(&USB200.PIPEECTR,
-                                        USB_PIPEnCTR_A_F_SQMON_SHIFT,
-                                        USB_PIPEnCTR_A_F_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPEF:
-            sqmon = RZA_IO_RegRead_16(&USB200.PIPEFCTR,
-                                        USB_PIPEnCTR_A_F_SQMON_SHIFT,
-                                        USB_PIPEnCTR_A_F_SQMON);
-        break;
-
-        default:
-            sqmon = 0;
-        break;
-    }
-
-    return sqmon;
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_aclrm
-* Description  : The buffer of specified pipe is initialized
-* Arguments    : uint16_t pipe    : Pipe
-* Return Value : none
-*******************************************************************************/
-void usb0_function_aclrm (uint16_t pipe)
-{
-    usb0_function_set_aclrm(pipe);
-    usb0_function_clr_aclrm(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_set_aclrm
-* Description  : The auto buffer clear mode of specified pipe is enabled
-* Arguments    : uint16_t pipe    : Pipe
-* Return Value : none
-*******************************************************************************/
-void usb0_function_set_aclrm (uint16_t pipe)
-{
-    switch (pipe)
-    {
-        case USB_FUNCTION_PIPE0:
-        break;
-
-        case USB_FUNCTION_PIPE1:
-            RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_ACLRM_SHIFT,
-                                USB_PIPEnCTR_1_5_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE2:
-            RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_ACLRM_SHIFT,
-                                USB_PIPEnCTR_1_5_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE3:
-            RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_ACLRM_SHIFT,
-                                USB_PIPEnCTR_1_5_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE4:
-            RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_ACLRM_SHIFT,
-                                USB_PIPEnCTR_1_5_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE5:
-            RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_ACLRM_SHIFT,
-                                USB_PIPEnCTR_1_5_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE6:
-            RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
-                                1,
-                                USB_PIPEnCTR_6_8_ACLRM_SHIFT,
-                                USB_PIPEnCTR_6_8_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE7:
-            RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
-                                1,
-                                USB_PIPEnCTR_6_8_ACLRM_SHIFT,
-                                USB_PIPEnCTR_6_8_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE8:
-            RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
-                                1,
-                                USB_PIPEnCTR_6_8_ACLRM_SHIFT,
-                                USB_PIPEnCTR_6_8_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE9:
-            RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
-                                1,
-                                USB_PIPEnCTR_9_ACLRM_SHIFT,
-                                USB_PIPEnCTR_9_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPEA:
-            RZA_IO_RegWrite_16(&USB200.PIPEACTR,
-                                1,
-                                USB_PIPEnCTR_A_F_ACLRM_SHIFT,
-                                USB_PIPEnCTR_A_F_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPEB:
-            RZA_IO_RegWrite_16(&USB200.PIPEBCTR,
-                                1,
-                                USB_PIPEnCTR_A_F_ACLRM_SHIFT,
-                                USB_PIPEnCTR_A_F_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPEC:
-            RZA_IO_RegWrite_16(&USB200.PIPECCTR,
-                                1,
-                                USB_PIPEnCTR_A_F_ACLRM_SHIFT,
-                                USB_PIPEnCTR_A_F_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPED:
-            RZA_IO_RegWrite_16(&USB200.PIPEDCTR,
-                                1,
-                                USB_PIPEnCTR_A_F_ACLRM_SHIFT,
-                                USB_PIPEnCTR_A_F_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPEE:
-            RZA_IO_RegWrite_16(&USB200.PIPEECTR,
-                                1,
-                                USB_PIPEnCTR_A_F_ACLRM_SHIFT,
-                                USB_PIPEnCTR_A_F_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPEF:
-            RZA_IO_RegWrite_16(&USB200.PIPEFCTR,
-                                1,
-                                USB_PIPEnCTR_A_F_ACLRM_SHIFT,
-                                USB_PIPEnCTR_A_F_ACLRM);
-        break;
-
-        default:
-        break;
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_clr_aclrm
-* Description  : The auto buffer clear mode of specified pipe is enabled
-* Arguments    : uint16_t pipe    : Pipe
-* Return Value : none
-*******************************************************************************/
-void usb0_function_clr_aclrm (uint16_t pipe)
-{
-    switch (pipe)
-    {
-        case USB_FUNCTION_PIPE0:
-        break;
-
-        case USB_FUNCTION_PIPE1:
-            RZA_IO_RegWrite_16(&USB200.PIPE1CTR,
-                                0,
-                                USB_PIPEnCTR_1_5_ACLRM_SHIFT,
-                                USB_PIPEnCTR_1_5_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE2:
-            RZA_IO_RegWrite_16(&USB200.PIPE2CTR,
-                                0,
-                                USB_PIPEnCTR_1_5_ACLRM_SHIFT,
-                                USB_PIPEnCTR_1_5_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE3:
-            RZA_IO_RegWrite_16(&USB200.PIPE3CTR,
-                                0,
-                                USB_PIPEnCTR_1_5_ACLRM_SHIFT,
-                                USB_PIPEnCTR_1_5_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE4:
-            RZA_IO_RegWrite_16(&USB200.PIPE4CTR,
-                                0,
-                                USB_PIPEnCTR_1_5_ACLRM_SHIFT,
-                                USB_PIPEnCTR_1_5_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE5:
-            RZA_IO_RegWrite_16(&USB200.PIPE5CTR,
-                                0,
-                                USB_PIPEnCTR_1_5_ACLRM_SHIFT,
-                                USB_PIPEnCTR_1_5_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE6:
-            RZA_IO_RegWrite_16(&USB200.PIPE6CTR,
-                                0,
-                                USB_PIPEnCTR_6_8_ACLRM_SHIFT,
-                                USB_PIPEnCTR_6_8_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE7:
-            RZA_IO_RegWrite_16(&USB200.PIPE7CTR,
-                                0,
-                                USB_PIPEnCTR_6_8_ACLRM_SHIFT,
-                                USB_PIPEnCTR_6_8_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE8:
-            RZA_IO_RegWrite_16(&USB200.PIPE8CTR,
-                                0,
-                                USB_PIPEnCTR_6_8_ACLRM_SHIFT,
-                                USB_PIPEnCTR_6_8_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE9:
-            RZA_IO_RegWrite_16(&USB200.PIPE9CTR,
-                                0,
-                                USB_PIPEnCTR_9_ACLRM_SHIFT,
-                                USB_PIPEnCTR_9_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPEA:
-            RZA_IO_RegWrite_16(&USB200.PIPEACTR,
-                                0,
-                                USB_PIPEnCTR_A_F_ACLRM_SHIFT,
-                                USB_PIPEnCTR_A_F_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPEB:
-            RZA_IO_RegWrite_16(&USB200.PIPEBCTR,
-                                0,
-                                USB_PIPEnCTR_A_F_ACLRM_SHIFT,
-                                USB_PIPEnCTR_A_F_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPEC:
-            RZA_IO_RegWrite_16(&USB200.PIPECCTR,
-                                0,
-                                USB_PIPEnCTR_A_F_ACLRM_SHIFT,
-                                USB_PIPEnCTR_A_F_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPED:
-            RZA_IO_RegWrite_16(&USB200.PIPEDCTR,
-                                0,
-                                USB_PIPEnCTR_A_F_ACLRM_SHIFT,
-                                USB_PIPEnCTR_A_F_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPEE:
-            RZA_IO_RegWrite_16(&USB200.PIPEECTR,
-                                0,
-                                USB_PIPEnCTR_A_F_ACLRM_SHIFT,
-                                USB_PIPEnCTR_A_F_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPEF:
-            RZA_IO_RegWrite_16(&USB200.PIPEFCTR,
-                                0,
-                                USB_PIPEnCTR_A_F_ACLRM_SHIFT,
-                                USB_PIPEnCTR_A_F_ACLRM);
-        break;
-
-        default:
-        break;
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_get_inbuf
-* Description  : Returns INBUFM of the pipe specified by the argument.
-* Arguments    : uint16_t pipe             ; Pipe Number
-* Return Value : inbuf
-*******************************************************************************/
-uint16_t usb0_function_get_inbuf (uint16_t pipe)
-{
-    uint16_t inbuf;
-
-    switch (pipe)
-    {
-        case USB_FUNCTION_PIPE0:
-            inbuf = 0;
-        break;
-
-        case USB_FUNCTION_PIPE1:
-            inbuf = RZA_IO_RegRead_16(&USB200.PIPE1CTR,
-                                    USB_PIPEnCTR_1_5_INBUFM_SHIFT,
-                                    USB_PIPEnCTR_1_5_INBUFM);
-        break;
-
-        case USB_FUNCTION_PIPE2:
-            inbuf = RZA_IO_RegRead_16(&USB200.PIPE2CTR,
-                                    USB_PIPEnCTR_1_5_INBUFM_SHIFT,
-                                    USB_PIPEnCTR_1_5_INBUFM);
-        break;
-
-        case USB_FUNCTION_PIPE3:
-            inbuf = RZA_IO_RegRead_16(&USB200.PIPE3CTR,
-                                    USB_PIPEnCTR_1_5_INBUFM_SHIFT,
-                                    USB_PIPEnCTR_1_5_INBUFM);
-        break;
-
-        case USB_FUNCTION_PIPE4:
-            inbuf = RZA_IO_RegRead_16(&USB200.PIPE4CTR,
-                                    USB_PIPEnCTR_1_5_INBUFM_SHIFT,
-                                    USB_PIPEnCTR_1_5_INBUFM);
-        break;
-
-        case USB_FUNCTION_PIPE5:
-            inbuf = RZA_IO_RegRead_16(&USB200.PIPE5CTR,
-                                    USB_PIPEnCTR_1_5_INBUFM_SHIFT,
-                                    USB_PIPEnCTR_1_5_INBUFM);
-        break;
-
-        case USB_FUNCTION_PIPE6:
-            inbuf = 0;
-        break;
-
-        case USB_FUNCTION_PIPE7:
-            inbuf = 0;
-        break;
-
-        case USB_FUNCTION_PIPE8:
-            inbuf = 0;
-        break;
-
-        case USB_FUNCTION_PIPE9:
-            inbuf = RZA_IO_RegRead_16(&USB200.PIPE9CTR,
-                                    USB_PIPEnCTR_9_INBUFM_SHIFT,
-                                    USB_PIPEnCTR_9_INBUFM);
-        break;
-
-        case USB_FUNCTION_PIPEA:
-            inbuf = RZA_IO_RegRead_16(&USB200.PIPEACTR,
-                                    USB_PIPEnCTR_A_F_INBUFM_SHIFT,
-                                    USB_PIPEnCTR_A_F_INBUFM);
-        break;
-
-        case USB_FUNCTION_PIPEB:
-            inbuf = RZA_IO_RegRead_16(&USB200.PIPEBCTR,
-                                    USB_PIPEnCTR_A_F_INBUFM_SHIFT,
-                                    USB_PIPEnCTR_A_F_INBUFM);
-        break;
-
-        case USB_FUNCTION_PIPEC:
-            inbuf = RZA_IO_RegRead_16(&USB200.PIPECCTR,
-                                    USB_PIPEnCTR_A_F_INBUFM_SHIFT,
-                                    USB_PIPEnCTR_A_F_INBUFM);
-        break;
-
-        case USB_FUNCTION_PIPED:
-            inbuf = RZA_IO_RegRead_16(&USB200.PIPEDCTR,
-                                    USB_PIPEnCTR_A_F_INBUFM_SHIFT,
-                                    USB_PIPEnCTR_A_F_INBUFM);
-        break;
-
-        case USB_FUNCTION_PIPEE:
-            inbuf = RZA_IO_RegRead_16(&USB200.PIPEECTR,
-                                    USB_PIPEnCTR_A_F_INBUFM_SHIFT,
-                                    USB_PIPEnCTR_A_F_INBUFM);
-        break;
-
-        case USB_FUNCTION_PIPEF:
-            inbuf = RZA_IO_RegRead_16(&USB200.PIPEFCTR,
-                                    USB_PIPEnCTR_A_F_INBUFM_SHIFT,
-                                    USB_PIPEnCTR_A_F_INBUFM);
-        break;
-
-        default:
-            inbuf = 0;
-        break;
-    }
-
-    return inbuf;
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_setting_interrupt
-* Description  : Sets the USB module interrupt level.
-* Arguments    : uint8_t level ;interrupt level
-* Return Value : none
-*******************************************************************************/
-#if 0
-void usb0_function_setting_interrupt (uint8_t level)
-{
-    uint16_t d0fifo_dmaintid;
-    uint16_t d1fifo_dmaintid;
-
-    R_INTC_RegistIntFunc(INTC_ID_USBI0, usb0_function_interrupt);
-    R_INTC_SetPriority(INTC_ID_USBI0, level);
-    R_INTC_Enable(INTC_ID_USBI0);
-
-    d0fifo_dmaintid = Userdef_USB_usb0_function_d0fifo_dmaintid();
-
-    if (d0fifo_dmaintid != 0xFFFF)
-    {
-        R_INTC_RegistIntFunc(d0fifo_dmaintid, usb0_function_dma_interrupt_d0fifo);
-        R_INTC_SetPriority(d0fifo_dmaintid, level);
-        R_INTC_Enable(d0fifo_dmaintid);
-    }
-
-    d1fifo_dmaintid = Userdef_USB_usb0_function_d1fifo_dmaintid();
-
-    if (d1fifo_dmaintid != 0xFFFF)
-    {
-        R_INTC_RegistIntFunc(d1fifo_dmaintid, usb0_function_dma_interrupt_d1fifo);
-        R_INTC_SetPriority(d1fifo_dmaintid, level);
-        R_INTC_Enable(d1fifo_dmaintid);
-    }
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb0_function_reset_module
-* Description  : Initializes the USB module.
-*              : Enables providing clock to the USB module.
-*              : Sets USB bus wait register.
-* Arguments    : uint16_t clockmode ; 48MHz ; USBFCLOCK_X1_48MHZ
-*              :                    ; 12MHz ; USBFCLOCK_EXTAL_12MHZ
-* Return Value : none
-*******************************************************************************/
-void usb0_function_reset_module (uint16_t clockmode)
-{
-    /* UPLLE bit is only USB0 */
-    if (RZA_IO_RegRead_16(&USB200.SYSCFG0,
-                                USB_SYSCFG_UPLLE_SHIFT,
-                                USB_SYSCFG_UPLLE) == 1)
-    {
-        if ((USB200.SYSCFG0 & USB_FUNCTION_BITUCKSEL) != clockmode)
-        {
-            RZA_IO_RegWrite_16(&USB200.SUSPMODE,
-                                0,
-                                USB_SUSPMODE_SUSPM_SHIFT,
-                                USB_SUSPMODE_SUSPM);
-            USB200.SYSCFG0 = 0;
-            USB200.SYSCFG0 = (USB_FUNCTION_BITUPLLE | clockmode);
-            Userdef_USB_usb0_function_delay_xms(1);
-            RZA_IO_RegWrite_16(&USB200.SUSPMODE,
-                                1,
-                                USB_SUSPMODE_SUSPM_SHIFT,
-                                USB_SUSPMODE_SUSPM);
-        }
-        else
-        {
-            RZA_IO_RegWrite_16(&USB200.SUSPMODE,
-                                0,
-                                USB_SUSPMODE_SUSPM_SHIFT,
-                                USB_SUSPMODE_SUSPM);
-            Userdef_USB_usb0_function_delay_xms(1);
-            RZA_IO_RegWrite_16(&USB200.SUSPMODE,
-                                1,
-                                USB_SUSPMODE_SUSPM_SHIFT,
-                                USB_SUSPMODE_SUSPM);
-        }
-    }
-    else
-    {
-        RZA_IO_RegWrite_16(&USB200.SUSPMODE,
-                            0,
-                            USB_SUSPMODE_SUSPM_SHIFT,
-                            USB_SUSPMODE_SUSPM);
-        USB200.SYSCFG0 = 0;
-        USB200.SYSCFG0 = (USB_FUNCTION_BITUPLLE | clockmode);
-        Userdef_USB_usb0_function_delay_xms(1);
-        RZA_IO_RegWrite_16(&USB200.SUSPMODE,
-                            1,
-                            USB_SUSPMODE_SUSPM_SHIFT,
-                            USB_SUSPMODE_SUSPM);
-    }
-
-    USB200.BUSWAIT = (uint16_t)(USB_FUNCTION_BUSWAIT_05 & USB_FUNCTION_BITBWAIT);
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_get_buf_size
-* Description  : Obtains pipe buffer size specified by the argument and
-*              : maximum packet size of the USB device in use.
-*              : When USB_FUNCTION_PIPE0 is specified by the argument, obtains the maximum
-*              : packet size of the USB device using the corresponding pipe.
-*              : For the case that USB_FUNCTION_PIPE0 is not assigned by the argument, when the
-*              : corresponding pipe is in continuous transfer mode,
-*              : obtains the buffer size allocated in the corresponcing pipe,
-*              : when incontinuous transfer, obtains maximum packet size.
-* Arguments    : uint16_t pipe      ; Pipe Number
-* Return Value : Maximum packet size or buffer size
-*******************************************************************************/
-uint16_t usb0_function_get_buf_size (uint16_t pipe)
-{
-    uint16_t size;
-    uint16_t bufsize;
-
-    if (pipe == USB_FUNCTION_PIPE0)
-    {
-        size = RZA_IO_RegRead_16(&USB200.DCPMAXP,
-                                USB_DCPMAXP_MXPS_SHIFT,
-                                USB_DCPMAXP_MXPS);
-    }
-    else
-    {
-        if (RZA_IO_RegRead_16(&g_usb0_function_pipecfg[pipe], USB_PIPECFG_CNTMD_SHIFT, USB_PIPECFG_CNTMD) == 1)
-        {
-            bufsize = RZA_IO_RegRead_16(&g_usb0_function_pipebuf[pipe], USB_PIPEBUF_BUFSIZE_SHIFT, USB_PIPEBUF_BUFSIZE);
-            size = (uint16_t)((bufsize + 1) * USB_FUNCTION_PIPExBUF);
-        }
-        else
-        {
-            size = RZA_IO_RegRead_16(&g_usb0_function_pipemaxp[pipe], USB_PIPEMAXP_MXPS_SHIFT, USB_PIPEMAXP_MXPS);
-        }
-    }
-    return size;
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_get_mxps
-* Description  : Obtains maximum packet size of the USB device using the pipe
-*              : specified by the argument.
-* Arguments    : uint16_t pipe      ; Pipe Number
-* Return Value : Max Packet Size
-*******************************************************************************/
-uint16_t usb0_function_get_mxps (uint16_t pipe)
-{
-    uint16_t size;
-
-    if (pipe == USB_FUNCTION_PIPE0)
-    {
-        size = RZA_IO_RegRead_16(&USB200.DCPMAXP,
-                                USB_DCPMAXP_MXPS_SHIFT,
-                                USB_DCPMAXP_MXPS);
-    }
-    else
-    {
-        size = RZA_IO_RegRead_16(&g_usb0_function_pipemaxp[pipe], USB_PIPEMAXP_MXPS_SHIFT, USB_PIPEMAXP_MXPS);
-    }
-    return size;
-}
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/src/function/usb0_function_api.c	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,441 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb0_function_api.c
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Device(s)    : RZ/A1H
-* Tool-Chain   :
-* OS           : None
-* H/W Platform :
-* Description  : RZ/A1H R7S72100 USB Sample Program
-* Operation    :
-* Limitations  :
-*******************************************************************************/
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include "usb0_function.h"
-#include "dev_drv.h"
-
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Imported global variables and functions (from other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Private global variables and functions
-*******************************************************************************/
-
-
-/*******************************************************************************
-* Function Name: usb0_api_function_init
-* Description  : Initializes the USB module in the USB function mode.
-* Arguments    : uint8_t  int_level ; interruput level
-*              : uint16_t mode      : Speed modes
-*              :                    :  USB_FUCNTION_HIGH_SPEED: High-speed device
-*              :                    :  USB_FUCNTION_FULL_SPEED: Full-speed device
-*              : uint16_t clockmode ; 48MHz ; USBFCLOCK_X1_48MHZ
-*              :                    ; 12MHz ; USBFCLOCK_EXTAL_12MHZ
-* Return Value : none
-*******************************************************************************/
-#if 0
-void usb0_api_function_init (uint8_t int_level, uint16_t mode, uint16_t clockmode)
-{
-    volatile uint8_t dummy_buf;
-
-    CPG.STBCR7  &= 0xfd;                        /* The clock of USB0 modules is permitted */
-    dummy_buf   = CPG.STBCR7;                   /* (Dummy read) */
-
-    usb0_function_setting_interrupt(int_level);
-
-    usb0_function_reset_module(clockmode);      /* reset USB module with setting tranciever */
-                                                /* and HSE=1                                */
-
-    usb0_function_init_status();                /* clear variables                          */
-
-    usb0_function_InitModule(mode);             /* select USB Function and Interrupt Enable */
-                                                /* Detect USB Device to attach or detach    */
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb0_api_function_IsConfigured
-* Description  : Checks if the USB device is configured to return the result as
-*              : the return value.
-* Arguments    : none
-* Return Value : DEVDRV_USBF_YES  : Configured & Configured Suspend
-*              : DEVDRV_USBF_NO   : not Configured
-*******************************************************************************/
-uint16_t usb0_api_function_IsConfigured (void)
-{
-    uint16_t dvst;
-
-    dvst = usb0_function_GetDeviceState();
-
-    if ((dvst == USB_FUNCTION_DVST_CONFIGURED) ||
-        (dvst == USB_FUNCTION_DVST_CONFIGURED_SUSPEND))
-    {
-        return DEVDRV_USBF_YES;
-    }
-
-    return DEVDRV_USBF_NO;
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_GetDeviceState
-* Description  : Returns the state of USB device.
-* Arguments    : none
-* Return Value : Device States
-*******************************************************************************/
-uint16_t usb0_function_GetDeviceState (void)
-{
-    uint16_t dvsq;
-    uint16_t dvst;
-
-    dvsq = USB200.INTSTS0;
-    switch(dvsq & USB_FUNCTION_BITDVSQ)
-    {
-        case USB_FUNCTION_DS_POWR:                      /* Power state *//* power-on */
-            dvst = USB_FUNCTION_DVST_POWERED;
-        break;
-
-        case USB_FUNCTION_DS_DFLT:                      /* Default state *//* bus-reset */
-            dvst = USB_FUNCTION_DVST_DEFAULT;
-        break;
-
-        case USB_FUNCTION_DS_ADDS:                      /* Address state */
-            dvst = USB_FUNCTION_DVST_ADDRESS;
-        break;
-
-        case USB_FUNCTION_DS_CNFG:                      /* Configured state */
-            dvst = USB_FUNCTION_DVST_CONFIGURED;
-        break;
-
-        case USB_FUNCTION_DS_SPD_CNFG:                  /* Configured Suspend state */
-            dvst = USB_FUNCTION_DVST_CONFIGURED_SUSPEND;
-        break;
-
-        case USB_FUNCTION_DS_SPD_POWR:                  /* Power      Suspend state */
-        case USB_FUNCTION_DS_SPD_DFLT:                  /* Default    Suspend state */
-        case USB_FUNCTION_DS_SPD_ADDR:                  /* Address    Suspend state */
-            dvst = USB_FUNCTION_DVST_SUSPEND;
-        break;
-
-        default:                                        /* error */
-            dvst = USB_FUNCTION_DVST_SUSPEND;
-        break;
-    }
-
-    return dvst;
-}
-
-/*******************************************************************************
-* Function Name: usb0_api_function_start_receive_transfer
-* Description  : Starts USB data reception using the pipe specified in the argument.
-*              : The FIFO for using is set in the pipe definition table.
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint32_t size      ; Data Size
-*              : uint8_t *data      ; Data data Address
-* Return Value : none
-*******************************************************************************/
-void usb0_api_function_start_receive_transfer (uint16_t pipe, uint32_t size, uint8_t * data)
-{
-    usb0_function_start_receive_transfer(pipe, size, data);
-}
-
-/*******************************************************************************
-* Function Name: usb0_api_function_start_send_transfer
-* Description  : Starts the USB data communication using pipe specified by the argument.
-* Arguments    : uint16_t pipe     ; Pipe Number
-*              : uint32_t size     ; Data Size
-*              : uint8_t *data     ; Data data Address
-* Return Value : DEVDRV_USBF_WRITEEND           ; Write end
-*              : DEVDRV_USBF_WRITESHRT          ; short data
-*              : DEVDRV_USBF_WRITING            ; Continue of data write
-*              : DEVDRV_USBF_WRITEDMA           ; Write DMA
-*              : DEVDRV_USBF_FIFOERROR          ; FIFO status
-*******************************************************************************/
-uint16_t usb0_api_function_start_send_transfer (uint16_t pipe, uint32_t size, uint8_t * data)
-{
-    uint16_t status;
-
-    status = usb0_function_start_send_transfer(pipe, size, data);
-
-    return status;
-}
-
-/*******************************************************************************
-* Function Name: usb0_api_function_check_pipe_status
-* Description  : Starts USB data reception using the pipe specified in the argument.
-*              : The FIFO for using is set in the pipe definition table.
-* Arguments    : uint16_t  pipe     ; Pipe Number
-*              : uint32_t *size     ; Data Size
-* Return Value : Pipe Status
-*******************************************************************************/
-uint16_t usb0_api_function_check_pipe_status (uint16_t pipe, uint32_t * size)
-{
-    if (g_usb0_function_pipe_status[pipe] == DEVDRV_USBF_PIPE_DONE)
-    {
-        *size = g_usb0_function_PipeDataSize[pipe];
-        g_usb0_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_IDLE;
-
-        return DEVDRV_USBF_PIPE_DONE;
-    }
-    else if (g_usb0_function_pipe_status[pipe] == DEVDRV_USBF_PIPE_NORES)
-    {
-        *size = 0;
-        g_usb0_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_IDLE;
-
-        return DEVDRV_USBF_PIPE_NORES;
-    }
-    else if (g_usb0_function_pipe_status[pipe] == DEVDRV_USBF_PIPE_STALL)
-    {
-        *size = 0;
-        g_usb0_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_IDLE;
-
-        return DEVDRV_USBF_PIPE_STALL;
-    }
-    else if (g_usb0_function_pipe_status[pipe] == DEVDRV_USBF_FIFOERROR)
-    {
-        *size = 0;
-        g_usb0_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_IDLE;
-
-        return DEVDRV_USBF_FIFOERROR;
-    }
-    else
-    {
-        /* Do Nothing */
-    }
-
-    return g_usb0_function_pipe_status[pipe];
-}
-
-/*******************************************************************************
-* Function Name: usb0_api_function_clear_pipe_status
-* Description  : Starts USB data reception using the pipe specified in the argument.
-*              : The FIFO for using is set in the pipe definition table.
-* Arguments    : uint16_t  pipe     ; Pipe Number
-* Return Value : Pipe Status
-*******************************************************************************/
-void usb0_api_function_clear_pipe_status (uint16_t pipe)
-{
-    g_usb0_function_pipe_status[pipe]  = DEVDRV_USBF_PIPE_IDLE;
-    g_usb0_function_PipeDataSize[pipe] = 0;
-}
-
-/*******************************************************************************
-* Function Name: usb0_api_function_set_pid_buf
-* Description  : Enables communicaqtion in the pipe specified by the argument
-*              : (BUF).
-* Arguments    : uint16_t pipe             ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb0_api_function_set_pid_buf (uint16_t pipe)
-{
-    usb0_function_set_pid_buf(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb0_api_function_set_pid_nak
-* Description  : Disables communication (NAK) in the pipe specified by the argument.
-*              : When the pipe status was enabling communication (BUF) before
-*              : executing before executing this function, waits in the software
-*              : until the pipe becomes ready after setting disabled.
-* Arguments    : uint16_t pipe            ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb0_api_function_set_pid_nak (uint16_t pipe)
-{
-    usb0_function_set_pid_nak(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb0_api_function_set_pid_stall
-* Description  : Disables communication (STALL) in the pipe specified by the
-*              : argument.
-* Arguments    : uint16_t pipe            ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb0_api_function_set_pid_stall (uint16_t pipe)
-{
-    usb0_function_set_pid_stall(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb0_api_function_clear_pid_stall
-* Description  : Disables communication (NAK) in the pipe specified by the argument.
-* Arguments    : uint16_t pipe            ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb0_api_function_clear_pid_stall (uint16_t pipe)
-{
-    usb0_function_clear_pid_stall(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb0_api_function_get_pid
-* Description  : Returns the pipe state specified by the argument.
-* Arguments    : uint16_t pipe          ; Pipe Number
-* Return Value : PID
-*******************************************************************************/
-uint16_t usb0_api_function_get_pid (uint16_t pipe)
-{
-    uint16_t pid;
-
-    pid = usb0_function_get_pid(pipe);
-
-    return pid;
-}
-
-/*******************************************************************************
-* Function Name: usb0_api_function_check_stall
-* Description  :
-* Arguments    : uint16_t pipe          ; Pipe Number
-* Return Value : PID
-*******************************************************************************/
-int32_t usb0_api_function_check_stall (uint16_t pipe)
-{
-    uint16_t pid;
-
-    pid = usb0_function_get_pid(pipe);
-
-    if ((pid & DEVDRV_USBF_PID_STALL) == DEVDRV_USBF_PID_STALL)
-    {
-        return DEVDRV_USBF_STALL;
-    }
-
-    return DEVDRV_SUCCESS;
-}
-
-/*******************************************************************************
-* Function Name: usb0_api_function_set_sqclr
-* Description  : Sets the sequence bit of the pipe specified by the argument to
-*              : DATA0.
-* Arguments    : uint16_t pipe              ; Pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb0_api_function_set_sqclr (uint16_t pipe)
-{
-    usb0_function_set_sqclr(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb0_api_function_set_sqset
-* Description  : Sets the sequence bit of the pipe specified by the argument to
-*              : DATA1.
-* Arguments    : uint16_t pipe   ; Pipe number
-* Return Value : none
-*******************************************************************************/
-void usb0_api_function_set_sqset (uint16_t pipe)
-{
-    usb0_function_set_sqset(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb0_api_function_set_csclr
-* Description  : CSPLIT status clear setting of sprit transaction in specified
-*              : pipe is performed.
-*              : When SQSET bit or SQCLR bit, and SQSET bit or SQCLR bit
-*              : in DCPCTR register are continuously changed (when the sequence
-*              : toggle bit of data PID is continuously changed over two or more pipes),
-*              : the access cycle with 120 ns and more than 5 cycle bus clock is necessary.
-*              : Do not set both SQCLR bit and SQSET bit to 1 at the same time.
-*              : In addition, both bits should be operated after PID is set to NAK.
-*              : However, when it is set to the isochronous transfer as the transfer type
-*              : (TYPE=11), writing in SQSET bit is disabled.
-* Arguments    : uint16_t pipe     ; Pipe number
-* Return Value : none
-*******************************************************************************/
-void usb0_api_function_set_csclr (uint16_t pipe)
-{
-    usb0_function_set_csclr(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb0_api_function_set_curpipe
-* Description  : Allocates FIF0 specifed by the argument in the pipe assigned
-*              : by the argument.
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint16_t fifosel   ; Select FIFO
-*              : uint16_t isel      ; FIFO Access Direction
-*              : uint16_t mbw       ; FIFO Port Access Bit Width
-* Return Value : none
-*******************************************************************************/
-void usb0_api_function_set_curpipe (uint16_t pipe, uint16_t fifosel, uint16_t isel, uint16_t mbw)
-{
-    usb0_function_set_curpipe(pipe, fifosel, isel, mbw);
-}
-
-/*******************************************************************************
-* Function Name: usb0_api_function_clear_brdy_sts
-* Description  : Clear BRDY interrupt status in the pipe spceified by the argument.
-* Arguments    : uint16_t pipe        ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb0_api_function_clear_brdy_sts (uint16_t pipe)
-{
-    usb0_function_clear_brdy_sts(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb0_api_function_clear_bemp_sts
-* Description  : Clear BEMP interrupt status in the pipe spceified by the argument.
-* Arguments    : uint16_t pipe        ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb0_api_function_clear_bemp_sts (uint16_t pipe)
-{
-    usb0_function_clear_bemp_sts(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb0_api_function_clear_nrdy_sts
-* Description  : Clear NRDY interrupt status in the pipe spceified by the argument.
-* Arguments    : uint16_t pipe        ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb0_api_function_clear_nrdy_sts (uint16_t pipe)
-{
-    usb0_function_clear_nrdy_sts(pipe);
-}
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/src/function/usb0_function_controlrw.c	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb0_function_controlrw.c
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Device(s)    : RZ/A1H
-* Tool-Chain   :
-* OS           : None
-* H/W Platform :
-* Description  : RZ/A1H R7S72100 USB Sample Program
-* Operation    :
-* Limitations  :
-*******************************************************************************/
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include "usb0_function.h"
-
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Imported global variables and functions (from other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Private global variables and functions
-*******************************************************************************/
-
-
-/*******************************************************************************
-* Function Name: usb0_api_function_CtrlReadStart
-* Description  : Executes the USB control read transfer.
-*              : USB host controller <- USB device
-* Arguments    : uint16_t size     ; Data Size
-*              : uint8_t  *data    ; Data Address
-* Return Value : DEVDRV_USBF_WRITEEND          ; End of data write
-*              : DEVDRV_USBF_WRITESHRT         ; End of short data write
-*              : DEVDRV_USBF_WRITING           ; Continue of data write
-*              : DEVDRV_USBF_FIFOERROR         ; FIFO access error
-*******************************************************************************/
-uint16_t usb0_api_function_CtrlReadStart (uint32_t size, uint8_t * data)
-{
-    uint16_t status;
-    uint16_t mbw;
-
-    usb0_function_set_pid_nak(USB_FUNCTION_PIPE0);
-
-    g_usb0_function_data_count[USB_FUNCTION_PIPE0]   = size;
-    g_usb0_function_data_pointer[USB_FUNCTION_PIPE0] = data;
-
-    mbw = usb0_function_get_mbw(g_usb0_function_data_count[USB_FUNCTION_PIPE0],
-                                 (uint32_t)g_usb0_function_data_pointer[USB_FUNCTION_PIPE0]);
-    usb0_function_set_curpipe(USB_FUNCTION_PIPE0, USB_FUNCTION_CUSE, USB_FUNCTION_CFIFO_WRITE, mbw);
-    USB200.CFIFOCTR = USB_FUNCTION_BITBCLR;
-
-    status = usb0_function_write_buffer_c(USB_FUNCTION_PIPE0);
-
-    /* Peripheral Control sequence */
-    switch (status)
-    {
-        case DEVDRV_USBF_WRITESHRT:                                     /* End of data write */
-        case DEVDRV_USBF_WRITEEND:                                      /* End of data write (not null) */
-        case DEVDRV_USBF_WRITING:                                       /* Continue of data write */
-            usb0_function_enable_bemp_int(USB_FUNCTION_PIPE0);          /* Enable Empty Interrupt */
-            usb0_function_set_pid_buf(USB_FUNCTION_PIPE0);              /* Set BUF */
-        break;
-
-        case DEVDRV_USBF_FIFOERROR:                                     /* FIFO access error */
-        break;
-
-        default:
-        break;
-    }
-
-    return status;                                                      /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb0_api_function_CtrlWriteStart
-* Description  : Executes the USB control write transfer.
-*              : USB host controller -> USB device
-* Arguments    : uint16_t  size         ; Data Size
-*              : uint8_t  *data         ; Data Address
-* Return Value : none
-*******************************************************************************/
-void usb0_api_function_CtrlWriteStart (uint32_t size, uint8_t * data)
-{
-    uint16_t mbw;
-
-    usb0_function_set_pid_nak(USB_FUNCTION_PIPE0);
-
-    g_usb0_function_data_count[USB_FUNCTION_PIPE0]   = size;
-    g_usb0_function_data_pointer[USB_FUNCTION_PIPE0] = data;
-
-    mbw = usb0_function_get_mbw(g_usb0_function_data_count[USB_FUNCTION_PIPE0],
-                                (uint32_t)g_usb0_function_data_pointer[USB_FUNCTION_PIPE0]);
-    usb0_function_set_curpipe(USB_FUNCTION_PIPE0, USB_FUNCTION_CUSE, USB_FUNCTION_CFIFO_WRITE, mbw);
-    USB200.CFIFOCTR = USB_FUNCTION_BITBCLR;
-
-    usb0_function_enable_brdy_int(USB_FUNCTION_PIPE0);
-    usb0_function_set_pid_buf(USB_FUNCTION_PIPE0);
-}
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/src/function/usb0_function_global.c	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,144 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb0_function_global.c
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Device(s)    : RZ/A1H
-* Tool-Chain   :
-* OS           : None
-* H/W Platform :
-* Description  : RZ/A1H R7S72100 USB Sample Program
-* Operation    :
-* Limitations  :
-*******************************************************************************/
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include "usb0_function.h"
-
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Imported global variables and functions (from other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Private global variables and functions
-*******************************************************************************/
-const uint16_t g_usb0_function_bit_set[16] =
-{
-    0x0001, 0x0002, 0x0004, 0x0008,
-    0x0010, 0x0020, 0x0040, 0x0080,
-    0x0100, 0x0200, 0x0400, 0x0800,
-    0x1000, 0x2000, 0x4000, 0x8000
-};
-
-uint32_t g_usb0_function_data_count[USB_FUNCTION_MAX_PIPE_NO + 1];
-uint8_t  * g_usb0_function_data_pointer[USB_FUNCTION_MAX_PIPE_NO + 1];
-
-uint16_t g_usb0_function_PipeIgnore[USB_FUNCTION_MAX_PIPE_NO + 1];
-uint16_t g_usb0_function_PipeTbl[USB_FUNCTION_MAX_PIPE_NO + 1];
-uint16_t g_usb0_function_pipe_status[USB_FUNCTION_MAX_PIPE_NO + 1];
-uint32_t g_usb0_function_PipeDataSize[USB_FUNCTION_MAX_PIPE_NO + 1];
-
-USB_FUNCTION_DMA_t g_usb0_function_DmaInfo[2];
-uint16_t g_usb0_function_DmaPipe[2];
-uint16_t g_usb0_function_DmaBval[2];
-uint16_t g_usb0_function_DmaStatus[2];
-
-uint16_t g_usb0_function_CtrZeroLengthFlag;
-
-//uint16_t g_usb0_function_ConfigNum;
-//uint16_t g_usb0_function_Alternate[USB_FUNCTION_ALT_NO];
-//uint16_t g_usb0_function_RemoteWakeupFlag;
-uint16_t g_usb0_function_TestModeFlag;
-uint16_t g_usb0_function_TestModeSelectors;
-
-//uint16_t g_usb0_function_ReqType;
-//uint16_t g_usb0_function_ReqTypeType;
-//uint16_t g_usb0_function_ReqTypeRecip;
-//uint16_t g_usb0_function_ReqRequest;
-//uint16_t g_usb0_function_ReqValue;
-//uint16_t g_usb0_function_ReqIndex;
-//uint16_t g_usb0_function_ReqLength;
-
-//uint16_t g_usb0_function_EPTableIndex[USB_FUNCTION_MAX_EP_NO + 1];
-
-uint16_t g_usb0_function_pipecfg[USB_FUNCTION_MAX_PIPE_NO + 1];
-uint16_t g_usb0_function_pipebuf[USB_FUNCTION_MAX_PIPE_NO + 1];
-uint16_t g_usb0_function_pipemaxp[USB_FUNCTION_MAX_PIPE_NO + 1];
-uint16_t g_usb0_function_pipeperi[USB_FUNCTION_MAX_PIPE_NO + 1];
-
-
-/*******************************************************************************
-* Function Name: usb0_function_init_status
-* Description  : Initialization USB Sample Driver Variable.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-void usb0_function_init_status (void)
-{
-    uint16_t pipe;
-
-    //g_usb0_function_ConfigNum         = 0;
-    //g_usb0_function_RemoteWakeupFlag  = DEVDRV_USBF_OFF;
-    g_usb0_function_TestModeFlag      = DEVDRV_USBF_OFF;
-    g_usb0_function_CtrZeroLengthFlag = 0;
-
-#if 0
-    usb0_function_clear_alt();
-#endif
-
-    for (pipe = 0; pipe < (USB_FUNCTION_MAX_PIPE_NO + 1); ++pipe)
-    {
-        g_usb0_function_pipe_status[pipe]  = DEVDRV_USBF_PIPE_IDLE;
-        g_usb0_function_PipeDataSize[pipe] = 0;
-        g_usb0_function_data_count[pipe]   = 0;
-
-        /* pipe configuration in usb0_function_ResetEP() */
-        g_usb0_function_pipecfg[pipe]  = 0;
-        g_usb0_function_pipebuf[pipe]  = 0;
-        g_usb0_function_pipemaxp[pipe] = 0;
-        g_usb0_function_pipeperi[pipe] = 0;
-    }
-}
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/src/function/usb0_function_sig.c	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,330 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb0_function_sig.c
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Device(s)    : RZ/A1H
-* Tool-Chain   :
-* OS           : None
-* H/W Platform :
-* Description  : RZ/A1H R7S72100 USB Sample Program
-* Operation    :
-* Limitations  :
-*******************************************************************************/
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include "usb0_function.h"
-
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Imported global variables and functions (from other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-static void usb0_function_EnableINTModule(void);
-
-
-/*******************************************************************************
-Private global variables and functions
-*******************************************************************************/
-
-
-/*******************************************************************************
-* Function Name: usb0_function_InitModule
-* Description  : Initializes the USB module in the USB function mode.
-* Arguments    : uint16_t mode  ; USB_FUNCTION_HIGH_SPEED ; Hi-Speed Mode
-*              :                ; other                   ; Full-speed Mode
-* Return Value : none
-*******************************************************************************/
-void usb0_function_InitModule (uint16_t mode)
-{
-    RZA_IO_RegWrite_16(&USB200.SYSCFG0,
-                        0,
-                        USB_SYSCFG_DCFM_SHIFT,
-                        USB_SYSCFG_DCFM);           /* USB function */
-
-    /* USB module operation enabled     */
-    RZA_IO_RegWrite_16(&USB200.SYSCFG0,
-                        1,
-                        USB_SYSCFG_USBE_SHIFT,
-                        USB_SYSCFG_USBE);
-
-    if (mode == USB_FUNCTION_HIGH_SPEED)
-    {
-        RZA_IO_RegWrite_16(&USB200.SYSCFG0,
-                            1,
-                            USB_SYSCFG_HSE_SHIFT,
-                            USB_SYSCFG_HSE);        /* Hi-Speed Mode */
-    }
-    else
-    {
-        RZA_IO_RegWrite_16(&USB200.SYSCFG0,
-                            0,
-                            USB_SYSCFG_HSE_SHIFT,
-                            USB_SYSCFG_HSE);
-    }
-
-    /* for power-on                     */
-    if (usb0_function_CheckVBUStaus() == DEVDRV_USBF_ON)
-    {
-        usb0_function_EnableINTModule();            /* Interrupt Enable         */
-        usb0_function_USB_FUNCTION_Attach();        /* pull-up D+ and open D-   */
-    }
-    else
-    {
-        usb0_function_USB_FUNCTION_Detach();        /* USB Detach               */
-                                                    /* with Interrupt Enable    */
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_CheckVBUStaus
-* Description  : Checks the USB-VBUS state to returns the connection state to
-*              : the USB host.
-* Arguments    : none
-* Return Value : DEVDRV_USBF_ON     :   VBUS ON
-*              : DEVDRV_USBF_OFF    :   VBUS OFF
-*******************************************************************************/
-uint16_t usb0_function_CheckVBUStaus (void)
-{
-    uint16_t buf1;
-    uint16_t buf2;
-    uint16_t buf3;
-
-    /* monitor VBUS pins */
-    do
-    {
-        buf1 = RZA_IO_RegRead_16(&USB200.INTSTS0,
-                                USB_INTSTS0_VBSTS_SHIFT,
-                                USB_INTSTS0_VBSTS);
-        Userdef_USB_usb0_function_delay_10us(1);
-        buf2 = RZA_IO_RegRead_16(&USB200.INTSTS0,
-                                USB_INTSTS0_VBSTS_SHIFT,
-                                USB_INTSTS0_VBSTS);
-        Userdef_USB_usb0_function_delay_10us(1);
-        buf3 = RZA_IO_RegRead_16(&USB200.INTSTS0,
-                                USB_INTSTS0_VBSTS_SHIFT,
-                                USB_INTSTS0_VBSTS);
-    } while ((buf1 != buf2) || (buf2 != buf3));
-
-    if (buf1 == DEVDRV_USBF_OFF)
-    {
-        return DEVDRV_USBF_OFF;         /* detach */
-    }
-
-    return DEVDRV_USBF_ON;              /* attach */
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_USB_FUNCTION_Attach
-* Description  : Connects to the USB host controller.
-*              : This function pulls up D+.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-void usb0_function_USB_FUNCTION_Attach (void)
-{
-    Userdef_USB_usb0_function_attach();
-
-    Userdef_USB_usb0_function_delay_xms(10);
-
-    RZA_IO_RegWrite_16(&USB200.SYSCFG0,
-                        1,
-                        USB_SYSCFG_DPRPU_SHIFT,
-                        USB_SYSCFG_DPRPU);      /* Pull-up D+ and open D- */
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_USB_FUNCTION_Detach
-* Description  : Disconnects from the USB host controller.
-*              : This function opens D+/D-.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-void usb0_function_USB_FUNCTION_Detach (void)
-{
-    uint16_t pipe;
-
-    Userdef_USB_usb0_function_detach();
-
-    for (pipe = 0; pipe < (USB_FUNCTION_MAX_PIPE_NO + 1); ++pipe)
-    {
-        if (g_usb0_function_pipe_status[pipe] != DEVDRV_USBF_PIPE_IDLE)
-        {
-            usb0_function_stop_transfer(pipe);
-        }
-    }
-
-    RZA_IO_RegWrite_16(&USB200.SYSCFG0,
-                        0,
-                        USB_SYSCFG_DPRPU_SHIFT,
-                        USB_SYSCFG_DPRPU);                  /* open D+ and D- */
-
-    /* Detach Recovery */
-    Userdef_USB_usb0_function_delay_500ns();                /* need 1us=500ns * 2 wait */
-    Userdef_USB_usb0_function_delay_500ns();
-
-    RZA_IO_RegWrite_16(&USB200.SYSCFG0,
-                        1,
-                        USB_SYSCFG_DCFM_SHIFT,
-                        USB_SYSCFG_DCFM);
-    Userdef_USB_usb0_function_delay_500ns();                /* need 100ns wait but 500ns S/W wait */
-
-    RZA_IO_RegWrite_16(&USB200.SYSCFG0,
-                        0,
-                        USB_SYSCFG_DCFM_SHIFT,
-                        USB_SYSCFG_DCFM);
-
-    RZA_IO_RegWrite_16(&USB200.SYSCFG0,
-                        0,
-                        USB_SYSCFG_USBE_SHIFT,
-                        USB_SYSCFG_USBE);       /* soft reset module */
-    Userdef_USB_usb0_function_delay_500ns();
-
-    RZA_IO_RegWrite_16(&USB200.SYSCFG0,
-                        1,
-                        USB_SYSCFG_USBE_SHIFT,
-                        USB_SYSCFG_USBE);
-
-    usb0_function_EnableINTModule();            /* Interrupt Enable */
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_USB_FUNCTION_BusReset
-* Description  : This function is executed when the USB device is transitioned
-*              : to POWERD_STATE. Sets the device descriptor according to the
-*              : connection speed determined by the USB reset hand shake.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-#if 0	/*The USBHAL in mbed does not need this function*/
-void usb0_function_USB_FUNCTION_BusReset (void)
-{
-    usb0_function_init_status();                                    /* memory clear */
-
-    if (usb0_function_is_hispeed() == USB_FUNCTION_HIGH_SPEED)
-    {
-        usb0_function_ResetDescriptor(USB_FUNCTION_HIGH_SPEED);     /* Device Descriptor reset */
-    }
-    else
-    {
-        usb0_function_ResetDescriptor(USB_FUNCTION_FULL_SPEED);     /* Device Descriptor reset */
-    }
-
-    usb0_function_ResetDCP();                                       /* Default Control PIPE reset */
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb0_function_USB_FUNCTION_Resume
-* Description  : This function is executed when the USB device detects a resume
-*              : signal.
-*              : The USB sample driver does not operate for this function.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-#if 0	/*The USBHAL in mbed does not need this function*/
-void usb0_function_USB_FUNCTION_Resume (void)
-{
-    /* NOP */
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb0_function_USB_FUNCTION_Suspend
-* Description  : This function is executed when the USB device detects a suspend
-*              : signal.
-*              : The USB sample driver does not operate for this function.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-#if 0	/*The USBHAL in mbed does not need this function*/
-void usb0_function_USB_FUNCTION_Suspend (void)
-{
-    /* NOP */
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb0_function_USB_FUNCTION_TestMode
-* Description  : This function is executed when the USB device is transitioned U
-*              : to TEST_MODE by the USB standard request.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-void usb0_function_USB_FUNCTION_TestMode (void)
-{
-    switch (g_usb0_function_TestModeSelectors & USB_FUNCTION_FUNCTION_TEST_SELECT)
-    {
-        case USB_FUNCTION_FUNCTION_TEST_J:
-        case USB_FUNCTION_FUNCTION_TEST_K:
-        case USB_FUNCTION_FUNCTION_TEST_SE0_NAK:
-        case USB_FUNCTION_FUNCTION_TEST_PACKET:
-            RZA_IO_RegWrite_16(&USB200.TESTMODE,
-                                (g_usb0_function_TestModeSelectors >> 8),
-                                USB_TESTMODE_UTST_SHIFT,
-                                USB_TESTMODE_UTST);
-        break;
-
-        case USB_FUNCTION_FUNCTION_TEST_FORCE_ENABLE:
-        default:
-        break;
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_EnableINTModule
-* Description  : Enables USB interrupt.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-static void usb0_function_EnableINTModule (void)
-{
-    uint16_t buf;
-
-    buf  = USB200.INTENB0;
-    buf |= (USB_FUNCTION_BITVBSE | USB_FUNCTION_BITDVSE | USB_FUNCTION_BITCTRE |
-             USB_FUNCTION_BITBEMPE | USB_FUNCTION_BITNRDYE | USB_FUNCTION_BITBRDYE);
-    USB200.INTENB0 = buf;
-
-    usb0_function_enable_bemp_int(USB_FUNCTION_PIPE0);
-}
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/src/function/usb0_function_sub.c	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,453 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb0_function_sub.c
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Device(s)    : RZ/A1H
-* Tool-Chain   :
-* OS           : None
-* H/W Platform :
-* Description  : RZ/A1H R7S72100 USB Sample Program
-* Operation    :
-* Limitations  :
-*******************************************************************************/
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include "usb0_function.h"
-
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Imported global variables and functions (from other files)
-*******************************************************************************/
-#if 0
-extern const uint16_t *g_usb0_function_EndPntPtr[];
-extern uint8_t         g_usb0_function_DeviceDescriptor[];
-extern uint8_t        *g_usb0_function_ConfigurationPtr[];
-#endif
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Private global variables and functions
-*******************************************************************************/
-
-
-/*******************************************************************************
-* Function Name: usb0_function_ResetDCP
-* Description  : Initializes the default control pipe(DCP).
-* Outline      : Reset default control pipe
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-void usb0_function_ResetDCP (void)
-{
-    USB200.DCPCFG  = 0;
-#if 0
-    USB200.DCPMAXP = g_usb0_function_DeviceDescriptor[7];
-#else
-    USB200.DCPMAXP = 64;
-#endif
-
-    USB200.CFIFOSEL  = (uint16_t)(USB_FUNCTION_BITMBW_8 | USB_FUNCTION_BITBYTE_LITTLE);
-    USB200.D0FIFOSEL = (uint16_t)(USB_FUNCTION_BITMBW_8 | USB_FUNCTION_BITBYTE_LITTLE);
-    USB200.D1FIFOSEL = (uint16_t)(USB_FUNCTION_BITMBW_8 | USB_FUNCTION_BITBYTE_LITTLE);
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_ResetEP
-* Description  : Initializes the end point.
-* Arguments    : uint16_t num          ; Configuration Number
-* Return Value : none
-*******************************************************************************/
-#if 0
-void usb0_function_ResetEP (uint16_t num)
-{
-    uint16_t   pipe;
-    uint16_t   ep;
-    uint16_t   index;
-    uint16_t   buf;
-    uint16_t * tbl;
-
-    tbl = (uint16_t *)(g_usb0_function_EndPntPtr[num - 1]);
-
-    for (ep = 1; ep <= USB_FUNCTION_MAX_EP_NO; ++ep)
-    {
-        if (g_usb0_function_EPTableIndex[ep] != USB_FUNCTION_EP_ERROR)
-        {
-            index = (uint16_t)(USB_FUNCTION_EPTABLE_LENGTH * g_usb0_function_EPTableIndex[ep]);
-            pipe  = (uint16_t)(tbl[index + 0] & USB_FUNCTION_BITCURPIPE);
-
-            g_usb0_function_PipeTbl[pipe] = (uint16_t)( ((tbl[index + 1] & USB_FUNCTION_DIRFIELD) << 3) |
-                                                         ep                                             |
-                                                         (tbl[index + 0] & USB_FUNCTION_FIFO_USE)          );
-
-            if ((tbl[index + 1] & USB_FUNCTION_DIRFIELD) == USB_FUNCTION_DIR_P_OUT)
-            {
-                tbl[index + 1] |= USB_FUNCTION_SHTNAKON;
-#ifdef  __USB_DMA_BFRE_ENABLE__
-                /* this routine cannnot be perfomred if read operation is executed in buffer size */
-                if (((tbl[index + 0] & USB_FUNCTION_FIFO_USE) == USB_FUNCTION_D0FIFO_DMA) ||
-                    ((tbl[index + 0] & USB_FUNCTION_FIFO_USE) == USB_FUNCTION_D1FIFO_DMA))
-                {
-                    tbl[index + 1] |= USB_FUNCTION_BFREON;
-                }
-#endif
-            }
-
-            /* Interrupt Disable */
-            buf  = USB200.BRDYENB;
-            buf &= (uint16_t)~g_usb0_function_bit_set[pipe];
-            USB200.BRDYENB = buf;
-            buf  = USB200.NRDYENB;
-            buf &= (uint16_t)~g_usb0_function_bit_set[pipe];
-            USB200.NRDYENB = buf;
-            buf  = USB200.BEMPENB;
-            buf &= (uint16_t)~g_usb0_function_bit_set[pipe];
-            USB200.BEMPENB = buf;
-
-            usb0_function_set_pid_nak(pipe);
-
-            /* CurrentPIPE Clear */
-            if (RZA_IO_RegRead_16(&USB200.CFIFOSEL,
-                                    USB_CFIFOSEL_CURPIPE_SHIFT,
-                                    USB_CFIFOSEL_CURPIPE) == pipe)
-            {
-                RZA_IO_RegWrite_16(&USB200.CFIFOSEL,
-                                    0,
-                                    USB_CFIFOSEL_CURPIPE_SHIFT,
-                                    USB_CFIFOSEL_CURPIPE);
-            }
-
-            if (RZA_IO_RegRead_16(&USB200.D0FIFOSEL,
-                                    USB_DnFIFOSEL_CURPIPE_SHIFT,
-                                    USB_DnFIFOSEL_CURPIPE) == pipe)
-            {
-                RZA_IO_RegWrite_16(&USB200.D0FIFOSEL,
-                                    0,
-                                    USB_DnFIFOSEL_CURPIPE_SHIFT,
-                                    USB_DnFIFOSEL_CURPIPE);
-            }
-
-            if (RZA_IO_RegRead_16(&USB200.D1FIFOSEL,
-                                    USB_DnFIFOSEL_CURPIPE_SHIFT,
-                                    USB_DnFIFOSEL_CURPIPE) == pipe)
-            {
-                RZA_IO_RegWrite_16(&USB200.D1FIFOSEL,
-                                    0,
-                                    USB_DnFIFOSEL_CURPIPE_SHIFT,
-                                    USB_DnFIFOSEL_CURPIPE);
-            }
-
-            /* PIPE Configuration */
-            USB200.PIPESEL  = pipe;
-            USB200.PIPECFG  = tbl[index + 1];
-            USB200.PIPEBUF  = tbl[index + 2];
-            USB200.PIPEMAXP = tbl[index + 3];
-            USB200.PIPEPERI = tbl[index + 4];
-
-            g_usb0_function_pipecfg[pipe]  = tbl[index + 1];
-            g_usb0_function_pipebuf[pipe]  = tbl[index + 2];
-            g_usb0_function_pipemaxp[pipe] = tbl[index + 3];
-            g_usb0_function_pipeperi[pipe] = tbl[index + 4];
-
-            /* Buffer Clear */
-            usb0_function_set_sqclr(pipe);
-            usb0_function_aclrm(pipe);
-
-            /* init Global */
-            g_usb0_function_pipe_status[pipe]  = DEVDRV_USBF_PIPE_IDLE;
-            g_usb0_function_PipeDataSize[pipe] = 0;
-        }
-    }
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb0_function_EpToPipe
-* Description  : Returns the pipe which end point specified by the argument is
-*              : allocated to.
-* Arguments    : uint16_t ep       ; Direction + Endpoint Number
-* Return Value : USB_FUNCTION_EP_ERROR         : Error
-*              : Others           : Pipe Number
-*******************************************************************************/
-uint16_t usb0_function_EpToPipe (uint16_t ep)
-{
-    uint16_t pipe;
-
-    for (pipe = 1; pipe <= USB_FUNCTION_MAX_PIPE_NO; pipe++)
-    {
-        if ((g_usb0_function_PipeTbl[pipe] & 0x00ff) == ep)
-        {
-            return pipe;
-        }
-    }
-
-    return USB_FUNCTION_EP_ERROR;
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_InitEPTable
-* Description  : Sets the end point by the Alternate setting value of the
-*              : configuration number and the interface number specified by the
-*              : argument.
-* Arguments    : uint16_t Con_Num       ; Configuration Number
-*              : uint16_t Int_Num       ; Interface Number
-*              : uint16_t Alt_Num       ; Alternate Setting
-* Return Value : none
-*******************************************************************************/
-#if 0
-void usb0_function_InitEPTable (uint16_t Con_Num, uint16_t Int_Num, uint16_t Alt_Num)
-{
-    uint8_t  * ptr;
-    uint16_t   point_interface;
-    uint16_t   point_endpoint;
-    uint16_t   length;
-    uint16_t   start;
-    uint16_t   numbers;
-    uint16_t   endpoint;
-
-    ptr = (uint8_t *)g_usb0_function_ConfigurationPtr[Con_Num - 1];
-    point_interface = *ptr;
-    length = (uint16_t)((uint16_t)*(ptr + 3) << 8 | (uint16_t)*(ptr + 2));
-    ptr  += *ptr;
-    start   = 0;
-    numbers = 0;
-    point_endpoint = 0;
-
-    for (; point_interface < length;)
-    {
-        switch (*(ptr + 1))                                     /* Descriptor Type ? */
-        {
-            case USB_FUNCTION_DT_INTERFACE:                     /* Interface */
-                if ((*(ptr + 2) == Int_Num) && (*(ptr + 3) == Alt_Num))
-                {
-                    numbers = *(ptr + 4);
-                }
-                else
-                {
-                    start  += *(ptr + 4);
-                }
-                point_interface += *ptr;
-                ptr += *ptr;
-            break;
-
-            case USB_FUNCTION_DT_ENDPOINT:                      /* Endpoint */
-                if (point_endpoint < numbers)
-                {
-                    endpoint = (uint16_t)(*(ptr + 2) & 0x0f);
-                    g_usb0_function_EPTableIndex[endpoint] = (uint16_t)(start + point_endpoint);
-                    ++point_endpoint;
-                }
-                point_interface += *ptr;
-                ptr += *ptr;
-            break;
-
-            case USB_FUNCTION_DT_DEVICE:                        /* Device */
-            case USB_FUNCTION_DT_CONFIGURATION:                 /* Configuration */
-            case USB_FUNCTION_DT_STRING:                        /* String */
-            default:                                            /* Class, Vendor, else */
-                point_interface += *ptr;
-                ptr += *ptr;
-            break;
-        }
-    }
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb0_function_GetConfigNum
-* Description  : Returns the number of configuration referring to the number of
-*              : configuration described in the device descriptor.
-* Arguments    : none
-* Return Value : Number of possible configurations (bNumConfigurations).
-*******************************************************************************/
-#if 0
-uint16_t usb0_function_GetConfigNum (void)
-{
-    return (uint16_t)g_usb0_function_DeviceDescriptor[17];
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb0_function_GetInterfaceNum
-* Description  : Returns the number of interface referring to the number of
-*              : interface described in the configuration descriptor.
-* Arguments    : uint16_t num       ; Configuration Number
-* Return Value : Number of this interface (bNumInterfaces).
-*******************************************************************************/
-#if 0
-uint16_t usb0_function_GetInterfaceNum (uint16_t num)
-{
-    return (uint16_t)(*(g_usb0_function_ConfigurationPtr[num - 1] + 4));
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb0_function_GetAltNum
-* Description  : Returns the Alternate setting value of the configuration number
-*              : and the interface number specified by the argument.
-* Arguments    : uint16_t Con_Num       ; Configuration Number
-*              : uint16_t Int_Num       ; Interface Number
-* Return Value : Value used to select this alternate setting(bAlternateSetting).
-*******************************************************************************/
-#if 0
-uint16_t usb0_function_GetAltNum (uint16_t Con_Num, uint16_t Int_Num)
-{
-    uint8_t  * ptr;
-    uint16_t   point;
-    uint16_t   alt_num = 0;
-    uint16_t   length;
-
-    ptr = (uint8_t *)(g_usb0_function_ConfigurationPtr[Con_Num - 1]);
-    point = ptr[0];
-    ptr  += ptr[0];                                 /* InterfaceDescriptor[0] */
-    length  = (uint16_t)(*(g_usb0_function_ConfigurationPtr[Con_Num - 1] + 2));
-    length |= (uint16_t)((uint16_t)(*(g_usb0_function_ConfigurationPtr[Con_Num - 1] + 3)) << 8);
-
-    for (; point < length;)                                 /* Search Descriptor Table size */
-    {
-        switch (ptr[1])                                     /* Descriptor Type ? */
-        {
-            case USB_FUNCTION_DT_INTERFACE:                 /* Interface */
-                if (Int_Num == ptr[2])
-                {
-                    alt_num = (uint16_t)ptr[3];             /* Alternate Number count */
-                }
-                point += ptr[0];
-                ptr += ptr[0];
-            break;
-
-            case USB_FUNCTION_DT_DEVICE:                    /* Device */
-            case USB_FUNCTION_DT_CONFIGURATION:             /* Configuration */
-            case USB_FUNCTION_DT_STRING:                    /* String */
-            case USB_FUNCTION_DT_ENDPOINT:                  /* Endpoint */
-            default:                                        /* Class, Vendor, else */
-                point += ptr[0];
-                ptr   += ptr[0];
-            break;
-        }
-    }
-    return alt_num;
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb0_function_CheckRemoteWakeup
-* Description  : Returns the result of the remote wake up function is supported
-*              : or not referring to the configuration descriptor.
-* Arguments    : none
-* Return Value : DEVDRV_USBF_ON     :   Support Remote Wakeup
-*              : DEVDRV_USBF_OFF    :   not Support Remote Wakeup
-*******************************************************************************/
-#if 0
-uint16_t usb0_function_CheckRemoteWakeup (void)
-{
-    uint8_t atr;
-
-    if (g_usb0_function_ConfigNum == 0)
-    {
-        return DEVDRV_USBF_OFF;
-    }
-
-    atr = *(g_usb0_function_ConfigurationPtr[g_usb0_function_ConfigNum - 1] + 7);
-
-    if (atr & USB_FUNCTION_CF_RWUP)
-    {
-        return DEVDRV_USBF_ON;
-    }
-
-    return DEVDRV_USBF_OFF;
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb0_function_clear_alt
-* Description  : Initializes the Alternate setting area.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-#if 0
-void usb0_function_clear_alt (void)
-{
-    int i;
-
-    for (i = 0; i < USB_FUNCTION_ALT_NO; ++i)
-    {
-        g_usb0_function_Alternate[i] = 0;                           /* Alternate */
-    }
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb0_function_clear_pipe_tbl
-* Description  : Initializes pipe definition table.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-void usb0_function_clear_pipe_tbl (void)
-{
-    int pipe;
-
-    for (pipe = 0; pipe < (USB_FUNCTION_MAX_PIPE_NO + 1); ++pipe)
-    {
-        g_usb0_function_PipeTbl[pipe] = 0;
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_clear_ep_table_index
-* Description  : Initializes the end point table index.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-#if 0
-void usb0_function_clear_ep_table_index (void)
-{
-    int ep;
-
-    for (ep = 0; ep <= USB_FUNCTION_MAX_EP_NO; ++ep)
-    {
-        g_usb0_function_EPTableIndex[ep] = USB_FUNCTION_EP_ERROR;
-    }
-}
-#endif
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/src/userdef/usb0_function_dmacdrv.c	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,698 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb0_function_dmacdrv.c
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Device(s)    : RZ/A1H
-* Tool-Chain   :
-* OS           : None
-* H/W Platform :
-* Description  : RZ/A1H R7S72100 USB Sample Program
-* Operation    :
-* Limitations  :
-*******************************************************************************/
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include <stdio.h>
-#include "r_typedefs.h"
-#include "iodefine.h"
-#include "rza_io_regrw.h"
-#include "usb0_function_dmacdrv.h"
-
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-#define DMAC_INDEFINE   (255)       /* Macro definition when REQD bit is not used */
-
-/* ==== Request setting information for on-chip peripheral module ==== */
-typedef enum dmac_peri_req_reg_type
-{
-    DMAC_REQ_MID,
-    DMAC_REQ_RID,
-    DMAC_REQ_AM,
-    DMAC_REQ_LVL,
-    DMAC_REQ_REQD
-} dmac_peri_req_reg_type_t;
-
-
-/*******************************************************************************
-Imported global variables and functions (from other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Private global variables and functions
-*******************************************************************************/
-/* ==== Prototype declaration ==== */
-
-/* ==== Global variable ==== */
-/* On-chip peripheral module request setting table */
-static const uint8_t usb0_function_dmac_peri_req_init_table[8][5] =
-{
-    /* MID,RID,AM,LVL,REQD */
-    {32, 3, 2, 1, 1},    /* USB_0 channel 0 transmit FIFO empty */
-    {32, 3, 2, 1, 0},    /* USB_0 channel 0 receive FIFO full   */
-    {33, 3, 2, 1, 1},    /* USB_0 channel 1 transmit FIFO empty */
-    {33, 3, 2, 1, 0},    /* USB_0 channel 1 receive FIFO full   */
-    {34, 3, 2, 1, 1},    /* USB_1 channel 0 transmit FIFO empty */
-    {34, 3, 2, 1, 0},    /* USB_1 channel 0 receive FIFO full   */
-    {35, 3, 2, 1, 1},    /* USB_1 channel 1 transmit FIFO empty */
-    {35, 3, 2, 1, 0},    /* USB_1 channel 1 receive FIFO full   */
-};
-
-
-/*******************************************************************************
-* Function Name: usb0_function_DMAC1_PeriReqInit
-* Description  : Sets the register mode for DMA mode and the on-chip peripheral
-*              : module request for transfer request for DMAC channel 1.
-*              : Executes DMAC initial setting using the DMA information
-*              : specified by the argument *trans_info and the enabled/disabled
-*              : continuous transfer specified by the argument continuation.
-*              : Registers DMAC channel 1 interrupt handler function and sets
-*              : the interrupt priority level. Then enables transfer completion
-*              : interrupt.
-* Arguments    : dmac_transinfo_t *trans_info   : Setting information to DMAC register
-*              : uint32_t          dmamode      : DMA mode (only for DMAC_MODE_REGISTER)
-*              : uint32_t          continuation : Set continuous transfer to be valid
-*              :                                  after DMA transfer has been completed
-*              :             DMAC_SAMPLE_CONTINUATION : Execute continuous transfer
-*              :             DMAC_SAMPLE_SINGLE       : Do not execute continuous transfer
-*              : uint32_t request_factor        : Factor for on-chip peripheral module request
-*              :             DMAC_REQ_OSTM0TINT       : OSTM_0 compare match
-*              :             DMAC_REQ_OSTM1TINT       : OSTM_1 compare match
-*              :             DMAC_REQ_TGI0A           : MTU2_0 input capture/compare match
-*              :                  :
-*              : uint32_t          req_direction: Setting value of CHCFG_n register REQD bit
-* Return Value : none
-*******************************************************************************/
-void usb0_function_DMAC1_PeriReqInit (const dmac_transinfo_t * trans_info,
-                                      uint32_t dmamode, uint32_t continuation,
-                                      uint32_t request_factor, uint32_t req_direction)
-{
-    /* ==== Register mode ==== */
-    if (DMAC_MODE_REGISTER == dmamode)
-    {
-        /* ==== Next0 register set ==== */
-        DMAC1.N0SA_n = trans_info->src_addr;        /* Start address of transfer source      */
-        DMAC1.N0DA_n = trans_info->dst_addr;        /* Start address of transfer destination */
-        DMAC1.N0TB_n = trans_info->count;           /* Total transfer byte count             */
-
-        /* DAD : Transfer destination address counting direction */
-        /* SAD : Transfer source address counting direction      */
-        /* DDS : Transfer destination transfer size              */
-        /* SDS : Transfer source transfer size                   */
-        RZA_IO_RegWrite_32(&DMAC1.CHCFG_n,
-                            trans_info->daddr_dir,
-                            DMAC1_CHCFG_n_DAD_SHIFT,
-                            DMAC1_CHCFG_n_DAD);
-        RZA_IO_RegWrite_32(&DMAC1.CHCFG_n,
-                            trans_info->saddr_dir,
-                            DMAC1_CHCFG_n_SAD_SHIFT,
-                            DMAC1_CHCFG_n_SAD);
-        RZA_IO_RegWrite_32(&DMAC1.CHCFG_n,
-                            trans_info->dst_size,
-                            DMAC1_CHCFG_n_DDS_SHIFT,
-                            DMAC1_CHCFG_n_DDS);
-        RZA_IO_RegWrite_32(&DMAC1.CHCFG_n,
-                            trans_info->src_size,
-                            DMAC1_CHCFG_n_SDS_SHIFT,
-                            DMAC1_CHCFG_n_SDS);
-
-        /* DMS  : Register mode                            */
-        /* RSEL : Select Next0 register set                */
-        /* SBE  : No discharge of buffer data when aborted */
-        /* DEM  : No DMA interrupt mask                    */
-        RZA_IO_RegWrite_32(&DMAC1.CHCFG_n,
-                            0,
-                            DMAC1_CHCFG_n_DMS_SHIFT,
-                            DMAC1_CHCFG_n_DMS);
-        RZA_IO_RegWrite_32(&DMAC1.CHCFG_n,
-                            0,
-                            DMAC1_CHCFG_n_RSEL_SHIFT,
-                            DMAC1_CHCFG_n_RSEL);
-        RZA_IO_RegWrite_32(&DMAC1.CHCFG_n,
-                            0,
-                            DMAC1_CHCFG_n_SBE_SHIFT,
-                            DMAC1_CHCFG_n_SBE);
-        RZA_IO_RegWrite_32(&DMAC1.CHCFG_n,
-                            0,
-                            DMAC1_CHCFG_n_DEM_SHIFT,
-                            DMAC1_CHCFG_n_DEM);
-
-        /* ---- Continuous transfer ---- */
-        if (DMAC_SAMPLE_CONTINUATION == continuation)
-        {
-            /* REN : Execute continuous transfer                         */
-            /* RSW : Change register set when DMA transfer is completed. */
-            RZA_IO_RegWrite_32(&DMAC1.CHCFG_n,
-                                1,
-                                DMAC1_CHCFG_n_REN_SHIFT,
-                                DMAC1_CHCFG_n_REN);
-            RZA_IO_RegWrite_32(&DMAC1.CHCFG_n,
-                                1,
-                                DMAC1_CHCFG_n_RSW_SHIFT,
-                                DMAC1_CHCFG_n_RSW);
-        }
-        /* ---- Single transfer ---- */
-        else
-        {
-            /* REN : Do not execute continuous transfer                         */
-            /* RSW : Do not change register set when DMA transfer is completed. */
-            RZA_IO_RegWrite_32(&DMAC1.CHCFG_n,
-                                0,
-                                DMAC1_CHCFG_n_REN_SHIFT,
-                                DMAC1_CHCFG_n_REN);
-            RZA_IO_RegWrite_32(&DMAC1.CHCFG_n,
-                                0,
-                                DMAC1_CHCFG_n_RSW_SHIFT,
-                                DMAC1_CHCFG_n_RSW);
-        }
-
-        /* TM  : Single transfer                          */
-        /* SEL : Channel setting                          */
-        /* HIEN, LOEN : On-chip peripheral module request */
-        RZA_IO_RegWrite_32(&DMAC1.CHCFG_n,
-                            0,
-                            DMAC1_CHCFG_n_TM_SHIFT,
-                            DMAC1_CHCFG_n_TM);
-        RZA_IO_RegWrite_32(&DMAC1.CHCFG_n,
-                            1,
-                            DMAC1_CHCFG_n_SEL_SHIFT,
-                            DMAC1_CHCFG_n_SEL);
-        RZA_IO_RegWrite_32(&DMAC1.CHCFG_n,
-                            1,
-                            DMAC1_CHCFG_n_HIEN_SHIFT,
-                            DMAC1_CHCFG_n_HIEN);
-        RZA_IO_RegWrite_32(&DMAC1.CHCFG_n,
-                            0,
-                            DMAC1_CHCFG_n_LOEN_SHIFT,
-                            DMAC1_CHCFG_n_LOEN);
-
-        /* ---- Set factor by specified on-chip peripheral module request ---- */
-        RZA_IO_RegWrite_32(&DMAC1.CHCFG_n,
-                            usb0_function_dmac_peri_req_init_table[request_factor][DMAC_REQ_AM],
-                            DMAC1_CHCFG_n_AM_SHIFT,
-                            DMAC1_CHCFG_n_AM);
-        RZA_IO_RegWrite_32(&DMAC1.CHCFG_n,
-                            usb0_function_dmac_peri_req_init_table[request_factor][DMAC_REQ_LVL],
-                            DMAC1_CHCFG_n_LVL_SHIFT,
-                            DMAC1_CHCFG_n_LVL);
-
-        if (usb0_function_dmac_peri_req_init_table[request_factor][DMAC_REQ_REQD] != DMAC_INDEFINE)
-        {
-            RZA_IO_RegWrite_32(&DMAC1.CHCFG_n,
-                                usb0_function_dmac_peri_req_init_table[request_factor][DMAC_REQ_REQD],
-                                DMAC1_CHCFG_n_REQD_SHIFT,
-                                DMAC1_CHCFG_n_REQD);
-        }
-        else
-        {
-            RZA_IO_RegWrite_32(&DMAC1.CHCFG_n,
-                                req_direction,
-                                DMAC1_CHCFG_n_REQD_SHIFT,
-                                DMAC1_CHCFG_n_REQD);
-        }
-
-        RZA_IO_RegWrite_32(&DMAC01.DMARS,
-                            usb0_function_dmac_peri_req_init_table[request_factor][DMAC_REQ_RID],
-                            DMAC01_DMARS_CH1_RID_SHIFT,
-                            DMAC01_DMARS_CH1_RID);
-        RZA_IO_RegWrite_32(&DMAC01.DMARS,
-                            usb0_function_dmac_peri_req_init_table[request_factor][DMAC_REQ_MID],
-                            DMAC01_DMARS_CH1_MID_SHIFT,
-                            DMAC01_DMARS_CH1_MID);
-
-        /* PR : Round robin mode */
-        RZA_IO_RegWrite_32(&DMAC07.DCTRL_0_7,
-                            1,
-                            DMAC07_DCTRL_0_7_PR_SHIFT,
-                            DMAC07_DCTRL_0_7_PR);
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_DMAC1_Open
-* Description  : Enables DMAC channel 1 transfer.
-* Arguments    : uint32_t req : DMAC request mode
-* Return Value :  0 : Succeeded in enabling DMA transfer
-*              : -1 : Failed to enable DMA transfer (due to DMA operation)
-*******************************************************************************/
-int32_t usb0_function_DMAC1_Open (uint32_t req)
-{
-    int32_t ret;
-    volatile uint8_t dummy;
-
-    /* Transferable? */
-    if ((0 == RZA_IO_RegRead_32(&DMAC1.CHSTAT_n,
-                                DMAC1_CHSTAT_n_EN_SHIFT,
-                                DMAC1_CHSTAT_n_EN)) &&
-        (0 == RZA_IO_RegRead_32(&DMAC1.CHSTAT_n,
-                                DMAC1_CHSTAT_n_TACT_SHIFT,
-                                DMAC1_CHSTAT_n_TACT)))
-    {
-        /* Clear Channel Status Register */
-        RZA_IO_RegWrite_32(&DMAC1.CHCTRL_n,
-                            1,
-                            DMAC1_CHCTRL_n_SWRST_SHIFT,
-                            DMAC1_CHCTRL_n_SWRST);
-        dummy = RZA_IO_RegRead_32(&DMAC1.CHCTRL_n,
-                                DMAC1_CHCTRL_n_SWRST_SHIFT,
-                                DMAC1_CHCTRL_n_SWRST);
-        /* Enable DMA transfer */
-        RZA_IO_RegWrite_32(&DMAC1.CHCTRL_n,
-                            1,
-                            DMAC1_CHCTRL_n_SETEN_SHIFT,
-                            DMAC1_CHCTRL_n_SETEN);
-
-        /* ---- Request by software ---- */
-        if (DMAC_REQ_MODE_SOFT == req)
-        {
-            /* DMA transfer Request by software */
-            RZA_IO_RegWrite_32(&DMAC1.CHCTRL_n,
-                                1,
-                                DMAC1_CHCTRL_n_STG_SHIFT,
-                                DMAC1_CHCTRL_n_STG);
-        }
-
-        ret = 0;
-    }
-    else
-    {
-        ret = -1;
-    }
-
-    return ret;
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_DMAC1_Close
-* Description  : Aborts DMAC channel 1 transfer. Returns the remaining transfer
-*              : byte count at the time of DMA transfer abort to the argument
-*              : *remain.
-* Arguments    : uint32_t * remain : Remaining transfer byte count when
-*              :                   : DMA transfer is aborted
-* Return Value : none
-*******************************************************************************/
-void usb0_function_DMAC1_Close (uint32_t * remain)
-{
-
-    /* ==== Abort transfer ==== */
-    RZA_IO_RegWrite_32(&DMAC1.CHCTRL_n,
-                        1,
-                        DMAC1_CHCTRL_n_CLREN_SHIFT,
-                        DMAC1_CHCTRL_n_CLREN);
-
-    while (1 == RZA_IO_RegRead_32(&DMAC1.CHSTAT_n,
-                                DMAC1_CHSTAT_n_TACT_SHIFT,
-                                DMAC1_CHSTAT_n_TACT))
-    {
-        /* Loop until transfer is aborted */
-    }
-
-    while (1 == RZA_IO_RegRead_32(&DMAC1.CHSTAT_n,
-                                DMAC1_CHSTAT_n_EN_SHIFT,
-                                DMAC1_CHSTAT_n_EN))
-    {
-        /* Loop until 0 is set in EN before checking the remaining transfer byte count */
-    }
-    /* ==== Obtain remaining transfer byte count ==== */
-    *remain = DMAC1.CRTB_n;
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_DMAC1_Load_Set
-* Description  : Sets the transfer source address, transfer destination
-*              : address, and total transfer byte count respectively
-*              : specified by the argument src_addr, dst_addr, and count to
-*              : DMAC channel 1 as DMA transfer information.
-*              : Sets the register set selected by the CHCFG_n register
-*              : RSEL bit from the Next0 or Next1 register set.
-*              : This function should be called when DMA transfer of DMAC
-*              : channel 1 is aboted.
-* Arguments    : uint32_t src_addr : Transfer source address
-*              : uint32_t dst_addr : Transfer destination address
-*              : uint32_t count    : Total transfer byte count
-* Return Value : none
-*******************************************************************************/
-void usb0_function_DMAC1_Load_Set (uint32_t src_addr, uint32_t dst_addr, uint32_t count)
-{
-    uint8_t reg_set;
-
-    /* Obtain register set in use */
-    reg_set = RZA_IO_RegRead_32(&DMAC1.CHSTAT_n,
-                                DMAC1_CHSTAT_n_SR_SHIFT,
-                                DMAC1_CHSTAT_n_SR);
-
-    /* ==== Load ==== */
-    if (0 == reg_set)
-    {
-        /* ---- Next0 Register Set ---- */
-        DMAC1.N0SA_n = src_addr;    /* Start address of transfer source      */
-        DMAC1.N0DA_n = dst_addr;    /* Start address of transfer destination */
-        DMAC1.N0TB_n = count;       /* Total transfer byte count             */
-    }
-    else
-    {
-        /* ---- Next1 Register Set ---- */
-        DMAC1.N1SA_n = src_addr;    /* Start address of transfer source      */
-        DMAC1.N1DA_n = dst_addr;    /* Start address of transfer destination */
-        DMAC1.N1TB_n = count;       /* Total transfer byte count             */
-     }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_DMAC2_PeriReqInit
-* Description  : Sets the register mode for DMA mode and the on-chip peripheral
-*              : module request for transfer request for DMAC channel 2.
-*              : Executes DMAC initial setting using the DMA information
-*              : specified by the argument *trans_info and the enabled/disabled
-*              : continuous transfer specified by the argument continuation.
-*              : Registers DMAC channel 2 interrupt handler function and sets
-*              : the interrupt priority level. Then enables transfer completion
-*              : interrupt.
-* Arguments    : dmac_transinfo_t * trans_info : Setting information to DMAC
-*              :                               : register
-*              : uint32_t dmamode      : DMA mode (only for DMAC_MODE_REGISTER)
-*              : uint32_t continuation : Set continuous transfer to be valid
-*              :                       : after DMA transfer has been completed
-*              :         DMAC_SAMPLE_CONTINUATION : Execute continuous transfer
-*              :         DMAC_SAMPLE_SINGLE       : Do not execute continuous
-*              :                                  : transfer
-*              : uint32_t request_factor : Factor for on-chip peripheral module
-*              :                         : request
-*              :         DMAC_REQ_OSTM0TINT : OSTM_0 compare match
-*              :         DMAC_REQ_OSTM1TINT : OSTM_1 compare match
-*              :         DMAC_REQ_TGI0A     : MTU2_0 input capture/compare match
-*              :                 :
-*              : uint32_t req_direction : Setting value of CHCFG_n register
-*              :                        : REQD bit
-*******************************************************************************/
-void usb0_function_DMAC2_PeriReqInit (const dmac_transinfo_t * trans_info,
-                                      uint32_t dmamode, uint32_t continuation,
-                                      uint32_t request_factor, uint32_t req_direction)
-{
-    /* ==== Register mode ==== */
-    if (DMAC_MODE_REGISTER == dmamode)
-    {
-        /* ==== Next0 register set ==== */
-        DMAC2.N0SA_n = trans_info->src_addr;        /* Start address of transfer source      */
-        DMAC2.N0DA_n = trans_info->dst_addr;        /* Start address of transfer destination */
-        DMAC2.N0TB_n = trans_info->count;           /* Total transfer byte count             */
-
-        /* DAD : Transfer destination address counting direction */
-        /* SAD : Transfer source address counting direction      */
-        /* DDS : Transfer destination transfer size              */
-        /* SDS : Transfer source transfer size                   */
-        RZA_IO_RegWrite_32(&DMAC2.CHCFG_n,
-                            trans_info->daddr_dir,
-                            DMAC2_CHCFG_n_DAD_SHIFT,
-                            DMAC2_CHCFG_n_DAD);
-        RZA_IO_RegWrite_32(&DMAC2.CHCFG_n,
-                            trans_info->saddr_dir,
-                            DMAC2_CHCFG_n_SAD_SHIFT,
-                            DMAC2_CHCFG_n_SAD);
-        RZA_IO_RegWrite_32(&DMAC2.CHCFG_n,
-                            trans_info->dst_size,
-                            DMAC2_CHCFG_n_DDS_SHIFT,
-                            DMAC2_CHCFG_n_DDS);
-        RZA_IO_RegWrite_32(&DMAC2.CHCFG_n,
-                            trans_info->src_size,
-                            DMAC2_CHCFG_n_SDS_SHIFT,
-                            DMAC2_CHCFG_n_SDS);
-
-        /* DMS  : Register mode                            */
-        /* RSEL : Select Next0 register set                */
-        /* SBE  : No discharge of buffer data when aborted */
-        /* DEM  : No DMA interrupt mask                    */
-        RZA_IO_RegWrite_32(&DMAC2.CHCFG_n,
-                            0,
-                            DMAC2_CHCFG_n_DMS_SHIFT,
-                            DMAC2_CHCFG_n_DMS);
-        RZA_IO_RegWrite_32(&DMAC2.CHCFG_n,
-                            0,
-                            DMAC2_CHCFG_n_RSEL_SHIFT,
-                            DMAC2_CHCFG_n_RSEL);
-        RZA_IO_RegWrite_32(&DMAC2.CHCFG_n,
-                            0,
-                            DMAC2_CHCFG_n_SBE_SHIFT,
-                            DMAC2_CHCFG_n_SBE);
-        RZA_IO_RegWrite_32(&DMAC2.CHCFG_n,
-                            0,
-                            DMAC2_CHCFG_n_DEM_SHIFT,
-                            DMAC2_CHCFG_n_DEM);
-
-        /* ---- Continuous transfer ---- */
-        if (DMAC_SAMPLE_CONTINUATION == continuation)
-        {
-            /* REN : Execute continuous transfer                         */
-            /* RSW : Change register set when DMA transfer is completed. */
-            RZA_IO_RegWrite_32(&DMAC2.CHCFG_n,
-                                1,
-                                DMAC2_CHCFG_n_REN_SHIFT,
-                                DMAC2_CHCFG_n_REN);
-            RZA_IO_RegWrite_32(&DMAC2.CHCFG_n,
-                                1,
-                                DMAC2_CHCFG_n_RSW_SHIFT,
-                                DMAC2_CHCFG_n_RSW);
-        }
-        /* ---- Single transfer ---- */
-        else
-        {
-            /* REN : Do not execute continuous transfer                         */
-            /* RSW : Do not change register set when DMA transfer is completed. */
-            RZA_IO_RegWrite_32(&DMAC2.CHCFG_n,
-                                0,
-                                DMAC2_CHCFG_n_REN_SHIFT,
-                                DMAC2_CHCFG_n_REN);
-            RZA_IO_RegWrite_32(&DMAC2.CHCFG_n,
-                                0,
-                                DMAC2_CHCFG_n_RSW_SHIFT,
-                                DMAC2_CHCFG_n_RSW);
-        }
-
-        /* TM  : Single transfer                          */
-        /* SEL : Channel setting                          */
-        /* HIEN, LOEN : On-chip peripheral module request */
-        RZA_IO_RegWrite_32(&DMAC2.CHCFG_n,
-                            0,
-                            DMAC2_CHCFG_n_TM_SHIFT,
-                            DMAC2_CHCFG_n_TM);
-        RZA_IO_RegWrite_32(&DMAC2.CHCFG_n,
-                            2,
-                            DMAC2_CHCFG_n_SEL_SHIFT,
-                            DMAC2_CHCFG_n_SEL);
-        RZA_IO_RegWrite_32(&DMAC2.CHCFG_n,
-                            1,
-                            DMAC2_CHCFG_n_HIEN_SHIFT,
-                            DMAC2_CHCFG_n_HIEN);
-        RZA_IO_RegWrite_32(&DMAC2.CHCFG_n,
-                            0,
-                            DMAC2_CHCFG_n_LOEN_SHIFT,
-                            DMAC2_CHCFG_n_LOEN);
-
-        /* ---- Set factor by specified on-chip peripheral module request ---- */
-        RZA_IO_RegWrite_32(&DMAC2.CHCFG_n,
-                            usb0_function_dmac_peri_req_init_table[request_factor][DMAC_REQ_AM],
-                            DMAC2_CHCFG_n_AM_SHIFT,
-                            DMAC2_CHCFG_n_AM);
-        RZA_IO_RegWrite_32(&DMAC2.CHCFG_n,
-                            usb0_function_dmac_peri_req_init_table[request_factor][DMAC_REQ_LVL],
-                            DMAC2_CHCFG_n_LVL_SHIFT,
-                            DMAC2_CHCFG_n_LVL);
-        if (usb0_function_dmac_peri_req_init_table[request_factor][DMAC_REQ_REQD] != DMAC_INDEFINE)
-        {
-            RZA_IO_RegWrite_32(&DMAC2.CHCFG_n,
-                                usb0_function_dmac_peri_req_init_table[request_factor][DMAC_REQ_REQD],
-                                DMAC2_CHCFG_n_REQD_SHIFT,
-                                DMAC2_CHCFG_n_REQD);
-        }
-        else
-        {
-            RZA_IO_RegWrite_32(&DMAC2.CHCFG_n,
-                                req_direction,
-                                DMAC2_CHCFG_n_REQD_SHIFT,
-                                DMAC2_CHCFG_n_REQD);
-        }
-        RZA_IO_RegWrite_32(&DMAC23.DMARS,
-                            usb0_function_dmac_peri_req_init_table[request_factor][DMAC_REQ_RID],
-                            DMAC23_DMARS_CH2_RID_SHIFT,
-                            DMAC23_DMARS_CH2_RID);
-        RZA_IO_RegWrite_32(&DMAC23.DMARS,
-                            usb0_function_dmac_peri_req_init_table[request_factor][DMAC_REQ_MID],
-                            DMAC23_DMARS_CH2_MID_SHIFT,
-                            DMAC23_DMARS_CH2_MID);
-
-        /* PR : Round robin mode */
-        RZA_IO_RegWrite_32(&DMAC07.DCTRL_0_7,
-                            1,
-                            DMAC07_DCTRL_0_7_PR_SHIFT,
-                            DMAC07_DCTRL_0_7_PR);
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_DMAC2_Open
-* Description  : Enables DMAC channel 2 transfer.
-* Arguments    : uint32_t req : DMAC request mode
-* Return Value :  0 : Succeeded in enabling DMA transfer
-*              : -1 : Failed to enable DMA transfer (due to DMA operation)
-*******************************************************************************/
-int32_t usb0_function_DMAC2_Open (uint32_t req)
-{
-    int32_t ret;
-    volatile uint8_t dummy;
-
-    /* Transferable? */
-    if ((0 == RZA_IO_RegRead_32(&DMAC.CHSTAT_2,
-                                DMAC2_CHSTAT_n_EN_SHIFT,
-                                DMAC2_CHSTAT_n_EN)) &&
-        (0 == RZA_IO_RegRead_32(&DMAC.CHSTAT_2,
-                                DMAC2_CHSTAT_n_TACT_SHIFT,
-                                DMAC2_CHSTAT_n_TACT)))
-    {
-        /* Clear Channel Status Register */
-        RZA_IO_RegWrite_32(&DMAC2.CHCTRL_n,
-                            1,
-                            DMAC2_CHCTRL_n_SWRST_SHIFT,
-                            DMAC2_CHCTRL_n_SWRST);
-        dummy = RZA_IO_RegRead_32(&DMAC2.CHCTRL_n,
-                                DMAC2_CHCTRL_n_SWRST_SHIFT,
-                                DMAC2_CHCTRL_n_SWRST);
-        /* Enable DMA transfer */
-        RZA_IO_RegWrite_32(&DMAC2.CHCTRL_n,
-                            1,
-                            DMAC2_CHCTRL_n_SETEN_SHIFT,
-                            DMAC2_CHCTRL_n_SETEN);
-
-        /* ---- Request by software ---- */
-        if (DMAC_REQ_MODE_SOFT == req)
-        {
-            /* DMA transfer Request by software */
-            RZA_IO_RegWrite_32(&DMAC2.CHCTRL_n,
-                                1,
-                                DMAC2_CHCTRL_n_STG_SHIFT,
-                                DMAC2_CHCTRL_n_STG);
-        }
-
-        ret = 0;
-    }
-    else
-    {
-        ret = -1;
-    }
-
-    return ret;
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_DMAC2_Close
-* Description  : Aborts DMAC channel 2 transfer. Returns the remaining transfer
-*              : byte count at the time of DMA transfer abort to the argument
-*              : *remain.
-* Arguments    : uint32_t * remain : Remaining transfer byte count when
-*              :                   : DMA transfer is aborted
-* Return Value : none
-*******************************************************************************/
-void usb0_function_DMAC2_Close (uint32_t * remain)
-{
-
-    /* ==== Abort transfer ==== */
-    RZA_IO_RegWrite_32(&DMAC2.CHCTRL_n,
-                        1,
-                        DMAC2_CHCTRL_n_CLREN_SHIFT,
-                        DMAC2_CHCTRL_n_CLREN);
-
-    while (1 == RZA_IO_RegRead_32(&DMAC2.CHSTAT_n,
-                                DMAC2_CHSTAT_n_TACT_SHIFT,
-                                DMAC2_CHSTAT_n_TACT))
-    {
-        /* Loop until transfer is aborted */
-    }
-
-    while (1 == RZA_IO_RegRead_32(&DMAC2.CHSTAT_n,
-                                DMAC2_CHSTAT_n_EN_SHIFT,
-                                DMAC2_CHSTAT_n_EN))
-    {
-        /* Loop until 0 is set in EN before checking the remaining transfer byte count */
-    }
-    /* ==== Obtain remaining transfer byte count ==== */
-    *remain = DMAC2.CRTB_n;
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_DMAC2_Load_Set
-* Description  : Sets the transfer source address, transfer destination
-*              : address, and total transfer byte count respectively
-*              : specified by the argument src_addr, dst_addr, and count to
-*              : DMAC channel 2 as DMA transfer information.
-*              : Sets the register set selected by the CHCFG_n register
-*              : RSEL bit from the Next0 or Next1 register set.
-*              : This function should be called when DMA transfer of DMAC
-*              : channel 2 is aboted.
-* Arguments    : uint32_t src_addr : Transfer source address
-*              : uint32_t dst_addr : Transfer destination address
-*              : uint32_t count    : Total transfer byte count
-* Return Value : none
-*******************************************************************************/
-void usb0_function_DMAC2_Load_Set (uint32_t src_addr, uint32_t dst_addr, uint32_t count)
-{
-    uint8_t reg_set;
-
-    /* Obtain register set in use */
-    reg_set = RZA_IO_RegRead_32(&DMAC2.CHSTAT_n,
-                                DMAC2_CHSTAT_n_SR_SHIFT,
-                                DMAC2_CHSTAT_n_SR);
-
-    /* ==== Load ==== */
-    if (0 == reg_set)
-    {
-        /* ---- Next0 Register Set ---- */
-        DMAC2.N0SA_n = src_addr;     /* Start address of transfer source      */
-        DMAC2.N0DA_n = dst_addr;     /* Start address of transfer destination */
-        DMAC2.N0TB_n = count;        /* Total transfer byte count             */
-    }
-    else
-    {
-        /* ---- Next1 Register Set ---- */
-        DMAC2.N1SA_n = src_addr;     /* Start address of transfer source      */
-        DMAC2.N1DA_n = dst_addr;     /* Start address of transfer destination */
-        DMAC2.N1TB_n = count;        /* Total transfer byte count             */
-     }
-}
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb0/src/userdef/usb0_function_userdef.c	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,762 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb0_function_userdef.c
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Device(s)    : RZ/A1H
-* Tool-Chain   :
-* OS           : None
-* H/W Platform :
-* Description  : RZ/A1H R7S72100 USB Sample Program
-* Operation    :
-* Limitations  :
-*******************************************************************************/
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include <stdio.h>
-#include "r_typedefs.h"
-#include "iodefine.h"
-#include "devdrv_usb_function_api.h"
-#include "usb0_function_dmacdrv.h"  /* common DMAC driver for USB */
-
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-#define DUMMY_ACCESS OSTM0CNT
-
-/* #define CACHE_WRITEBACK */
-
-
-/*******************************************************************************
-Imported global variables and functions (from other files)
-*******************************************************************************/
-extern int32_t io_cwb(unsigned long start, unsigned long end);
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-static void usb0_function_enable_dmac0(uint32_t src, uint32_t dst, uint32_t count,
-                                       uint32_t size, uint32_t dir, uint32_t fifo, uint16_t dfacc);
-static void usb0_function_enable_dmac1(uint32_t src, uint32_t dst, uint32_t count,
-                                       uint32_t size, uint32_t dir, uint32_t fifo, uint16_t dfacc);
-static void Userdef_USB_usb0_function_delay_10us_2(void);
-
-
-/*******************************************************************************
-Private global variables and functions
-*******************************************************************************/
-
-
-/*******************************************************************************
-* Function Name: Userdef_USB_usb0_function_d0fifo_dmaintid
-* Description  : get D0FIFO DMA Interrupt ID
-* Arguments    : none
-* Return Value : D0FIFO DMA Interrupt ID
-*******************************************************************************/
-IRQn_Type Userdef_USB_usb0_function_d0fifo_dmaintid (void)
-{
-#if 0
-    return DMAINT1_IRQn;
-#else
-    return 0xFFFF;
-#endif
-}
-
-/*******************************************************************************
-* Function Name: Userdef_USB_usb0_function_d1fifo_dmaintid
-* Description  : get D1FIFO DMA Interrupt ID
-* Arguments    : none
-* Return Value : D1FIFO DMA Interrupt ID
-*******************************************************************************/
-IRQn_Type Userdef_USB_usb0_function_d1fifo_dmaintid (void)
-{
-#if 0
-    return DMAINT1_IRQn;
-#else
-    return 0xFFFF;
-#endif
-}
-
-/*******************************************************************************
-* Function Name: Userdef_USB_usb0_function_attach
-* Description  : Wait for the software of 1ms.
-*              : Alter this function according to the user's system.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-void Userdef_USB_usb0_function_attach (void)
-{
-    printf("\n");
-    printf("channel 0 attach device\n");
-    printf("\n");
-}
-
-/*******************************************************************************
-* Function Name: Userdef_USB_usb0_function_detach
-* Description  : Wait for the software of 1ms.
-*              : Alter this function according to the user's system.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-void Userdef_USB_usb0_function_detach (void)
-{
-    printf("\n");
-    printf("channel 0 detach device\n");
-    printf("\n");
-}
-
-/*******************************************************************************
-* Function Name: Userdef_USB_usb0_function_delay_1ms
-* Description  : Wait for the software of 1ms.
-*              : Alter this function according to the user's system.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-void Userdef_USB_usb0_function_delay_1ms (void)
-{
-    volatile int i;
-    volatile unsigned long tmp;
-
-    /*
-     * Wait 1ms (Please change for your MCU).
-     */
-    for (i = 0; i < 1440; ++i)
-    {
-        tmp = DUMMY_ACCESS;
-    }
-}
-
-/*******************************************************************************
-* Function Name: Userdef_USB_usb0_function_delay_xms
-* Description  : Wait for the software in the period of time specified by the
-*              : argument.
-*              : Alter this function according to the user's system.
-* Arguments    : uint32_t msec ; Wait Time (msec)
-* Return Value : none
-*******************************************************************************/
-void Userdef_USB_usb0_function_delay_xms (uint32_t msec)
-{
-    volatile unsigned short i;
-
-    for (i = 0; i < msec; ++i)
-    {
-        Userdef_USB_usb0_function_delay_1ms();
-    }
-}
-
-/*******************************************************************************
-* Function Name: Userdef_USB_usb0_function_delay_10us
-* Description  : Waits for software for the period specified by the argument.
-*              : Alter this function according to the user's system.
-* Arguments    : uint32_t usec ; Wait Time(x 10usec)
-* Return Value : none
-*******************************************************************************/
-void Userdef_USB_usb0_function_delay_10us (uint32_t usec)
-{
-    volatile int i;
-
-    /* Wait 10us (Please change for your MCU) */
-    for (i = 0; i < usec; ++i)
-    {
-        Userdef_USB_usb0_function_delay_10us_2();
-    }
-}
-
-/*******************************************************************************
-* Function Name: Userdef_USB_usb0_function_delay_10us_2
-* Description  : Waits for software for the period specified by the argument.
-*              : Alter this function according to the user's system.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-static void Userdef_USB_usb0_function_delay_10us_2 (void)
-{
-    volatile int i;
-    volatile unsigned long tmp;
-
-    /* Wait 1us (Please change for your MCU) */
-    for (i = 0; i < 14; ++i)
-    {
-        tmp = DUMMY_ACCESS;
-    }
-}
-
-/*******************************************************************************
-* Function Name: Userdef_USB_usb0_function_delay_500ns
-* Description  : Wait for software for 500ns.
-*              : Alter this function according to the user's system.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-void Userdef_USB_usb0_function_delay_500ns (void)
-{
-    volatile int i;
-    volatile unsigned long tmp;
-
-    /* Wait 500ns (Please change for your MCU) */
-    /* Wait 500ns I clock 266MHz */
-    tmp = DUMMY_ACCESS;
-}
-
-/*******************************************************************************
-* Function Name: Userdef_USB_usb0_function_start_dma
-* Description  : Enables DMA transfer on the information specified by the argument.
-*              : Set DMAC register by this function to enable DMA transfer.
-*              : After executing this function, USB module is set to start DMA
-*              : transfer. DMA transfer should not wait for DMA transfer complete.
-* Arguments    : USB_FUNCTION_DMA_t *dma   : DMA parameter
-*              :  typedef struct{
-*              :      uint32_t fifo;    FIFO for using
-*              :      uint32_t buffer;  Start address of transfer source/destination
-*              :      uint32_t bytes;   Transfer size(Byte)
-*              :      uint32_t dir;     Transfer direction(0:Buffer->FIFO, 1:FIFO->Buffer)
-*              :      uint32_t size;    DMA transfer size
-*              :   } USB_FUNCTION_DMA_t;
-*              : uint16_t dfacc ; 0 : cycle steal mode
-*              :                  1 : 16byte continuous mode
-*              :                  2 : 32byte continuous mode
-* Return Value : none
-*******************************************************************************/
-void Userdef_USB_usb0_function_start_dma (USB_FUNCTION_DMA_t * dma, uint16_t dfacc)
-{
-    uint32_t trncount;
-    uint32_t src;
-    uint32_t dst;
-    uint32_t size;
-    uint32_t dir;
-#ifdef CACHE_WRITEBACK
-    uint32_t ptr;
-#endif
-
-    trncount = dma->bytes;
-    dir      = dma->dir;
-
-    if (dir == USB_FUNCTION_FIFO2BUF)
-    {
-        /* DxFIFO determination */
-        dst = dma->buffer;
-#ifndef __USB_FUNCTION_DF_ACC_ENABLE__
-        if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-        {
-            src = (uint32_t)(&USB200.D0FIFO.UINT32);
-        }
-        else
-        {
-            src = (uint32_t)(&USB200.D1FIFO.UINT32);
-        }
-        size = dma->size;
-
-        if (size == 0)
-        {
-            src += 3;       /* byte access  */
-        }
-        else if (size == 1)
-        {
-            src += 2;       /* short access */
-        }
-        else
-        {
-            /* Do Nothing */
-        }
-#else
-        size = dma->size;
-
-        if (size == 2)
-        {
-            /* 32bit access */
-            if (dfacc == 2)
-            {
-                /* 32byte access */
-                if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-                {
-                    src = (uint32_t)(&USB200.D0FIFOB0);
-                }
-                else
-                {
-                    src = (uint32_t)(&USB200.D1FIFOB0);
-                }
-            }
-            else if (dfacc == 1)
-            {
-                /* 16byte access */
-                if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-                {
-                    src = (uint32_t)(&USB200.D0FIFOB0);
-                }
-                else
-                {
-                    src = (uint32_t)(&USB200.D1FIFOB0);
-                }
-            }
-            else
-            {
-                /* normal access */
-                if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-                {
-                    src = (uint32_t)(&USB200.D0FIFO.UINT32);
-                }
-                else
-                {
-                    src = (uint32_t)(&USB200.D1FIFO.UINT32);
-                }
-            }
-        }
-        else if (size == 1)
-        {
-            /* 16bit access */
-            dfacc = 0;      /* force normal access */
-
-            if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-            {
-                src = (uint32_t)(&USB200.D0FIFO.UINT32);
-            }
-            else
-            {
-                src = (uint32_t)(&USB200.D1FIFO.UINT32);
-            }
-            src += 2;       /* short access */
-        }
-        else
-        {
-            /* 8bit access */
-            dfacc = 0;      /* force normal access */
-
-            if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-            {
-                src = (uint32_t)(&USB200.D0FIFO.UINT32);
-            }
-            else
-            {
-                src = (uint32_t)(&USB200.D1FIFO.UINT32);
-            }
-            src += 3;       /* byte access */
-        }
-#endif
-    }
-    else
-    {
-        /* DxFIFO determination */
-        src = dma->buffer;
-#ifndef __USB_FUNCTION_DF_ACC_ENABLE__
-        if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-        {
-            dst = (uint32_t)(&USB200.D0FIFO.UINT32);
-        }
-        else
-        {
-            dst = (uint32_t)(&USB200.D1FIFO.UINT32);
-        }
-        size = dma->size;
-
-        if (size == 0)
-        {
-            dst += 3;       /* byte access  */
-        }
-        else if (size == 1)
-        {
-            dst += 2;       /* short access */
-        }
-        else
-        {
-            /* Do Nothing */
-        }
-#else
-        size = dma->size;
-
-        if (size == 2)
-        {
-            /* 32bit access */
-            if (dfacc == 2)
-            {
-                /* 32byte access */
-                if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-                {
-                    dst = (uint32_t)(&USB200.D0FIFOB0);
-                }
-                else
-                {
-                    dst = (uint32_t)(&USB200.D1FIFOB0);
-                }
-            }
-            else if (dfacc == 1)
-            {
-                /* 16byte access */
-                if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-                {
-                    dst = (uint32_t)(&USB200.D0FIFOB0);
-                }
-                else
-                {
-                    dst = (uint32_t)(&USB200.D1FIFOB0);
-                }
-            }
-            else
-            {
-                /* normal access */
-                if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-                {
-                    dst = (uint32_t)(&USB200.D0FIFO.UINT32);
-                }
-                else
-                {
-                    dst = (uint32_t)(&USB200.D1FIFO.UINT32);
-                }
-            }
-        }
-        else if (size == 1)
-        {
-            /* 16bit access */
-            dfacc = 0;      /* force normal access */
-            if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-            {
-                dst = (uint32_t)(&USB200.D0FIFO.UINT32);
-            }
-            else
-            {
-                dst = (uint32_t)(&USB200.D1FIFO.UINT32);
-            }
-            dst += 2;       /* short access */
-        }
-        else
-        {
-            /* 8bit access */
-            dfacc = 0;      /* force normal access */
-
-            if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-            {
-                dst = (uint32_t)(&USB200.D0FIFO.UINT32);
-            }
-            else
-            {
-                dst = (uint32_t)(&USB200.D1FIFO.UINT32);
-            }
-            dst += 3;       /* byte access  */
-        }
-#endif
-    }
-
-#ifdef CACHE_WRITEBACK
-    ptr = (uint32_t)dma->buffer;
-
-    if ((ptr & 0x20000000ul) == 0)
-    {
-        io_cwb((uint32_t)ptr, (uint32_t)(ptr) + trncount);
-    }
-#endif
-
-    if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-    {
-        usb0_function_enable_dmac0(src, dst, trncount, size, dir, dma->fifo, dfacc);
-    }
-    else
-    {
-        usb0_function_enable_dmac1(src, dst, trncount, size, dir, dma->fifo, dfacc);
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_enable_dmac0
-* Description  : Enables DMA transfer on the information specified by the argument.
-* Arguments    : uint32_t src   : src address
-*              : uint32_t dst   : dst address
-*              : uint32_t count : transfer byte
-*              : uint32_t size  : transfer size
-*              : uint32_t dir   : direction
-*              : uint32_t fifo  : FIFO(D0FIFO or D1FIFO)
-*              : uint16_t dfacc : 0 : normal access
-*              :                : 1 : 16byte access
-*              :                : 2 : 32byte access
-* Return Value : none
-*******************************************************************************/
-static void usb0_function_enable_dmac0 (uint32_t src, uint32_t dst, uint32_t count,
-                                        uint32_t size, uint32_t dir, uint32_t fifo, uint16_t dfacc)
-{
-    dmac_transinfo_t trans_info;
-    uint32_t         request_factor = 0;
-    int32_t          ret;
-
-    /* ==== Variable setting for DMAC initialization ==== */
-    trans_info.src_addr = (uint32_t)src;                /* Start address of transfer source      */
-    trans_info.dst_addr = (uint32_t)dst;                /* Start address of transfer destination */
-    trans_info.count    = (uint32_t)count;              /* Total byte count to be transferred    */
-#ifndef __USB_FUNCTION_DF_ACC_ENABLE__
-    if (size == 0)
-    {
-        trans_info.src_size = DMAC_TRANS_SIZE_8;        /* Transfer source transfer size      */
-        trans_info.dst_size = DMAC_TRANS_SIZE_8;        /* Transfer destination transfer size */
-    }
-    else if (size == 1)
-    {
-        trans_info.src_size = DMAC_TRANS_SIZE_16;       /* Transfer source transfer size      */
-        trans_info.dst_size = DMAC_TRANS_SIZE_16;       /* Transfer destination transfer size */
-    }
-    else if (size == 2)
-    {
-        trans_info.src_size = DMAC_TRANS_SIZE_32;       /* Transfer source transfer size      */
-        trans_info.dst_size = DMAC_TRANS_SIZE_32;       /* Transfer destination transfer size */
-    }
-    else
-    {
-        printf("size error!!\n");
-    }
-#else
-    if (dfacc == 2)
-    {
-        /* 32byte access */
-        trans_info.src_size = DMAC_TRANS_SIZE_256;      /* Transfer source transfer size      */
-        trans_info.dst_size = DMAC_TRANS_SIZE_256;      /* Transfer destination transfer size */
-    }
-    else if (dfacc == 1)
-    {
-        /* 16byte access */
-        trans_info.src_size = DMAC_TRANS_SIZE_128;      /* Transfer source transfer size      */
-        trans_info.dst_size = DMAC_TRANS_SIZE_128;      /* Transfer destination transfer size */
-    }
-    else
-    {
-        /* normal access */
-        if (size == 0)
-        {
-            trans_info.src_size = DMAC_TRANS_SIZE_8;    /* Transfer source transfer size      */
-            trans_info.dst_size = DMAC_TRANS_SIZE_8;    /* Transfer destination transfer size */
-        }
-        else if (size == 1)
-        {
-            trans_info.src_size = DMAC_TRANS_SIZE_16;   /* Transfer source transfer size      */
-            trans_info.dst_size = DMAC_TRANS_SIZE_16;   /* Transfer destination transfer size */
-        }
-        else if (size == 2)
-        {
-            trans_info.src_size = DMAC_TRANS_SIZE_32;   /* Transfer source transfer size      */
-            trans_info.dst_size = DMAC_TRANS_SIZE_32;   /* Transfer destination transfer size */
-        }
-        else
-        {
-            printf("size error!!\n");
-        }
-    }
-#endif
-
-    if (dir == USB_FUNCTION_FIFO2BUF)
-    {
-        request_factor =DMAC_REQ_USB0_DMA0_RX;          /* USB_0 channel 0 receive FIFO full               */
-        trans_info.saddr_dir = DMAC_TRANS_ADR_NO_INC;   /* Count direction of transfer source address      */
-        trans_info.daddr_dir = DMAC_TRANS_ADR_INC;      /* Count direction of transfer destination address */
-    }
-    else if (dir == USB_FUNCTION_BUF2FIFO)
-    {
-        request_factor =DMAC_REQ_USB0_DMA0_TX;          /* USB_0 channel 0 receive FIFO empty              */
-        trans_info.saddr_dir = DMAC_TRANS_ADR_INC;      /* Count direction of transfer source address      */
-        trans_info.daddr_dir = DMAC_TRANS_ADR_NO_INC;   /* Count direction of transfer destination address */
-    }
-    else
-    {
-        /* Do Nothing */
-    }
-
-    /* ==== DMAC initialization ==== */
-    usb0_function_DMAC1_PeriReqInit((const dmac_transinfo_t *)&trans_info,
-                                    DMAC_MODE_REGISTER,
-                                    DMAC_SAMPLE_SINGLE,
-                                    request_factor,
-                                    0);     /* Don't care DMAC_REQ_REQD is setting in
-                                            usb0_function_DMAC1_PeriReqInit() */
-
-    /* ==== DMAC startup ==== */
-    ret = usb0_function_DMAC1_Open(DMAC_REQ_MODE_PERI);
-    if (ret != 0)
-    {
-        printf("DMAC1 Open error!!\n");
-    }
-
-    return;
-}
-
-/*******************************************************************************
-* Function Name: usb0_function_enable_dmac1
-* Description  : Enables DMA transfer on the information specified by the argument.
-* Arguments    : uint32_t src   : src address
-*              : uint32_t dst   : dst address
-*              : uint32_t count : transfer byte
-*              : uint32_t size  : transfer size
-*              : uint32_t dir   : direction
-*              : uint32_t fifo  : FIFO(D0FIFO or D1FIFO)
-*              : uint16_t dfacc : 0 : normal access
-*              :                : 1 : 16byte access
-*              :                : 2 : 32byte access
-* Return Value : none
-*******************************************************************************/
-static void usb0_function_enable_dmac1 (uint32_t src, uint32_t dst, uint32_t count,
-                                        uint32_t size, uint32_t dir, uint32_t fifo, uint16_t dfacc)
-{
-    dmac_transinfo_t trans_info;
-    uint32_t         request_factor = 0;
-    int32_t          ret;
-
-    /* ==== Variable setting for DMAC initialization ==== */
-    trans_info.src_addr = (uint32_t)src;                /* Start address of transfer source      */
-    trans_info.dst_addr = (uint32_t)dst;                /* Start address of transfer destination */
-    trans_info.count    = (uint32_t)count;              /* Total byte count to be transferred    */
-#ifndef __USB_FUNCTION_DF_ACC_ENABLE__
-    if (size == 0)
-    {
-        trans_info.src_size = DMAC_TRANS_SIZE_8;        /* Transfer source transfer size      */
-        trans_info.dst_size = DMAC_TRANS_SIZE_8;        /* Transfer destination transfer size */
-    }
-    else if (size == 1)
-    {
-        trans_info.src_size = DMAC_TRANS_SIZE_16;       /* Transfer source transfer size      */
-        trans_info.dst_size = DMAC_TRANS_SIZE_16;       /* Transfer destination transfer size */
-    }
-    else if (size == 2)
-    {
-        trans_info.src_size = DMAC_TRANS_SIZE_32;       /* Transfer source transfer size      */
-        trans_info.dst_size = DMAC_TRANS_SIZE_32;       /* Transfer destination transfer size */
-    }
-    else
-    {
-        printf("size error!!\n");
-    }
-#else
-    if (dfacc == 2)
-    {
-        /* 32byte access */
-        trans_info.src_size = DMAC_TRANS_SIZE_256;      /* Transfer source transfer size      */
-        trans_info.dst_size = DMAC_TRANS_SIZE_256;      /* Transfer destination transfer size */
-    }
-    else if (dfacc == 1)
-    {
-        /* 16byte access */
-        trans_info.src_size = DMAC_TRANS_SIZE_128;      /* Transfer source transfer size      */
-        trans_info.dst_size = DMAC_TRANS_SIZE_128;      /* Transfer destination transfer size */
-    }
-    else
-    {
-        /* normal access */
-        if (size == 0)
-        {
-            trans_info.src_size = DMAC_TRANS_SIZE_8;    /* Transfer source transfer size      */
-            trans_info.dst_size = DMAC_TRANS_SIZE_8;    /* Transfer destination transfer size */
-        }
-        else if (size == 1)
-        {
-            trans_info.src_size = DMAC_TRANS_SIZE_16;   /* Transfer source transfer size      */
-            trans_info.dst_size = DMAC_TRANS_SIZE_16;   /* Transfer destination transfer size */
-        }
-        else if (size == 2)
-        {
-            trans_info.src_size = DMAC_TRANS_SIZE_32;   /* Transfer source transfer size      */
-            trans_info.dst_size = DMAC_TRANS_SIZE_32;   /* Transfer destination transfer size */
-        }
-        else
-        {
-            printf("size error!!\n");
-        }
-    }
-#endif
-
-    if (dir == USB_FUNCTION_FIFO2BUF)
-    {
-        request_factor =DMAC_REQ_USB0_DMA1_RX;          /* USB_0 channel 0 receive FIFO full               */
-        trans_info.saddr_dir = DMAC_TRANS_ADR_NO_INC;   /* Count direction of transfer source address      */
-        trans_info.daddr_dir = DMAC_TRANS_ADR_INC;      /* Count direction of transfer destination address */
-    }
-    else if (dir == USB_FUNCTION_BUF2FIFO)
-    {
-        request_factor =DMAC_REQ_USB0_DMA1_TX;          /* USB_0 channel 0 receive FIFO empty              */
-        trans_info.saddr_dir = DMAC_TRANS_ADR_INC;      /* Count direction of transfer source address      */
-        trans_info.daddr_dir = DMAC_TRANS_ADR_NO_INC;   /* Count direction of transfer destination address */
-    }
-    else
-    {
-        /* Do Nothing */
-    }
-
-    /* ==== DMAC initialization ==== */
-    usb0_function_DMAC2_PeriReqInit((const dmac_transinfo_t *)&trans_info,
-                                    DMAC_MODE_REGISTER,
-                                    DMAC_SAMPLE_SINGLE,
-                                    request_factor,
-                                    0);     /* Don't care DMAC_REQ_REQD is setting in
-                                            usb0_function_DMAC1_PeriReqInit() */
-
-    /* ==== DMAC startup ==== */
-    ret = usb0_function_DMAC2_Open(DMAC_REQ_MODE_PERI);
-    if (ret != 0)
-    {
-        printf("DMAC2 Open error!!\n");
-    }
-
-    return;
-}
-
-/*******************************************************************************
-* Function Name: Userdef_USB_usb0_function_stop_dma0
-* Description  : Disables DMA transfer.
-*              : This function should be executed to DMAC executed at the time
-*              : of specification of D0_FIF0_DMA in dma->fifo.
-* Arguments    : none
-* Return Value : uint32_t return Transfer Counter register(DMATCRn) value
-*              : regarding to the bus width.
-*******************************************************************************/
-uint32_t Userdef_USB_usb0_function_stop_dma0 (void)
-{
-    uint32_t remain;
-
-    /* ==== DMAC release ==== */
-    usb0_function_DMAC1_Close(&remain);
-
-    return remain;
-}
-
-/*******************************************************************************
-* Function Name: Userdef_USB_usb0_function_stop_dma1
-* Description  : Disables DMA transfer.
-*              : This function should be executed to DMAC executed at the time
-*              : of specification of D1_FIF0_DMA in dma->fifo.
-* Arguments    : none
-* Return Value : uint32_t return Transfer Counter register(DMATCRn) value
-*              : regarding to the bus width.
-*******************************************************************************/
-uint32_t Userdef_USB_usb0_function_stop_dma1 (void)
-{
-    uint32_t remain;
-
-    /* ==== DMAC release ==== */
-    usb0_function_DMAC2_Close(&remain);
-
-    return remain;
-}
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/inc/usb1_function.h	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,171 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb1_function.h
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Description  : RZ/A1H R7S72100 USB Sample Program
-*******************************************************************************/
-#ifndef USB1_FUNCTION_H
-#define USB1_FUNCTION_H
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include "devdrv_usb_function_api.h"
-#include "usb_function.h"
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Imported global variables and functions (from other files)
-*******************************************************************************/
-extern const uint16_t       g_usb1_function_bit_set[];
-extern uint32_t             g_usb1_function_data_count[USB_FUNCTION_MAX_PIPE_NO + 1];
-extern uint8_t              *g_usb1_function_data_pointer[USB_FUNCTION_MAX_PIPE_NO + 1];
-
-extern uint16_t             g_usb1_function_PipeIgnore[];
-extern uint16_t             g_usb1_function_PipeTbl[];
-extern uint16_t             g_usb1_function_pipe_status[];
-extern uint32_t             g_usb1_function_PipeDataSize[];
-
-extern USB_FUNCTION_DMA_t   g_usb1_function_DmaInfo[];
-extern uint16_t             g_usb1_function_DmaPipe[];
-extern uint16_t             g_usb1_function_DmaBval[];
-extern uint16_t             g_usb1_function_DmaStatus[];
-
-extern uint16_t             g_usb1_function_CtrZeroLengthFlag;
-
-extern uint16_t             g_usb1_function_ConfigNum;
-extern uint16_t             g_usb1_function_Alternate[USB_FUNCTION_ALT_NO];
-extern uint16_t             g_usb1_function_RemoteWakeupFlag;
-extern uint16_t             g_usb1_function_TestModeFlag;
-extern uint16_t             g_usb1_function_TestModeSelectors;
-
-extern uint16_t             g_usb1_function_ReqType;
-extern uint16_t             g_usb1_function_ReqTypeType;
-extern uint16_t             g_usb1_function_ReqTypeRecip;
-extern uint16_t             g_usb1_function_ReqRequest;
-extern uint16_t             g_usb1_function_ReqValue;
-extern uint16_t             g_usb1_function_ReqIndex;
-extern uint16_t             g_usb1_function_ReqLength;
-
-extern uint16_t             g_usb1_function_EPTableIndex[USB_FUNCTION_MAX_EP_NO + 1];
-
-extern uint16_t             g_usb1_function_pipecfg[USB_FUNCTION_MAX_PIPE_NO + 1];
-extern uint16_t             g_usb1_function_pipebuf[USB_FUNCTION_MAX_PIPE_NO + 1];
-extern uint16_t             g_usb1_function_pipemaxp[USB_FUNCTION_MAX_PIPE_NO + 1];
-extern uint16_t             g_usb1_function_pipeperi[USB_FUNCTION_MAX_PIPE_NO + 1];
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-/* ==== common ==== */
-void     usb1_function_dma_stop_d0(uint16_t pipe, uint32_t remain);
-void     usb1_function_dma_stop_d1(uint16_t pipe, uint32_t remain);
-uint16_t usb1_function_is_hispeed(void);
-uint16_t usb1_function_is_hispeed_enable(void);
-uint16_t usb1_function_start_send_transfer(uint16_t pipe, uint32_t size, uint8_t *data);
-uint16_t usb1_function_write_buffer(uint16_t pipe);
-uint16_t usb1_function_write_buffer_c(uint16_t pipe);
-uint16_t usb1_function_write_buffer_d0(uint16_t pipe);
-uint16_t usb1_function_write_buffer_d1(uint16_t pipe);
-void     usb1_function_start_receive_transfer(uint16_t pipe, uint32_t size, uint8_t *data);
-uint16_t usb1_function_read_buffer(uint16_t pipe);
-uint16_t usb1_function_read_buffer_c(uint16_t pipe);
-uint16_t usb1_function_read_buffer_d0(uint16_t pipe);
-uint16_t usb1_function_read_buffer_d1(uint16_t pipe);
-uint16_t usb1_function_change_fifo_port(uint16_t pipe, uint16_t fifosel, uint16_t isel, uint16_t mbw);
-void     usb1_function_set_curpipe(uint16_t pipe, uint16_t fifosel, uint16_t isel, uint16_t mbw);
-void     usb1_function_set_curpipe2(uint16_t pipe, uint16_t fifosel, uint16_t isel, uint16_t mbw, uint16_t dfacc);
-uint16_t usb1_function_get_mbw(uint32_t trncount, uint32_t dtptr);
-uint16_t usb1_function_read_dma(uint16_t pipe);
-void     usb1_function_brdy_int(uint16_t status, uint16_t int_enb);
-void     usb1_function_nrdy_int(uint16_t status, uint16_t int_enb);
-void     usb1_function_bemp_int(uint16_t status, uint16_t int_enb);
-void     usb1_function_setting_interrupt(uint8_t level);
-void     usb1_function_reset_module(uint16_t clockmode);
-uint16_t usb1_function_get_buf_size(uint16_t pipe);
-uint16_t usb1_function_get_mxps(uint16_t pipe);
-void     usb1_function_clear_brdy_sts(uint16_t pipe);
-void     usb1_function_clear_bemp_sts(uint16_t pipe);
-void     usb1_function_clear_nrdy_sts(uint16_t pipe);
-void     usb1_function_set_pid_buf(uint16_t pipe);
-void     usb1_function_set_pid_nak(uint16_t pipe);
-void     usb1_function_set_pid_stall(uint16_t pipe);
-void     usb1_function_clear_pid_stall(uint16_t pipe);
-uint16_t usb1_function_get_pid(uint16_t pipe);
-void     usb1_function_set_sqclr(uint16_t pipe);
-void     usb1_function_set_sqset(uint16_t pipe);
-void     usb1_function_set_csclr(uint16_t pipe);
-void     usb1_function_aclrm(uint16_t pipe);
-void     usb1_function_set_aclrm(uint16_t pipe);
-void     usb1_function_clr_aclrm(uint16_t pipe);
-uint16_t usb1_function_get_sqmon(uint16_t pipe);
-uint16_t usb1_function_get_inbuf(uint16_t pipe);
-
-/* ==== function ==== */
-void     usb1_function_init_status(void);
-void     usb1_function_InitModule(uint16_t mode);
-uint16_t usb1_function_CheckVBUStaus(void);
-void     usb1_function_USB_FUNCTION_Attach(void);
-void     usb1_function_USB_FUNCTION_Detach(void);
-void     usb1_function_USB_FUNCTION_BusReset(void);
-void     usb1_function_USB_FUNCTION_Resume(void);
-void     usb1_function_USB_FUNCTION_Suspend(void);
-void     usb1_function_USB_FUNCTION_TestMode(void);
-void     usb1_function_ResetDCP(void);
-void     usb1_function_ResetEP(uint16_t num);
-uint16_t usb1_function_EpToPipe(uint16_t ep);
-void     usb1_function_InitEPTable(uint16_t Con_Num, uint16_t Int_Num, uint16_t Alt_Num);
-uint16_t usb1_function_GetConfigNum(void);
-uint16_t usb1_function_GetAltNum(uint16_t Con_Num, uint16_t Int_Num);
-uint16_t usb1_function_CheckRemoteWakeup(void);
-void     usb1_function_clear_alt(void);
-void     usb1_function_clear_pipe_tbl(void);
-void     usb1_function_clear_ep_table_index(void);
-uint16_t usb1_function_GetInterfaceNum(uint16_t num);
-
-#ifdef __cplusplus
-}
-#endif
-
-
-#endif /* USB1_FUNCTION_H */
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/inc/usb1_function_api.h	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb1_function_api.h
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Description  : RZ/A1H R7S72100 USB Sample Program
-*******************************************************************************/
-#ifndef USB1_FUNCTION_API_H
-#define USB1_FUNCTION_API_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Variable Externs
-*******************************************************************************/
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-void     usb1_api_function_init(uint8_t int_level, uint16_t mode, uint16_t clockmode);
-uint16_t usb1_api_function_IsConfigured(void);
-uint16_t usb1_function_GetDeviceState(void);
-uint16_t usb1_api_function_CtrlReadStart(uint32_t size, uint8_t *data);
-void     usb1_api_function_CtrlWriteStart(uint32_t size, uint8_t *data);
-uint16_t usb1_api_function_start_send_transfer(uint16_t pipe, uint32_t size, uint8_t *data);
-uint16_t usb1_api_function_check_pipe_status(uint16_t pipe, uint32_t *size);
-void     usb1_api_function_clear_pipe_status(uint16_t pipe);
-void     usb1_api_function_start_receive_transfer(uint16_t pipe, uint32_t size, uint8_t *data);
-void     usb1_api_function_set_pid_buf(uint16_t pipe);
-void     usb1_api_function_set_pid_nak(uint16_t pipe);
-void     usb1_api_function_set_pid_stall(uint16_t pipe);
-void     usb1_api_function_clear_pid_stall(uint16_t pipe);
-uint16_t usb1_api_function_get_pid(uint16_t pipe);
-int32_t  usb1_api_function_check_stall(uint16_t pipe);
-void     usb1_api_function_set_sqclr(uint16_t pipe);
-void     usb1_api_function_set_sqset(uint16_t pipe);
-void     usb1_api_function_set_csclr(uint16_t pipe);
-void     usb1_api_function_set_curpipe(uint16_t pipe, uint16_t fifosel, uint16_t isel, uint16_t mbw);
-void     usb1_api_function_clear_brdy_sts(uint16_t pipe);
-void     usb1_api_function_clear_bemp_sts(uint16_t pipe);
-void     usb1_api_function_clear_nrdy_sts(uint16_t pipe);
-
-void     usb1_function_ClearFeature(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_SetFeature(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_SetAddress(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_SetDescriptor(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_SetConfiguration(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_SetInterface(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_SynchFrame(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_GetStatus(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_GetDescriptor(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_GetConfiguration(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_GetInterface(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_Resrv_0(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_Resrv_123(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_Resrv_4(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-void     usb1_function_Resrv_5(uint16_t type, uint16_t value, uint16_t index, uint16_t length);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* USB1_FUNCTION_API_H */
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/inc/usb1_function_dmacdrv.h	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb1_function_dmacdrv.h
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Description  : RZ/A1H R7S72100 USB Sample Program
-*******************************************************************************/
-#ifndef USB1_FUNCTION_DMACDRV_H
-#define USB1_FUNCTION_DMACDRV_H
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-typedef struct dmac_transinfo
-{
-    uint32_t src_addr;      /* Transfer source address                */
-    uint32_t dst_addr;      /* Transfer destination address           */
-    uint32_t count;         /* Transfer byte count                    */
-    uint32_t src_size;      /* Transfer source data size              */
-    uint32_t dst_size;      /* Transfer destination data size         */
-    uint32_t saddr_dir;     /* Transfer source address direction      */
-    uint32_t daddr_dir;     /* Transfer destination address direction */
-} dmac_transinfo_t;
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-/* ==== Transfer specification of the sample program ==== */
-#define DMAC_SAMPLE_SINGLE          (0)     /* Single transfer                   */
-#define DMAC_SAMPLE_CONTINUATION    (1)     /* Continuous transfer (use REN bit) */
-
-/* ==== DMA modes ==== */
-#define DMAC_MODE_REGISTER          (0)     /* Register mode */
-#define DMAC_MODE_LINK              (1)     /* Link mode     */
-
-/* ==== Transfer requests ==== */
-#define DMAC_REQ_MODE_EXT           (0)     /* External request                   */
-#define DMAC_REQ_MODE_PERI          (1)     /* On-chip peripheral module request  */
-#define DMAC_REQ_MODE_SOFT          (2)     /* Auto-request (request by software) */
-
-/* ==== DMAC transfer sizes ==== */
-#define DMAC_TRANS_SIZE_8           (0)     /* 8 bits    */
-#define DMAC_TRANS_SIZE_16          (1)     /* 16 bits   */
-#define DMAC_TRANS_SIZE_32          (2)     /* 32 bits   */
-#define DMAC_TRANS_SIZE_64          (3)     /* 64 bits   */
-#define DMAC_TRANS_SIZE_128         (4)     /* 128 bits  */
-#define DMAC_TRANS_SIZE_256         (5)     /* 256 bits  */
-#define DMAC_TRANS_SIZE_512         (6)     /* 512 bits  */
-#define DMAC_TRANS_SIZE_1024        (7)     /* 1024 bits */
-
-/* ==== Address increment for transferring ==== */
-#define DMAC_TRANS_ADR_NO_INC       (1)     /* Not increment */
-#define DMAC_TRANS_ADR_INC          (0)     /* Increment     */
-
-/* ==== Method for detecting DMA request ==== */
-#define DMAC_REQ_DET_FALL           (0)     /* Falling edge detection */
-#define DMAC_REQ_DET_RISE           (1)     /* Rising edge detection  */
-#define DMAC_REQ_DET_LOW            (2)     /* Low level detection    */
-#define DMAC_REQ_DET_HIGH           (3)     /* High level detection   */
-
-/* ==== Request Direction ==== */
-#define DMAC_REQ_DIR_SRC            (0)     /* DMAREQ is the source/ DMAACK is active when reading      */
-#define DMAC_REQ_DIR_DST            (1)     /* DMAREQ is the destination/ DMAACK is active when writing */
-
-/* ==== Descriptors ==== */
-#define DMAC_DESC_HEADER            (0)     /* Header              */
-#define DMAC_DESC_SRC_ADDR          (1)     /* Source Address      */
-#define DMAC_DESC_DST_ADDR          (2)     /* Destination Address */
-#define DMAC_DESC_COUNT             (3)     /* Transaction Byte    */
-#define DMAC_DESC_CHCFG             (4)     /* Channel Confg       */
-#define DMAC_DESC_CHITVL            (5)     /* Channel Interval    */
-#define DMAC_DESC_CHEXT             (6)     /* Channel Extension   */
-#define DMAC_DESC_LINK_ADDR         (7)     /* Link Address        */
-
-/* ==== On-chip peripheral module requests ===== */
-typedef enum dmac_request_factor
-{
-    DMAC_REQ_USB0_DMA0_TX,      /* USB_0 channel 0 transmit FIFO empty            */
-    DMAC_REQ_USB0_DMA0_RX,      /* USB_0 channel 0 receive FIFO full              */
-    DMAC_REQ_USB0_DMA1_TX,      /* USB_0 channel 1 transmit FIFO empty            */
-    DMAC_REQ_USB0_DMA1_RX,      /* USB_0 channel 1 receive FIFO full              */
-    DMAC_REQ_USB1_DMA0_TX,      /* USB_1 channel 0 transmit FIFO empty            */
-    DMAC_REQ_USB1_DMA0_RX,      /* USB_1 channel 0 receive FIFO full              */
-    DMAC_REQ_USB1_DMA1_TX,      /* USB_1 channel 1 transmit FIFO empty            */
-    DMAC_REQ_USB1_DMA1_RX,      /* USB_1 channel 1 receive FIFO full              */
-} dmac_request_factor_t;
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-void usb1_function_DMAC3_PeriReqInit(const dmac_transinfo_t *trans_info, uint32_t dmamode, uint32_t continuation,
-                                        uint32_t request_factor, uint32_t req_direction);
-int32_t usb1_function_DMAC3_Open(uint32_t req);
-void usb1_function_DMAC3_Close(uint32_t *remain);
-void usb1_function_DMAC3_Load_Set(uint32_t src_addr, uint32_t dst_addr, uint32_t count);
-
-void usb1_function_DMAC4_PeriReqInit(const dmac_transinfo_t *trans_info, uint32_t dmamode, uint32_t continuation,
-                                        uint32_t request_factor, uint32_t req_direction);
-int32_t usb1_function_DMAC4_Open(uint32_t req);
-void usb1_function_DMAC4_Close(uint32_t *remain);
-void usb1_function_DMAC4_Load_Set(uint32_t src_addr, uint32_t dst_addr, uint32_t count);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* USB1_FUNCTION_DMACDRV_H */
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/common/usb1_function_dataio.c	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2932 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb1_function_dataio.c
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Device(s)    : RZ/A1H
-* Tool-Chain   :
-* OS           : None
-* H/W Platform :
-* Description  : RZ/A1H R7S72100 USB Sample Program
-* Operation    :
-* Limitations  :
-*******************************************************************************/
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include "usb1_function.h"
-
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Imported global variables and functions (from other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Private global variables and functions
-*******************************************************************************/
-static uint16_t g_usb1_function_mbw[(USB_FUNCTION_MAX_PIPE_NO + 1)];
-
-static void     usb1_function_start_receive_trns_c(uint16_t pipe, uint32_t size, uint8_t *data);
-static void     usb1_function_start_receive_trns_d0(uint16_t pipe, uint32_t size, uint8_t *data);
-static void     usb1_function_start_receive_trns_d1(uint16_t pipe, uint32_t size, uint8_t *data);
-static void     usb1_function_start_receive_dma_d0(uint16_t pipe, uint32_t size, uint8_t *data);
-static void     usb1_function_start_receive_dma_d1(uint16_t pipe, uint32_t size, uint8_t *data);
-static uint16_t usb1_function_read_dma_d0(uint16_t pipe);
-static uint16_t usb1_function_read_dma_d1(uint16_t pipe);
-static uint16_t usb1_function_write_dma_d0(uint16_t pipe);
-static uint16_t usb1_function_write_dma_d1(uint16_t pipe);
-
-static void     usb1_function_read_c_fifo(uint16_t pipe, uint16_t count);
-static void     usb1_function_write_c_fifo(uint16_t Pipe, uint16_t count);
-static void     usb1_function_read_d0_fifo(uint16_t pipe, uint16_t count);
-static void     usb1_function_write_d0_fifo(uint16_t pipe, uint16_t count);
-static void     usb1_function_read_d1_fifo(uint16_t pipe, uint16_t count);
-static void     usb1_function_write_d1_fifo(uint16_t pipe, uint16_t count);
-
-static void     usb1_function_clear_transaction_counter(uint16_t pipe);
-static void     usb1_function_set_transaction_counter(uint16_t pipe, uint32_t count);
-
-static uint32_t usb1_function_com_get_dmasize(uint32_t trncount, uint32_t dtptr);
-
-static uint16_t usb1_function_set_dfacc_d0(uint16_t mbw, uint32_t count);
-static uint16_t usb1_function_set_dfacc_d1(uint16_t mbw, uint32_t count);
-
-
-/*******************************************************************************
-* Function Name: usb1_function_start_send_transfer
-* Description  : Starts the USB data communication using pipe specified by the argument.
-* Arguments    : uint16_t  pipe    ; Pipe Number
-*              : uint32_t size     ; Data Size
-*              : uint8_t  *data    ; Data Address
-* Return Value : DEVDRV_USBF_WRITEEND           ; Write end
-*              : DEVDRV_USBF_WRITESHRT          ; short data
-*              : DEVDRV_USBF_WRITING            ; Continue of data write
-*              : DEVDRV_USBF_WRITEDMA           ; Write DMA
-*              : DEVDRV_USBF_FIFOERROR          ; FIFO status
-*******************************************************************************/
-uint16_t usb1_function_start_send_transfer (uint16_t pipe, uint32_t size, uint8_t * data)
-{
-    uint16_t status;
-    uint16_t usefifo;
-    uint16_t mbw;
-
-    g_usb1_function_data_count[pipe]   = size;
-    g_usb1_function_data_pointer[pipe] = (uint8_t *)data;
-    g_usb1_function_pipe_status[pipe]  = DEVDRV_USBF_PIPE_WAIT;
-
-    usb1_function_clear_bemp_sts(pipe);
-    usb1_function_clear_brdy_sts(pipe);
-    usb1_function_clear_nrdy_sts(pipe);
-
-    mbw = usb1_function_get_mbw(size, (uint32_t)data);
-
-    usefifo = (uint16_t)(g_usb1_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE);
-
-    switch (usefifo)
-    {
-        case USB_FUNCTION_D0FIFO_USE:
-        case USB_FUNCTION_D0FIFO_DMA:
-            usefifo = USB_FUNCTION_D0USE;
-        break;
-
-        case USB_FUNCTION_D1FIFO_USE:
-        case USB_FUNCTION_D1FIFO_DMA:
-            usefifo = USB_FUNCTION_D1USE;
-        break;
-
-        default:
-            usefifo = USB_FUNCTION_CUSE;
-        break;
-    };
-
-    usb1_function_set_curpipe(USB_FUNCTION_PIPE0, usefifo, DEVDRV_USBF_NO, mbw);
-
-    usb1_function_clear_transaction_counter(pipe);
-
-    usb1_function_aclrm(pipe);
-
-    status = usb1_function_write_buffer(pipe);
-
-    if (status != DEVDRV_USBF_FIFOERROR)
-    {
-        usb1_function_set_pid_buf(pipe);
-    }
-
-    return status;
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_write_buffer
-* Description  : Writes data in the buffer allocated in the pipe specified by
-*              : the argument. The FIFO for using is set in the pipe definition table.
-* Arguments    : uint16_t pipe      ; Pipe Number
-* Return Value : DEVDRV_USBF_WRITEEND           ; Write end
-*              : DEVDRV_USBF_WRITESHRT          ; short data
-*              : DEVDRV_USBF_WRITING            ; Continue of data write
-*              : DEVDRV_USBF_WRITEDMA           ; Write DMA
-*              : DEVDRV_USBF_FIFOERROR          ; FIFO status
-*******************************************************************************/
-uint16_t usb1_function_write_buffer (uint16_t pipe)
-{
-    uint16_t status;
-    uint16_t usefifo;
-
-    g_usb1_function_PipeIgnore[pipe] = 0;
-    usefifo = (uint16_t)(g_usb1_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE);
-
-    switch (usefifo)
-    {
-        case USB_FUNCTION_D0FIFO_USE:
-            status = usb1_function_write_buffer_d0(pipe);
-        break;
-
-        case USB_FUNCTION_D1FIFO_USE:
-            status = usb1_function_write_buffer_d1(pipe);
-        break;
-
-        case USB_FUNCTION_D0FIFO_DMA:
-            status = usb1_function_write_dma_d0(pipe);
-        break;
-
-        case USB_FUNCTION_D1FIFO_DMA:
-            status = usb1_function_write_dma_d1(pipe);
-        break;
-
-        default:
-            status = usb1_function_write_buffer_c(pipe);
-        break;
-    };
-
-    switch (status)
-    {
-        case DEVDRV_USBF_WRITING:                       /* Continue of data write */
-            usb1_function_enable_nrdy_int(pipe);        /* Error (NORES or STALL) */
-            usb1_function_enable_brdy_int(pipe);        /* Enable Ready Interrupt */
-        break;
-
-        case DEVDRV_USBF_WRITEEND:                      /* End of data write */
-        case DEVDRV_USBF_WRITESHRT:                     /* End of data write */
-            usb1_function_disable_brdy_int(pipe);       /* Disable Ready Interrupt */
-            usb1_function_clear_nrdy_sts(pipe);
-            usb1_function_enable_nrdy_int(pipe);        /* Error (NORES or STALL) */
-            /* for last transfer */
-            usb1_function_enable_bemp_int(pipe);        /* Enable Empty Interrupt */
-        break;
-
-        case DEVDRV_USBF_WRITEDMA:                      /* DMA write */
-            usb1_function_clear_nrdy_sts(pipe);
-            usb1_function_enable_nrdy_int(pipe);        /* Error (NORES or STALL) */
-        break;
-
-        case DEVDRV_USBF_FIFOERROR:                     /* FIFO access status */
-        default:
-            usb1_function_disable_brdy_int(pipe);       /* Disable Ready Interrupt */
-            usb1_function_disable_bemp_int(pipe);       /* Disable Empty Interrupt */
-            g_usb1_function_pipe_status[pipe] = DEVDRV_USBF_FIFOERROR;
-        break;
-    }
-
-    return status;                      /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_write_buffer_c
-* Description  : Writes data in the buffer allocated in the pipe specified in
-*              : the argument. Writes data by CPU transfer using CFIFO.
-* Arguments    : uint16_t pipe      ; Pipe Number
-* Return Value : DEVDRV_USBF_WRITEEND           ; Write end
-*              : DEVDRV_USBF_WRITESHRT          ; short data
-*              : DEVDRV_USBF_WRITING            ; Continue of data write
-*              : DEVDRV_USBF_WRITEDMA           ; Write DMA
-*              : DEVDRV_USBF_FIFOERROR          ; FIFO status
-*******************************************************************************/
-uint16_t usb1_function_write_buffer_c (uint16_t pipe)
-{
-    uint32_t count;
-    uint16_t size;
-    uint16_t buffer;
-    uint16_t mxps;
-    uint16_t status;
-    uint16_t mbw;
-
-    if (g_usb1_function_CtrZeroLengthFlag == 1)
-    {
-        g_usb1_function_CtrZeroLengthFlag = 0;                  /* Zero Length Packet Flag CLR */
-        return DEVDRV_USBF_WRITEEND;
-    }
-
-    mbw = usb1_function_get_mbw(g_usb1_function_data_count[pipe], (uint32_t)g_usb1_function_data_pointer[pipe]);
-    if (pipe == USB_FUNCTION_PIPE0)
-    {
-        buffer = usb1_function_change_fifo_port(pipe, USB_FUNCTION_CUSE, USB_FUNCTION_CFIFO_WRITE, mbw);
-    }
-    else
-    {
-        buffer = usb1_function_change_fifo_port(pipe, USB_FUNCTION_CUSE, DEVDRV_USBF_NO, mbw);
-    }
-
-    if (buffer == DEVDRV_USBF_FIFOERROR)                        /* FIFO access status */
-    {
-        return DEVDRV_USBF_FIFOERROR;
-    }
-
-    size = usb1_function_get_buf_size(pipe);                    /* Data buffer size */
-    mxps = usb1_function_get_mxps(pipe);                        /* Max Packet Size */
-
-    if (g_usb1_function_data_count[pipe] <= (uint32_t)size)
-    {
-        status = DEVDRV_USBF_WRITEEND;                          /* write continues */
-        count  = g_usb1_function_data_count[pipe];
-
-        if (count == 0)
-        {
-            status = DEVDRV_USBF_WRITESHRT;                     /* Null Packet is end of write */
-        }
-
-        if ((count % mxps) != 0)
-        {
-            status = DEVDRV_USBF_WRITESHRT;                     /* Short Packet is end of write */
-        }
-    }
-    else
-    {
-        status = DEVDRV_USBF_WRITING;                           /* write continues */
-        count  = (uint32_t)size;
-    }
-
-    usb1_function_write_c_fifo(pipe, (uint16_t)count);
-
-    if (g_usb1_function_data_count[pipe] < (uint32_t)size)
-    {
-        g_usb1_function_data_count[pipe] = 0;
-
-        if (RZA_IO_RegRead_16(&USB201.CFIFOCTR, USB_CFIFOCTR_BVAL_SHIFT, USB_CFIFOCTR_BVAL) == 0)
-        {
-            USB201.CFIFOCTR = USB_FUNCTION_BITBVAL;             /* Short Packet */
-            g_usb1_function_CtrZeroLengthFlag = 1;              /* Zero Length Packet Flag */
-        }
-    }
-    else
-    {
-        g_usb1_function_data_count[pipe] -= count;
-    }
-
-    return status;                                              /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_write_buffer_d0
-* Description  : Writes data in the buffer allocated in the pipe specified in the argument.
-*              : Writes data by CPU transfer using D0FIFO.
-* Arguments    : uint16_t pipe      ; Pipe Number
-* Return Value : DEVDRV_USBF_WRITEEND           ; Write end
-*              : DEVDRV_USBF_WRITESHRT          ; short data
-*              : DEVDRV_USBF_WRITING            ; Continue of data write
-*              : DEVDRV_USBF_WRITEDMA           ; Write DMA
-*              : DEVDRV_USBF_FIFOERROR          ; FIFO status
-*******************************************************************************/
-uint16_t usb1_function_write_buffer_d0 (uint16_t pipe)
-{
-    uint32_t count;
-    uint16_t size;
-    uint16_t buffer;
-    uint16_t mxps;
-    uint16_t status;
-    uint16_t mbw;
-
-    mbw    = usb1_function_get_mbw(g_usb1_function_data_count[pipe], (uint32_t)g_usb1_function_data_pointer[pipe]);
-    buffer = usb1_function_change_fifo_port(pipe, USB_FUNCTION_D0USE, DEVDRV_USBF_NO, mbw);
-    if (buffer == DEVDRV_USBF_FIFOERROR)                        /* FIFO access status */
-    {
-        return DEVDRV_USBF_FIFOERROR;
-    }
-
-    size = usb1_function_get_buf_size(pipe);                    /* Data buffer size */
-    mxps = usb1_function_get_mxps(pipe);                        /* Max Packet Size */
-
-    if (g_usb1_function_data_count[pipe] <= (uint32_t)size)
-    {
-        status = DEVDRV_USBF_WRITEEND;                          /* write continues */
-        count  = g_usb1_function_data_count[pipe];
-
-        if (count == 0)
-        {
-            status = DEVDRV_USBF_WRITESHRT;                     /* Null Packet is end of write */
-        }
-
-        if ((count % mxps) != 0)
-        {
-            status = DEVDRV_USBF_WRITESHRT;                     /* Short Packet is end of write */
-        }
-    }
-    else
-    {
-        status = DEVDRV_USBF_WRITING;                           /* write continues */
-        count  = (uint32_t)size;
-    }
-
-    usb1_function_write_d0_fifo(pipe, (uint16_t)count);
-
-    if (g_usb1_function_data_count[pipe] < (uint32_t)size)
-    {
-        g_usb1_function_data_count[pipe] = 0;
-        if (RZA_IO_RegRead_16(&USB201.D0FIFOCTR, USB_DnFIFOCTR_BVAL_SHIFT, USB_DnFIFOCTR_BVAL) == 0)
-        {
-            USB201.D0FIFOCTR = USB_FUNCTION_BITBVAL;            /* Short Packet */
-        }
-    }
-    else
-    {
-        g_usb1_function_data_count[pipe] -= count;
-    }
-
-    return status;                                              /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_write_buffer_d1
-* Description  : Writes data in the buffer allocated in the pipe specified in the argument.
-*              : Writes data by CPU transfer using D1FIFO.
-* Arguments    : uint16_t pipe      ; Pipe Number
-* Return Value : DEVDRV_USBF_WRITEEND           ; Write end
-*              : DEVDRV_USBF_WRITESHRT          ; short data
-*              : DEVDRV_USBF_WRITING            ; Continue of data write
-*              : DEVDRV_USBF_WRITEDMA           ; Write DMA
-*              : DEVDRV_USBF_FIFOERROR          ; FIFO status
-*******************************************************************************/
-uint16_t usb1_function_write_buffer_d1 (uint16_t pipe)
-{
-    uint32_t count;
-    uint16_t size;
-    uint16_t buffer;
-    uint16_t mxps;
-    uint16_t status;
-    uint16_t mbw;
-
-    mbw = usb1_function_get_mbw(g_usb1_function_data_count[pipe], (uint32_t)g_usb1_function_data_pointer[pipe]);
-    buffer = usb1_function_change_fifo_port(pipe, USB_FUNCTION_D1USE, DEVDRV_USBF_NO, mbw);
-
-    if (buffer == DEVDRV_USBF_FIFOERROR)                        /* FIFO access status */
-    {
-        return DEVDRV_USBF_FIFOERROR;
-    }
-
-    size = usb1_function_get_buf_size(pipe);                    /* Data buffer size */
-    mxps = usb1_function_get_mxps(pipe);                        /* Max Packet Size */
-
-    if (g_usb1_function_data_count[pipe] <= (uint32_t)size)
-    {
-        status = DEVDRV_USBF_WRITEEND;                          /* write continues */
-        count  = g_usb1_function_data_count[pipe];
-
-        if (count == 0)
-        {
-            status = DEVDRV_USBF_WRITESHRT;                     /* Null Packet is end of write */
-        }
-
-        if ((count % mxps) != 0)
-        {
-            status = DEVDRV_USBF_WRITESHRT;                     /* Short Packet is end of write */
-        }
-    }
-    else
-    {
-        status = DEVDRV_USBF_WRITING;                           /* write continues */
-        count  = (uint32_t)size;
-    }
-
-    usb1_function_write_d1_fifo(pipe, (uint16_t)count);
-
-    if (g_usb1_function_data_count[pipe] < (uint32_t)size)
-    {
-        g_usb1_function_data_count[pipe] = 0;
-
-        if (RZA_IO_RegRead_16(&USB201.D1FIFOCTR, USB_DnFIFOCTR_BVAL_SHIFT, USB_DnFIFOCTR_BVAL) == 0)
-        {
-            USB201.D1FIFOCTR = USB_FUNCTION_BITBVAL;            /* Short Packet */
-        }
-    }
-    else
-    {
-        g_usb1_function_data_count[pipe] -= count;
-    }
-
-    return status;                                              /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_write_dma_d0
-* Description  : Writes data in the buffer allocated in the pipe specified in the argument.
-*              : Writes data by DMA transfer using D0FIFO.
-*              : The DMA-ch for using is specified by Userdef_USB_usb1_function_start_dma().
-* Arguments    : uint16_t pipe     ; Pipe Number
-* Return Value : DEVDRV_USBF_WRITEEND           : Write end
-*              : DEVDRV_USBF_WRITESHRT          : short data
-*              : DEVDRV_USBF_WRITING            : Continue of data write
-*              : DEVDRV_USBF_WRITEDMA           : Write DMA
-*              : DEVDRV_USBF_FIFOERROR          : FIFO status
-*******************************************************************************/
-static uint16_t usb1_function_write_dma_d0 (uint16_t pipe)
-{
-    uint32_t count;
-    uint16_t size;
-    uint16_t buffer;
-    uint16_t status;
-    uint16_t mbw;
-    uint16_t dfacc = 0;
-
-    mbw = usb1_function_get_mbw(g_usb1_function_data_count[pipe], (uint32_t)g_usb1_function_data_pointer[pipe]);
-    buffer = usb1_function_change_fifo_port(pipe, USB_FUNCTION_D0DMA, DEVDRV_USBF_NO, mbw);
-
-    if (buffer == DEVDRV_USBF_FIFOERROR)                            /* FIFO access status */
-    {
-        return DEVDRV_USBF_FIFOERROR;
-    }
-
-    size  = usb1_function_get_buf_size(pipe);                       /* Data buffer size */
-    count = g_usb1_function_data_count[pipe];
-
-    if (count != 0)
-    {
-        g_usb1_function_DmaPipe[USB_FUNCTION_D0FIFO] = pipe;
-
-        if ((count % size) != 0)
-        {
-            g_usb1_function_DmaBval[USB_FUNCTION_D0FIFO] = 1;
-        }
-        else
-        {
-            g_usb1_function_DmaBval[USB_FUNCTION_D0FIFO] = 0;
-        }
-
-        dfacc = usb1_function_set_dfacc_d0(mbw, count);
-
-        if (mbw == USB_FUNCTION_BITMBW_32)
-        {
-            g_usb1_function_DmaInfo[USB_FUNCTION_D0FIFO].size = 2;  /* 32bit transfer */
-        }
-        else if (mbw == USB_FUNCTION_BITMBW_16)
-        {
-            g_usb1_function_DmaInfo[USB_FUNCTION_D0FIFO].size = 1;  /* 16bit transfer */
-        }
-        else
-        {
-            g_usb1_function_DmaInfo[USB_FUNCTION_D0FIFO].size = 0;  /* 8bit transfer */
-        }
-
-        g_usb1_function_DmaInfo[USB_FUNCTION_D0FIFO].fifo   = USB_FUNCTION_D0FIFO_DMA;
-        g_usb1_function_DmaInfo[USB_FUNCTION_D0FIFO].dir    = USB_FUNCTION_BUF2FIFO;
-        g_usb1_function_DmaInfo[USB_FUNCTION_D0FIFO].buffer = (uint32_t)g_usb1_function_data_pointer[pipe];
-        g_usb1_function_DmaInfo[USB_FUNCTION_D0FIFO].bytes  = count;
-
-        Userdef_USB_usb1_function_start_dma(&g_usb1_function_DmaInfo[USB_FUNCTION_D0FIFO], dfacc);
-
-        usb1_function_set_curpipe2(pipe, USB_FUNCTION_D0DMA, DEVDRV_USBF_NO, mbw, dfacc);
-
-        RZA_IO_RegWrite_16(&USB201.D0FIFOSEL, 1, USB_DnFIFOSEL_DREQE_SHIFT, USB_DnFIFOSEL_DREQE);
-
-        g_usb1_function_data_count[pipe]    = 0;
-        g_usb1_function_data_pointer[pipe] += count;
-        status = DEVDRV_USBF_WRITEDMA;                              /* DMA write  */
-    }
-    else
-    {
-        if (RZA_IO_RegRead_16(&USB201.D0FIFOCTR, USB_DnFIFOCTR_BVAL_SHIFT, USB_DnFIFOCTR_BVAL) == 0)
-        {
-            RZA_IO_RegWrite_16(&USB201.D0FIFOCTR, 1, USB_DnFIFOCTR_BVAL_SHIFT, USB_DnFIFOCTR_BVAL); /* Short Packet */
-        }
-        status = DEVDRV_USBF_WRITESHRT;                             /* Short Packet is end of write */
-    }
-
-    return status;                                                  /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_write_dma_d1
-* Description  : Writes data in the buffer allocated in the pipe specified in the argument.
-*              : Writes data by DMA transfer using D1FIFO.
-*              : The DMA-ch for using is specified by Userdef_USB_usb1_function_start_dma().
-* Arguments    : uint16_t pipe      ; Pipe Number
-* Return Value : DEVDRV_USBF_WRITEEND           : Write end
-*              : DEVDRV_USBF_WRITESHRT          : short data
-*              : DEVDRV_USBF_WRITING            : Continue of data write
-*              : DEVDRV_USBF_WRITEDMA           : Write DMA
-*              : DEVDRV_USBF_FIFOERROR          : FIFO status
-*******************************************************************************/
-static uint16_t usb1_function_write_dma_d1 (uint16_t pipe)
-{
-    uint32_t count;
-    uint16_t size;
-    uint16_t buffer;
-    uint16_t status;
-    uint16_t mbw;
-    uint16_t dfacc=0;
-
-    mbw = usb1_function_get_mbw(g_usb1_function_data_count[pipe], (uint32_t)g_usb1_function_data_pointer[pipe]);
-    buffer = usb1_function_change_fifo_port(pipe, USB_FUNCTION_D1DMA, DEVDRV_USBF_NO, mbw);
-
-    if (buffer == DEVDRV_USBF_FIFOERROR)                            /* FIFO access status */
-    {
-        return DEVDRV_USBF_FIFOERROR;
-    }
-
-    size  = usb1_function_get_buf_size(pipe);                       /* Data buffer size */
-    count = g_usb1_function_data_count[pipe];
-
-    if (count != 0)
-    {
-        g_usb1_function_DmaPipe[USB_FUNCTION_D1FIFO] = pipe;
-        if ((count % size) != 0)
-        {
-            g_usb1_function_DmaBval[USB_FUNCTION_D1FIFO] = 1;
-        }
-        else
-        {
-            g_usb1_function_DmaBval[USB_FUNCTION_D1FIFO] = 0;
-        }
-
-        dfacc = usb1_function_set_dfacc_d1(mbw, count);
-
-        if (mbw == USB_FUNCTION_BITMBW_32)
-        {
-            g_usb1_function_DmaInfo[USB_FUNCTION_D1FIFO].size = 2;  /* 32bit transfer */
-        }
-        else if (mbw == USB_FUNCTION_BITMBW_16)
-        {
-            g_usb1_function_DmaInfo[USB_FUNCTION_D1FIFO].size = 1;  /* 16bit transfer */
-        }
-        else
-        {
-            g_usb1_function_DmaInfo[USB_FUNCTION_D1FIFO].size = 0;  /* 8bit transfer */
-        }
-
-        g_usb1_function_DmaInfo[USB_FUNCTION_D1FIFO].fifo   = USB_FUNCTION_D1FIFO_DMA;
-        g_usb1_function_DmaInfo[USB_FUNCTION_D1FIFO].dir    = USB_FUNCTION_BUF2FIFO;
-        g_usb1_function_DmaInfo[USB_FUNCTION_D1FIFO].buffer = (uint32_t)g_usb1_function_data_pointer[pipe];
-        g_usb1_function_DmaInfo[USB_FUNCTION_D1FIFO].bytes  = count;
-
-        Userdef_USB_usb1_function_start_dma(&g_usb1_function_DmaInfo[USB_FUNCTION_D1FIFO], dfacc);
-
-        usb1_function_set_curpipe2(pipe, USB_FUNCTION_D1DMA, DEVDRV_USBF_NO, mbw, dfacc);
-
-        RZA_IO_RegWrite_16(&USB201.D1FIFOSEL, 1, USB_DnFIFOSEL_DREQE_SHIFT, USB_DnFIFOSEL_DREQE);
-
-        g_usb1_function_data_count[pipe]    = 0;
-        g_usb1_function_data_pointer[pipe] += count;
-
-        status = DEVDRV_USBF_WRITEDMA;                              /* DMA write  */
-    }
-    else
-    {
-        if (RZA_IO_RegRead_16(&USB201.D1FIFOCTR, USB_DnFIFOCTR_BVAL_SHIFT, USB_DnFIFOCTR_BVAL) == 0)
-        {
-            RZA_IO_RegWrite_16(&USB201.D1FIFOCTR, 1, USB_DnFIFOCTR_BVAL_SHIFT, USB_DnFIFOCTR_BVAL); /* Short Packet */
-        }
-        status = DEVDRV_USBF_WRITESHRT;                             /* Short Packet is end of write */
-    }
-
-    return status;                                                  /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_start_receive_transfer
-* Description  : Starts USB data reception using the pipe specified in the argument.
-*              : The FIFO for using is set in the pipe definition table.
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint32_t size      ; Data Size
-*              : uint8_t *data      ; Data Address
-* Return Value : none
-*******************************************************************************/
-void usb1_function_start_receive_transfer (uint16_t pipe, uint32_t size, uint8_t * data)
-{
-    uint16_t usefifo;
-
-    usb1_function_clear_bemp_sts(pipe);
-    usb1_function_clear_brdy_sts(pipe);
-    usb1_function_clear_nrdy_sts(pipe);
-
-    usefifo = (uint16_t)(g_usb1_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE);
-
-    switch (usefifo)
-    {
-        case USB_FUNCTION_D0FIFO_USE:
-            usb1_function_start_receive_trns_d0(pipe, size, data);
-        break;
-
-        case USB_FUNCTION_D1FIFO_USE:
-            usb1_function_start_receive_trns_d1(pipe, size, data);
-        break;
-
-        case USB_FUNCTION_D0FIFO_DMA:
-            usb1_function_start_receive_dma_d0(pipe, size, data);
-        break;
-
-        case USB_FUNCTION_D1FIFO_DMA:
-            usb1_function_start_receive_dma_d1(pipe, size, data);
-        break;
-
-        default:
-            usb1_function_start_receive_trns_c(pipe, size, data);
-        break;
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_start_receive_trns_c
-* Description  : Reads data from the buffer allocated in the pipe specified in the argument.
-*              : Reads data by CPU transfer using CFIFO.
-*              : When storing data in the buffer allocated in the pipe specified in the
-*              : argument, BRDY interrupt is generated to read data
-*              : in the interrupt.
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint32_t size      ; Data Size
-*              : uint8_t *data      ; Data Address
-* Return Value : none
-*******************************************************************************/
-static void usb1_function_start_receive_trns_c (uint16_t pipe, uint32_t size, uint8_t * data)
-{
-    uint16_t mbw;
-
-    usb1_function_set_pid_nak(pipe);
-    g_usb1_function_data_count[pipe]   = size;
-    g_usb1_function_data_pointer[pipe] = (uint8_t *)data;
-    g_usb1_function_PipeIgnore[pipe]   = 0;
-
-    g_usb1_function_PipeDataSize[pipe] = size;
-    g_usb1_function_pipe_status[pipe]  = DEVDRV_USBF_PIPE_WAIT;
-
-    mbw = usb1_function_get_mbw(size, (uint32_t)data);
-    usb1_function_set_curpipe(USB_FUNCTION_PIPE0, USB_FUNCTION_CUSE, USB_FUNCTION_CFIFO_READ, mbw);
-    USB201.CFIFOCTR = USB_FUNCTION_BITBCLR;
-
-    usb1_function_set_transaction_counter(pipe, size);
-
-    usb1_function_aclrm(pipe);
-
-    usb1_function_enable_nrdy_int(pipe);
-    usb1_function_enable_brdy_int(pipe);
-
-    usb1_function_set_pid_buf(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_start_receive_trns_d0
-* Description  : Reads data from the buffer allocated in the pipe specified in the argument.
-*              : Reads data by CPU transfer using D0FIFO.
-*              : This function does not read data from the buffer.
-*              : When storing data in the buffer allocated in the pipe specified
-*              : in the argument, BRDY interrupt is generated to read data in the
-*              : interrupt.
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint32_t size      ; Data Size
-*              : uint8_t *data      ; Data Address
-* Return Value : none
-*******************************************************************************/
-static void usb1_function_start_receive_trns_d0 (uint16_t pipe, uint32_t size, uint8_t * data)
-{
-    uint16_t mbw;
-
-    usb1_function_set_pid_nak(pipe);
-    g_usb1_function_data_count[pipe]   = size;
-    g_usb1_function_data_pointer[pipe] = (uint8_t *)data;
-    g_usb1_function_PipeIgnore[pipe]   = 0;
-
-    g_usb1_function_PipeDataSize[pipe] = size;
-    g_usb1_function_pipe_status[pipe]  = DEVDRV_USBF_PIPE_WAIT;
-
-    mbw = usb1_function_get_mbw(size, (uint32_t)data);
-    usb1_function_set_curpipe(USB_FUNCTION_PIPE0, USB_FUNCTION_D0USE, DEVDRV_USBF_NO, mbw);
-
-    usb1_function_set_transaction_counter(pipe, size);
-
-    usb1_function_aclrm(pipe);
-
-    usb1_function_enable_nrdy_int(pipe);
-    usb1_function_enable_brdy_int(pipe);
-
-    usb1_function_set_pid_buf(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_start_receive_trns_d1
-* Description  : Reads data from the buffer allocated in the pipe specified in the argument.
-*              : Reads data by CPU transfer using D1FIFO.
-*              : This function does not read data from the buffer.
-*              : When storing data in the buffer allocated in the pipe specified
-*              : in the argument, BRDY interrupt is generated to read data.
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint32_t size      ; Data Size
-*              : uint8_t *data      ; Data Address
-* Return Value : none
-*******************************************************************************/
-static void usb1_function_start_receive_trns_d1 (uint16_t pipe, uint32_t size, uint8_t * data)
-{
-    uint16_t mbw;
-
-    usb1_function_set_pid_nak(pipe);
-    g_usb1_function_data_count[pipe]   = size;
-    g_usb1_function_data_pointer[pipe] = (uint8_t *)data;
-    g_usb1_function_PipeIgnore[pipe]   = 0;
-
-    g_usb1_function_PipeDataSize[pipe] = size;
-    g_usb1_function_pipe_status[pipe]  = DEVDRV_USBF_PIPE_WAIT;
-
-    mbw = usb1_function_get_mbw(size, (uint32_t)data);
-    usb1_function_set_curpipe(USB_FUNCTION_PIPE0, USB_FUNCTION_D1USE, DEVDRV_USBF_NO, mbw);
-
-    usb1_function_set_transaction_counter(pipe, size);
-
-    usb1_function_aclrm(pipe);
-
-    usb1_function_enable_nrdy_int(pipe);
-    usb1_function_enable_brdy_int(pipe);
-
-    usb1_function_set_pid_buf(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_start_receive_dma_d0
-* Description  : Reads data from the buffer allocated in the pipe specified in the argument.
-*              : Reads data by DMA transfer using D0FIFO.
-*              : This function does not read data from the buffer.
-*              : When storing data in the buffer allocated in the pipe specified
-*              : in the argument, delivered read request to DMAC to read data from
-*              : the buffer by DMAC.
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint32_t size      ; Data Size
-*              : uint8_t *data      ; Data Address
-* Return Value : none
-*******************************************************************************/
-static void usb1_function_start_receive_dma_d0 (uint16_t pipe, uint32_t size, uint8_t * data)
-{
-    uint16_t mbw;
-
-    usb1_function_set_pid_nak(pipe);
-    g_usb1_function_data_count[pipe]   = size;
-    g_usb1_function_data_pointer[pipe] = (uint8_t *)data;
-    g_usb1_function_PipeIgnore[pipe]   = 0;
-
-    g_usb1_function_PipeDataSize[pipe] = 0;
-    g_usb1_function_pipe_status[pipe]  = DEVDRV_USBF_PIPE_WAIT;
-
-    mbw = usb1_function_get_mbw(size, (uint32_t)data);
-    usb1_function_set_curpipe(USB_FUNCTION_PIPE0, USB_FUNCTION_D0USE, DEVDRV_USBF_NO, mbw);
-
-    usb1_function_set_transaction_counter(pipe, size);
-
-    usb1_function_aclrm(pipe);
-
-    if (RZA_IO_RegRead_16(&g_usb1_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 1)
-    {
-        usb1_function_read_dma(pipe);
-
-        usb1_function_enable_nrdy_int(pipe);
-        usb1_function_enable_brdy_int(pipe);
-    }
-    else
-    {
-        usb1_function_enable_nrdy_int(pipe);
-        usb1_function_enable_brdy_int(pipe);
-    }
-
-    usb1_function_set_pid_buf(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_start_receive_dma_d1
-* Description  : Read data from the buffer allocated in the pipe specified in the argument.
-*              : Reads data by DMA transfer using D0FIFO.
-*              : This function does not read data from the buffer.
-*              : When storing data in the buffer allocated in the pipe specified
-*              : in the argument, delivered read request to DMAC to read data from
-*              : the buffer by DMAC.
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint32_t size      ; Data Size
-*              : uint8_t *data      ; Data Address
-* Return Value : none
-*******************************************************************************/
-static void usb1_function_start_receive_dma_d1 (uint16_t pipe, uint32_t size, uint8_t * data)
-{
-    uint16_t mbw;
-
-    usb1_function_set_pid_nak(pipe);
-    g_usb1_function_data_count[pipe]   = size;
-    g_usb1_function_data_pointer[pipe] = (uint8_t *)data;
-    g_usb1_function_PipeIgnore[pipe]   = 0;
-
-    g_usb1_function_PipeDataSize[pipe] = 0;
-    g_usb1_function_pipe_status[pipe]  = DEVDRV_USBF_PIPE_WAIT;
-
-    mbw = usb1_function_get_mbw(size, (uint32_t)data);
-    usb1_function_set_curpipe(USB_FUNCTION_PIPE0, USB_FUNCTION_D1USE, DEVDRV_USBF_NO, mbw);
-
-    usb1_function_set_transaction_counter(pipe, size);
-
-    usb1_function_aclrm(pipe);
-
-    if (RZA_IO_RegRead_16(&g_usb1_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 1)
-    {
-        usb1_function_read_dma(pipe);
-
-        usb1_function_enable_nrdy_int(pipe);
-        usb1_function_enable_brdy_int(pipe);
-    }
-    else
-    {
-        usb1_function_enable_nrdy_int(pipe);
-        usb1_function_enable_brdy_int(pipe);
-    }
-
-    usb1_function_set_pid_buf(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_read_buffer
-* Description  : Reads data from the buffer allocated in the pipe specified
-*              : in the argument.
-*              : Uses FIF0 set in the pipe definition table.
-* Arguments    : uint16_t pipe     ; Pipe Number
-* Return Value : USB_FUNCTION_READEND          ; Read end
-*              : USB_FUNCTION_READSHRT         ; short data
-*              : USB_FUNCTION_READING          ; Continue of data read
-*              : USB_FUNCTION_READOVER         ; buffer over
-*              : DEVDRV_USBF_FIFOERROR         ; FIFO status
-*******************************************************************************/
-uint16_t usb1_function_read_buffer (uint16_t pipe)
-{
-    uint16_t status;
-
-    g_usb1_function_PipeIgnore[pipe] = 0;
-
-    if ((g_usb1_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE) == USB_FUNCTION_D0FIFO_USE)
-    {
-        status = usb1_function_read_buffer_d0(pipe);
-    }
-    else if ((g_usb1_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE) == USB_FUNCTION_D1FIFO_USE)
-    {
-        status = usb1_function_read_buffer_d1(pipe);
-    }
-    else
-    {
-        status = usb1_function_read_buffer_c(pipe);
-    }
-
-    switch (status)
-    {
-        case USB_FUNCTION_READING:                                      /* Continue of data read */
-        break;
-
-        case USB_FUNCTION_READEND:                                      /* End of data read */
-        case USB_FUNCTION_READSHRT:                                     /* End of data read */
-            usb1_function_disable_brdy_int(pipe);
-            g_usb1_function_PipeDataSize[pipe]   -= g_usb1_function_data_count[pipe];
-            g_usb1_function_pipe_status[pipe]     = DEVDRV_USBF_PIPE_DONE;
-        break;
-
-        case USB_FUNCTION_READOVER:                                     /* buffer over */
-            if ((g_usb1_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE) == USB_FUNCTION_D0FIFO_USE)
-            {
-                USB201.D0FIFOCTR = USB_FUNCTION_BITBCLR;                /* Clear BCLR */
-            }
-            else if ((g_usb1_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE) == USB_FUNCTION_D1FIFO_USE)
-            {
-                USB201.D1FIFOCTR = USB_FUNCTION_BITBCLR;                /* Clear BCLR */
-            }
-            else
-            {
-                USB201.CFIFOCTR = USB_FUNCTION_BITBCLR;                 /* Clear BCLR */
-            }
-            usb1_function_disable_brdy_int(pipe);                       /* Disable Ready Interrupt */
-            g_usb1_function_PipeDataSize[pipe] -= g_usb1_function_data_count[pipe];
-            g_usb1_function_pipe_status[pipe]   = DEVDRV_USBF_FIFOERROR;
-        break;
-
-        case DEVDRV_USBF_FIFOERROR:                                     /* FIFO access status */
-        default:
-            usb1_function_disable_brdy_int(pipe);                       /* Disable Ready Interrupt */
-            g_usb1_function_pipe_status[pipe] = DEVDRV_USBF_FIFOERROR;
-        break;
-    }
-
-    return status;                                                      /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_read_buffer_c
-* Description  : Reads data from the buffer allocated in the pipe specified in the argument.
-*              : Reads data by CPU transfer using CFIFO.
-* Arguments    : uint16_t pipe     ; Pipe Number
-* Return Value : USB_FUNCTION_READEND          ; Read end
-*              : USB_FUNCTION_READSHRT         ; short data
-*              : USB_FUNCTION_READING          ; Continue of data read
-*              : USB_FUNCTION_READOVER         ; buffer over
-*              : DEVDRV_USBF_FIFOERROR         ; FIFO status
-*******************************************************************************/
-uint16_t usb1_function_read_buffer_c (uint16_t pipe)
-{
-    uint32_t count;
-    uint32_t dtln;
-    uint16_t buffer;
-    uint16_t mxps;
-    uint16_t status;
-    uint16_t mbw;
-
-    mbw    = usb1_function_get_mbw(g_usb1_function_data_count[pipe], (uint32_t)g_usb1_function_data_pointer[pipe]);
-    buffer = usb1_function_change_fifo_port(pipe, USB_FUNCTION_CUSE, DEVDRV_USBF_NO, mbw);
-
-    if (buffer == DEVDRV_USBF_FIFOERROR)                        /* FIFO access status */
-    {
-        return DEVDRV_USBF_FIFOERROR;
-    }
-
-    dtln = (uint32_t)(buffer & USB_FUNCTION_BITDTLN);
-    mxps = usb1_function_get_mxps(pipe);                        /* Max Packet Size */
-
-    if (g_usb1_function_data_count[pipe] < dtln)                /* Buffer Over ? */
-    {
-        status = USB_FUNCTION_READOVER;
-        usb1_function_set_pid_nak(pipe);                        /* Set NAK */
-        count = g_usb1_function_data_count[pipe];
-    }
-    else if (g_usb1_function_data_count[pipe] == dtln)          /* just Receive Size */
-    {
-        status = USB_FUNCTION_READEND;
-        usb1_function_set_pid_nak(pipe);                        /* Set NAK */
-        count = dtln;
-
-        if (count == 0)
-        {
-            status = USB_FUNCTION_READSHRT;                     /* Null Packet receive */
-        }
-
-        if ((count % mxps) != 0)
-        {
-            status = USB_FUNCTION_READSHRT;                     /* Short Packet receive */
-        }
-    }
-    else                                                        /* continue Receive data */
-    {
-        status = USB_FUNCTION_READING;
-        count  = dtln;
-
-        if (count == 0)
-        {
-            status = USB_FUNCTION_READSHRT;                     /* Null Packet receive */
-            usb1_function_set_pid_nak(pipe);                    /* Set NAK */
-        }
-
-        if ((count % mxps) != 0)
-        {
-            status = USB_FUNCTION_READSHRT;                     /* Short Packet receive */
-            usb1_function_set_pid_nak(pipe);                    /* Set NAK */
-        }
-    }
-
-    if (count == 0)                                             /* 0 length packet */
-    {
-        USB201.CFIFOCTR = USB_FUNCTION_BITBCLR;                 /* Clear BCLR */
-    }
-    else
-    {
-        usb1_function_read_c_fifo(pipe, (uint16_t)count);
-    }
-
-    g_usb1_function_data_count[pipe] -= count;
-
-    return status;                                              /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_read_buffer_d0
-* Description  : Reads data from the buffer allocated in the pipe specified in
-*              : the argument.
-*              : Reads data by CPU transfer using D0FIFO.
-* Arguments    : uint16_t pipe     ; Pipe Number
-* Return Value : USB_FUNCTION_READEND          ; Read end
-*              : USB_FUNCTION_READSHRT         ; short data
-*              : USB_FUNCTION_READING          ; Continue of data read
-*              : USB_FUNCTION_READOVER         ; buffer over
-*              : DEVDRV_USBF_FIFOERROR         ; FIFO status
-*******************************************************************************/
-uint16_t usb1_function_read_buffer_d0 (uint16_t pipe)
-{
-    uint32_t count;
-    uint32_t dtln;
-    uint16_t buffer;
-    uint16_t mxps;
-    uint16_t status;
-    uint16_t mbw;
-    uint16_t pipebuf_size;
-
-    mbw    = usb1_function_get_mbw(g_usb1_function_data_count[pipe], (uint32_t)g_usb1_function_data_pointer[pipe]);
-    buffer = usb1_function_change_fifo_port(pipe, USB_FUNCTION_D0USE, DEVDRV_USBF_NO, mbw);
-
-    if (buffer == DEVDRV_USBF_FIFOERROR)                        /* FIFO access status */
-    {
-        return DEVDRV_USBF_FIFOERROR;
-    }
-
-    dtln = (uint32_t)(buffer & USB_FUNCTION_BITDTLN);
-    mxps = usb1_function_get_mxps(pipe);                        /* Max Packet Size */
-
-    if (g_usb1_function_data_count[pipe] < dtln)                /* Buffer Over ? */
-    {
-        status = USB_FUNCTION_READOVER;
-        usb1_function_set_pid_nak(pipe);                        /* Set NAK */
-        count = g_usb1_function_data_count[pipe];
-    }
-    else if (g_usb1_function_data_count[pipe] == dtln)          /* just Receive Size */
-    {
-        status = USB_FUNCTION_READEND;
-        usb1_function_set_pid_nak(pipe);                        /* Set NAK */
-        count = dtln;
-
-        if (count == 0)
-        {
-            status = USB_FUNCTION_READSHRT;                     /* Null Packet receive */
-        }
-
-        if ((count % mxps) != 0)
-        {
-            status = USB_FUNCTION_READSHRT;                     /* Short Packet receive */
-        }
-    }
-    else                                                        /* continue Receive data */
-    {
-        status = USB_FUNCTION_READING;
-        count  = dtln;
-
-        if (count == 0)
-        {
-            status = USB_FUNCTION_READSHRT;                     /* Null Packet receive */
-            usb1_function_set_pid_nak(pipe);                    /* Set NAK */
-        }
-
-        if ((count % mxps) != 0)
-        {
-            status = USB_FUNCTION_READSHRT;                     /* Short Packet receive */
-            usb1_function_set_pid_nak(pipe);                    /* Set NAK */
-        }
-        else
-        {
-            pipebuf_size = usb1_function_get_buf_size(pipe);    /* Data buffer size */
-
-            if (count != pipebuf_size)
-            {
-                status = USB_FUNCTION_READSHRT;                 /* Short Packet receive */
-                usb1_function_set_pid_nak(pipe);                /* Set NAK */
-            }
-        }
-    }
-
-    if (count == 0)                                             /* 0 length packet */
-    {
-        USB201.D0FIFOCTR = USB_FUNCTION_BITBCLR;                /* Clear BCLR */
-    }
-    else
-    {
-        usb1_function_read_d0_fifo(pipe, (uint16_t)count);
-    }
-
-    g_usb1_function_data_count[pipe] -= count;
-
-    return status;                                              /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_read_buffer_d1
-* Description  : Reads data from the buffer allocated in the pipe specified
-*              : in the argument.
-*              : Reads data by CPU transfer using D1FIFO.
-* Arguments    : uint16_t pipe     ; Pipe Number
-* Return Value : USB_FUNCTION_READEND          ; Read end
-*              : USB_FUNCTION_READSHRT         ; short data
-*              : USB_FUNCTION_READING          ; Continue of data read
-*              : USB_FUNCTION_READOVER         ; buffer over
-*              : DEVDRV_USBF_FIFOERROR         ; FIFO status
-*******************************************************************************/
-uint16_t usb1_function_read_buffer_d1 (uint16_t pipe)
-{
-    uint32_t count;
-    uint32_t dtln;
-    uint16_t buffer;
-    uint16_t mxps;
-    uint16_t status;
-    uint16_t mbw;
-    uint16_t pipebuf_size;
-
-    mbw    = usb1_function_get_mbw(g_usb1_function_data_count[pipe], (uint32_t)g_usb1_function_data_pointer[pipe]);
-    buffer = usb1_function_change_fifo_port(pipe, USB_FUNCTION_D1USE, DEVDRV_USBF_NO, mbw);
-
-    if (buffer == DEVDRV_USBF_FIFOERROR)                        /* FIFO access status */
-    {
-        return DEVDRV_USBF_FIFOERROR;
-    }
-
-    dtln = (uint32_t)(buffer & USB_FUNCTION_BITDTLN);
-    mxps = usb1_function_get_mxps(pipe);                        /* Max Packet Size */
-
-    if (g_usb1_function_data_count[pipe] < dtln)                /* Buffer Over ? */
-    {
-        status = USB_FUNCTION_READOVER;
-        usb1_function_set_pid_nak(pipe);                        /* Set NAK */
-        count = g_usb1_function_data_count[pipe];
-    }
-    else if (g_usb1_function_data_count[pipe] == dtln)          /* just Receive Size */
-    {
-        status = USB_FUNCTION_READEND;
-        usb1_function_set_pid_nak(pipe);                        /* Set NAK */
-        count = dtln;
-        if (count == 0)
-        {
-            status = USB_FUNCTION_READSHRT;                     /* Null Packet receive */
-        }
-
-        if ((count % mxps) != 0)
-        {
-            status = USB_FUNCTION_READSHRT;                     /* Short Packet receive */
-        }
-    }
-    else                                                        /* continue Receive data */
-    {
-        status = USB_FUNCTION_READING;
-        count  = dtln;
-        if (count == 0)
-        {
-            status = USB_FUNCTION_READSHRT;                     /* Null Packet receive */
-            usb1_function_set_pid_nak(pipe);                    /* Set NAK */
-        }
-
-        if ((count % mxps) != 0)
-        {
-            status = USB_FUNCTION_READSHRT;                     /* Short Packet receive */
-            usb1_function_set_pid_nak(pipe);                    /* Set NAK */
-        }
-        else
-        {
-            pipebuf_size = usb1_function_get_buf_size(pipe);    /* Data buffer size */
-
-            if (count != pipebuf_size)
-            {
-                status = USB_FUNCTION_READSHRT;                 /* Short Packet receive */
-                usb1_function_set_pid_nak(pipe);                /* Set NAK */
-            }
-        }
-    }
-
-    if (count == 0)                                             /* 0 length packet */
-    {
-        USB201.D1FIFOCTR = USB_FUNCTION_BITBCLR;                /* Clear BCLR */
-    }
-    else
-    {
-        usb1_function_read_d1_fifo(pipe, (uint16_t)count);
-    }
-
-    g_usb1_function_data_count[pipe] -= count;
-
-    return status;                                              /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_read_dma
-* Description  : Reads data from the buffer allocated in the pipe specified
-*              : in the argument.
-*              : Reads data by DMA transfer using D0FIFO or D1FIFO.
-* Arguments    : uint16_t pipe     ; Pipe Number
-* Return Value : USB_FUNCTION_READEND          ; Read end
-*              : USB_FUNCTION_READSHRT         ; short data
-*              : USB_FUNCTION_READING          ; Continue of data read
-*              : USB_FUNCTION_READOVER         ; buffer over
-*              : DEVDRV_USBF_FIFOERROR         ; FIFO status
-*******************************************************************************/
-uint16_t usb1_function_read_dma (uint16_t pipe)
-{
-    uint16_t status;
-
-    g_usb1_function_PipeIgnore[pipe] = 0;
-    if ((g_usb1_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE) == USB_FUNCTION_D0FIFO_DMA)
-    {
-        status = usb1_function_read_dma_d0(pipe);
-    }
-    else
-    {
-        status = usb1_function_read_dma_d1(pipe);
-    }
-
-    switch (status)
-    {
-        case USB_FUNCTION_READING:                                      /* Continue of data read */
-        break;
-
-        case USB_FUNCTION_READZERO:                                     /* End of data read */
-            usb1_function_disable_brdy_int(pipe);
-            g_usb1_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_DONE;
-        break;
-
-        case USB_FUNCTION_READEND:                                      /* End of data read */
-        case USB_FUNCTION_READSHRT:                                     /* End of data read */
-            usb1_function_disable_brdy_int(pipe);
-
-            if (RZA_IO_RegRead_16(&g_usb1_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 1)
-            {
-                g_usb1_function_PipeDataSize[pipe] -= g_usb1_function_data_count[pipe];
-            }
-        break;
-
-        case USB_FUNCTION_READOVER:                                     /* buffer over */
-            usb1_function_disable_brdy_int(pipe);                       /* Disable Ready Interrupt */
-
-            if (RZA_IO_RegRead_16(&g_usb1_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 1)
-            {
-                g_usb1_function_PipeDataSize[pipe] -= g_usb1_function_data_count[pipe];
-            }
-            g_usb1_function_pipe_status[pipe] = DEVDRV_USBF_FIFOERROR;
-        break;
-
-        case DEVDRV_USBF_FIFOERROR:                                     /* FIFO access status */
-        default:
-            usb1_function_disable_brdy_int(pipe);                       /* Disable Ready Interrupt */
-            g_usb1_function_pipe_status[pipe] = DEVDRV_USBF_FIFOERROR;
-        break;
-    }
-
-    return status;                                                      /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_read_dma_d0
-* Description  : Writes data in the buffer allocated in the pipe specified
-*              : in the argument.
-*              : Reads data by DMA transfer using D0FIFO.
-* Arguments    : uint16_t pipe     ; Pipe Number
-* Return Value : USB_FUNCTION_READEND          ; Read end
-*              : USB_FUNCTION_READSHRT         ; short data
-*              : USB_FUNCTION_READZERO         ; zero data
-*              : USB_FUNCTION_READING          ; Continue of data read
-*              : USB_FUNCTION_READOVER         ; buffer over
-*              : DEVDRV_USBF_FIFOERROR         ; FIFO status
-*******************************************************************************/
-static uint16_t usb1_function_read_dma_d0 (uint16_t pipe)
-{
-    uint32_t count;
-    uint32_t dtln;
-    uint16_t buffer;
-    uint16_t mxps;
-    uint16_t status;
-    uint16_t mbw;
-    uint16_t dfacc = 0;
-    uint16_t pipebuf_size;
-
-    g_usb1_function_DmaStatus[USB_FUNCTION_D0FIFO] = USB_FUNCTION_DMA_READY;
-
-    mbw = usb1_function_get_mbw(g_usb1_function_data_count[pipe], (uint32_t)g_usb1_function_data_pointer[pipe]);
-
-    if (RZA_IO_RegRead_16(&g_usb1_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 1)
-    {
-        count  = g_usb1_function_data_count[pipe];
-        status = USB_FUNCTION_READING;
-    }
-    else
-    {
-        buffer = usb1_function_change_fifo_port(pipe, USB_FUNCTION_D0DMA, DEVDRV_USBF_NO, mbw);
-
-        if (buffer == DEVDRV_USBF_FIFOERROR)                        /* FIFO access status */
-        {
-            return DEVDRV_USBF_FIFOERROR;
-        }
-
-        dtln = (uint32_t)(buffer & USB_FUNCTION_BITDTLN);
-        mxps = usb1_function_get_mxps(pipe);                        /* Max Packet Size */
-
-        if (g_usb1_function_data_count[pipe] < dtln)                /* Buffer Over ? */
-        {
-            status = USB_FUNCTION_READOVER;
-            count  = g_usb1_function_data_count[pipe];
-        }
-        else if (g_usb1_function_data_count[pipe] == dtln)          /* just Receive Size */
-        {
-            status = USB_FUNCTION_READEND;
-            count  = dtln;
-            if (count == 0)
-            {
-                status = USB_FUNCTION_READSHRT;                     /* Null Packet receive */
-            }
-
-            if ((count % mxps) != 0)
-            {
-                status = USB_FUNCTION_READSHRT;                     /* Short Packet receive */
-            }
-        }
-        else                                                        /* continue Receive data */
-        {
-            status = USB_FUNCTION_READING;
-            count  = dtln;
-
-            if (count == 0)
-            {
-                status = USB_FUNCTION_READSHRT;                     /* Null Packet receive */
-            }
-
-            if ((count % mxps) != 0)
-            {
-                status = USB_FUNCTION_READSHRT;                     /* Short Packet receive */
-            }
-            else
-            {
-                pipebuf_size = usb1_function_get_buf_size(pipe);    /* Data buffer size */
-                if (count != pipebuf_size)
-                {
-                    status = USB_FUNCTION_READSHRT;                 /* Short Packet receive */
-                }
-            }
-        }
-    }
-
-    if (count == 0)                                                 /* 0 length packet */
-    {
-        if (RZA_IO_RegRead_16(&g_usb1_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 0)
-        {
-            USB201.D0FIFOCTR = USB_FUNCTION_BITBCLR;                /* Clear BCLR */
-            status = USB_FUNCTION_READZERO;                         /* Null Packet receive */
-        }
-        else
-        {
-            usb1_function_set_curpipe(pipe, USB_FUNCTION_D0DMA, DEVDRV_USBF_NO, mbw);
-                                                                    /* transaction counter No set */
-                                                                    /* FRDY = 1, DTLN = 0 -> BRDY */
-        }
-    }
-    else
-    {
-        dfacc = usb1_function_set_dfacc_d0(mbw, count);
-
-        if (mbw == USB_FUNCTION_BITMBW_32)
-        {
-            g_usb1_function_DmaInfo[USB_FUNCTION_D0FIFO].size = 2;  /* 32bit transfer */
-        }
-        else if (mbw == USB_FUNCTION_BITMBW_16)
-        {
-            g_usb1_function_DmaInfo[USB_FUNCTION_D0FIFO].size = 1;  /* 16bit transfer */
-        }
-        else
-        {
-            g_usb1_function_DmaInfo[USB_FUNCTION_D0FIFO].size = 0;  /* 8bit transfer */
-        }
-
-        g_usb1_function_DmaPipe[USB_FUNCTION_D0FIFO] = pipe;        /* not use in read operation */
-        g_usb1_function_DmaBval[USB_FUNCTION_D0FIFO] = 0;           /* not use in read operation */
-
-        g_usb1_function_DmaInfo[USB_FUNCTION_D0FIFO].fifo   = USB_FUNCTION_D0FIFO_DMA;
-        g_usb1_function_DmaInfo[USB_FUNCTION_D0FIFO].dir    = USB_FUNCTION_FIFO2BUF;
-        g_usb1_function_DmaInfo[USB_FUNCTION_D0FIFO].buffer = (uint32_t)g_usb1_function_data_pointer[pipe];
-        g_usb1_function_DmaInfo[USB_FUNCTION_D0FIFO].bytes  = count;
-
-        if (status == USB_FUNCTION_READING)
-        {
-            g_usb1_function_DmaStatus[USB_FUNCTION_D0FIFO] = USB_FUNCTION_DMA_BUSY;
-        }
-        else
-        {
-            g_usb1_function_DmaStatus[USB_FUNCTION_D0FIFO] = USB_FUNCTION_DMA_BUSYEND;
-        }
-
-        Userdef_USB_usb1_function_start_dma(&g_usb1_function_DmaInfo[USB_FUNCTION_D0FIFO], dfacc);
-
-        usb1_function_set_curpipe2(pipe, USB_FUNCTION_D0DMA, DEVDRV_USBF_NO, mbw, dfacc);
-
-        RZA_IO_RegWrite_16(&USB201.D0FIFOSEL,
-                            1,
-                            USB_DnFIFOSEL_DREQE_SHIFT,
-                            USB_DnFIFOSEL_DREQE);
-    }
-
-    if (RZA_IO_RegRead_16(&g_usb1_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 0)
-    {
-        g_usb1_function_data_count[pipe]   -= count;
-        g_usb1_function_data_pointer[pipe] += count;
-        g_usb1_function_PipeDataSize[pipe] += count;
-    }
-
-    return status;                                                  /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_read_dma_d1
-* Description  : Reads data from the buffer allocated in the pipe specified in
-*              : the argument.
-*              : Reads data by DMA transfer using D1FIFO.
-* Arguments    : uint16_t pipe     ; Pipe Number
-* Return Value : USB_FUNCTION_READEND          ; Read end
-*              : USB_FUNCTION_READSHRT         ; short data
-*              : USB_FUNCTION_READZERO         ; zero data
-*              : USB_FUNCTION_READING          ; Continue of data read
-*              : USB_FUNCTION_READOVER         ; buffer over
-*              : DEVDRV_USBF_FIFOERROR         ; FIFO status
-*******************************************************************************/
-static uint16_t usb1_function_read_dma_d1 (uint16_t pipe)
-{
-    uint32_t count;
-    uint32_t dtln;
-    uint16_t buffer;
-    uint16_t mxps;
-    uint16_t status;
-    uint16_t mbw;
-    uint16_t dfacc = 0;
-    uint16_t pipebuf_size;
-
-    g_usb1_function_DmaStatus[USB_FUNCTION_D1FIFO] = USB_FUNCTION_DMA_READY;
-
-    mbw = usb1_function_get_mbw(g_usb1_function_data_count[pipe], (uint32_t)g_usb1_function_data_pointer[pipe]);
-
-    if (RZA_IO_RegRead_16(&g_usb1_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 1)
-    {
-        count  = g_usb1_function_data_count[pipe];
-        status = USB_FUNCTION_READING;
-    }
-    else
-    {
-        buffer = usb1_function_change_fifo_port(pipe, USB_FUNCTION_D1DMA, DEVDRV_USBF_NO, mbw);
-        if (buffer == DEVDRV_USBF_FIFOERROR)                        /* FIFO access status */
-        {
-            return DEVDRV_USBF_FIFOERROR;
-        }
-
-        dtln = (uint32_t)(buffer & USB_FUNCTION_BITDTLN);
-        mxps = usb1_function_get_mxps(pipe);                        /* Max Packet Size */
-
-        if (g_usb1_function_data_count[pipe] < dtln)                /* Buffer Over ? */
-        {
-            status = USB_FUNCTION_READOVER;
-            count  = g_usb1_function_data_count[pipe];
-        }
-        else if (g_usb1_function_data_count[pipe] == dtln)          /* just Receive Size */
-        {
-            status = USB_FUNCTION_READEND;
-            count  = dtln;
-            if (count == 0)
-            {
-                status = USB_FUNCTION_READSHRT;                     /* Null Packet receive */
-            }
-
-            if ((count % mxps) != 0)
-            {
-                status = USB_FUNCTION_READSHRT;                     /* Short Packet receive */
-            }
-        }
-        else                                                        /* continue Receive data */
-        {
-            status = USB_FUNCTION_READING;
-            count  = dtln;
-            if (count == 0)
-            {
-                status = USB_FUNCTION_READSHRT;                     /* Null Packet receive */
-            }
-
-            if ((count % mxps) != 0)
-            {
-                status = USB_FUNCTION_READSHRT;                     /* Short Packet receive */
-            }
-            else
-            {
-                pipebuf_size = usb1_function_get_buf_size(pipe);    /* Data buffer size */
-                if (count != pipebuf_size)
-                {
-                    status = USB_FUNCTION_READSHRT;                 /* Short Packet receive */
-                }
-            }
-        }
-    }
-
-    if (count == 0)                                                 /* 0 length packet */
-    {
-        if (RZA_IO_RegRead_16(&g_usb1_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 0)
-        {
-            USB201.D1FIFOCTR = USB_FUNCTION_BITBCLR;                /* Clear BCLR */
-            status = USB_FUNCTION_READZERO;                         /* Null Packet receive */
-        }
-        else
-        {
-            usb1_function_set_curpipe(pipe, USB_FUNCTION_D1DMA, DEVDRV_USBF_NO, mbw);
-                                                                    /* transaction counter No set */
-                                                                    /* FRDY = 1, DTLN = 0 -> BRDY */
-        }
-    }
-    else
-    {
-        dfacc = usb1_function_set_dfacc_d1(mbw, count);
-
-        if (mbw == USB_FUNCTION_BITMBW_32)
-        {
-            g_usb1_function_DmaInfo[USB_FUNCTION_D1FIFO].size = 2;  /* 32bit transfer */
-        }
-        else if (mbw == USB_FUNCTION_BITMBW_16)
-        {
-            g_usb1_function_DmaInfo[USB_FUNCTION_D1FIFO].size = 1;  /* 16bit transfer */
-        }
-        else
-        {
-            g_usb1_function_DmaInfo[USB_FUNCTION_D1FIFO].size = 0;  /* 8bit transfer */
-        }
-
-        g_usb1_function_DmaPipe[USB_FUNCTION_D1FIFO] = pipe;        /* not use in read operation */
-        g_usb1_function_DmaBval[USB_FUNCTION_D1FIFO] = 0;           /* not use in read operation */
-
-        g_usb1_function_DmaInfo[USB_FUNCTION_D1FIFO].fifo   = USB_FUNCTION_D1FIFO_DMA;
-        g_usb1_function_DmaInfo[USB_FUNCTION_D1FIFO].dir    = USB_FUNCTION_FIFO2BUF;
-        g_usb1_function_DmaInfo[USB_FUNCTION_D1FIFO].buffer = (uint32_t)g_usb1_function_data_pointer[pipe];
-        g_usb1_function_DmaInfo[USB_FUNCTION_D1FIFO].bytes  = count;
-
-        if (status == USB_FUNCTION_READING)
-        {
-            g_usb1_function_DmaStatus[USB_FUNCTION_D1FIFO] = USB_FUNCTION_DMA_BUSY;
-        }
-        else
-        {
-            g_usb1_function_DmaStatus[USB_FUNCTION_D1FIFO] = USB_FUNCTION_DMA_BUSYEND;
-        }
-
-        Userdef_USB_usb1_function_start_dma(&g_usb1_function_DmaInfo[USB_FUNCTION_D1FIFO], dfacc);
-
-        usb1_function_set_curpipe2(pipe, USB_FUNCTION_D1DMA, DEVDRV_USBF_NO, mbw, dfacc);
-
-        RZA_IO_RegWrite_16(&USB201.D1FIFOSEL,
-                            1,
-                            USB_DnFIFOSEL_DREQE_SHIFT,
-                            USB_DnFIFOSEL_DREQE);
-    }
-
-    if (RZA_IO_RegRead_16(&g_usb1_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 0)
-    {
-        g_usb1_function_data_count[pipe]   -= count;
-        g_usb1_function_data_pointer[pipe] += count;
-        g_usb1_function_PipeDataSize[pipe] += count;
-    }
-
-    return status;                                                  /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_change_fifo_port
-* Description  : Allocates FIF0 specified by the argument in the pipe assigned
-*              : by the argument. After allocating FIF0, waits in the software
-*              : till the corresponding pipe becomes ready.
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint16_t fifosel   ; Select FIFO
-*              : uint16_t isel      ; FIFO Access Direction
-*              : uint16_t mbw       ; FIFO Port Access Bit Width
-* Return Value : DEVDRV_USBF_FIFOERROR          ; Error
-*              : Others            ; CFIFOCTR/D0FIFOCTR/D1FIFOCTR Register Value
-*******************************************************************************/
-uint16_t usb1_function_change_fifo_port (uint16_t pipe, uint16_t fifosel, uint16_t isel, uint16_t mbw)
-{
-    uint16_t buffer;
-    uint32_t loop;
-    volatile uint32_t loop2;
-
-    usb1_function_set_curpipe(pipe, fifosel, isel, mbw);
-
-    for (loop = 0; loop < 4; loop++)
-    {
-        switch (fifosel)
-        {
-            case USB_FUNCTION_CUSE:
-                buffer = USB201.CFIFOCTR;
-            break;
-
-            case USB_FUNCTION_D0USE:
-            case USB_FUNCTION_D0DMA:
-                buffer = USB201.D0FIFOCTR;
-            break;
-
-            case USB_FUNCTION_D1USE:
-            case USB_FUNCTION_D1DMA:
-                buffer = USB201.D1FIFOCTR;
-            break;
-
-            default:
-                buffer = 0;
-            break;
-        }
-
-        if ((buffer & USB_FUNCTION_BITFRDY) == USB_FUNCTION_BITFRDY)
-        {
-            return buffer;
-        }
-
-        loop2 = 25;
-        while (loop2-- > 0)
-        {
-            /* wait */
-        }
-    }
-
-    return DEVDRV_USBF_FIFOERROR;
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_set_curpipe
-* Description  : Allocates FIF0 specified by the argument in the pipe assigned
-*              : by the argument.
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint16_t fifosel   ; Select FIFO
-*              : uint16_t isel      ; FIFO Access Direction
-*              : uint16_t mbw       ; FIFO Port Access Bit Width
-* Return Value : none
-*******************************************************************************/
-void usb1_function_set_curpipe (uint16_t pipe, uint16_t fifosel, uint16_t isel, uint16_t mbw)
-{
-    uint16_t buffer;
-    uint32_t loop;
-    volatile uint32_t loop2;
-
-    g_usb1_function_mbw[pipe] = mbw;
-
-    switch (fifosel)
-    {
-        case USB_FUNCTION_CUSE:
-            buffer  = USB201.CFIFOSEL;
-            buffer &= (uint16_t)~(USB_FUNCTION_BITISEL | USB_FUNCTION_BITCURPIPE);
-            buffer |= (uint16_t)(~isel & USB_FUNCTION_BITISEL);
-            USB201.CFIFOSEL = buffer;
-
-            for (loop = 0; loop < 4; loop++)
-            {
-                if ((USB201.CFIFOSEL & (USB_FUNCTION_BITISEL | USB_FUNCTION_BITCURPIPE)) ==
-                        (buffer & (USB_FUNCTION_BITISEL | USB_FUNCTION_BITCURPIPE)))
-                {
-                    break;
-                }
-
-                loop2 = 100;
-
-                while (loop2-- > 0)
-                {
-                    /* wait */
-                }
-            }
-            buffer &= (uint16_t)~(USB_FUNCTION_BITISEL | USB_FUNCTION_BITCURPIPE | USB_FUNCTION_BITMBW);
-            buffer |= (uint16_t)(isel | pipe | mbw);
-            USB201.CFIFOSEL = buffer;
-
-            for (loop = 0; loop < 4; loop++)
-            {
-                if ((USB201.CFIFOSEL & (USB_FUNCTION_BITISEL | USB_FUNCTION_BITCURPIPE)) ==
-                        (buffer & (USB_FUNCTION_BITISEL | USB_FUNCTION_BITCURPIPE)))
-                {
-                    break;
-                }
-
-                loop2 = 100;
-
-                while (loop2-- > 0)
-                {
-                    /* wait */
-                }
-            }
-        break;
-
-        case USB_FUNCTION_D0DMA:
-        case USB_FUNCTION_D0USE:
-            buffer  = USB201.D0FIFOSEL;
-            buffer &= (uint16_t)~(USB_FUNCTION_BITCURPIPE);
-            USB201.D0FIFOSEL = buffer;
-
-            for (loop = 0; loop < 4; loop++)
-            {
-                if ((USB201.D0FIFOSEL & USB_FUNCTION_BITCURPIPE) ==
-                        (buffer & USB_FUNCTION_BITCURPIPE))
-                {
-                    break;
-                }
-
-                loop2 = 100;
-
-                while (loop2-- > 0)
-                {
-                    /* wait */
-                }
-            }
-            buffer &= (uint16_t)~(USB_FUNCTION_BITCURPIPE | USB_FUNCTION_BITMBW);
-            buffer |= (uint16_t)(pipe | mbw);
-            USB201.D0FIFOSEL = buffer;
-
-            for (loop = 0; loop < 4; loop++)
-            {
-                if ((USB201.D0FIFOSEL & USB_FUNCTION_BITCURPIPE) ==
-                        (buffer & USB_FUNCTION_BITCURPIPE))
-                {
-                    break;
-                }
-
-                loop2 = 100;
-                while (loop2-- > 0)
-                {
-                    /* wait */
-                }
-            }
-        break;
-
-        case USB_FUNCTION_D1DMA:
-        case USB_FUNCTION_D1USE:
-            buffer  = USB201.D1FIFOSEL;
-            buffer &= (uint16_t)~(USB_FUNCTION_BITCURPIPE);
-            USB201.D1FIFOSEL = buffer;
-
-            for (loop = 0; loop < 4; loop++)
-            {
-                if ((USB201.D1FIFOSEL & USB_FUNCTION_BITCURPIPE) ==
-                        (buffer & USB_FUNCTION_BITCURPIPE))
-                {
-                    break;
-                }
-
-                loop2 = 100;
-
-                while (loop2-- > 0)
-                {
-                    /* wait */
-                }
-            }
-            buffer &= (uint16_t)~(USB_FUNCTION_BITCURPIPE | USB_FUNCTION_BITMBW);
-            buffer |= (uint16_t)(pipe | mbw);
-            USB201.D1FIFOSEL = buffer;
-
-            for (loop = 0; loop < 4; loop++)
-            {
-                if ((USB201.D1FIFOSEL & USB_FUNCTION_BITCURPIPE) ==
-                        (buffer & USB_FUNCTION_BITCURPIPE))
-                {
-                    break;
-                }
-
-                loop2 = 100;
-
-                while (loop2-- > 0)
-                {
-                    /* wait */
-                }
-            }
-        break;
-
-        default:
-        break;
-    }
-
-    /* Cautions !!!
-     * Depending on the external bus speed of CPU, you may need to wait for 450ns here.
-     * For details, please look at the data sheet.   */
-    loop2 = 100;
-
-    while (loop2-- > 0)
-    {
-        /* wait */
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_set_curpipe2
-* Description  : Allocates FIF0 specified by the argument in the pipe assigned
-*              : by the argument.
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint16_t fifosel   ; Select FIFO
-*              : uint16_t isel      ; FIFO Access Direction
-*              : uint16_t mbw       ; FIFO Port Access Bit Width
-*              : uint16_t dfacc     ; DFACC Access mode
-* Return Value : none
-*******************************************************************************/
-void usb1_function_set_curpipe2 (uint16_t pipe, uint16_t fifosel, uint16_t isel, uint16_t mbw, uint16_t dfacc)
-{
-    uint16_t buffer;
-    uint32_t loop;
-#ifdef  __USB_FUNCTION_DF_ACC_ENABLE__
-    uint32_t dummy;
-#endif
-    volatile uint32_t loop2;
-
-    g_usb1_function_mbw[pipe] = mbw;
-
-    switch (fifosel)
-    {
-        case USB_FUNCTION_CUSE:
-            buffer  = USB201.CFIFOSEL;
-            buffer &= (uint16_t)~(USB_FUNCTION_BITISEL | USB_FUNCTION_BITCURPIPE);
-            buffer |= (uint16_t)(~isel & USB_FUNCTION_BITISEL);
-            USB201.CFIFOSEL = buffer;
-
-            for (loop = 0; loop < 4; loop++)
-            {
-                if ((USB201.CFIFOSEL & (USB_FUNCTION_BITISEL | USB_FUNCTION_BITCURPIPE)) ==
-                        (buffer & (USB_FUNCTION_BITISEL | USB_FUNCTION_BITCURPIPE)))
-                {
-                    break;
-                }
-
-                loop2 = 100;
-                while (loop2-- > 0)
-                {
-                    /* wait */
-                }
-            }
-            buffer &= (uint16_t)~(USB_FUNCTION_BITISEL | USB_FUNCTION_BITCURPIPE | USB_FUNCTION_BITMBW);
-            buffer |= (uint16_t)(isel | pipe | mbw);
-            USB201.CFIFOSEL = buffer;
-
-            for (loop = 0; loop < 4; loop++)
-            {
-                if ((USB201.CFIFOSEL & (USB_FUNCTION_BITISEL | USB_FUNCTION_BITCURPIPE)) ==
-                        (buffer & (USB_FUNCTION_BITISEL | USB_FUNCTION_BITCURPIPE)))
-                {
-                    break;
-                }
-
-                loop2 = 100;
-
-                while (loop2-- > 0)
-                {
-                    /* wait */
-                }
-            }
-        break;
-
-        case USB_FUNCTION_D0DMA:
-        case USB_FUNCTION_D0USE:
-            buffer  = USB201.D0FIFOSEL;
-#ifdef  __USB_FUNCTION_DF_ACC_ENABLE__
-            buffer &= (uint16_t)~(USB_FUNCTION_BITCURPIPE | USB_FUNCTION_BITMBW);
-
-            if (dfacc != 0)
-            {
-                buffer |= (uint16_t)(USB_FUNCTION_BITMBW_32);
-            }
-#else
-            buffer &= (uint16_t)~(USB_FUNCTION_BITCURPIPE);
-#endif
-            USB201.D0FIFOSEL = buffer;
-
-            for (loop = 0; loop < 4; loop++)
-            {
-                if ((USB201.D0FIFOSEL & USB_FUNCTION_BITCURPIPE) == (buffer & USB_FUNCTION_BITCURPIPE))
-                {
-                    break;
-                }
-
-                loop2 = 100;
-
-                while (loop2-- > 0)
-                {
-                    /* wait */
-                }
-            }
-
-#ifdef  __USB_FUNCTION_DF_ACC_ENABLE__
-            if (dfacc != 0)
-            {
-                dummy = USB201.D0FIFO.UINT32;
-            }
-#endif
-            buffer &= (uint16_t)~(USB_FUNCTION_BITCURPIPE | USB_FUNCTION_BITMBW);
-            buffer |= (uint16_t)(pipe | mbw);
-            USB201.D0FIFOSEL = buffer;
-
-            for (loop = 0; loop < 4; loop++)
-            {
-                if ((USB201.D0FIFOSEL & USB_FUNCTION_BITCURPIPE) == (buffer & USB_FUNCTION_BITCURPIPE))
-                {
-                    break;
-                }
-
-                loop2 = 100;
-
-                while (loop2-- > 0)
-                {
-                    /* wait */
-                }
-            }
-        break;
-
-        case USB_FUNCTION_D1DMA:
-        case USB_FUNCTION_D1USE:
-            buffer  = USB201.D1FIFOSEL;
-#ifdef  __USB_FUNCTION_DF_ACC_ENABLE__
-            buffer &= (uint16_t)~(USB_FUNCTION_BITCURPIPE | USB_FUNCTION_BITMBW);
-
-            if (dfacc != 0)
-            {
-                buffer |= (uint16_t)(USB_FUNCTION_BITMBW_32);
-            }
-#else
-            buffer &= (uint16_t)~(USB_FUNCTION_BITCURPIPE);
-#endif
-            USB201.D1FIFOSEL = buffer;
-
-            for (loop = 0; loop < 4; loop++)
-            {
-                if ((USB201.D1FIFOSEL & USB_FUNCTION_BITCURPIPE) == (buffer & USB_FUNCTION_BITCURPIPE))
-                {
-                    break;
-                }
-
-                loop2 = 100;
-
-                while (loop2-- > 0)
-                {
-                    /* wait */
-                }
-            }
-#ifdef  __USB_FUNCTION_DF_ACC_ENABLE__
-            if (dfacc != 0)
-            {
-                dummy = USB201.D1FIFO.UINT32;
-                loop = dummy;                   // avoid warning.
-            }
-#endif
-            buffer &= (uint16_t)~(USB_FUNCTION_BITCURPIPE | USB_FUNCTION_BITMBW);
-            buffer |= (uint16_t)(pipe | mbw);
-            USB201.D1FIFOSEL = buffer;
-
-            for (loop = 0; loop < 4; loop++)
-            {
-                if ((USB201.D1FIFOSEL & USB_FUNCTION_BITCURPIPE) == (buffer & USB_FUNCTION_BITCURPIPE))
-                {
-                    break;
-                }
-
-                loop2 = 100;
-
-                while (loop2-- > 0)
-                {
-                    /* wait */
-                }
-            }
-        break;
-
-        default:
-        break;
-    }
-
-    /* Cautions !!!
-     * Depending on the external bus speed of CPU, you may need to wait for 450ns here.
-     * For details, please look at the data sheet.   */
-    loop2 = 100;
-
-    while (loop2-- > 0)
-    {
-        /* wait */
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_write_c_fifo
-* Description  : Writes data in CFIFO.
-*              : Writes data by BYTE/WORD/LONG according to access size
-*              : to the pipe specified by the arguments.
-*              : Before executing this function, allocating CFIF0 in the specified pipe
-*              : should be completed.
-*              : Before executing this function, access size to the specified pipe
-*              : should be fixed and set in g_usb1_function_mbw[].
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint16_t count     ; Data Size(Byte)
-* Return Value : none
-*******************************************************************************/
-static void usb1_function_write_c_fifo (uint16_t pipe, uint16_t count)
-{
-    uint16_t even;
-
-    if (g_usb1_function_mbw[pipe] == USB_FUNCTION_BITMBW_8)
-    {
-        for (even = count; even; --even)
-        {
-            USB201.CFIFO.UINT8[HH] = *g_usb1_function_data_pointer[pipe];
-            g_usb1_function_data_pointer[pipe] += 1;
-        }
-    }
-    else if (g_usb1_function_mbw[pipe] == USB_FUNCTION_BITMBW_16)
-    {
-        for (even = (uint16_t)(count / 2); even; --even)
-        {
-            USB201.CFIFO.UINT16[H] = *((uint16_t *)g_usb1_function_data_pointer[pipe]);
-            g_usb1_function_data_pointer[pipe] += 2;
-        }
-    }
-    else
-    {
-        for (even = (uint16_t)(count / 4); even; --even)
-        {
-            USB201.CFIFO.UINT32 = *((uint32_t *)g_usb1_function_data_pointer[pipe]);
-            g_usb1_function_data_pointer[pipe] += 4;
-        }
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_read_c_fifo
-* Description  : Reads data from CFIFO.
-*              : Reads data by BYTE/WORD/LONG according to access size
-*              : to the pipe specified by the arguments.
-*              : Before executing this function, allocating CFIF0 in the specified pipe
-*              : should be completed.
-*              : Before executing this function, access size to the specified pipe
-*              : should be fixed and set in g_usb1_function_mbw[].
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint16_t count     ; Data Size(Byte)
-* Return Value : none
-*******************************************************************************/
-static void usb1_function_read_c_fifo (uint16_t pipe, uint16_t count)
-{
-    uint16_t even;
-
-    if (g_usb1_function_mbw[pipe] == USB_FUNCTION_BITMBW_8)
-    {
-        for (even = count; even; --even)
-        {
-            *g_usb1_function_data_pointer[pipe] = USB201.CFIFO.UINT8[HH];
-            g_usb1_function_data_pointer[pipe] += 1;
-        }
-    }
-    else if (g_usb1_function_mbw[pipe] == USB_FUNCTION_BITMBW_16)
-    {
-        for (even = (uint16_t)((count + 1) / 2); even; --even)
-        {
-            *((uint16_t *)g_usb1_function_data_pointer[pipe]) = USB201.CFIFO.UINT16[H];
-            g_usb1_function_data_pointer[pipe] += 2;
-        }
-    }
-    else
-    {
-        for (even = (uint16_t)((count + 3) / 4); even; --even)
-        {
-            *((uint32_t *)g_usb1_function_data_pointer[pipe]) = USB201.CFIFO.UINT32;
-            g_usb1_function_data_pointer[pipe] += 4;
-        }
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_write_d0_fifo
-* Description  : Writes data in D0FIFO.
-*              : Writes data by BYTE/WORD/LONG according to access size
-*              : to the pipe specified by the arguments.
-*              : Before executing this function, allocating CFIF0 in the specified pipe
-*              : should be completed.
-*              : Before executing this function, access size to the specified pipe
-*              : should be fixed and set in g_usb1_function_mbw[].
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint16_t count     ; Data Size(Byte)
-* Return Value : none
-*******************************************************************************/
-static void usb1_function_write_d0_fifo (uint16_t pipe, uint16_t count)
-{
-    uint16_t even;
-
-    if (g_usb1_function_mbw[pipe] == USB_FUNCTION_BITMBW_8)
-    {
-        for (even = count; even; --even)
-        {
-            USB201.D0FIFO.UINT8[HH] = *g_usb1_function_data_pointer[pipe];
-            g_usb1_function_data_pointer[pipe] += 1;
-        }
-    }
-    else if (g_usb1_function_mbw[pipe] == USB_FUNCTION_BITMBW_16)
-    {
-        for (even = (uint16_t)(count / 2); even; --even)
-        {
-            USB201.D0FIFO.UINT16[H] = *((uint16_t *)g_usb1_function_data_pointer[pipe]);
-            g_usb1_function_data_pointer[pipe] += 2;
-        }
-    }
-    else
-    {
-        for (even = (uint16_t)(count / 4); even; --even)
-        {
-            USB201.D0FIFO.UINT32 = *((uint32_t *)g_usb1_function_data_pointer[pipe]);
-            g_usb1_function_data_pointer[pipe] += 4;
-        }
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_read_d0_fifo
-* Description  : Reads data from D0FIFO.
-*              : Reads data by BYTE/WORD/LONG according to access size
-*              : to the pipe specified by the arguments.
-*              : Before executing this function, allocating DOFIF0 in the specified pipe
-*              : should be completed.
-*              : Before executing this function, access size to the specified pipe
-*              : should be fixed and set in g_usb1_function_mbw[].
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint16_t count     ; Data Size(Byte)
-* Return Value : none
-*******************************************************************************/
-static void usb1_function_read_d0_fifo (uint16_t pipe, uint16_t count)
-{
-    uint16_t even;
-
-    if (g_usb1_function_mbw[pipe] == USB_FUNCTION_BITMBW_8)
-    {
-        for (even = count; even; --even)
-        {
-            *g_usb1_function_data_pointer[pipe] = USB201.D0FIFO.UINT8[HH];
-            g_usb1_function_data_pointer[pipe] += 1;
-        }
-    }
-    else if (g_usb1_function_mbw[pipe] == USB_FUNCTION_BITMBW_16)
-    {
-        for (even = (uint16_t)((count + 1) / 2); even; --even)
-        {
-            *((uint16_t *)g_usb1_function_data_pointer[pipe]) = USB201.D0FIFO.UINT16[H];
-            g_usb1_function_data_pointer[pipe] += 2;
-        }
-    }
-    else
-    {
-        for (even = (uint16_t)((count + 3) / 4); even; --even)
-        {
-            *((uint32_t *)g_usb1_function_data_pointer[pipe]) = USB201.D0FIFO.UINT32;
-            g_usb1_function_data_pointer[pipe] += 4;
-        }
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_write_d1_fifo
-* Description  : Writes data in D1FIFO.
-*              : Writes data by BYTE/WORD/LONG according to access size
-*              : to the pipe specified by the arguments.
-*              : Before executing this function, allocating D1FIF0 in the specified pipe
-*              : should be completed.
-*              : Before executing this function, access size to the specified pipe
-*              : should be fixed and set in g_usb1_function_mbw[].
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint16_t count     ; Data Size(Byte)
-* Return Value : none
-*******************************************************************************/
-static void usb1_function_write_d1_fifo (uint16_t pipe, uint16_t count)
-{
-    uint16_t even;
-
-    if (g_usb1_function_mbw[pipe] == USB_FUNCTION_BITMBW_8)
-    {
-        for (even = count; even; --even)
-        {
-            USB201.D1FIFO.UINT8[HH] = *g_usb1_function_data_pointer[pipe];
-            g_usb1_function_data_pointer[pipe] += 1;
-        }
-    }
-    else if (g_usb1_function_mbw[pipe] == USB_FUNCTION_BITMBW_16)
-    {
-        for (even = (uint16_t)(count / 2); even; --even)
-        {
-            USB201.D1FIFO.UINT16[H] = *((uint16_t *)g_usb1_function_data_pointer[pipe]);
-            g_usb1_function_data_pointer[pipe] += 2;
-        }
-    }
-    else
-    {
-        for (even = (uint16_t)(count / 4); even; --even)
-        {
-            USB201.D1FIFO.UINT32 = *((uint32_t *)g_usb1_function_data_pointer[pipe]);
-            g_usb1_function_data_pointer[pipe] += 4;
-        }
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_read_d1_fifo
-* Description  : Reads data from D1FIFO.
-*              : Reads data by BYTE/WORD/LONG according to access size
-*              : to the pipe specified by the arguments.
-*              : Before executing this function, allocating D1FIF0 in the specified pipe
-*              : should be completed.
-*              : Before executing this function, access size to the specified pipe
-*              : should be fixed and set in g_usb1_function_mbw[].
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint16_t count     ; Data Size(Byte)
-* Return Value : none
-*******************************************************************************/
-static void usb1_function_read_d1_fifo (uint16_t pipe, uint16_t count)
-{
-    uint16_t even;
-
-    if (g_usb1_function_mbw[pipe] == USB_FUNCTION_BITMBW_8)
-    {
-        for (even = count; even; --even)
-        {
-            *g_usb1_function_data_pointer[pipe] = USB201.D1FIFO.UINT8[HH];
-            g_usb1_function_data_pointer[pipe] += 1;
-        }
-    }
-    else if (g_usb1_function_mbw[pipe] == USB_FUNCTION_BITMBW_16)
-    {
-        for (even = (uint16_t)((count + 1) / 2); even; --even)
-        {
-            *((uint16_t *)g_usb1_function_data_pointer[pipe]) = USB201.D1FIFO.UINT16[H];
-            g_usb1_function_data_pointer[pipe] += 2;
-        }
-    }
-    else
-    {
-        for (even = (uint16_t)((count + 3) / 4); even; --even)
-        {
-            *((uint32_t *)g_usb1_function_data_pointer[pipe]) = USB201.D1FIFO.UINT32;
-            g_usb1_function_data_pointer[pipe] += 4;
-        }
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_com_get_dmasize
-* Description  : Calculates access width of DMA transfer by the argument to
-*              : return as the Return Value.
-* Arguments    : uint32_t trncount   : transfer byte
-*              : uint32_t dtptr      : transfer data pointer
-* Return Value : DMA transfer size    : 0   8bit
-*              :                      : 1  16bit
-*              :                      : 2  32bit
-*******************************************************************************/
-static uint32_t usb1_function_com_get_dmasize (uint32_t trncount, uint32_t dtptr)
-{
-    uint32_t size;
-
-    if (((trncount & 0x0001) != 0) || ((dtptr & 0x00000001) != 0))
-    {
-        /*  When transfer byte count is odd         */
-        /* or transfer data area is 8-bit alignment */
-        size = 0;           /* 8bit */
-    }
-    else if (((trncount & 0x0003) != 0) || ((dtptr & 0x00000003) != 0))
-    {
-        /* When the transfer byte count is multiples of 2 */
-        /* or the transfer data area is 16-bit alignment */
-        size = 1;           /* 16bit */
-    }
-    else
-    {
-        /* When the transfer byte count is multiples of 4 */
-        /* or the transfer data area is 32-bit alignment */
-        size = 2;           /* 32bit */
-    }
-
-    return size;
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_get_mbw
-* Description  : Calculates access width of DMA to return the value set in MBW.
-* Arguments    : uint32_t trncount   : transfer byte
-*              : uint32_t dtptr      : transfer data pointer
-* Return Value : FIFO transfer size   : USB_FUNCTION_BITMBW_8    8bit
-*              :                      : USB_FUNCTION_BITMBW_16  16bit
-*              :                      : USB_FUNCTION_BITMBW_32  32bit
-*******************************************************************************/
-uint16_t usb1_function_get_mbw (uint32_t trncount, uint32_t dtptr)
-{
-    uint32_t size;
-    uint16_t mbw;
-
-    size = usb1_function_com_get_dmasize(trncount, dtptr);
-
-    if (size == 0)
-    {
-        /* 8bit */
-        mbw = USB_FUNCTION_BITMBW_8;
-    }
-    else if (size == 1)
-    {
-        /* 16bit */
-        mbw = USB_FUNCTION_BITMBW_16;
-    }
-    else
-    {
-        /* 32bit */
-        mbw = USB_FUNCTION_BITMBW_32;
-    }
-
-    return mbw;
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_set_transaction_counter
-* Description  : Sets transaction counter by the argument(PIPEnTRN).
-*              : Clears transaction before setting to enable transaction counter setting.
-* Arguments    : uint16_t pipe     ; Pipe number
-*              : uint32_t bsize    : Data transfer size
-* Return Value : none
-*******************************************************************************/
-static void usb1_function_set_transaction_counter (uint16_t pipe, uint32_t bsize)
-{
-    uint16_t mxps;
-    uint16_t cnt;
-
-    if (bsize  == 0)
-    {
-        return;
-    }
-
-    mxps = usb1_function_get_mxps(pipe);            /* Max Packet Size */
-
-    if ((bsize % mxps) == 0)
-    {
-        cnt = (uint16_t)(bsize / mxps);
-    }
-    else
-    {
-        cnt = (uint16_t)((bsize / mxps) + 1);
-    }
-
-    switch (pipe)
-    {
-        case USB_FUNCTION_PIPE1:
-            RZA_IO_RegWrite_16(&USB201.PIPE1TRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-            USB201.PIPE1TRN             = cnt;
-            RZA_IO_RegWrite_16(&USB201.PIPE1TRE,
-                                1,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-        break;
-
-        case USB_FUNCTION_PIPE2:
-            RZA_IO_RegWrite_16(&USB201.PIPE2TRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-            USB201.PIPE2TRN             = cnt;
-            RZA_IO_RegWrite_16(&USB201.PIPE2TRE,
-                                1,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-        break;
-
-        case USB_FUNCTION_PIPE3:
-            RZA_IO_RegWrite_16(&USB201.PIPE3TRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-            USB201.PIPE3TRN             = cnt;
-            RZA_IO_RegWrite_16(&USB201.PIPE3TRE,
-                                1,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-        break;
-
-        case USB_FUNCTION_PIPE4:
-            RZA_IO_RegWrite_16(&USB201.PIPE4TRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-            USB201.PIPE4TRN             = cnt;
-            RZA_IO_RegWrite_16(&USB201.PIPE4TRE,
-                                1,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-        break;
-
-        case USB_FUNCTION_PIPE5:
-            RZA_IO_RegWrite_16(&USB201.PIPE5TRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-            USB201.PIPE5TRN             = cnt;
-            RZA_IO_RegWrite_16(&USB201.PIPE5TRE,
-                                1,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-        break;
-
-        case USB_FUNCTION_PIPE9:
-            RZA_IO_RegWrite_16(&USB201.PIPE9TRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-            USB201.PIPE9TRN             = cnt;
-            RZA_IO_RegWrite_16(&USB201.PIPE9TRE,
-                                1,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-        break;
-
-        case USB_FUNCTION_PIPEA:
-            RZA_IO_RegWrite_16(&USB201.PIPEATRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-            USB201.PIPEATRN             = cnt;
-            RZA_IO_RegWrite_16(&USB201.PIPEATRE,
-                                1,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-        break;
-
-        case USB_FUNCTION_PIPEB:
-            RZA_IO_RegWrite_16(&USB201.PIPEBTRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-            USB201.PIPEBTRN             = cnt;
-            RZA_IO_RegWrite_16(&USB201.PIPEBTRE,
-                                1,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-        break;
-
-        case USB_FUNCTION_PIPEC:
-            RZA_IO_RegWrite_16(&USB201.PIPECTRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-            USB201.PIPECTRN             = cnt;
-            RZA_IO_RegWrite_16(&USB201.PIPECTRE,
-                                1,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-        break;
-
-        case USB_FUNCTION_PIPED:
-            RZA_IO_RegWrite_16(&USB201.PIPEDTRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-            USB201.PIPEDTRN             = cnt;
-            RZA_IO_RegWrite_16(&USB201.PIPEDTRE,
-                                1,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-        break;
-
-        case USB_FUNCTION_PIPEE:
-            RZA_IO_RegWrite_16(&USB201.PIPEETRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-            USB201.PIPEETRN             = cnt;
-            RZA_IO_RegWrite_16(&USB201.PIPEETRE,
-                                1,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-        break;
-
-        case USB_FUNCTION_PIPEF:
-            RZA_IO_RegWrite_16(&USB201.PIPEFTRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-            USB201.PIPEFTRN             = cnt;
-            RZA_IO_RegWrite_16(&USB201.PIPEFTRE,
-                                1,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-        break;
-
-        default:
-        break;
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_clear_transaction_counter
-* Description  : Clears the transaction counter by the argument.
-*              : After executing this function, the transaction counter is invalid.
-* Arguments    : uint16_t pipe     ; Pipe number
-* Return Value : none
-*******************************************************************************/
-void usb1_function_clear_transaction_counter (uint16_t pipe)
-{
-    switch (pipe)
-    {
-        case USB_FUNCTION_PIPE1:
-            RZA_IO_RegWrite_16(&USB201.PIPE1TRE,
-                                0,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-            RZA_IO_RegWrite_16(&USB201.PIPE1TRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-        break;
-
-        case USB_FUNCTION_PIPE2:
-            RZA_IO_RegWrite_16(&USB201.PIPE2TRE,
-                                0,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-            RZA_IO_RegWrite_16(&USB201.PIPE2TRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-        break;
-
-        case USB_FUNCTION_PIPE3:
-            RZA_IO_RegWrite_16(&USB201.PIPE3TRE,
-                                0,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-            RZA_IO_RegWrite_16(&USB201.PIPE3TRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-        break;
-
-        case USB_FUNCTION_PIPE4:
-            RZA_IO_RegWrite_16(&USB201.PIPE4TRE,
-                                0,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-            RZA_IO_RegWrite_16(&USB201.PIPE4TRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-        break;
-
-        case USB_FUNCTION_PIPE5:
-            RZA_IO_RegWrite_16(&USB201.PIPE5TRE,
-                                0,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-            RZA_IO_RegWrite_16(&USB201.PIPE5TRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-        break;
-
-        case USB_FUNCTION_PIPE9:
-            RZA_IO_RegWrite_16(&USB201.PIPE9TRE,
-                                0,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-            RZA_IO_RegWrite_16(&USB201.PIPE9TRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-        break;
-
-        case USB_FUNCTION_PIPEA:
-            RZA_IO_RegWrite_16(&USB201.PIPEATRE,
-                                0,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-            RZA_IO_RegWrite_16(&USB201.PIPEATRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-        break;
-
-        case USB_FUNCTION_PIPEB:
-            RZA_IO_RegWrite_16(&USB201.PIPEBTRE,
-                                0,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-            RZA_IO_RegWrite_16(&USB201.PIPEBTRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-        break;
-
-        case USB_FUNCTION_PIPEC:
-            RZA_IO_RegWrite_16(&USB201.PIPECTRE,
-                                0,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-            RZA_IO_RegWrite_16(&USB201.PIPECTRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-        break;
-
-        case USB_FUNCTION_PIPED:
-            RZA_IO_RegWrite_16(&USB201.PIPEDTRE,
-                                0,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-            RZA_IO_RegWrite_16(&USB201.PIPEDTRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-        break;
-
-        case USB_FUNCTION_PIPEE:
-            RZA_IO_RegWrite_16(&USB201.PIPEETRE,
-                                0,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-            RZA_IO_RegWrite_16(&USB201.PIPEETRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-        break;
-
-        case USB_FUNCTION_PIPEF:
-            RZA_IO_RegWrite_16(&USB201.PIPEFTRE,
-                                0,
-                                USB_PIPEnTRE_TRENB_SHIFT,
-                                USB_PIPEnTRE_TRENB);
-            RZA_IO_RegWrite_16(&USB201.PIPEFTRE,
-                                1,
-                                USB_PIPEnTRE_TRCLR_SHIFT,
-                                USB_PIPEnTRE_TRCLR);
-        break;
-
-        default:
-        break;
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_stop_transfer
-* Description  : Stops the USB transfer in the pipe specified by the argument.
-*              : After stopping the USB transfer, clears the buffer allocated in
-*              : the pipe.
-*              : After executing this function, allocation in FIF0 becomes USB_FUNCTION_PIPE0;
-*              : invalid. After executing this function, BRDY/NRDY/BEMP interrupt
-*              : in the corresponding pipe becomes invalid. Sequence bit is also
-*              : cleared.
-* Arguments    : uint16_t  pipe     ; Pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb1_function_stop_transfer (uint16_t pipe)
-{
-    uint16_t usefifo;
-    uint32_t remain;
-    uint16_t fifo;
-
-    usb1_function_set_pid_nak(pipe);
-
-    usefifo = (uint16_t)(g_usb1_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE);
-    switch (usefifo)
-    {
-        case USB_FUNCTION_D0FIFO_USE:
-            usb1_function_clear_transaction_counter(pipe);
-            USB201.D0FIFOCTR = USB_FUNCTION_BITBCLR;        /* Buffer Clear */
-            fifo = USB_FUNCTION_D0USE;
-        break;
-
-        case USB_FUNCTION_D1FIFO_USE:
-            usb1_function_clear_transaction_counter(pipe);
-            USB201.D1FIFOCTR = USB_FUNCTION_BITBCLR;        /* Buffer Clear */
-            fifo = USB_FUNCTION_D1USE;
-        break;
-
-        case USB_FUNCTION_D0FIFO_DMA:
-            remain = Userdef_USB_usb1_function_stop_dma0();
-            usb1_function_dma_stop_d0(pipe, remain);
-            usb1_function_clear_transaction_counter(pipe);
-            USB201.D0FIFOCTR = USB_FUNCTION_BITBCLR;        /* Buffer Clear */
-            fifo = USB_FUNCTION_D0DMA;
-        break;
-
-        case USB_FUNCTION_D1FIFO_DMA:
-            remain = Userdef_USB_usb1_function_stop_dma1();
-            usb1_function_dma_stop_d1(pipe, remain);
-            usb1_function_clear_transaction_counter(pipe);
-            USB201.D1FIFOCTR = USB_FUNCTION_BITBCLR;        /* Buffer Clear */
-            fifo = USB_FUNCTION_D1DMA;
-        break;
-
-        default:
-            usb1_function_clear_transaction_counter(pipe);
-            USB201.CFIFOCTR =  USB_FUNCTION_BITBCLR;        /* Buffer Clear */
-            fifo = USB_FUNCTION_CUSE;
-        break;
-    }
-
-    usb1_function_set_curpipe(USB_FUNCTION_PIPE0, fifo, DEVDRV_USBF_NO, USB_FUNCTION_BITMBW_16);
-
-    /* Interrupt of pipe set is disabled */
-    usb1_function_disable_brdy_int(pipe);
-    usb1_function_disable_nrdy_int(pipe);
-    usb1_function_disable_bemp_int(pipe);
-
-    usb1_function_aclrm(pipe);
-    usb1_function_set_csclr(pipe);
-
-    if ( g_usb1_function_pipe_status[pipe] == DEVDRV_USBF_PIPE_WAIT )
-    {
-        g_usb1_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_NORES;
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_set_dfacc_d0
-* Description  : Sets the DFACC setting value in D0FIFO using the transfer size.
-* Arguments    : uint16_t mbw     ; MBW
-*              : uint16_t count   ; data count
-* Return Value : DFACC Access mode
-*******************************************************************************/
-static uint16_t usb1_function_set_dfacc_d0 (uint16_t mbw, uint32_t count)
-{
-    uint16_t dfacc = 0;
-
-#ifndef __USB_FUNCTION_DF_ACC_ENABLE__
-    RZA_IO_RegWrite_16(&USB201.D0FBCFG,
-                        0,
-                        USB_DnFBCFG_DFACC_SHIFT,
-                        USB_DnFBCFG_DFACC);
-    RZA_IO_RegWrite_16(&USB201.D0FBCFG,
-                        0,
-                        USB_DnFBCFG_TENDE_SHIFT,
-                        USB_DnFBCFG_TENDE);
-    dfacc = 0;
-#else
-    if (mbw == USB_FUNCTION_BITMBW_32)
-    {
-        if ((count % 32) == 0)
-        {
-            /* 32byte transfer */
-            RZA_IO_RegWrite_16(&USB201.D0FBCFG,
-                                2,
-                                USB_DnFBCFG_DFACC_SHIFT,
-                                USB_DnFBCFG_DFACC);
-            RZA_IO_RegWrite_16(&USB201.D0FBCFG,
-                                0,
-                                USB_DnFBCFG_TENDE_SHIFT,
-                                USB_DnFBCFG_TENDE);
-            dfacc = 2;
-        }
-        else if ((count % 16) == 0)
-        {
-            /* 16byte transfer */
-            RZA_IO_RegWrite_16(&USB201.D0FBCFG,
-                                1,
-                                USB_DnFBCFG_DFACC_SHIFT,
-                                USB_DnFBCFG_DFACC);
-            RZA_IO_RegWrite_16(&USB201.D0FBCFG,
-                                0,
-                                USB_DnFBCFG_TENDE_SHIFT,
-                                USB_DnFBCFG_TENDE);
-            dfacc = 1;
-        }
-        else
-        {
-            RZA_IO_RegWrite_16(&USB201.D0FBCFG,
-                                0,
-                                USB_DnFBCFG_DFACC_SHIFT,
-                                USB_DnFBCFG_DFACC);
-            RZA_IO_RegWrite_16(&USB201.D0FBCFG,
-                                0,
-                                USB_DnFBCFG_TENDE_SHIFT,
-                                USB_DnFBCFG_TENDE);
-            dfacc = 0;
-        }
-    }
-    else if (mbw == USB_FUNCTION_BITMBW_16)
-    {
-        RZA_IO_RegWrite_16(&USB201.D0FBCFG,
-                            0,
-                            USB_DnFBCFG_DFACC_SHIFT,
-                            USB_DnFBCFG_DFACC);
-        RZA_IO_RegWrite_16(&USB201.D0FBCFG,
-                            0,
-                            USB_DnFBCFG_TENDE_SHIFT,
-                            USB_DnFBCFG_TENDE);
-        dfacc = 0;
-    }
-    else
-    {
-        RZA_IO_RegWrite_16(&USB201.D0FBCFG,
-                            0,
-                            USB_DnFBCFG_DFACC_SHIFT,
-                            USB_DnFBCFG_DFACC);
-        RZA_IO_RegWrite_16(&USB201.D0FBCFG,
-                            0,
-                            USB_DnFBCFG_TENDE_SHIFT,
-                            USB_DnFBCFG_TENDE);
-        dfacc = 0;
-    }
-#endif
-    return dfacc;
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_set_dfacc_d1
-* Description  : Set the DFACC setting value in D1FIFO using the transfer size.
-* Arguments    : uint16_t mbw     ; MBW
-*              : uint16_t count   ; data count
-* Return Value : DFACC Access mode
-*******************************************************************************/
-static uint16_t usb1_function_set_dfacc_d1 (uint16_t mbw, uint32_t count)
-{
-    uint16_t dfacc = 0;
-
-#ifndef __USB_FUNCTION_DF_ACC_ENABLE__
-    RZA_IO_RegWrite_16(&USB201.D1FBCFG,
-                        0,
-                        USB_DnFBCFG_DFACC_SHIFT,
-                        USB_DnFBCFG_DFACC);
-    RZA_IO_RegWrite_16(&USB201.D1FBCFG,
-                        0,
-                        USB_DnFBCFG_TENDE_SHIFT,
-                        USB_DnFBCFG_TENDE);
-    dfacc = 0;
-#else
-    if (mbw == USB_FUNCTION_BITMBW_32)
-    {
-        if ((count % 32) == 0)
-        {
-            /* 32byte transfer */
-            RZA_IO_RegWrite_16(&USB201.D1FBCFG,
-                                2,
-                                USB_DnFBCFG_DFACC_SHIFT,
-                                USB_DnFBCFG_DFACC);
-            RZA_IO_RegWrite_16(&USB201.D1FBCFG,
-                                0,
-                                USB_DnFBCFG_TENDE_SHIFT,
-                                USB_DnFBCFG_TENDE);
-            dfacc = 2;
-        }
-        else if ((count % 16) == 0)
-        {
-            /* 16byte transfer */
-            RZA_IO_RegWrite_16(&USB201.D1FBCFG,
-                                1,
-                                USB_DnFBCFG_DFACC_SHIFT,
-                                USB_DnFBCFG_DFACC);
-            RZA_IO_RegWrite_16(&USB201.D1FBCFG,
-                                0,
-                                USB_DnFBCFG_TENDE_SHIFT,
-                                USB_DnFBCFG_TENDE);
-            dfacc = 1;
-        }
-        else
-        {
-            RZA_IO_RegWrite_16(&USB201.D1FBCFG,
-                                0,
-                                USB_DnFBCFG_DFACC_SHIFT,
-                                USB_DnFBCFG_DFACC);
-            RZA_IO_RegWrite_16(&USB201.D1FBCFG,
-                                0,
-                                USB_DnFBCFG_TENDE_SHIFT,
-                                USB_DnFBCFG_TENDE);
-            dfacc = 0;
-        }
-    }
-    else if (mbw == USB_FUNCTION_BITMBW_16)
-    {
-        RZA_IO_RegWrite_16(&USB201.D1FBCFG,
-                            0,
-                            USB_DnFBCFG_DFACC_SHIFT,
-                            USB_DnFBCFG_DFACC);
-        RZA_IO_RegWrite_16(&USB201.D1FBCFG,
-                            0,
-                            USB_DnFBCFG_TENDE_SHIFT,
-                            USB_DnFBCFG_TENDE);
-        dfacc = 0;
-    }
-    else
-    {
-        RZA_IO_RegWrite_16(&USB201.D1FBCFG,
-                            0,
-                            USB_DnFBCFG_DFACC_SHIFT,
-                            USB_DnFBCFG_DFACC);
-        RZA_IO_RegWrite_16(&USB201.D1FBCFG,
-                            0,
-                            USB_DnFBCFG_TENDE_SHIFT,
-                            USB_DnFBCFG_TENDE);
-        dfacc = 0;
-    }
-#endif
-
-    return dfacc;
-}
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/common/usb1_function_dma.c	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,346 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb1_function_dma.c
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Device(s)    : RZ/A1H
-* Tool-Chain   :
-* OS           : None
-* H/W Platform :
-* Description  : RZ/A1H R7S72100 USB Sample Program
-* Operation    :
-* Limitations  :
-*******************************************************************************/
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include "usb1_function.h"
-
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Imported global variables and functions (from other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Private global variables and functions
-*******************************************************************************/
-static void usb1_function_dmaint(uint16_t fifo);
-static void usb1_function_dmaint_buf2fifo(uint16_t pipe);
-static void usb1_function_dmaint_fifo2buf(uint16_t pipe);
-
-
-/*******************************************************************************
-* Function Name: usb1_function_dma_stop_d0
-* Description  : D0FIFO DMA stop
-* Arguments    : uint16_t pipe      : pipe number
-*              : uint32_t remain    : transfer byte
-* Return Value : none
-*******************************************************************************/
-void usb1_function_dma_stop_d0 (uint16_t pipe, uint32_t remain)
-{
-    uint16_t dtln;
-    uint16_t dfacc;
-    uint16_t buffer;
-    uint16_t sds_b = 1;
-
-    dfacc = RZA_IO_RegRead_16(&USB201.D0FBCFG, USB_DnFBCFG_DFACC_SHIFT, USB_DnFBCFG_DFACC);
-
-    if (dfacc == 2)
-    {
-        sds_b = 32;
-    }
-    else if (dfacc == 1)
-    {
-        sds_b = 16;
-    }
-    else
-    {
-        if (g_usb1_function_DmaInfo[USB_FUNCTION_D0FIFO].size == 2)
-        {
-            sds_b = 4;
-        }
-        else if (g_usb1_function_DmaInfo[USB_FUNCTION_D0FIFO].size == 1)
-        {
-            sds_b = 2;
-        }
-        else
-        {
-            sds_b = 1;
-        }
-    }
-
-    if (RZA_IO_RegRead_16(&g_usb1_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 1)
-    {
-        if (g_usb1_function_pipe_status[pipe] != DEVDRV_USBF_PIPE_DONE)
-        {
-            buffer = USB201.D0FIFOCTR;
-            dtln   = (buffer & USB_FUNCTION_BITDTLN);
-
-            if ((dtln % sds_b) != 0)
-            {
-                remain += (sds_b - (dtln % sds_b));
-            }
-            g_usb1_function_PipeDataSize[pipe] = (g_usb1_function_data_count[pipe] - remain);
-            g_usb1_function_data_count[pipe]   = remain;
-        }
-    }
-
-    RZA_IO_RegWrite_16(&USB201.D0FIFOSEL, 0, USB_DnFIFOSEL_DREQE_SHIFT, USB_DnFIFOSEL_DREQE);
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_dma_stop_d1
-* Description  : D1FIFO DMA stop
-* Arguments    : uint16_t pipe      : pipe number
-*              : uint32_t remain    : transfer byte
-* Return Value : none
-*******************************************************************************/
-void usb1_function_dma_stop_d1 (uint16_t pipe, uint32_t remain)
-{
-    uint16_t dtln;
-    uint16_t dfacc;
-    uint16_t buffer;
-    uint16_t sds_b = 1;
-
-    dfacc = RZA_IO_RegRead_16(&USB201.D1FBCFG, USB_DnFBCFG_DFACC_SHIFT, USB_DnFBCFG_DFACC);
-
-    if (dfacc == 2)
-    {
-        sds_b = 32;
-    }
-    else if (dfacc == 1)
-    {
-        sds_b = 16;
-    }
-    else
-    {
-        if (g_usb1_function_DmaInfo[USB_FUNCTION_D1FIFO].size == 2)
-        {
-            sds_b = 4;
-        }
-        else if (g_usb1_function_DmaInfo[USB_FUNCTION_D1FIFO].size == 1)
-        {
-            sds_b = 2;
-        }
-        else
-        {
-            sds_b = 1;
-        }
-    }
-
-    if (RZA_IO_RegRead_16(&g_usb1_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 1)
-    {
-        if (g_usb1_function_pipe_status[pipe] != DEVDRV_USBF_PIPE_DONE)
-        {
-            buffer = USB201.D1FIFOCTR;
-            dtln   = (buffer & USB_FUNCTION_BITDTLN);
-
-            if ((dtln % sds_b) != 0)
-            {
-                remain += (sds_b - (dtln % sds_b));
-            }
-            g_usb1_function_PipeDataSize[pipe] = (g_usb1_function_data_count[pipe] - remain);
-            g_usb1_function_data_count[pipe]   = remain;
-        }
-    }
-
-    RZA_IO_RegWrite_16(&USB201.D1FIFOSEL, 0, USB_DnFIFOSEL_DREQE_SHIFT, USB_DnFIFOSEL_DREQE);
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_dma_interrupt_d0fifo
-* Description  : This function is DMA interrupt handler entry.
-*              : Execute usb1_function_dmaint() after disabling DMA interrupt in this function.
-*              : Disable DMA interrupt to DMAC executed when USB_FUNCTION_D0FIFO_DMA is
-*              : specified by dma->fifo.
-*              : Register this function as DMA complete interrupt.
-* Arguments    : uint32_t int_sense ; Interrupts detection mode
-*              :                    ;  INTC_LEVEL_SENSITIVE : Level sense
-*              :                    ;  INTC_EDGE_TRIGGER : Edge trigger
-* Return Value : none
-*******************************************************************************/
-void usb1_function_dma_interrupt_d0fifo (uint32_t int_sense)
-{
-    usb1_function_dmaint(USB_FUNCTION_D0FIFO);
-    g_usb1_function_DmaStatus[USB_FUNCTION_D0FIFO] = USB_FUNCTION_DMA_READY;
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_dma_interrupt_d1fifo
-* Description  : This function is DMA interrupt handler entry.
-*              : Execute usb1_function_dmaint() after disabling DMA interrupt in this function.
-*              : Disable DMA interrupt to DMAC executed when USB_FUNCTION_D1FIFO_DMA is
-*              : specified by dma->fifo.
-*              : Register this function as DMA complete interrupt.
-* Arguments    : uint32_t int_sense ; Interrupts detection mode
-*              :                    ;  INTC_LEVEL_SENSITIVE : Level sense
-*              :                    ;  INTC_EDGE_TRIGGER : Edge trigger
-* Return Value : none
-*******************************************************************************/
-void usb1_function_dma_interrupt_d1fifo (uint32_t int_sense)
-{
-    usb1_function_dmaint(USB_FUNCTION_D1FIFO);
-    g_usb1_function_DmaStatus[USB_FUNCTION_D1FIFO] = USB_FUNCTION_DMA_READY;
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_dmaint
-* Description  : This function is DMA transfer end interrupt
-* Arguments    : uint16_t fifo  ; fifo number
-*              :                ;  USB_FUNCTION_D0FIFO
-*              :                ;  USB_FUNCTION_D1FIFO
-* Return Value : none
-*******************************************************************************/
-static void usb1_function_dmaint (uint16_t fifo)
-{
-    uint16_t pipe;
-
-    pipe = g_usb1_function_DmaPipe[fifo];
-
-    if (g_usb1_function_DmaInfo[fifo].dir == USB_FUNCTION_BUF2FIFO)
-    {
-        usb1_function_dmaint_buf2fifo(pipe);
-    }
-    else
-    {
-        usb1_function_dmaint_fifo2buf(pipe);
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_dmaint_fifo2buf
-* Description  : Executes read completion from FIFO by DMAC.
-* Arguments    : uint16_t pipe      : pipe number
-* Return Value : none
-*******************************************************************************/
-static void usb1_function_dmaint_fifo2buf (uint16_t pipe)
-{
-    uint32_t remain;
-    uint16_t useport;
-
-    if (g_usb1_function_pipe_status[pipe] != DEVDRV_USBF_PIPE_DONE)
-    {
-        useport = (uint16_t)(g_usb1_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE);
-
-        if (useport == USB_FUNCTION_D0FIFO_DMA)
-        {
-            remain = Userdef_USB_usb1_function_stop_dma0();
-            usb1_function_dma_stop_d0(pipe, remain);
-
-            if (RZA_IO_RegRead_16(&g_usb1_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 0)
-            {
-                if (g_usb1_function_DmaStatus[USB_FUNCTION_D0FIFO] == USB_FUNCTION_DMA_BUSYEND)
-                {
-                    USB201.D0FIFOCTR = USB_FUNCTION_BITBCLR;
-                    g_usb1_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_DONE;
-                }
-                else
-                {
-                    usb1_function_enable_brdy_int(pipe);
-                }
-            }
-        }
-        else
-        {
-            remain = Userdef_USB_usb1_function_stop_dma1();
-            usb1_function_dma_stop_d1(pipe, remain);
-
-            if (RZA_IO_RegRead_16(&g_usb1_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 0)
-            {
-                if (g_usb1_function_DmaStatus[USB_FUNCTION_D1FIFO] == USB_FUNCTION_DMA_BUSYEND)
-                {
-                    USB201.D1FIFOCTR = USB_FUNCTION_BITBCLR;
-                    g_usb1_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_DONE;
-                }
-                else
-                {
-                    usb1_function_enable_brdy_int(pipe);
-                }
-            }
-        }
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_dmaint_buf2fifo
-* Description  : Executes write completion in FIFO by DMAC.
-* Arguments    : uint16_t pipe      : pipe number
-* Return Value : none
-*******************************************************************************/
-static void usb1_function_dmaint_buf2fifo (uint16_t pipe)
-{
-    uint32_t remain;
-    uint16_t useport;
-
-    useport = (uint16_t)(g_usb1_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE);
-
-    if (useport == USB_FUNCTION_D0FIFO_DMA)
-    {
-        remain = Userdef_USB_usb1_function_stop_dma0();
-        usb1_function_dma_stop_d0(pipe, remain);
-
-        if (g_usb1_function_DmaBval[USB_FUNCTION_D0FIFO] != 0)
-        {
-            RZA_IO_RegWrite_16(&USB201.D0FIFOCTR,
-                                1,
-                                USB_DnFIFOCTR_BVAL_SHIFT,
-                                USB_DnFIFOCTR_BVAL);
-        }
-    }
-    else
-    {
-        remain = Userdef_USB_usb1_function_stop_dma1();
-        usb1_function_dma_stop_d1(pipe, remain);
-
-        if (g_usb1_function_DmaBval[USB_FUNCTION_D1FIFO] != 0)
-        {
-            RZA_IO_RegWrite_16(&USB201.D1FIFOCTR,
-                                1,
-                                USB_DnFIFOCTR_BVAL_SHIFT,
-                                USB_DnFIFOCTR_BVAL);
-        }
-    }
-
-    usb1_function_enable_bemp_int(pipe);
-}
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/common/usb1_function_intrn.c	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,249 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb1_function_intrn.c
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Device(s)    : RZ/A1H
-* Tool-Chain   :
-* OS           : None
-* H/W Platform :
-* Description  : RZ/A1H R7S72100 USB Sample Program
-* Operation    :
-* Limitations  :
-*******************************************************************************/
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include "usb1_function.h"
-
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Imported global variables and functions (from other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Private global variables and functions
-*******************************************************************************/
-
-
-/*******************************************************************************
-* Function Name: usb1_function_brdy_int
-* Description  : Executes BRDY interrupt(USB_FUNCTION_PIPE1-9).
-*              : According to the pipe that interrupt is generated in,
-*              : reads/writes buffer allocated in the pipe.
-*              : This function is executed in the BRDY interrupt handler.
-*              : This function clears BRDY interrupt status and BEMP interrupt
-*              : status.
-* Arguments    : uint16_t Status       ; BRDYSTS Register Value
-*              : uint16_t Int_enbl     ; BRDYENB Register Value
-* Return Value : none
-*******************************************************************************/
-#if 0
-void usb1_function_brdy_int (uint16_t status, uint16_t int_enb)
-{
-    uint32_t int_sense = 0;
-    uint16_t pipe;
-    uint16_t pipebit;
-
-    for (pipe = USB_FUNCTION_PIPE1; pipe <= USB_FUNCTION_MAX_PIPE_NO; pipe++)
-    {
-        pipebit = g_usb1_function_bit_set[pipe];
-
-        if ((status & pipebit) && (int_enb & pipebit))
-        {
-            USB201.BRDYSTS = (uint16_t)~pipebit;
-            USB201.BEMPSTS = (uint16_t)~pipebit;
-            if ((g_usb1_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE) == USB_FUNCTION_D0FIFO_DMA)
-            {
-                if (g_usb1_function_DmaStatus[USB_FUNCTION_D0FIFO] != USB_FUNCTION_DMA_READY)
-                {
-                    usb1_function_dma_interrupt_d0fifo(int_sense);
-                }
-
-                if (RZA_IO_RegRead_16(&g_usb1_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 0)
-                {
-                    usb1_function_read_dma(pipe);
-                    usb1_function_disable_brdy_int(pipe);
-                }
-                else
-                {
-                    USB201.D0FIFOCTR = USB_FUNCTION_BITBCLR;
-                    g_usb1_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_DONE;
-                }
-            }
-            else if ((g_usb1_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE) == USB_FUNCTION_D1FIFO_DMA)
-            {
-                if (g_usb1_function_DmaStatus[USB_FUNCTION_D1FIFO] != USB_FUNCTION_DMA_READY)
-                {
-                    usb1_function_dma_interrupt_d1fifo(int_sense);
-                }
-
-                if (RZA_IO_RegRead_16(&g_usb1_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 0)
-                {
-                    usb1_function_read_dma(pipe);
-                    usb1_function_disable_brdy_int(pipe);
-                }
-                else
-                {
-                    USB201.D1FIFOCTR = USB_FUNCTION_BITBCLR;
-                    g_usb1_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_DONE;
-                }
-            }
-            else
-            {
-                if (RZA_IO_RegRead_16(&g_usb1_function_pipecfg[pipe], USB_PIPECFG_DIR_SHIFT, USB_PIPECFG_DIR) == 0)
-                {
-                    usb1_function_read_buffer(pipe);
-                }
-                else
-                {
-                    usb1_function_write_buffer(pipe);
-                }
-            }
-        }
-    }
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb1_function_nrdy_int
-* Description  : Executes NRDY interrupt(USB_FUNCTION_PIPE1-9).
-*              : Checks NRDY interrupt cause by PID. When the cause if STALL,
-*              : regards the pipe state as STALL and ends the processing.
-*              : Then the cause is not STALL, increments the error count to
-*              : communicate again. When the error count is 3, determines
-*              : the pipe state as DEVDRV_USBF_PIPE_NORES and ends the processing.
-*              : This function is executed in the NRDY interrupt handler.
-*              : This function clears NRDY interrupt status.
-* Arguments    : uint16_t status       ; NRDYSTS Register Value
-*              : uint16_t int_enb      ; NRDYENB Register Value
-* Return Value : none
-*******************************************************************************/
-void usb1_function_nrdy_int (uint16_t status, uint16_t int_enb)
-{
-    uint16_t pid;
-    uint16_t pipe;
-    uint16_t bitcheck;
-
-    bitcheck = (uint16_t)(status & int_enb);
-
-    USB201.NRDYSTS = (uint16_t)~status;
-
-    for (pipe = USB_FUNCTION_PIPE1; pipe <= USB_FUNCTION_MAX_PIPE_NO; pipe++)
-    {
-        if ((bitcheck&g_usb1_function_bit_set[pipe]) == g_usb1_function_bit_set[pipe])
-        {
-            if (RZA_IO_RegRead_16(&USB201.SYSCFG0, USB_SYSCFG_DCFM_SHIFT, USB_SYSCFG_DCFM) == 1)
-            {
-                if (g_usb1_function_pipe_status[pipe] == DEVDRV_USBF_PIPE_WAIT)
-                {
-                    pid = usb1_function_get_pid(pipe);
-                    if ((pid == DEVDRV_USBF_PID_STALL) || (pid == DEVDRV_USBF_PID_STALL2))
-                    {
-                        g_usb1_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_STALL;
-                    }
-                    else
-                    {
-                        g_usb1_function_PipeIgnore[pipe]++;
-                        if (g_usb1_function_PipeIgnore[pipe] == 3)
-                        {
-                            g_usb1_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_NORES;
-                        }
-                        else
-                        {
-                            usb1_function_set_pid_buf(pipe);
-                        }
-                    }
-                }
-            }
-            else
-            {
-                /* USB Function */
-            }
-        }
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_bemp_int
-* Description  : Executes BEMP interrupt(USB_FUNCTION_PIPE1-9).
-* Arguments    : uint16_t status       ; BEMPSTS Register Value
-*              : uint16_t int_enb      ; BEMPENB Register Value
-* Return Value : none
-*******************************************************************************/
-void usb1_function_bemp_int (uint16_t status, uint16_t int_enb)
-{
-    uint16_t pid;
-    uint16_t pipe;
-    uint16_t bitcheck;
-    uint16_t inbuf;
-
-    bitcheck = (uint16_t)(status & int_enb);
-
-    USB201.BEMPSTS = (uint16_t)~status;
-
-    for (pipe = USB_FUNCTION_PIPE1; pipe <= USB_FUNCTION_MAX_PIPE_NO; pipe++)
-    {
-        if ((bitcheck&g_usb1_function_bit_set[pipe]) == g_usb1_function_bit_set[pipe])
-        {
-            pid = usb1_function_get_pid(pipe);
-
-            if ((pid == DEVDRV_USBF_PID_STALL) || (pid == DEVDRV_USBF_PID_STALL2))
-            {
-                g_usb1_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_STALL;
-            }
-            else
-            {
-                inbuf = usb1_function_get_inbuf(pipe);
-
-                if (inbuf == 0)
-                {
-                    usb1_function_disable_bemp_int(pipe);
-                    usb1_function_set_pid_nak(pipe);
-                    g_usb1_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_DONE;
-                }
-            }
-        }
-    }
-}
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/common/usb1_function_lib.c	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2044 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb1_function_lib.c
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Device(s)    : RZ/A1H
-* Tool-Chain   :
-* OS           : None
-* H/W Platform :
-* Description  : RZ/A1H R7S72100 USB Sample Program
-* Operation    :
-* Limitations  :
-*******************************************************************************/
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include "usb1_function.h"
-
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Imported global variables and functions (from other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Private global variables and functions
-*******************************************************************************/
-
-
-/*******************************************************************************
-* Function Name: usb1_function_enable_brdy_int
-* Description  : Enables BRDY interrupt in the pipe spceified by the argument.
-*              : Disables BEMP/NRDY/BRDY interrupts in all pipes before enabling
-*              : BRDY. Enables BRDY interrupt in the pipe specified by the argument
-*              : in the disabled status. After enabling BRDY, recover all
-*              : BEMP/NRDY/BRDY disabled/enabled status.
-* Arguments    : uint16_t pipe           ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb1_function_enable_brdy_int (uint16_t pipe)
-{
-    /* enable brdy interrupt */
-    USB201.BRDYENB |= (uint16_t)g_usb1_function_bit_set[pipe];
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_disable_brdy_int
-* Description  : Disables BRDY interrupt in the pipe spceified by the argument.
-*              : Disables BEMP/NRDY/BRDY interrupts in all pipes before disabling
-*              : BRDY. Enables BRDY interrupt in the pipe specified by the argument
-*              : in the disabled status. After disabling BRDY, recover all
-*              : BEMP/NRDY/BRDY disabled/enabled status.
-* Arguments    : uint16_t pipe        ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb1_function_disable_brdy_int (uint16_t pipe)
-{
-    /* disable brdy interrupt */
-    USB201.BRDYENB &= (uint16_t)~(g_usb1_function_bit_set[pipe]);
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_clear_brdy_sts
-* Description  : Clear BRDY interrupt status in the pipe spceified by the argument.
-* Arguments    : uint16_t pipe        ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb1_function_clear_brdy_sts (uint16_t pipe)
-{
-    /* clear brdy status */
-    USB201.BRDYSTS = (uint16_t)~(g_usb1_function_bit_set[pipe]);
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_enable_bemp_int
-* Description  : Enables BEMP interrupt in the pipe spceified by the argument.
-*              : Disables BEMP/NRDY/BRDY interrupts in all pipes before enabling
-*              : BEMP. Enables BEMP interrupt in the pipe specified by the argument
-*              : in the disabled status. After enabling BEMP, recover all
-*              : BEMP/NRDY/BRDY disabled/enabled status.
-* Arguments    : uint16_t pipe           ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb1_function_enable_bemp_int (uint16_t pipe)
-{
-    /* enable bemp interrupt */
-    USB201.BEMPENB |= (uint16_t)g_usb1_function_bit_set[pipe];
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_disable_bemp_int
-* Description  : Disables BEMP interrupt in the pipe spceified by the argument.
-*              : Disables BEMP/NRDY/BRDY interrupts in all pipes before disabling
-*              : BEMP. Enables BEMP interrupt in the pipe specified by the argument
-*              : in the disabled status. After enabling BEMP, recover all
-*              : BEMP/NRDY/BRDY disabled/enabled status.
-* Arguments    : uint16_t pipe           ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb1_function_disable_bemp_int (uint16_t pipe)
-{
-    /* disable bemp interrupt */
-    USB201.BEMPENB &= (uint16_t)~(g_usb1_function_bit_set[pipe]);
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_clear_bemp_sts
-* Description  : Clear BEMP interrupt status in the pipe spceified by the argument.
-* Arguments    : uint16_t pipe        ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb1_function_clear_bemp_sts (uint16_t pipe)
-{
-    /* clear bemp status */
-    USB201.BEMPSTS = (uint16_t)~(g_usb1_function_bit_set[pipe]);
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_enable_nrdy_int
-* Description  : Enables NRDY interrupt in the pipe spceified by the argument.
-*              : Disables BEMP/NRDY/BRDY interrupts in all pipes before enabling
-*              : NRDY. Enables NRDY interrupt in the pipe specified by the argument
-*              : in the disabled status. After enabling NRDY, recover all
-*              : BEMP/NRDY/BRDY disabled/enabled status.
-* Arguments    : uint16_t pipe             ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb1_function_enable_nrdy_int (uint16_t pipe)
-{
-    /* enable nrdy interrupt */
-    USB201.NRDYENB |= (uint16_t)g_usb1_function_bit_set[pipe];
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_disable_nrdy_int
-* Description  : Disables NRDY interrupt in the pipe spceified by the argument.
-*              : Disables BEMP/NRDY/BRDY interrupts in all pipes before disabling
-*              : NRDY. Disables NRDY interrupt in the pipe specified by the argument
-*              : in the disabled status. After disabling NRDY, recover all
-*              : BEMP/NRDY/BRDY disabled/enabled status.
-* Arguments    : uint16_t pipe            ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb1_function_disable_nrdy_int (uint16_t pipe)
-{
-    /* disable nrdy interrupt */
-    USB201.NRDYENB &= (uint16_t)~(g_usb1_function_bit_set[pipe]);
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_clear_nrdy_sts
-* Description  : Clear NRDY interrupt status in the pipe spceified by the argument.
-* Arguments    : uint16_t pipe        ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb1_function_clear_nrdy_sts (uint16_t pipe)
-{
-    /* clear nrdy status */
-    USB201.NRDYSTS = (uint16_t)~(g_usb1_function_bit_set[pipe]);
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_is_hispeed
-* Description  : Returns the result of USB reset hand shake (RHST) as
-*              : return value.
-* Arguments    : none
-* Return Value : USB_FUNCTION_HIGH_SPEED    ; Hi-Speed
-*              : USB_FUNCTION_FULL_SPEED    ; Full-Speed
-*              : LOW_SPEED                  ; Low-Speed
-*              : USB_FUNCTION_NON_SPEED     ; error
-*******************************************************************************/
-uint16_t usb1_function_is_hispeed (void)
-{
-    uint16_t rhst;
-    uint16_t speed;
-
-    rhst = RZA_IO_RegRead_16(&USB201.DVSTCTR0, USB_DVSTCTR0_RHST_SHIFT, USB_DVSTCTR0_RHST);
-
-    if (rhst == USB_FUNCTION_HSMODE)
-    {
-        speed = USB_FUNCTION_HIGH_SPEED;
-    }
-    else if (rhst == USB_FUNCTION_FSMODE)
-    {
-        speed = USB_FUNCTION_FULL_SPEED;
-    }
-    else if (rhst == USB_FUNCTION_LSMODE)
-    {
-        speed = USB_FUNCTION_LOW_SPEED;
-    }
-    else
-    {
-        speed = USB_FUNCTION_NON_SPEED;
-    }
-
-    return speed;
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_is_hispeed_enable
-* Description  : Returns the USB High-Speed connection enabled status as
-*              : return value.
-* Arguments    : none
-* Return Value : DEVDRV_USBF_YES  : Hi-Speed Enable
-*              : DEVDRV_USBF_NO   : Hi-Speed Disable
-*******************************************************************************/
-uint16_t usb1_function_is_hispeed_enable (void)
-{
-    uint16_t ret;
-
-    ret = DEVDRV_USBF_NO;
-
-    if (RZA_IO_RegRead_16(&USB201.SYSCFG0, USB_SYSCFG_HSE_SHIFT, USB_SYSCFG_HSE) == 1)
-    {
-        ret = DEVDRV_USBF_YES;
-    }
-
-    return ret;
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_set_pid_buf
-* Description  : Enables communicaqtion in the pipe specified by the argument
-*              : (BUF).
-* Arguments    : uint16_t pipe             ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb1_function_set_pid_buf (uint16_t pipe)
-{
-    uint16_t pid;
-
-    pid = usb1_function_get_pid(pipe);
-
-    if (pid == DEVDRV_USBF_PID_STALL2)
-    {
-        usb1_function_set_pid_nak(pipe);
-    }
-
-    switch (pipe)
-    {
-        case USB_FUNCTION_PIPE0:
-            RZA_IO_RegWrite_16(&USB201.DCPCTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_DCPCTR_PID_SHIFT,
-                                USB_DCPCTR_PID);
-        break;
-
-        case USB_FUNCTION_PIPE1:
-            RZA_IO_RegWrite_16(&USB201.PIPE1CTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_1_5_PID_SHIFT,
-                                USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE2:
-            RZA_IO_RegWrite_16(&USB201.PIPE2CTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_1_5_PID_SHIFT,
-                                USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE3:
-            RZA_IO_RegWrite_16(&USB201.PIPE3CTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_1_5_PID_SHIFT,
-                                USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE4:
-            RZA_IO_RegWrite_16(&USB201.PIPE4CTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_1_5_PID_SHIFT,
-                                USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE5:
-            RZA_IO_RegWrite_16(&USB201.PIPE5CTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_1_5_PID_SHIFT,
-                                USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE6:
-            RZA_IO_RegWrite_16(&USB201.PIPE6CTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_6_8_PID_SHIFT,
-                                USB_PIPEnCTR_6_8_PID);
-        break;
-
-        case USB_FUNCTION_PIPE7:
-            RZA_IO_RegWrite_16(&USB201.PIPE7CTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_6_8_PID_SHIFT,
-                                USB_PIPEnCTR_6_8_PID);
-        break;
-
-        case USB_FUNCTION_PIPE8:
-            RZA_IO_RegWrite_16(&USB201.PIPE8CTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_6_8_PID_SHIFT,
-                                USB_PIPEnCTR_6_8_PID);
-        break;
-
-        case USB_FUNCTION_PIPE9:
-            RZA_IO_RegWrite_16(&USB201.PIPE9CTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_9_PID_SHIFT,
-                                USB_PIPEnCTR_9_PID);
-        break;
-
-        case USB_FUNCTION_PIPEA:
-            RZA_IO_RegWrite_16(&USB201.PIPEACTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_A_F_PID_SHIFT,
-                                USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPEB:
-            RZA_IO_RegWrite_16(&USB201.PIPEBCTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_A_F_PID_SHIFT,
-                                USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPEC:
-            RZA_IO_RegWrite_16(&USB201.PIPECCTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_A_F_PID_SHIFT,
-                                USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPED:
-            RZA_IO_RegWrite_16(&USB201.PIPEDCTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_A_F_PID_SHIFT,
-                                USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPEE:
-            RZA_IO_RegWrite_16(&USB201.PIPEECTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_A_F_PID_SHIFT,
-                                USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPEF:
-            RZA_IO_RegWrite_16(&USB201.PIPEFCTR,
-                                DEVDRV_USBF_PID_BUF,
-                                USB_PIPEnCTR_A_F_PID_SHIFT,
-                                USB_PIPEnCTR_A_F_PID);
-        break;
-
-        default:
-        break;
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_set_pid_nak
-* Description  : Disables communication (NAK) in the pipe specified by the argument.
-*              : When the pipe status was enabling communication (BUF) before
-*              : executing before executing this function, waits in the software
-*              : until the pipe becomes ready after setting disabled.
-* Arguments    : uint16_t pipe            ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb1_function_set_pid_nak (uint16_t pipe)
-{
-    uint16_t pid;
-    uint16_t pbusy;
-    uint32_t loop;
-
-    pid = usb1_function_get_pid(pipe);
-
-    if (pid == DEVDRV_USBF_PID_STALL2)
-    {
-        usb1_function_set_pid_stall(pipe);
-    }
-
-    switch (pipe)
-    {
-        case USB_FUNCTION_PIPE0:
-            RZA_IO_RegWrite_16(&USB201.DCPCTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_DCPCTR_PID_SHIFT,
-                                USB_DCPCTR_PID);
-        break;
-
-        case USB_FUNCTION_PIPE1:
-            RZA_IO_RegWrite_16(&USB201.PIPE1CTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_1_5_PID_SHIFT,
-                                USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE2:
-            RZA_IO_RegWrite_16(&USB201.PIPE2CTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_1_5_PID_SHIFT,
-                                USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE3:
-            RZA_IO_RegWrite_16(&USB201.PIPE3CTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_1_5_PID_SHIFT,
-                                USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE4:
-            RZA_IO_RegWrite_16(&USB201.PIPE4CTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_1_5_PID_SHIFT,
-                                USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE5:
-            RZA_IO_RegWrite_16(&USB201.PIPE5CTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_1_5_PID_SHIFT,
-                                USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE6:
-            RZA_IO_RegWrite_16(&USB201.PIPE6CTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_6_8_PID_SHIFT,
-                                USB_PIPEnCTR_6_8_PID);
-        break;
-
-        case USB_FUNCTION_PIPE7:
-            RZA_IO_RegWrite_16(&USB201.PIPE7CTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_6_8_PID_SHIFT,
-                                USB_PIPEnCTR_6_8_PID);
-        break;
-
-        case USB_FUNCTION_PIPE8:
-            RZA_IO_RegWrite_16(&USB201.PIPE8CTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_6_8_PID_SHIFT,
-                                USB_PIPEnCTR_6_8_PID);
-        break;
-
-        case USB_FUNCTION_PIPE9:
-            RZA_IO_RegWrite_16(&USB201.PIPE9CTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_9_PID_SHIFT,
-                                USB_PIPEnCTR_9_PID);
-        break;
-
-        case USB_FUNCTION_PIPEA:
-            RZA_IO_RegWrite_16(&USB201.PIPEACTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_A_F_PID_SHIFT,
-                                USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPEB:
-            RZA_IO_RegWrite_16(&USB201.PIPEBCTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_A_F_PID_SHIFT,
-                                USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPEC:
-            RZA_IO_RegWrite_16(&USB201.PIPECCTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_A_F_PID_SHIFT,
-                                USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPED:
-            RZA_IO_RegWrite_16(&USB201.PIPEDCTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_A_F_PID_SHIFT,
-                                USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPEE:
-            RZA_IO_RegWrite_16(&USB201.PIPEECTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_A_F_PID_SHIFT,
-                                USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPEF:
-            RZA_IO_RegWrite_16(&USB201.PIPEFCTR,
-                                DEVDRV_USBF_PID_NAK,
-                                USB_PIPEnCTR_A_F_PID_SHIFT,
-                                USB_PIPEnCTR_A_F_PID);
-        break;
-
-        default:
-        break;
-    }
-
-    if (pid == DEVDRV_USBF_PID_BUF)
-    {
-        for (loop = 0; loop < 200; loop++)
-        {
-            switch (pipe)
-            {
-                case USB_FUNCTION_PIPE0:
-                    pbusy = RZA_IO_RegRead_16(&USB201.DCPCTR,
-                                                USB_DCPCTR_PBUSY_SHIFT,
-                                                USB_DCPCTR_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPE1:
-                    pbusy = RZA_IO_RegRead_16(&USB201.PIPE1CTR,
-                                                USB_PIPEnCTR_1_5_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_1_5_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPE2:
-                    pbusy = RZA_IO_RegRead_16(&USB201.PIPE2CTR,
-                                                USB_PIPEnCTR_1_5_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_1_5_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPE3:
-                    pbusy = RZA_IO_RegRead_16(&USB201.PIPE3CTR,
-                                                USB_PIPEnCTR_1_5_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_1_5_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPE4:
-                    pbusy = RZA_IO_RegRead_16(&USB201.PIPE4CTR,
-                                                USB_PIPEnCTR_1_5_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_1_5_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPE5:
-                    pbusy = RZA_IO_RegRead_16(&USB201.PIPE5CTR,
-                                                USB_PIPEnCTR_1_5_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_1_5_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPE6:
-                    pbusy = RZA_IO_RegRead_16(&USB201.PIPE6CTR,
-                                                USB_PIPEnCTR_6_8_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_6_8_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPE7:
-                    pbusy = RZA_IO_RegRead_16(&USB201.PIPE7CTR,
-                                                USB_PIPEnCTR_6_8_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_6_8_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPE8:
-                    pbusy = RZA_IO_RegRead_16(&USB201.PIPE8CTR,
-                                                USB_PIPEnCTR_6_8_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_6_8_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPE9:
-                    pbusy = RZA_IO_RegRead_16(&USB201.PIPE9CTR,
-                                                USB_PIPEnCTR_9_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_9_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPEA:
-                    pbusy = RZA_IO_RegRead_16(&USB201.PIPEACTR,
-                                                USB_PIPEnCTR_A_F_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_A_F_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPEB:
-                    pbusy = RZA_IO_RegRead_16(&USB201.PIPEBCTR,
-                                                USB_PIPEnCTR_A_F_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_A_F_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPEC:
-                    pbusy = RZA_IO_RegRead_16(&USB201.PIPECCTR,
-                                                USB_PIPEnCTR_A_F_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_A_F_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPED:
-                    pbusy = RZA_IO_RegRead_16(&USB201.PIPEDCTR,
-                                                USB_PIPEnCTR_A_F_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_A_F_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPEE:
-                    pbusy = RZA_IO_RegRead_16(&USB201.PIPEECTR,
-                                                USB_PIPEnCTR_A_F_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_A_F_PBUSY);
-                break;
-
-                case USB_FUNCTION_PIPEF:
-                    pbusy = RZA_IO_RegRead_16(&USB201.PIPEFCTR,
-                                                USB_PIPEnCTR_A_F_PBUSY_SHIFT,
-                                                USB_PIPEnCTR_A_F_PBUSY);
-                break;
-
-                default:
-                    pbusy   = 1;
-                break;
-            }
-
-            if (pbusy == 0)
-            {
-                break;
-            }
-            Userdef_USB_usb1_function_delay_500ns();
-        }
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_set_pid_stall
-* Description  : Disables communication (STALL) in the pipe specified by the
-*              : argument.
-* Arguments    : uint16_t pipe            ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb1_function_set_pid_stall (uint16_t pipe)
-{
-    uint16_t pid;
-
-    pid = usb1_function_get_pid(pipe);
-    if (pid == DEVDRV_USBF_PID_BUF)
-    {
-        switch (pipe)
-        {
-            case USB_FUNCTION_PIPE0:
-                RZA_IO_RegWrite_16(&USB201.DCPCTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_DCPCTR_PID_SHIFT,
-                                    USB_DCPCTR_PID);
-            break;
-
-            case USB_FUNCTION_PIPE1:
-                RZA_IO_RegWrite_16(&USB201.PIPE1CTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-            break;
-
-            case USB_FUNCTION_PIPE2:
-                RZA_IO_RegWrite_16(&USB201.PIPE2CTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-            break;
-
-            case USB_FUNCTION_PIPE3:
-                RZA_IO_RegWrite_16(&USB201.PIPE3CTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-            break;
-
-            case USB_FUNCTION_PIPE4:
-                RZA_IO_RegWrite_16(&USB201.PIPE4CTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-            break;
-
-            case USB_FUNCTION_PIPE5:
-                RZA_IO_RegWrite_16(&USB201.PIPE5CTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-            break;
-
-            case USB_FUNCTION_PIPE6:
-                RZA_IO_RegWrite_16(&USB201.PIPE6CTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_6_8_PID_SHIFT,
-                                    USB_PIPEnCTR_6_8_PID);
-            break;
-
-            case USB_FUNCTION_PIPE7:
-                RZA_IO_RegWrite_16(&USB201.PIPE7CTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_6_8_PID_SHIFT,
-                                    USB_PIPEnCTR_6_8_PID);
-            break;
-
-            case USB_FUNCTION_PIPE8:
-                RZA_IO_RegWrite_16(&USB201.PIPE8CTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_6_8_PID_SHIFT,
-                                    USB_PIPEnCTR_6_8_PID);
-            break;
-
-            case USB_FUNCTION_PIPE9:
-                RZA_IO_RegWrite_16(&USB201.PIPE9CTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_9_PID_SHIFT,
-                                    USB_PIPEnCTR_9_PID);
-            break;
-
-            case USB_FUNCTION_PIPEA:
-                RZA_IO_RegWrite_16(&USB201.PIPEACTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-            break;
-
-            case USB_FUNCTION_PIPEB:
-                RZA_IO_RegWrite_16(&USB201.PIPEBCTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-            break;
-
-            case USB_FUNCTION_PIPEC:
-                RZA_IO_RegWrite_16(&USB201.PIPECCTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-            break;
-
-            case USB_FUNCTION_PIPED:
-                RZA_IO_RegWrite_16(&USB201.PIPEDCTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-            break;
-
-            case USB_FUNCTION_PIPEE:
-                RZA_IO_RegWrite_16(&USB201.PIPEECTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-            break;
-
-            case USB_FUNCTION_PIPEF:
-                RZA_IO_RegWrite_16(&USB201.PIPEFCTR,
-                                    DEVDRV_USBF_PID_STALL2,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-            break;
-
-            default:
-            break;
-        }
-    }
-    else
-    {
-        switch (pipe)
-        {
-            case USB_FUNCTION_PIPE0:
-                RZA_IO_RegWrite_16(&USB201.DCPCTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_DCPCTR_PID_SHIFT,
-                                    USB_DCPCTR_PID);
-            break;
-
-            case USB_FUNCTION_PIPE1:
-                RZA_IO_RegWrite_16(&USB201.PIPE1CTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-            break;
-
-            case USB_FUNCTION_PIPE2:
-                RZA_IO_RegWrite_16(&USB201.PIPE2CTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-            break;
-
-            case USB_FUNCTION_PIPE3:
-                RZA_IO_RegWrite_16(&USB201.PIPE3CTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-            break;
-
-            case USB_FUNCTION_PIPE4:
-                RZA_IO_RegWrite_16(&USB201.PIPE4CTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-            break;
-
-            case USB_FUNCTION_PIPE5:
-                RZA_IO_RegWrite_16(&USB201.PIPE5CTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-            break;
-
-            case USB_FUNCTION_PIPE6:
-                RZA_IO_RegWrite_16(&USB201.PIPE6CTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_6_8_PID_SHIFT,
-                                    USB_PIPEnCTR_6_8_PID);
-            break;
-
-            case USB_FUNCTION_PIPE7:
-                RZA_IO_RegWrite_16(&USB201.PIPE7CTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_6_8_PID_SHIFT,
-                                    USB_PIPEnCTR_6_8_PID);
-            break;
-
-            case USB_FUNCTION_PIPE8:
-                RZA_IO_RegWrite_16(&USB201.PIPE8CTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_6_8_PID_SHIFT,
-                                    USB_PIPEnCTR_6_8_PID);
-            break;
-
-            case USB_FUNCTION_PIPE9:
-                RZA_IO_RegWrite_16(&USB201.PIPE9CTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_9_PID_SHIFT,
-                                    USB_PIPEnCTR_9_PID);
-            break;
-
-            case USB_FUNCTION_PIPEA:
-                RZA_IO_RegWrite_16(&USB201.PIPEACTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-            break;
-
-            case USB_FUNCTION_PIPEB:
-                RZA_IO_RegWrite_16(&USB201.PIPEBCTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-            break;
-
-            case USB_FUNCTION_PIPEC:
-                RZA_IO_RegWrite_16(&USB201.PIPECCTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-            break;
-
-            case USB_FUNCTION_PIPED:
-                RZA_IO_RegWrite_16(&USB201.PIPEDCTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-            break;
-
-            case USB_FUNCTION_PIPEE:
-                RZA_IO_RegWrite_16(&USB201.PIPEECTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-            break;
-
-            case USB_FUNCTION_PIPEF:
-                RZA_IO_RegWrite_16(&USB201.PIPEFCTR,
-                                    DEVDRV_USBF_PID_STALL,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-            break;
-
-            default:
-            break;
-        }
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_clear_pid_stall
-* Description  : Disables communication (NAK) in the pipe specified by the argument.
-* Arguments    : uint16_t pipe            ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb1_function_clear_pid_stall (uint16_t pipe)
-{
-    usb1_function_set_pid_nak(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_get_pid
-* Description  : Returns the pipe state specified by the argument.
-* Arguments    : uint16_t pipe          ; Pipe Number
-* Return Value : PID
-*******************************************************************************/
-uint16_t usb1_function_get_pid (uint16_t pipe)
-{
-    uint16_t pid;
-
-    switch (pipe)
-    {
-        case USB_FUNCTION_PIPE0:
-            pid = RZA_IO_RegRead_16(&USB201.DCPCTR,
-                                    USB_DCPCTR_PID_SHIFT,
-                                    USB_DCPCTR_PID);
-        break;
-
-        case USB_FUNCTION_PIPE1:
-            pid = RZA_IO_RegRead_16(&USB201.PIPE1CTR,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE2:
-            pid = RZA_IO_RegRead_16(&USB201.PIPE2CTR,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE3:
-            pid = RZA_IO_RegRead_16(&USB201.PIPE3CTR,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE4:
-            pid = RZA_IO_RegRead_16(&USB201.PIPE4CTR,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE5:
-            pid = RZA_IO_RegRead_16(&USB201.PIPE5CTR,
-                                    USB_PIPEnCTR_1_5_PID_SHIFT,
-                                    USB_PIPEnCTR_1_5_PID);
-        break;
-
-        case USB_FUNCTION_PIPE6:
-            pid = RZA_IO_RegRead_16(&USB201.PIPE6CTR,
-                                    USB_PIPEnCTR_6_8_PID_SHIFT,
-                                    USB_PIPEnCTR_6_8_PID);
-        break;
-
-        case USB_FUNCTION_PIPE7:
-            pid = RZA_IO_RegRead_16(&USB201.PIPE7CTR,
-                                    USB_PIPEnCTR_6_8_PID_SHIFT,
-                                    USB_PIPEnCTR_6_8_PID);
-        break;
-
-        case USB_FUNCTION_PIPE8:
-            pid = RZA_IO_RegRead_16(&USB201.PIPE8CTR,
-                                    USB_PIPEnCTR_6_8_PID_SHIFT,
-                                    USB_PIPEnCTR_6_8_PID);
-        break;
-
-        case USB_FUNCTION_PIPE9:
-            pid = RZA_IO_RegRead_16(&USB201.PIPE9CTR,
-                                    USB_PIPEnCTR_9_PID_SHIFT,
-                                    USB_PIPEnCTR_9_PID);
-        break;
-
-        case USB_FUNCTION_PIPEA:
-            pid = RZA_IO_RegRead_16(&USB201.PIPEACTR,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPEB:
-            pid = RZA_IO_RegRead_16(&USB201.PIPEBCTR,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPEC:
-            pid = RZA_IO_RegRead_16(&USB201.PIPECCTR,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPED:
-            pid = RZA_IO_RegRead_16(&USB201.PIPEDCTR,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPEE:
-            pid = RZA_IO_RegRead_16(&USB201.PIPEECTR,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-        break;
-
-        case USB_FUNCTION_PIPEF:
-            pid = RZA_IO_RegRead_16(&USB201.PIPEFCTR,
-                                    USB_PIPEnCTR_A_F_PID_SHIFT,
-                                    USB_PIPEnCTR_A_F_PID);
-        break;
-
-        default:
-            pid = 0;
-        break;
-    }
-
-    return pid;
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_set_csclr
-* Description  : CSPLIT status clear setting of sprit transaction in specified
-*              : pipe is performed.
-*              : When SQSET bit or SQCLR bit, and SQSET bit or SQCLR bit
-*              : in DCPCTR register are continuously changed (when the sequence
-*              : toggle bit of data PID is continuously changed over two or more pipes),
-*              : the access cycle with 120 ns and more than 5 cycle bus clock is necessary.
-*              : Do not set both SQCLR bit and SQSET bit to 1 at the same time.
-*              : In addition, both bits should be operated after PID is set to NAK.
-*              : However, when it is set to the isochronous transfer as the transfer type
-*              : (TYPE=11), writing in SQSET bit is disabled.
-* Arguments    : uint16_t pipe     ; Pipe number
-* Return Value : none
-*******************************************************************************/
-void usb1_function_set_csclr (uint16_t pipe)
-{
-    switch (pipe)
-    {
-        case USB_FUNCTION_PIPE0:
-            RZA_IO_RegWrite_16(&USB201.DCPCTR,
-                                1,
-                                USB_DCPCTR_CSCLR_SHIFT,
-                                USB_DCPCTR_CSCLR);
-        break;
-
-        case USB_FUNCTION_PIPE1:
-            RZA_IO_RegWrite_16(&USB201.PIPE1CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_CSCLR_SHIFT,
-                                USB_PIPEnCTR_1_5_CSCLR);
-        break;
-
-        case USB_FUNCTION_PIPE2:
-            RZA_IO_RegWrite_16(&USB201.PIPE2CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_CSCLR_SHIFT,
-                                USB_PIPEnCTR_1_5_CSCLR);
-        break;
-
-        case USB_FUNCTION_PIPE3:
-            RZA_IO_RegWrite_16(&USB201.PIPE3CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_CSCLR_SHIFT,
-                                USB_PIPEnCTR_1_5_CSCLR);
-        break;
-
-        case USB_FUNCTION_PIPE4:
-            RZA_IO_RegWrite_16(&USB201.PIPE4CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_CSCLR_SHIFT,
-                                USB_PIPEnCTR_1_5_CSCLR);
-        break;
-
-        case USB_FUNCTION_PIPE5:
-            RZA_IO_RegWrite_16(&USB201.PIPE5CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_CSCLR_SHIFT,
-                                USB_PIPEnCTR_1_5_CSCLR);
-        break;
-
-        case USB_FUNCTION_PIPE6:
-            RZA_IO_RegWrite_16(&USB201.PIPE6CTR,
-                                1,
-                                USB_PIPEnCTR_6_8_CSCLR_SHIFT,
-                                USB_PIPEnCTR_6_8_CSCLR);
-        break;
-
-        case USB_FUNCTION_PIPE7:
-            RZA_IO_RegWrite_16(&USB201.PIPE7CTR,
-                                1,
-                                USB_PIPEnCTR_6_8_CSCLR_SHIFT,
-                                USB_PIPEnCTR_6_8_CSCLR);
-        break;
-
-        case USB_FUNCTION_PIPE8:
-            RZA_IO_RegWrite_16(&USB201.PIPE8CTR,
-                                1,
-                                USB_PIPEnCTR_6_8_CSCLR_SHIFT,
-                                USB_PIPEnCTR_6_8_CSCLR);
-        break;
-
-        case USB_FUNCTION_PIPE9:
-            RZA_IO_RegWrite_16(&USB201.PIPE9CTR,
-                                1,
-                                USB_PIPEnCTR_9_CSCLR_SHIFT,
-                                USB_PIPEnCTR_9_CSCLR);
-        break;
-
-        default:
-            /* PIPEA-F have not CSCLR */
-        break;
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_set_sqclr
-* Description  : Sets the sequence bit of the pipe specified by the argument to
-*              : DATA0.
-* Arguments    : uint16_t pipe              ; Pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb1_function_set_sqclr (uint16_t pipe)
-{
-    switch (pipe)
-    {
-        case USB_FUNCTION_PIPE0:
-            RZA_IO_RegWrite_16(&USB201.DCPCTR,
-                                1,
-                                USB_DCPCTR_SQCLR_SHIFT,
-                                USB_DCPCTR_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPE1:
-            RZA_IO_RegWrite_16(&USB201.PIPE1CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_SQCLR_SHIFT,
-                                USB_PIPEnCTR_1_5_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPE2:
-            RZA_IO_RegWrite_16(&USB201.PIPE2CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_SQCLR_SHIFT,
-                                USB_PIPEnCTR_1_5_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPE3:
-            RZA_IO_RegWrite_16(&USB201.PIPE3CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_SQCLR_SHIFT,
-                                USB_PIPEnCTR_1_5_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPE4:
-            RZA_IO_RegWrite_16(&USB201.PIPE4CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_SQCLR_SHIFT,
-                                USB_PIPEnCTR_1_5_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPE5:
-            RZA_IO_RegWrite_16(&USB201.PIPE5CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_SQCLR_SHIFT,
-                                USB_PIPEnCTR_1_5_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPE6:
-            RZA_IO_RegWrite_16(&USB201.PIPE6CTR,
-                                1,
-                                USB_PIPEnCTR_6_8_SQCLR_SHIFT,
-                                USB_PIPEnCTR_6_8_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPE7:
-            RZA_IO_RegWrite_16(&USB201.PIPE7CTR,
-                                1,
-                                USB_PIPEnCTR_6_8_SQCLR_SHIFT,
-                                USB_PIPEnCTR_6_8_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPE8:
-            RZA_IO_RegWrite_16(&USB201.PIPE8CTR,
-                                1,
-                                USB_PIPEnCTR_6_8_SQCLR_SHIFT,
-                                USB_PIPEnCTR_6_8_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPE9:
-            RZA_IO_RegWrite_16(&USB201.PIPE9CTR,
-                                1,
-                                USB_PIPEnCTR_9_SQCLR_SHIFT,
-                                USB_PIPEnCTR_9_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPEA:
-            RZA_IO_RegWrite_16(&USB201.PIPEACTR,
-                                1,
-                                USB_PIPEnCTR_A_F_SQCLR_SHIFT,
-                                USB_PIPEnCTR_A_F_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPEB:
-            RZA_IO_RegWrite_16(&USB201.PIPEBCTR,
-                                1,
-                                USB_PIPEnCTR_A_F_SQCLR_SHIFT,
-                                USB_PIPEnCTR_A_F_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPEC:
-            RZA_IO_RegWrite_16(&USB201.PIPECCTR,
-                                1,
-                                USB_PIPEnCTR_A_F_SQCLR_SHIFT,
-                                USB_PIPEnCTR_A_F_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPED:
-            RZA_IO_RegWrite_16(&USB201.PIPEDCTR,
-                                1,
-                                USB_PIPEnCTR_A_F_SQCLR_SHIFT,
-                                USB_PIPEnCTR_A_F_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPEE:
-            RZA_IO_RegWrite_16(&USB201.PIPEECTR,
-                                1,
-                                USB_PIPEnCTR_A_F_SQCLR_SHIFT,
-                                USB_PIPEnCTR_A_F_SQCLR);
-        break;
-
-        case USB_FUNCTION_PIPEF:
-            RZA_IO_RegWrite_16(&USB201.PIPEFCTR,
-                                1,
-                                USB_PIPEnCTR_A_F_SQCLR_SHIFT,
-                                USB_PIPEnCTR_A_F_SQCLR);
-        break;
-
-        default:
-        break;
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_set_sqset
-* Description  : Sets the sequence bit of the pipe specified by the argument to
-*              : DATA1.
-* Arguments    : uint16_t pipe   ; Pipe number
-* Return Value : none
-*******************************************************************************/
-void usb1_function_set_sqset (uint16_t pipe)
-{
-    switch (pipe)
-    {
-        case USB_FUNCTION_PIPE0:
-            RZA_IO_RegWrite_16(&USB201.DCPCTR,
-                                1,
-                                USB_DCPCTR_SQSET_SHIFT,
-                                USB_DCPCTR_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPE1:
-            RZA_IO_RegWrite_16(&USB201.PIPE1CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_SQSET_SHIFT,
-                                USB_PIPEnCTR_1_5_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPE2:
-            RZA_IO_RegWrite_16(&USB201.PIPE2CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_SQSET_SHIFT,
-                                USB_PIPEnCTR_1_5_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPE3:
-            RZA_IO_RegWrite_16(&USB201.PIPE3CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_SQSET_SHIFT,
-                                USB_PIPEnCTR_1_5_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPE4:
-            RZA_IO_RegWrite_16(&USB201.PIPE4CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_SQSET_SHIFT,
-                                USB_PIPEnCTR_1_5_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPE5:
-            RZA_IO_RegWrite_16(&USB201.PIPE5CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_SQSET_SHIFT,
-                                USB_PIPEnCTR_1_5_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPE6:
-            RZA_IO_RegWrite_16(&USB201.PIPE6CTR,
-                                1,
-                                USB_PIPEnCTR_6_8_SQSET_SHIFT,
-                                USB_PIPEnCTR_6_8_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPE7:
-            RZA_IO_RegWrite_16(&USB201.PIPE7CTR,
-                                1,
-                                USB_PIPEnCTR_6_8_SQSET_SHIFT,
-                                USB_PIPEnCTR_6_8_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPE8:
-            RZA_IO_RegWrite_16(&USB201.PIPE8CTR,
-                                1,
-                                USB_PIPEnCTR_6_8_SQSET_SHIFT,
-                                USB_PIPEnCTR_6_8_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPE9:
-            RZA_IO_RegWrite_16(&USB201.PIPE9CTR,
-                                1,
-                                USB_PIPEnCTR_9_SQSET_SHIFT,
-                                USB_PIPEnCTR_9_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPEA:
-            RZA_IO_RegWrite_16(&USB201.PIPEACTR,
-                                1,
-                                USB_PIPEnCTR_A_F_SQSET_SHIFT,
-                                USB_PIPEnCTR_A_F_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPEB:
-            RZA_IO_RegWrite_16(&USB201.PIPEBCTR,
-                                1,
-                                USB_PIPEnCTR_A_F_SQSET_SHIFT,
-                                USB_PIPEnCTR_A_F_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPEC:
-            RZA_IO_RegWrite_16(&USB201.PIPECCTR,
-                                1,
-                                USB_PIPEnCTR_A_F_SQSET_SHIFT,
-                                USB_PIPEnCTR_A_F_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPED:
-            RZA_IO_RegWrite_16(&USB201.PIPEDCTR,
-                                1,
-                                USB_PIPEnCTR_A_F_SQSET_SHIFT,
-                                USB_PIPEnCTR_A_F_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPEE:
-            RZA_IO_RegWrite_16(&USB201.PIPEECTR,
-                                1,
-                                USB_PIPEnCTR_A_F_SQSET_SHIFT,
-                                USB_PIPEnCTR_A_F_SQSET);
-        break;
-
-        case USB_FUNCTION_PIPEF:
-            RZA_IO_RegWrite_16(&USB201.PIPEFCTR,
-                                1,
-                                USB_PIPEnCTR_A_F_SQSET_SHIFT,
-                                USB_PIPEnCTR_A_F_SQSET);
-        break;
-
-        default:
-        break;
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_get_sqmon
-* Description  : Toggle bit of specified pipe is obtained
-* Arguments    : uint16_t pipe   ; Pipe number
-* Return Value : sqmon
-*******************************************************************************/
-uint16_t usb1_function_get_sqmon (uint16_t pipe)
-{
-    uint16_t sqmon;
-
-    switch (pipe)
-    {
-        case USB_FUNCTION_PIPE0:
-            sqmon = RZA_IO_RegRead_16(&USB201.DCPCTR,
-                                        USB_DCPCTR_SQMON_SHIFT,
-                                        USB_DCPCTR_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPE1:
-            sqmon = RZA_IO_RegRead_16(&USB201.PIPE1CTR,
-                                        USB_PIPEnCTR_1_5_SQMON_SHIFT,
-                                        USB_PIPEnCTR_1_5_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPE2:
-            sqmon = RZA_IO_RegRead_16(&USB201.PIPE2CTR,
-                                        USB_PIPEnCTR_1_5_SQMON_SHIFT,
-                                        USB_PIPEnCTR_1_5_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPE3:
-            sqmon = RZA_IO_RegRead_16(&USB201.PIPE3CTR,
-                                        USB_PIPEnCTR_1_5_SQMON_SHIFT,
-                                        USB_PIPEnCTR_1_5_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPE4:
-            sqmon = RZA_IO_RegRead_16(&USB201.PIPE4CTR,
-                                        USB_PIPEnCTR_1_5_SQMON_SHIFT,
-                                        USB_PIPEnCTR_1_5_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPE5:
-            sqmon = RZA_IO_RegRead_16(&USB201.PIPE5CTR,
-                                        USB_PIPEnCTR_1_5_SQMON_SHIFT,
-                                        USB_PIPEnCTR_1_5_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPE6:
-            sqmon = RZA_IO_RegRead_16(&USB201.PIPE6CTR,
-                                        USB_PIPEnCTR_6_8_SQMON_SHIFT,
-                                        USB_PIPEnCTR_6_8_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPE7:
-            sqmon = RZA_IO_RegRead_16(&USB201.PIPE7CTR,
-                                        USB_PIPEnCTR_6_8_SQMON_SHIFT,
-                                        USB_PIPEnCTR_6_8_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPE8:
-            sqmon = RZA_IO_RegRead_16(&USB201.PIPE8CTR,
-                                        USB_PIPEnCTR_6_8_SQMON_SHIFT,
-                                        USB_PIPEnCTR_6_8_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPE9:
-            sqmon = RZA_IO_RegRead_16(&USB201.PIPE9CTR,
-                                        USB_PIPEnCTR_9_SQMON_SHIFT,
-                                        USB_PIPEnCTR_9_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPEA:
-            sqmon = RZA_IO_RegRead_16(&USB201.PIPEACTR,
-                                        USB_PIPEnCTR_A_F_SQMON_SHIFT,
-                                        USB_PIPEnCTR_A_F_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPEB:
-            sqmon = RZA_IO_RegRead_16(&USB201.PIPEBCTR,
-                                        USB_PIPEnCTR_A_F_SQMON_SHIFT,
-                                        USB_PIPEnCTR_A_F_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPEC:
-            sqmon = RZA_IO_RegRead_16(&USB201.PIPECCTR,
-                                        USB_PIPEnCTR_A_F_SQMON_SHIFT,
-                                        USB_PIPEnCTR_A_F_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPED:
-            sqmon = RZA_IO_RegRead_16(&USB201.PIPEDCTR,
-                                        USB_PIPEnCTR_A_F_SQMON_SHIFT,
-                                        USB_PIPEnCTR_A_F_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPEE:
-            sqmon = RZA_IO_RegRead_16(&USB201.PIPEECTR,
-                                        USB_PIPEnCTR_A_F_SQMON_SHIFT,
-                                        USB_PIPEnCTR_A_F_SQMON);
-        break;
-
-        case USB_FUNCTION_PIPEF:
-            sqmon = RZA_IO_RegRead_16(&USB201.PIPEFCTR,
-                                        USB_PIPEnCTR_A_F_SQMON_SHIFT,
-                                        USB_PIPEnCTR_A_F_SQMON);
-        break;
-
-        default:
-            sqmon = 0;
-        break;
-    }
-
-    return sqmon;
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_aclrm
-* Description  : The buffer of specified pipe is initialized
-* Arguments    : uint16_t pipe    : Pipe
-* Return Value : none
-*******************************************************************************/
-void usb1_function_aclrm (uint16_t pipe)
-{
-    usb1_function_set_aclrm(pipe);
-    usb1_function_clr_aclrm(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_set_aclrm
-* Description  : The auto buffer clear mode of specified pipe is enabled
-* Arguments    : uint16_t pipe    : Pipe
-* Return Value : none
-*******************************************************************************/
-void usb1_function_set_aclrm (uint16_t pipe)
-{
-    switch (pipe)
-    {
-        case USB_FUNCTION_PIPE0:
-        break;
-
-        case USB_FUNCTION_PIPE1:
-            RZA_IO_RegWrite_16(&USB201.PIPE1CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_ACLRM_SHIFT,
-                                USB_PIPEnCTR_1_5_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE2:
-            RZA_IO_RegWrite_16(&USB201.PIPE2CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_ACLRM_SHIFT,
-                                USB_PIPEnCTR_1_5_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE3:
-            RZA_IO_RegWrite_16(&USB201.PIPE3CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_ACLRM_SHIFT,
-                                USB_PIPEnCTR_1_5_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE4:
-            RZA_IO_RegWrite_16(&USB201.PIPE4CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_ACLRM_SHIFT,
-                                USB_PIPEnCTR_1_5_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE5:
-            RZA_IO_RegWrite_16(&USB201.PIPE5CTR,
-                                1,
-                                USB_PIPEnCTR_1_5_ACLRM_SHIFT,
-                                USB_PIPEnCTR_1_5_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE6:
-            RZA_IO_RegWrite_16(&USB201.PIPE6CTR,
-                                1,
-                                USB_PIPEnCTR_6_8_ACLRM_SHIFT,
-                                USB_PIPEnCTR_6_8_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE7:
-            RZA_IO_RegWrite_16(&USB201.PIPE7CTR,
-                                1,
-                                USB_PIPEnCTR_6_8_ACLRM_SHIFT,
-                                USB_PIPEnCTR_6_8_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE8:
-            RZA_IO_RegWrite_16(&USB201.PIPE8CTR,
-                                1,
-                                USB_PIPEnCTR_6_8_ACLRM_SHIFT,
-                                USB_PIPEnCTR_6_8_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE9:
-            RZA_IO_RegWrite_16(&USB201.PIPE9CTR,
-                                1,
-                                USB_PIPEnCTR_9_ACLRM_SHIFT,
-                                USB_PIPEnCTR_9_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPEA:
-            RZA_IO_RegWrite_16(&USB201.PIPEACTR,
-                                1,
-                                USB_PIPEnCTR_A_F_ACLRM_SHIFT,
-                                USB_PIPEnCTR_A_F_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPEB:
-            RZA_IO_RegWrite_16(&USB201.PIPEBCTR,
-                                1,
-                                USB_PIPEnCTR_A_F_ACLRM_SHIFT,
-                                USB_PIPEnCTR_A_F_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPEC:
-            RZA_IO_RegWrite_16(&USB201.PIPECCTR,
-                                1,
-                                USB_PIPEnCTR_A_F_ACLRM_SHIFT,
-                                USB_PIPEnCTR_A_F_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPED:
-            RZA_IO_RegWrite_16(&USB201.PIPEDCTR,
-                                1,
-                                USB_PIPEnCTR_A_F_ACLRM_SHIFT,
-                                USB_PIPEnCTR_A_F_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPEE:
-            RZA_IO_RegWrite_16(&USB201.PIPEECTR,
-                                1,
-                                USB_PIPEnCTR_A_F_ACLRM_SHIFT,
-                                USB_PIPEnCTR_A_F_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPEF:
-            RZA_IO_RegWrite_16(&USB201.PIPEFCTR,
-                                1,
-                                USB_PIPEnCTR_A_F_ACLRM_SHIFT,
-                                USB_PIPEnCTR_A_F_ACLRM);
-        break;
-
-        default:
-        break;
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_clr_aclrm
-* Description  : The auto buffer clear mode of specified pipe is enabled
-* Arguments    : uint16_t pipe    : Pipe
-* Return Value : none
-*******************************************************************************/
-void usb1_function_clr_aclrm (uint16_t pipe)
-{
-    switch (pipe)
-    {
-        case USB_FUNCTION_PIPE0:
-        break;
-
-        case USB_FUNCTION_PIPE1:
-            RZA_IO_RegWrite_16(&USB201.PIPE1CTR,
-                                0,
-                                USB_PIPEnCTR_1_5_ACLRM_SHIFT,
-                                USB_PIPEnCTR_1_5_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE2:
-            RZA_IO_RegWrite_16(&USB201.PIPE2CTR,
-                                0,
-                                USB_PIPEnCTR_1_5_ACLRM_SHIFT,
-                                USB_PIPEnCTR_1_5_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE3:
-            RZA_IO_RegWrite_16(&USB201.PIPE3CTR,
-                                0,
-                                USB_PIPEnCTR_1_5_ACLRM_SHIFT,
-                                USB_PIPEnCTR_1_5_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE4:
-            RZA_IO_RegWrite_16(&USB201.PIPE4CTR,
-                                0,
-                                USB_PIPEnCTR_1_5_ACLRM_SHIFT,
-                                USB_PIPEnCTR_1_5_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE5:
-            RZA_IO_RegWrite_16(&USB201.PIPE5CTR,
-                                0,
-                                USB_PIPEnCTR_1_5_ACLRM_SHIFT,
-                                USB_PIPEnCTR_1_5_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE6:
-            RZA_IO_RegWrite_16(&USB201.PIPE6CTR,
-                                0,
-                                USB_PIPEnCTR_6_8_ACLRM_SHIFT,
-                                USB_PIPEnCTR_6_8_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE7:
-            RZA_IO_RegWrite_16(&USB201.PIPE7CTR,
-                                0,
-                                USB_PIPEnCTR_6_8_ACLRM_SHIFT,
-                                USB_PIPEnCTR_6_8_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE8:
-            RZA_IO_RegWrite_16(&USB201.PIPE8CTR,
-                                0,
-                                USB_PIPEnCTR_6_8_ACLRM_SHIFT,
-                                USB_PIPEnCTR_6_8_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPE9:
-            RZA_IO_RegWrite_16(&USB201.PIPE9CTR,
-                                0,
-                                USB_PIPEnCTR_9_ACLRM_SHIFT,
-                                USB_PIPEnCTR_9_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPEA:
-            RZA_IO_RegWrite_16(&USB201.PIPEACTR,
-                                0,
-                                USB_PIPEnCTR_A_F_ACLRM_SHIFT,
-                                USB_PIPEnCTR_A_F_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPEB:
-            RZA_IO_RegWrite_16(&USB201.PIPEBCTR,
-                                0,
-                                USB_PIPEnCTR_A_F_ACLRM_SHIFT,
-                                USB_PIPEnCTR_A_F_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPEC:
-            RZA_IO_RegWrite_16(&USB201.PIPECCTR,
-                                0,
-                                USB_PIPEnCTR_A_F_ACLRM_SHIFT,
-                                USB_PIPEnCTR_A_F_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPED:
-            RZA_IO_RegWrite_16(&USB201.PIPEDCTR,
-                                0,
-                                USB_PIPEnCTR_A_F_ACLRM_SHIFT,
-                                USB_PIPEnCTR_A_F_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPEE:
-            RZA_IO_RegWrite_16(&USB201.PIPEECTR,
-                                0,
-                                USB_PIPEnCTR_A_F_ACLRM_SHIFT,
-                                USB_PIPEnCTR_A_F_ACLRM);
-        break;
-
-        case USB_FUNCTION_PIPEF:
-            RZA_IO_RegWrite_16(&USB201.PIPEFCTR,
-                                0,
-                                USB_PIPEnCTR_A_F_ACLRM_SHIFT,
-                                USB_PIPEnCTR_A_F_ACLRM);
-        break;
-
-        default:
-        break;
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_get_inbuf
-* Description  : Returns INBUFM of the pipe specified by the argument.
-* Arguments    : uint16_t pipe             ; Pipe Number
-* Return Value : inbuf
-*******************************************************************************/
-uint16_t usb1_function_get_inbuf (uint16_t pipe)
-{
-    uint16_t inbuf;
-
-    switch (pipe)
-    {
-        case USB_FUNCTION_PIPE0:
-            inbuf = 0;
-        break;
-
-        case USB_FUNCTION_PIPE1:
-            inbuf = RZA_IO_RegRead_16(&USB201.PIPE1CTR,
-                                    USB_PIPEnCTR_1_5_INBUFM_SHIFT,
-                                    USB_PIPEnCTR_1_5_INBUFM);
-        break;
-
-        case USB_FUNCTION_PIPE2:
-            inbuf = RZA_IO_RegRead_16(&USB201.PIPE2CTR,
-                                    USB_PIPEnCTR_1_5_INBUFM_SHIFT,
-                                    USB_PIPEnCTR_1_5_INBUFM);
-        break;
-
-        case USB_FUNCTION_PIPE3:
-            inbuf = RZA_IO_RegRead_16(&USB201.PIPE3CTR,
-                                    USB_PIPEnCTR_1_5_INBUFM_SHIFT,
-                                    USB_PIPEnCTR_1_5_INBUFM);
-        break;
-
-        case USB_FUNCTION_PIPE4:
-            inbuf = RZA_IO_RegRead_16(&USB201.PIPE4CTR,
-                                    USB_PIPEnCTR_1_5_INBUFM_SHIFT,
-                                    USB_PIPEnCTR_1_5_INBUFM);
-        break;
-
-        case USB_FUNCTION_PIPE5:
-            inbuf = RZA_IO_RegRead_16(&USB201.PIPE5CTR,
-                                    USB_PIPEnCTR_1_5_INBUFM_SHIFT,
-                                    USB_PIPEnCTR_1_5_INBUFM);
-        break;
-
-        case USB_FUNCTION_PIPE6:
-            inbuf = 0;
-        break;
-
-        case USB_FUNCTION_PIPE7:
-            inbuf = 0;
-        break;
-
-        case USB_FUNCTION_PIPE8:
-            inbuf = 0;
-        break;
-
-        case USB_FUNCTION_PIPE9:
-            inbuf = RZA_IO_RegRead_16(&USB201.PIPE9CTR,
-                                    USB_PIPEnCTR_9_INBUFM_SHIFT,
-                                    USB_PIPEnCTR_9_INBUFM);
-        break;
-
-        case USB_FUNCTION_PIPEA:
-            inbuf = RZA_IO_RegRead_16(&USB201.PIPEACTR,
-                                    USB_PIPEnCTR_A_F_INBUFM_SHIFT,
-                                    USB_PIPEnCTR_A_F_INBUFM);
-        break;
-
-        case USB_FUNCTION_PIPEB:
-            inbuf = RZA_IO_RegRead_16(&USB201.PIPEBCTR,
-                                    USB_PIPEnCTR_A_F_INBUFM_SHIFT,
-                                    USB_PIPEnCTR_A_F_INBUFM);
-        break;
-
-        case USB_FUNCTION_PIPEC:
-            inbuf = RZA_IO_RegRead_16(&USB201.PIPECCTR,
-                                    USB_PIPEnCTR_A_F_INBUFM_SHIFT,
-                                    USB_PIPEnCTR_A_F_INBUFM);
-        break;
-
-        case USB_FUNCTION_PIPED:
-            inbuf = RZA_IO_RegRead_16(&USB201.PIPEDCTR,
-                                    USB_PIPEnCTR_A_F_INBUFM_SHIFT,
-                                    USB_PIPEnCTR_A_F_INBUFM);
-        break;
-
-        case USB_FUNCTION_PIPEE:
-            inbuf = RZA_IO_RegRead_16(&USB201.PIPEECTR,
-                                    USB_PIPEnCTR_A_F_INBUFM_SHIFT,
-                                    USB_PIPEnCTR_A_F_INBUFM);
-        break;
-
-        case USB_FUNCTION_PIPEF:
-            inbuf = RZA_IO_RegRead_16(&USB201.PIPEFCTR,
-                                    USB_PIPEnCTR_A_F_INBUFM_SHIFT,
-                                    USB_PIPEnCTR_A_F_INBUFM);
-        break;
-
-        default:
-            inbuf = 0;
-        break;
-    }
-
-    return inbuf;
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_setting_interrupt
-* Description  : Sets the USB module interrupt level.
-* Arguments    : uint8_t level
-* Return Value : none
-*******************************************************************************/
-#if 0
-void usb1_function_setting_interrupt (uint8_t level)
-{
-    uint16_t d0fifo_dmaintid;
-    uint16_t d1fifo_dmaintid;
-
-    R_INTC_RegistIntFunc(INTC_ID_USBI1, usb1_function_interrupt);
-    R_INTC_SetPriority(INTC_ID_USBI1, level);
-    R_INTC_Enable(INTC_ID_USBI1);
-
-    d0fifo_dmaintid = Userdef_USB_usb1_function_d0fifo_dmaintid();
-
-    if (d0fifo_dmaintid != 0xFFFF)
-    {
-        R_INTC_RegistIntFunc(d0fifo_dmaintid, usb1_function_dma_interrupt_d0fifo);
-        R_INTC_SetPriority(d0fifo_dmaintid, level);
-        R_INTC_Enable(d0fifo_dmaintid);
-    }
-
-    d1fifo_dmaintid = Userdef_USB_usb1_function_d1fifo_dmaintid();
-
-    if (d1fifo_dmaintid != 0xFFFF)
-    {
-        R_INTC_RegistIntFunc(d1fifo_dmaintid, usb1_function_dma_interrupt_d1fifo);
-        R_INTC_SetPriority(d1fifo_dmaintid, level);
-        R_INTC_Enable(d1fifo_dmaintid);
-    }
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb1_function_reset_module
-* Description  : Initializes the USB module.
-*              : Enables providing clock to the USB module.
-*              : Sets USB bus wait register.
-* Arguments    : uint16_t clockmode ; 48MHz ; USBFCLOCK_X1_48MHZ
-*              :                    ; 12MHz ; USBFCLOCK_EXTAL_12MHZ
-* Return Value : none
-*******************************************************************************/
-void usb1_function_reset_module (uint16_t clockmode)
-{
-    /* UPLLE bit is only USB0 */
-    if (RZA_IO_RegRead_16(&USB200.SYSCFG0,
-                                USB_SYSCFG_UPLLE_SHIFT,
-                                USB_SYSCFG_UPLLE) == 1)
-    {
-        if ((USB200.SYSCFG0 & USB_FUNCTION_BITUCKSEL) != clockmode)
-        {
-            RZA_IO_RegWrite_16(&USB201.SUSPMODE,
-                                0,
-                                USB_SUSPMODE_SUSPM_SHIFT,
-                                USB_SUSPMODE_SUSPM);
-            RZA_IO_RegWrite_16(&USB200.SUSPMODE,
-                                0,
-                                USB_SUSPMODE_SUSPM_SHIFT,
-                                USB_SUSPMODE_SUSPM);
-            USB201.SYSCFG0 = 0;
-            USB200.SYSCFG0 = 0;
-            USB200.SYSCFG0 = (USB_FUNCTION_BITUPLLE | clockmode);
-            Userdef_USB_usb1_function_delay_xms(1);
-            RZA_IO_RegWrite_16(&USB200.SUSPMODE,
-                                1,
-                                USB_SUSPMODE_SUSPM_SHIFT,
-                                USB_SUSPMODE_SUSPM);
-            RZA_IO_RegWrite_16(&USB201.SUSPMODE,
-                                1,
-                                USB_SUSPMODE_SUSPM_SHIFT,
-                                USB_SUSPMODE_SUSPM);
-        }
-        else
-        {
-            RZA_IO_RegWrite_16(&USB201.SUSPMODE,
-                                0,
-                                USB_SUSPMODE_SUSPM_SHIFT,
-                                USB_SUSPMODE_SUSPM);
-            Userdef_USB_usb1_function_delay_xms(1);
-            RZA_IO_RegWrite_16(&USB201.SUSPMODE,
-                                1,
-                                USB_SUSPMODE_SUSPM_SHIFT,
-                                USB_SUSPMODE_SUSPM);
-        }
-    }
-    else
-    {
-        RZA_IO_RegWrite_16(&USB201.SUSPMODE,
-                            0,
-                            USB_SUSPMODE_SUSPM_SHIFT,
-                            USB_SUSPMODE_SUSPM);
-        RZA_IO_RegWrite_16(&USB200.SUSPMODE,
-                            0,
-                            USB_SUSPMODE_SUSPM_SHIFT,
-                            USB_SUSPMODE_SUSPM);
-        USB201.SYSCFG0 = 0;
-        USB200.SYSCFG0 = 0;
-        USB200.SYSCFG0 = (USB_FUNCTION_BITUPLLE | clockmode);
-        Userdef_USB_usb1_function_delay_xms(1);
-        RZA_IO_RegWrite_16(&USB200.SUSPMODE,
-                            1,
-                            USB_SUSPMODE_SUSPM_SHIFT,
-                            USB_SUSPMODE_SUSPM);
-        RZA_IO_RegWrite_16(&USB201.SUSPMODE,
-                            1,
-                            USB_SUSPMODE_SUSPM_SHIFT,
-                            USB_SUSPMODE_SUSPM);
-    }
-
-    USB201.BUSWAIT = (uint16_t)(USB_FUNCTION_BUSWAIT_05 & USB_FUNCTION_BITBWAIT);
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_get_buf_size
-* Description  : Obtains pipe buffer size specified by the argument and
-*              : maximum packet size of the USB device in use.
-*              : When USB_FUNCTION_PIPE0 is specified by the argument, obtains the maximum
-*              : packet size of the USB device using the corresponding pipe.
-*              : For the case that USB_FUNCTION_PIPE0 is not assigned by the argument, when the
-*              : corresponding pipe is in continuous transfer mode,
-*              : obtains the buffer size allocated in the corresponcing pipe,
-*              : when incontinuous transfer, obtains maximum packet size.
-* Arguments    : uint16_t pipe      ; Pipe Number
-* Return Value : Maximum packet size or buffer size
-*******************************************************************************/
-uint16_t usb1_function_get_buf_size (uint16_t pipe)
-{
-    uint16_t size;
-    uint16_t bufsize;
-
-    if (pipe == USB_FUNCTION_PIPE0)
-    {
-        size = RZA_IO_RegRead_16(&USB201.DCPMAXP,
-                                USB_DCPMAXP_MXPS_SHIFT,
-                                USB_DCPMAXP_MXPS);
-    }
-    else
-    {
-        if (RZA_IO_RegRead_16(&g_usb1_function_pipecfg[pipe], USB_PIPECFG_CNTMD_SHIFT, USB_PIPECFG_CNTMD) == 1)
-        {
-            bufsize = RZA_IO_RegRead_16(&g_usb1_function_pipebuf[pipe], USB_PIPEBUF_BUFSIZE_SHIFT, USB_PIPEBUF_BUFSIZE);
-            size = (uint16_t)((bufsize + 1) * USB_FUNCTION_PIPExBUF);
-        }
-        else
-        {
-            size = RZA_IO_RegRead_16(&g_usb1_function_pipemaxp[pipe], USB_PIPEMAXP_MXPS_SHIFT, USB_PIPEMAXP_MXPS);
-        }
-    }
-    return size;
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_get_mxps
-* Description  : Obtains maximum packet size of the USB device using the pipe
-*              : specified by the argument.
-* Arguments    : uint16_t pipe      ; Pipe Number
-* Return Value : Max Packet Size
-*******************************************************************************/
-uint16_t usb1_function_get_mxps (uint16_t pipe)
-{
-    uint16_t size;
-
-    if (pipe == USB_FUNCTION_PIPE0)
-    {
-        size = RZA_IO_RegRead_16(&USB201.DCPMAXP,
-                                USB_DCPMAXP_MXPS_SHIFT,
-                                USB_DCPMAXP_MXPS);
-    }
-    else
-    {
-        size = RZA_IO_RegRead_16(&g_usb1_function_pipemaxp[pipe], USB_PIPEMAXP_MXPS_SHIFT, USB_PIPEMAXP_MXPS);
-    }
-    return size;
-}
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/function/usb1_function_api.c	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,441 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb1_function_api.c
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Device(s)    : RZ/A1H
-* Tool-Chain   :
-* OS           : None
-* H/W Platform :
-* Description  : RZ/A1H R7S72100 USB Sample Program
-* Operation    :
-* Limitations  :
-*******************************************************************************/
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include "usb1_function.h"
-#include "dev_drv.h"
-
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Imported global variables and functions (from other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Private global variables and functions
-*******************************************************************************/
-
-
-/*******************************************************************************
-* Function Name: usb1_api_function_init
-* Description  : Initializes the USB module in the USB function mode.
-* Arguments    : uint8_t  int_level ; interruput level
-*              : uint16_t mode      : Speed modes
-*              :                    :  USB_FUCNTION_HIGH_SPEED: High-speed device
-*              :                    :  USB_FUCNTION_FULL_SPEED: Full-speed device
-*              : uint16_t clockmode ; 48MHz ; USBFCLOCK_X1_48MHZ
-*              :                    ; 12MHz ; USBFCLOCK_EXTAL_12MHZ
-* Return Value : none
-*******************************************************************************/
-#if 0
-void usb1_api_function_init (uint8_t int_level, uint16_t mode, uint16_t clockmode)
-{
-    volatile uint8_t dummy_buf;
-
-    CPG.STBCR7  &= 0xfc;                        /*The clock of USB0/1 modules is permitted  */
-    dummy_buf   = CPG.STBCR7;                   /* (Dummy read)                             */
-
-    usb1_function_setting_interrupt(int_level);
-
-    usb1_function_reset_module(clockmode);      /* reset USB module with setting tranciever */
-                                                /* and HSE=1                                */
-
-    usb1_function_init_status();                /* clear variables                          */
-
-    usb1_function_InitModule(mode);             /* select USB Function and Interrupt Enable */
-                                                /* Detect USB Device to attach or detach    */
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb1_api_function_IsConfigured
-* Description  : Checks if the USB device is configured to return the result as
-*              : the return value.
-* Arguments    : none
-* Return Value : DEVDRV_USBF_YES  : Configured & Configured Suspend
-*              : DEVDRV_USBF_NO   : not Configured
-*******************************************************************************/
-uint16_t usb1_api_function_IsConfigured (void)
-{
-    uint16_t dvst;
-
-    dvst = usb1_function_GetDeviceState();
-
-    if ((dvst == USB_FUNCTION_DVST_CONFIGURED) ||
-        (dvst == USB_FUNCTION_DVST_CONFIGURED_SUSPEND))
-    {
-        return DEVDRV_USBF_YES;
-    }
-
-    return DEVDRV_USBF_NO;
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_GetDeviceState
-* Description  : Returns the state of USB device.
-* Arguments    : none
-* Return Value : Device States
-*******************************************************************************/
-uint16_t usb1_function_GetDeviceState (void)
-{
-    uint16_t dvsq;
-    uint16_t dvst;
-
-    dvsq = USB201.INTSTS0;
-    switch (dvsq & USB_FUNCTION_BITDVSQ)
-    {
-        case USB_FUNCTION_DS_POWR:                      /* Power state *//* power-on */
-            dvst = USB_FUNCTION_DVST_POWERED;
-        break;
-
-        case USB_FUNCTION_DS_DFLT:                      /* Default state *//* bus-reset */
-            dvst = USB_FUNCTION_DVST_DEFAULT;
-        break;
-
-        case USB_FUNCTION_DS_ADDS:                      /* Address state */
-            dvst = USB_FUNCTION_DVST_ADDRESS;
-        break;
-
-        case USB_FUNCTION_DS_CNFG:                      /* Configured state */
-            dvst = USB_FUNCTION_DVST_CONFIGURED;
-        break;
-
-        case USB_FUNCTION_DS_SPD_CNFG:                  /* Configured Suspend state */
-            dvst = USB_FUNCTION_DVST_CONFIGURED_SUSPEND;
-        break;
-
-        case USB_FUNCTION_DS_SPD_POWR:                  /* Power      Suspend state */
-        case USB_FUNCTION_DS_SPD_DFLT:                  /* Default    Suspend state */
-        case USB_FUNCTION_DS_SPD_ADDR:                  /* Address    Suspend state */
-            dvst = USB_FUNCTION_DVST_SUSPEND;
-        break;
-
-        default:                                        /* error */
-            dvst = USB_FUNCTION_DVST_SUSPEND;
-        break;
-    }
-
-    return dvst;
-}
-
-/*******************************************************************************
-* Function Name: usb1_api_function_start_receive_transfer
-* Description  : Starts USB data reception using the pipe specified in the argument.
-*              : The FIFO for using is set in the pipe definition table.
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint32_t size      ; Data Size
-*              : uint8_t *data      ; Data data Address
-* Return Value : none
-*******************************************************************************/
-void usb1_api_function_start_receive_transfer (uint16_t pipe, uint32_t size, uint8_t * data)
-{
-    usb1_function_start_receive_transfer(pipe, size, data);
-}
-
-/*******************************************************************************
-* Function Name: usb1_api_function_start_send_transfer
-* Description  : Starts the USB data communication using pipe specified by the argument.
-* Arguments    : uint16_t pipe     ; Pipe Number
-*              : uint32_t size     ; Data Size
-*              : uint8_t *data     ; Data data Address
-* Return Value : DEVDRV_USBF_WRITEEND           ; Write end
-*              : DEVDRV_USBF_WRITESHRT          ; short data
-*              : DEVDRV_USBF_WRITING            ; Continue of data write
-*              : DEVDRV_USBF_WRITEDMA           ; Write DMA
-*              : DEVDRV_USBF_FIFOERROR          ; FIFO status
-*******************************************************************************/
-uint16_t usb1_api_function_start_send_transfer (uint16_t pipe, uint32_t size, uint8_t * data)
-{
-    uint16_t status;
-
-    status = usb1_function_start_send_transfer(pipe, size, data);
-
-    return status;
-}
-
-/*******************************************************************************
-* Function Name: usb1_api_function_check_pipe_status
-* Description  : Starts USB data reception using the pipe specified in the argument.
-*              : The FIFO for using is set in the pipe definition table.
-* Arguments    : uint16_t  pipe     ; Pipe Number
-*              : uint32_t *size     ; Data Size
-* Return Value : Pipe Status
-*******************************************************************************/
-uint16_t usb1_api_function_check_pipe_status (uint16_t pipe, uint32_t * size)
-{
-    if (g_usb1_function_pipe_status[pipe] == DEVDRV_USBF_PIPE_DONE)
-    {
-        *size = g_usb1_function_PipeDataSize[pipe];
-        g_usb1_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_IDLE;
-
-        return DEVDRV_USBF_PIPE_DONE;
-    }
-    else if (g_usb1_function_pipe_status[pipe] == DEVDRV_USBF_PIPE_NORES)
-    {
-        *size = 0;
-        g_usb1_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_IDLE;
-
-        return DEVDRV_USBF_PIPE_NORES;
-    }
-    else if (g_usb1_function_pipe_status[pipe] == DEVDRV_USBF_PIPE_STALL)
-    {
-        *size = 0;
-        g_usb1_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_IDLE;
-
-        return DEVDRV_USBF_PIPE_STALL;
-    }
-    else if (g_usb1_function_pipe_status[pipe] == DEVDRV_USBF_FIFOERROR)
-    {
-        *size = 0;
-        g_usb1_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_IDLE;
-
-        return DEVDRV_USBF_FIFOERROR;
-    }
-    else
-    {
-        /* Do Nothing */
-    }
-
-    return g_usb1_function_pipe_status[pipe];
-}
-
-/*******************************************************************************
-* Function Name: usb1_api_function_clear_pipe_status
-* Description  : Starts USB data reception using the pipe specified in the argument.
-*              : The FIFO for using is set in the pipe definition table.
-* Arguments    : uint16_t  pipe     ; Pipe Number
-* Return Value : Pipe Status
-*******************************************************************************/
-void usb1_api_function_clear_pipe_status (uint16_t pipe)
-{
-    g_usb1_function_pipe_status[pipe]  = DEVDRV_USBF_PIPE_IDLE;
-    g_usb1_function_PipeDataSize[pipe] = 0;
-}
-
-/*******************************************************************************
-* Function Name: usb1_api_function_set_pid_buf
-* Description  : Enables communicaqtion in the pipe specified by the argument
-*              : (BUF).
-* Arguments    : uint16_t pipe             ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb1_api_function_set_pid_buf (uint16_t pipe)
-{
-    usb1_function_set_pid_buf(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb1_api_function_set_pid_nak
-* Description  : Disables communication (NAK) in the pipe specified by the argument.
-*              : When the pipe status was enabling communication (BUF) before
-*              : executing before executing this function, waits in the software
-*              : until the pipe becomes ready after setting disabled.
-* Arguments    : uint16_t pipe            ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb1_api_function_set_pid_nak (uint16_t pipe)
-{
-    usb1_function_set_pid_nak(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb1_api_function_set_pid_stall
-* Description  : Disables communication (STALL) in the pipe specified by the
-*              : argument.
-* Arguments    : uint16_t pipe            ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb1_api_function_set_pid_stall (uint16_t pipe)
-{
-    usb1_function_set_pid_stall(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb1_api_function_clear_pid_stall
-* Description  : Disables communication (NAK) in the pipe specified by the argument.
-* Arguments    : uint16_t pipe            ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb1_api_function_clear_pid_stall (uint16_t pipe)
-{
-    usb1_function_clear_pid_stall(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb1_api_function_get_pid
-* Description  : Returns the pipe state specified by the argument.
-* Arguments    : uint16_t pipe          ; Pipe Number
-* Return Value : PID
-*******************************************************************************/
-uint16_t usb1_api_function_get_pid (uint16_t pipe)
-{
-    uint16_t pid;
-
-    pid = usb1_function_get_pid(pipe);
-
-    return pid;
-}
-
-/*******************************************************************************
-* Function Name: usb1_api_function_check_stall
-* Description  :
-* Arguments    : uint16_t pipe          ; Pipe Number
-* Return Value : PID
-*******************************************************************************/
-int32_t usb1_api_function_check_stall (uint16_t pipe)
-{
-    uint16_t pid;
-
-    pid = usb1_function_get_pid(pipe);
-
-    if ((pid & DEVDRV_USBF_PID_STALL) == DEVDRV_USBF_PID_STALL)
-    {
-        return DEVDRV_USBF_STALL;
-    }
-
-    return DEVDRV_SUCCESS;
-}
-
-/*******************************************************************************
-* Function Name: usb1_api_function_set_sqclr
-* Description  : Sets the sequence bit of the pipe specified by the argument to
-*              : DATA0.
-* Arguments    : uint16_t pipe              ; Pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb1_api_function_set_sqclr (uint16_t pipe)
-{
-    usb1_function_set_sqclr(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb1_api_function_set_sqset
-* Description  : Sets the sequence bit of the pipe specified by the argument to
-*              : DATA1.
-* Arguments    : uint16_t pipe   ; Pipe number
-* Return Value : none
-*******************************************************************************/
-void usb1_api_function_set_sqset (uint16_t pipe)
-{
-    usb1_function_set_sqset(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb1_api_function_set_csclr
-* Description  : CSPLIT status clear setting of sprit transaction in specified
-*              : pipe is performed.
-*              : When SQSET bit or SQCLR bit, and SQSET bit or SQCLR bit
-*              : in DCPCTR register are continuously changed (when the sequence
-*              : toggle bit of data PID is continuously changed over two or more pipes),
-*              : the access cycle with 120 ns and more than 5 cycle bus clock is necessary.
-*              : Do not set both SQCLR bit and SQSET bit to 1 at the same time.
-*              : In addition, both bits should be operated after PID is set to NAK.
-*              : However, when it is set to the isochronous transfer as the transfer type
-*              : (TYPE=11), writing in SQSET bit is disabled.
-* Arguments    : uint16_t pipe     ; Pipe number
-* Return Value : none
-*******************************************************************************/
-void usb1_api_function_set_csclr (uint16_t pipe)
-{
-    usb1_function_set_csclr(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb1_api_function_set_curpipe
-* Description  : Allocates FIF0 specifed by the argument in the pipe assigned
-*              : by the argument.
-* Arguments    : uint16_t pipe      ; Pipe Number
-*              : uint16_t fifosel   ; Select FIFO
-*              : uint16_t isel      ; FIFO Access Direction
-*              : uint16_t mbw       ; FIFO Port Access Bit Width
-* Return Value : none
-*******************************************************************************/
-void usb1_api_function_set_curpipe (uint16_t pipe, uint16_t fifosel, uint16_t isel, uint16_t mbw)
-{
-    usb1_function_set_curpipe(pipe, fifosel, isel, mbw);
-}
-
-/*******************************************************************************
-* Function Name: usb1_api_function_clear_brdy_sts
-* Description  : Clear BRDY interrupt status in the pipe spceified by the argument.
-* Arguments    : uint16_t pipe        ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb1_api_function_clear_brdy_sts (uint16_t pipe)
-{
-    usb1_function_clear_brdy_sts(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb1_api_function_clear_bemp_sts
-* Description  : Clear BEMP interrupt status in the pipe spceified by the argument.
-* Arguments    : uint16_t pipe        ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb1_api_function_clear_bemp_sts (uint16_t pipe)
-{
-    usb1_function_clear_bemp_sts(pipe);
-}
-
-/*******************************************************************************
-* Function Name: usb1_api_function_clear_nrdy_sts
-* Description  : Clear NRDY interrupt status in the pipe spceified by the argument.
-* Arguments    : uint16_t pipe        ; pipe Number
-* Return Value : none
-*******************************************************************************/
-void usb1_api_function_clear_nrdy_sts (uint16_t pipe)
-{
-    usb1_function_clear_nrdy_sts(pipe);
-}
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/function/usb1_function_controlrw.c	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,142 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb1_function_controlrw.c
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Device(s)    : RZ/A1H
-* Tool-Chain   :
-* OS           : None
-* H/W Platform :
-* Description  : RZ/A1H R7S72100 USB Sample Program
-* Operation    :
-* Limitations  :
-*******************************************************************************/
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include "usb1_function.h"
-
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Imported global variables and functions (from other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Private global variables and functions
-*******************************************************************************/
-
-
-/*******************************************************************************
-* Function Name: usb1_api_function_CtrlReadStart
-* Description  : Executes the USB control read transfer.
-*              : USB host controller <- USB device
-* Arguments    : uint16_t size     ; Data Size
-*              : uint8_t  *data    ; Data Address
-* Return Value : DEVDRV_USBF_WRITEEND          ; End of data write
-*              : DEVDRV_USBF_WRITESHRT         ; End of short data write
-*              : DEVDRV_USBF_WRITING           ; Continue of data write
-*              : DEVDRV_USBF_FIFOERROR         ; FIFO access error
-*******************************************************************************/
-uint16_t usb1_api_function_CtrlReadStart (uint32_t size, uint8_t * data)
-{
-    uint16_t status;
-    uint16_t mbw;
-
-    usb1_function_set_pid_nak(USB_FUNCTION_PIPE0);
-
-    g_usb1_function_data_count[USB_FUNCTION_PIPE0]   = size;
-    g_usb1_function_data_pointer[USB_FUNCTION_PIPE0] = data;
-
-    mbw = usb1_function_get_mbw(g_usb1_function_data_count[USB_FUNCTION_PIPE0],
-                                    (uint32_t)g_usb1_function_data_pointer[USB_FUNCTION_PIPE0]);
-    usb1_function_set_curpipe(USB_FUNCTION_PIPE0, USB_FUNCTION_CUSE, USB_FUNCTION_CFIFO_WRITE, mbw);
-    USB201.CFIFOCTR = USB_FUNCTION_BITBCLR;
-
-    status = usb1_function_write_buffer_c(USB_FUNCTION_PIPE0);
-
-    /* Peripheral Control sequence */
-    switch (status)
-    {
-        case DEVDRV_USBF_WRITESHRT:                                     /* End of data write */
-        case DEVDRV_USBF_WRITEEND:                                      /* End of data write (not null) */
-        case DEVDRV_USBF_WRITING:                                       /* Continue of data write */
-            usb1_function_enable_bemp_int(USB_FUNCTION_PIPE0);          /* Enable Empty Interrupt */
-            usb1_function_set_pid_buf(USB_FUNCTION_PIPE0);              /* Set BUF */
-        break;
-
-        case DEVDRV_USBF_FIFOERROR:                                     /* FIFO access error */
-        break;
-
-        default:
-        break;
-    }
-
-    return status;                                                      /* End or Err or Continue */
-}
-
-/*******************************************************************************
-* Function Name: usb1_api_function_CtrlWriteStart
-* Description  : Executes the USB control write transfer.
-*              : USB host controller -> USB device
-* Arguments    : uint16_t  size         ; Data Size
-*              : uint8_t  *data         ; Data Address
-* Return Value : none
-*******************************************************************************/
-void usb1_api_function_CtrlWriteStart (uint32_t size, uint8_t * data)
-{
-    uint16_t mbw;
-
-    usb1_function_set_pid_nak(USB_FUNCTION_PIPE0);
-
-    g_usb1_function_data_count[USB_FUNCTION_PIPE0]   = size;
-    g_usb1_function_data_pointer[USB_FUNCTION_PIPE0] = data;
-
-    mbw = usb1_function_get_mbw(g_usb1_function_data_count[USB_FUNCTION_PIPE0],
-                                    (uint32_t)g_usb1_function_data_pointer[USB_FUNCTION_PIPE0]);
-    usb1_function_set_curpipe(USB_FUNCTION_PIPE0, USB_FUNCTION_CUSE, USB_FUNCTION_CFIFO_WRITE, mbw);
-    USB201.CFIFOCTR = USB_FUNCTION_BITBCLR;
-
-    usb1_function_enable_brdy_int(USB_FUNCTION_PIPE0);
-    usb1_function_set_pid_buf(USB_FUNCTION_PIPE0);
-}
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/function/usb1_function_global.c	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,144 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb1_function_global.c
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Device(s)    : RZ/A1H
-* Tool-Chain   :
-* OS           : None
-* H/W Platform :
-* Description  : RZ/A1H R7S72100 USB Sample Program
-* Operation    :
-* Limitations  :
-*******************************************************************************/
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include "usb1_function.h"
-
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Imported global variables and functions (from other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Private global variables and functions
-*******************************************************************************/
-const uint16_t g_usb1_function_bit_set[16] =
-{
-    0x0001, 0x0002, 0x0004, 0x0008,
-    0x0010, 0x0020, 0x0040, 0x0080,
-    0x0100, 0x0200, 0x0400, 0x0800,
-    0x1000, 0x2000, 0x4000, 0x8000
-};
-
-uint32_t g_usb1_function_data_count[USB_FUNCTION_MAX_PIPE_NO + 1];
-uint8_t  * g_usb1_function_data_pointer[USB_FUNCTION_MAX_PIPE_NO + 1];
-
-uint16_t g_usb1_function_PipeIgnore[USB_FUNCTION_MAX_PIPE_NO + 1];
-uint16_t g_usb1_function_PipeTbl[USB_FUNCTION_MAX_PIPE_NO + 1];
-uint16_t g_usb1_function_pipe_status[USB_FUNCTION_MAX_PIPE_NO + 1];
-uint32_t g_usb1_function_PipeDataSize[USB_FUNCTION_MAX_PIPE_NO + 1];
-
-USB_FUNCTION_DMA_t g_usb1_function_DmaInfo[2];
-uint16_t g_usb1_function_DmaPipe[2];
-uint16_t g_usb1_function_DmaBval[2];
-uint16_t g_usb1_function_DmaStatus[2];
-
-uint16_t g_usb1_function_CtrZeroLengthFlag;
-
-//uint16_t g_usb1_function_ConfigNum;
-//uint16_t g_usb1_function_Alternate[USB_FUNCTION_ALT_NO];
-//uint16_t g_usb1_function_RemoteWakeupFlag;
-uint16_t g_usb1_function_TestModeFlag;
-uint16_t g_usb1_function_TestModeSelectors;
-
-//uint16_t g_usb1_function_ReqType;
-//uint16_t g_usb1_function_ReqTypeType;
-//uint16_t g_usb1_function_ReqTypeRecip;
-//uint16_t g_usb1_function_ReqRequest;
-//uint16_t g_usb1_function_ReqValue;
-//uint16_t g_usb1_function_ReqIndex;
-//uint16_t g_usb1_function_ReqLength;
-
-//uint16_t g_usb1_function_EPTableIndex[USB_FUNCTION_MAX_EP_NO + 1];
-
-uint16_t g_usb1_function_pipecfg[USB_FUNCTION_MAX_PIPE_NO + 1];
-uint16_t g_usb1_function_pipebuf[USB_FUNCTION_MAX_PIPE_NO + 1];
-uint16_t g_usb1_function_pipemaxp[USB_FUNCTION_MAX_PIPE_NO + 1];
-uint16_t g_usb1_function_pipeperi[USB_FUNCTION_MAX_PIPE_NO + 1];
-
-
-/*******************************************************************************
-* Function Name: usb1_function_init_status
-* Description  : Initialization USB Sample Driver Variable.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-void usb1_function_init_status (void)
-{
-    uint16_t pipe;
-
-    //g_usb1_function_ConfigNum         = 0;
-    //g_usb1_function_RemoteWakeupFlag  = DEVDRV_USBF_OFF;
-    g_usb1_function_TestModeFlag      = DEVDRV_USBF_OFF;
-    g_usb1_function_CtrZeroLengthFlag = 0;
-
-#if 0
-    usb1_function_clear_alt();
-#endif
-
-    for (pipe = 0; pipe < (USB_FUNCTION_MAX_PIPE_NO + 1); ++pipe)
-    {
-        g_usb1_function_pipe_status[pipe]  = DEVDRV_USBF_PIPE_IDLE;
-        g_usb1_function_PipeDataSize[pipe] = 0;
-        g_usb1_function_data_count[pipe]   = 0;
-
-        /* pipe configuration in usb1_function_ResetEP() */
-        g_usb1_function_pipecfg[pipe]  = 0;
-        g_usb1_function_pipebuf[pipe]  = 0;
-        g_usb1_function_pipemaxp[pipe] = 0;
-        g_usb1_function_pipeperi[pipe] = 0;
-    }
-}
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/function/usb1_function_sig.c	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,330 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb1_function_sig.c
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Device(s)    : RZ/A1H
-* Tool-Chain   :
-* OS           : None
-* H/W Platform :
-* Description  : RZ/A1H R7S72100 USB Sample Program
-* Operation    :
-* Limitations  :
-*******************************************************************************/
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include "usb1_function.h"
-
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Imported global variables and functions (from other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-static void usb1_function_EnableINTModule(void);
-
-
-/*******************************************************************************
-Private global variables and functions
-*******************************************************************************/
-
-
-/*******************************************************************************
-* Function Name: usb1_function_InitModule
-* Description  : Initializes the USB module in the USB function mode.
-* Arguments    : uint16_t mode  ; USB_FUNCTION_HIGH_SPEED ; Hi-Speed Mode
-*              :                ; other                   ; Full-speed Mode
-* Return Value : none
-*******************************************************************************/
-void usb1_function_InitModule (uint16_t mode)
-{
-    RZA_IO_RegWrite_16(&USB201.SYSCFG0,
-                        0,
-                        USB_SYSCFG_DCFM_SHIFT,
-                        USB_SYSCFG_DCFM);           /* USB function */
-
-    /* USB module operation enabled     */
-    RZA_IO_RegWrite_16(&USB201.SYSCFG0,
-                        1,
-                        USB_SYSCFG_USBE_SHIFT,
-                        USB_SYSCFG_USBE);
-
-    if (mode == USB_FUNCTION_HIGH_SPEED)
-    {
-        RZA_IO_RegWrite_16(&USB201.SYSCFG0,
-                            1,
-                            USB_SYSCFG_HSE_SHIFT,
-                            USB_SYSCFG_HSE);        /* Hi-Speed Mode */
-    }
-    else
-    {
-        RZA_IO_RegWrite_16(&USB201.SYSCFG0,
-                            0,
-                            USB_SYSCFG_HSE_SHIFT,
-                            USB_SYSCFG_HSE);
-    }
-
-    /* for power-on                     */
-    if (usb1_function_CheckVBUStaus() == DEVDRV_USBF_ON)
-    {
-        usb1_function_EnableINTModule();            /* Interrupt Enable */
-        usb1_function_USB_FUNCTION_Attach();        /* pull-up D+ and open D- */
-    }
-    else
-    {
-        usb1_function_USB_FUNCTION_Detach();        /* USB Detach */
-                                                    /* with Interrupt Enable */
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_CheckVBUStaus
-* Description  : Checks the USB-VBUS state to returns the connection state to
-*              : the USB host.
-* Arguments    : none
-* Return Value : DEVDRV_USBF_ON     :   VBUS ON
-*              : DEVDRV_USBF_OFF   :   VBUS OFF
-*******************************************************************************/
-uint16_t usb1_function_CheckVBUStaus (void)
-{
-    uint16_t buf1;
-    uint16_t buf2;
-    uint16_t buf3;
-
-    /* monitor VBUS pins */
-    do
-    {
-        buf1 = RZA_IO_RegRead_16(&USB201.INTSTS0,
-                                USB_INTSTS0_VBSTS_SHIFT,
-                                USB_INTSTS0_VBSTS);
-        Userdef_USB_usb1_function_delay_10us(1);
-        buf2 = RZA_IO_RegRead_16(&USB201.INTSTS0,
-                                USB_INTSTS0_VBSTS_SHIFT,
-                                USB_INTSTS0_VBSTS);
-        Userdef_USB_usb1_function_delay_10us(1);
-        buf3 = RZA_IO_RegRead_16(&USB201.INTSTS0,
-                                USB_INTSTS0_VBSTS_SHIFT,
-                                USB_INTSTS0_VBSTS);
-    } while ((buf1 != buf2) || (buf2 != buf3));
-
-    if (buf1 == DEVDRV_USBF_OFF)
-    {
-        return DEVDRV_USBF_OFF;        /* detach */
-    }
-
-    return DEVDRV_USBF_ON;             /* attach */
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_USB_FUNCTION_Attach
-* Description  : Connects to the USB host controller.
-*              : This function pulls up D+.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-void usb1_function_USB_FUNCTION_Attach (void)
-{
-    Userdef_USB_usb1_function_attach();
-
-    Userdef_USB_usb1_function_delay_xms(10);
-
-    RZA_IO_RegWrite_16(&USB201.SYSCFG0,
-                        1,
-                        USB_SYSCFG_DPRPU_SHIFT,
-                        USB_SYSCFG_DPRPU);      /* Pull-up D+ and open D- */
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_USB_FUNCTION_Detach
-* Description  : Disconnects from the USB host controller.
-*              : This function opens D+/D-.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-void usb1_function_USB_FUNCTION_Detach (void)
-{
-    uint16_t pipe;
-
-    Userdef_USB_usb1_function_detach();
-
-    for (pipe = 0; pipe < (USB_FUNCTION_MAX_PIPE_NO + 1); ++pipe)
-    {
-        if (g_usb1_function_pipe_status[pipe] != DEVDRV_USBF_PIPE_IDLE)
-        {
-            usb1_function_stop_transfer(pipe);
-        }
-    }
-
-    RZA_IO_RegWrite_16(&USB201.SYSCFG0,
-                        0,
-                        USB_SYSCFG_DPRPU_SHIFT,
-                        USB_SYSCFG_DPRPU);      /* open D+ and D- */
-
-    /* Detach Recovery */
-    Userdef_USB_usb1_function_delay_500ns();                /* need 1us=500ns * 2 wait */
-    Userdef_USB_usb1_function_delay_500ns();
-
-    RZA_IO_RegWrite_16(&USB201.SYSCFG0,
-                        1,
-                        USB_SYSCFG_DCFM_SHIFT,
-                        USB_SYSCFG_DCFM);
-    Userdef_USB_usb1_function_delay_500ns();                /* need 100ns wait but 500ns S/W wait */
-
-    RZA_IO_RegWrite_16(&USB201.SYSCFG0,
-                        0,
-                        USB_SYSCFG_DCFM_SHIFT,
-                        USB_SYSCFG_DCFM);
-
-    RZA_IO_RegWrite_16(&USB201.SYSCFG0,
-                        0,
-                        USB_SYSCFG_USBE_SHIFT,
-                        USB_SYSCFG_USBE);       /* soft reset module */
-    Userdef_USB_usb1_function_delay_500ns();
-
-    RZA_IO_RegWrite_16(&USB201.SYSCFG0,
-                        1,
-                        USB_SYSCFG_USBE_SHIFT,
-                        USB_SYSCFG_USBE);
-
-    usb1_function_EnableINTModule();            /* Interrupt Enable */
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_USB_FUNCTION_BusReset
-* Description  : This function is executed when the USB device is transitioned
-*              : to POWERD_STATE. Sets the device descriptor according to the
-*              : connection speed determined by the USB reset hand shake.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-#if 0	/*The USBHAL in mbed does not need this function*/
-void usb1_function_USB_FUNCTION_BusReset (void)
-{
-    usb1_function_init_status();                                    /* memory clear */
-
-    if (usb1_function_is_hispeed() == USB_FUNCTION_HIGH_SPEED)
-    {
-        usb1_function_ResetDescriptor(USB_FUNCTION_HIGH_SPEED);     /* Device Descriptor reset */
-    }
-    else
-    {
-        usb1_function_ResetDescriptor(USB_FUNCTION_FULL_SPEED);     /* Device Descriptor reset */
-    }
-
-    usb1_function_ResetDCP();                                       /* Default Control PIPE reset */
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb1_function_USB_FUNCTION_Resume
-* Description  : This function is executed when the USB device detects a resume
-*              : signal.
-*              : The USB sample driver does not operate for this function.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-#if 0	/*The USBHAL in mbed does not need this function*/
-void usb1_function_USB_FUNCTION_Resume (void)
-{
-    /* NOP */
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb1_function_USB_FUNCTION_Suspend
-* Description  : This function is executed when the USB device detects a suspend
-*              : signal.
-*              : The USB sample driver does not operate for this function.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-#if 0	/*The USBHAL in mbed does not need this function*/
-void usb1_function_USB_FUNCTION_Suspend (void)
-{
-    /* NOP */
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb1_function_USB_FUNCTION_TestMode
-* Description  : This function is executed when the USB device is transitioned U
-*              : to TEST_MODE by the USB standard request.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-void usb1_function_USB_FUNCTION_TestMode (void)
-{
-    switch (g_usb1_function_TestModeSelectors & USB_FUNCTION_FUNCTION_TEST_SELECT)
-    {
-        case USB_FUNCTION_FUNCTION_TEST_J:
-        case USB_FUNCTION_FUNCTION_TEST_K:
-        case USB_FUNCTION_FUNCTION_TEST_SE0_NAK:
-        case USB_FUNCTION_FUNCTION_TEST_PACKET:
-            RZA_IO_RegWrite_16(&USB201.TESTMODE,
-                                (g_usb1_function_TestModeSelectors >> 8),
-                                USB_TESTMODE_UTST_SHIFT,
-                                USB_TESTMODE_UTST);
-        break;
-
-        case USB_FUNCTION_FUNCTION_TEST_FORCE_ENABLE:
-        default:
-        break;
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_EnableINTModule
-* Description  : Enables USB interrupt.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-static void usb1_function_EnableINTModule (void)
-{
-    uint16_t buf;
-
-    buf  = USB201.INTENB0;
-    buf |= (USB_FUNCTION_BITVBSE | USB_FUNCTION_BITDVSE | USB_FUNCTION_BITCTRE |
-            USB_FUNCTION_BITBEMPE | USB_FUNCTION_BITNRDYE | USB_FUNCTION_BITBRDYE);
-    USB201.INTENB0 = buf;
-
-    usb1_function_enable_bemp_int(USB_FUNCTION_PIPE0);
-}
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/function/usb1_function_sub.c	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,453 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb1_function_sub.c
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Device(s)    : RZ/A1H
-* Tool-Chain   :
-* OS           : None
-* H/W Platform :
-* Description  : RZ/A1H R7S72100 USB Sample Program
-* Operation    :
-* Limitations  :
-*******************************************************************************/
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include "usb1_function.h"
-
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Imported global variables and functions (from other files)
-*******************************************************************************/
-#if 0
-extern const uint16_t *g_usb1_function_EndPntPtr[];
-extern uint8_t         g_usb1_function_DeviceDescriptor[];
-extern uint8_t        *g_usb1_function_ConfigurationPtr[];
-#endif
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Private global variables and functions
-*******************************************************************************/
-
-
-/*******************************************************************************
-* Function Name: usb1_function_ResetDCP
-* Description  : Initializes the default control pipe(DCP).
-* Outline      : Reset default control pipe
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-void usb1_function_ResetDCP (void)
-{
-    USB201.DCPCFG  = 0;
-#if 0
-    USB201.DCPMAXP = g_usb1_function_DeviceDescriptor[7];
-#else
-    USB201.DCPMAXP = 64;
-#endif
-
-    USB201.CFIFOSEL  = (uint16_t)(USB_FUNCTION_BITMBW_8 | USB_FUNCTION_BITBYTE_LITTLE);
-    USB201.D0FIFOSEL = (uint16_t)(USB_FUNCTION_BITMBW_8 | USB_FUNCTION_BITBYTE_LITTLE);
-    USB201.D1FIFOSEL = (uint16_t)(USB_FUNCTION_BITMBW_8 | USB_FUNCTION_BITBYTE_LITTLE);
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_ResetEP
-* Description  : Initializes the end point.
-* Arguments    : uint16_t num          ; Configuration Number
-* Return Value : none
-*******************************************************************************/
-#if 0
-void usb1_function_ResetEP (uint16_t num)
-{
-    uint16_t   pipe;
-    uint16_t   ep;
-    uint16_t   index;
-    uint16_t   buf;
-    uint16_t * tbl;
-
-    tbl = (uint16_t *)(g_usb1_function_EndPntPtr[num - 1]);
-
-    for (ep = 1; ep <= USB_FUNCTION_MAX_EP_NO; ++ep)
-    {
-        if (g_usb1_function_EPTableIndex[ep] != USB_FUNCTION_EP_ERROR)
-        {
-            index = (uint16_t)(USB_FUNCTION_EPTABLE_LENGTH * g_usb1_function_EPTableIndex[ep]);
-            pipe  = (uint16_t)(tbl[index + 0] & USB_FUNCTION_BITCURPIPE);
-
-            g_usb1_function_PipeTbl[pipe] = (uint16_t)(((tbl[index + 1] & USB_FUNCTION_DIRFIELD) << 3) |
-                                                         ep                                            |
-                                                        (tbl[index + 0] & USB_FUNCTION_FIFO_USE));
-
-            if ((tbl[index + 1] & USB_FUNCTION_DIRFIELD) == USB_FUNCTION_DIR_P_OUT)
-            {
-                tbl[index + 1] |= USB_FUNCTION_SHTNAKON;
-#ifdef  __USB_DMA_BFRE_ENABLE__
-                /* this routine cannnot be perfomred if read operation is executed in buffer size */
-                if (((tbl[index + 0] & USB_FUNCTION_FIFO_USE) == USB_FUNCTION_D0FIFO_DMA) ||
-                    ((tbl[index + 0] & USB_FUNCTION_FIFO_USE) == USB_FUNCTION_D1FIFO_DMA))
-                {
-                    tbl[index + 1] |= USB_FUNCTION_BFREON;
-                }
-#endif
-            }
-
-            /* Interrupt Disable */
-            buf  = USB201.BRDYENB;
-            buf &= (uint16_t)~g_usb1_function_bit_set[pipe];
-            USB201.BRDYENB = buf;
-            buf  = USB201.NRDYENB;
-            buf &= (uint16_t)~g_usb1_function_bit_set[pipe];
-            USB201.NRDYENB = buf;
-            buf  = USB201.BEMPENB;
-            buf &= (uint16_t)~g_usb1_function_bit_set[pipe];
-            USB201.BEMPENB = buf;
-
-            usb1_function_set_pid_nak(pipe);
-
-            /* CurrentPIPE Clear */
-            if (RZA_IO_RegRead_16(&USB201.CFIFOSEL,
-                                    USB_CFIFOSEL_CURPIPE_SHIFT,
-                                    USB_CFIFOSEL_CURPIPE) == pipe)
-            {
-                RZA_IO_RegWrite_16(&USB201.CFIFOSEL,
-                                    0,
-                                    USB_CFIFOSEL_CURPIPE_SHIFT,
-                                    USB_CFIFOSEL_CURPIPE);
-            }
-
-            if (RZA_IO_RegRead_16(&USB201.D0FIFOSEL,
-                                    USB_DnFIFOSEL_CURPIPE_SHIFT,
-                                    USB_DnFIFOSEL_CURPIPE) == pipe)
-            {
-                RZA_IO_RegWrite_16(&USB201.D0FIFOSEL,
-                                    0,
-                                    USB_DnFIFOSEL_CURPIPE_SHIFT,
-                                    USB_DnFIFOSEL_CURPIPE);
-            }
-
-            if (RZA_IO_RegRead_16(&USB201.D1FIFOSEL,
-                                    USB_DnFIFOSEL_CURPIPE_SHIFT,
-                                    USB_DnFIFOSEL_CURPIPE) == pipe)
-            {
-                RZA_IO_RegWrite_16(&USB201.D1FIFOSEL,
-                                    0,
-                                    USB_DnFIFOSEL_CURPIPE_SHIFT,
-                                    USB_DnFIFOSEL_CURPIPE);
-            }
-
-            /* PIPE Configuration */
-            USB201.PIPESEL  = pipe;
-            USB201.PIPECFG  = tbl[index + 1];
-            USB201.PIPEBUF  = tbl[index + 2];
-            USB201.PIPEMAXP = tbl[index + 3];
-            USB201.PIPEPERI = tbl[index + 4];
-
-            g_usb1_function_pipecfg[pipe]  = tbl[index + 1];
-            g_usb1_function_pipebuf[pipe]  = tbl[index + 2];
-            g_usb1_function_pipemaxp[pipe] = tbl[index + 3];
-            g_usb1_function_pipeperi[pipe] = tbl[index + 4];
-
-            /* Buffer Clear */
-            usb1_function_set_sqclr(pipe);
-            usb1_function_aclrm(pipe);
-
-            /* init Global */
-            g_usb1_function_pipe_status[pipe]  = DEVDRV_USBF_PIPE_IDLE;
-            g_usb1_function_PipeDataSize[pipe] = 0;
-        }
-    }
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb1_function_EpToPipe
-* Description  : Returns the pipe which end point specified by the argument is
-*              : allocated to.
-* Arguments    : uint16_t ep       ; Direction + Endpoint Number
-* Return Value : USB_FUNCTION_EP_ERROR         : Error
-*              : Others           : Pipe Number
-*******************************************************************************/
-uint16_t usb1_function_EpToPipe (uint16_t ep)
-{
-    uint16_t pipe;
-
-    for (pipe = 1; pipe <= USB_FUNCTION_MAX_PIPE_NO; pipe++)
-    {
-        if ((g_usb1_function_PipeTbl[pipe] & 0x00ff) == ep)
-        {
-            return pipe;
-        }
-    }
-
-    return USB_FUNCTION_EP_ERROR;
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_InitEPTable
-* Description  : Sets the end point by the Alternate setting value of the
-*              : configuration number and the interface number specified by the
-*              : argument.
-* Arguments    : uint16_t Con_Num       ; Configuration Number
-*              : uint16_t Int_Num       ; Interface Number
-*              : uint16_t Alt_Num       ; Alternate Setting
-* Return Value : none
-*******************************************************************************/
-#if 0
-void usb1_function_InitEPTable (uint16_t Con_Num, uint16_t Int_Num, uint16_t Alt_Num)
-{
-    uint8_t  * ptr;
-    uint16_t   point_interface;
-    uint16_t   point_endpoint;
-    uint16_t   length;
-    uint16_t   start;
-    uint16_t   numbers;
-    uint16_t   endpoint;
-
-    ptr = (uint8_t *)g_usb1_function_ConfigurationPtr[Con_Num - 1];
-    point_interface = *ptr;
-    length = (uint16_t)((uint16_t)*(ptr + 3) << 8 | (uint16_t)*(ptr + 2));
-    ptr  += *ptr;
-    start   = 0;
-    numbers = 0;
-    point_endpoint = 0;
-
-    for (; point_interface < length;)
-    {
-        switch (*(ptr + 1))                                     /* Descriptor Type ? */
-        {
-            case USB_FUNCTION_DT_INTERFACE:                     /* Interface */
-                if ((*(ptr + 2) == Int_Num) && (*(ptr + 3) == Alt_Num))
-                {
-                    numbers = *(ptr + 4);
-                }
-                else
-                {
-                    start  += *(ptr + 4);
-                }
-                point_interface += *ptr;
-                ptr += *ptr;
-            break;
-
-            case USB_FUNCTION_DT_ENDPOINT:                      /* Endpoint */
-                if (point_endpoint < numbers)
-                {
-                    endpoint = (uint16_t)(*(ptr + 2) & 0x0f);
-                    g_usb1_function_EPTableIndex[endpoint] = (uint16_t)(start + point_endpoint);
-                    ++point_endpoint;
-                }
-                point_interface += *ptr;
-                ptr += *ptr;
-            break;
-
-            case USB_FUNCTION_DT_DEVICE:                        /* Device */
-            case USB_FUNCTION_DT_CONFIGURATION:                 /* Configuration */
-            case USB_FUNCTION_DT_STRING:                        /* String */
-            default:                                            /* Class, Vendor, else */
-                point_interface += *ptr;
-                ptr += *ptr;
-            break;
-        }
-    }
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb1_function_GetConfigNum
-* Description  : Returns the number of configuration referring to the number of
-*              : configuration described in the device descriptor.
-* Arguments    : none
-* Return Value : Number of possible configurations (bNumConfigurations).
-*******************************************************************************/
-#if 0
-uint16_t usb1_function_GetConfigNum (void)
-{
-    return (uint16_t)g_usb1_function_DeviceDescriptor[17];
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb1_function_GetInterfaceNum
-* Description  : Returns the number of interface referring to the number of
-*              : interface described in the configuration descriptor.
-* Arguments    : uint16_t num       ; Configuration Number
-* Return Value : Number of this interface (bNumInterfaces).
-*******************************************************************************/
-#if 0
-uint16_t usb1_function_GetInterfaceNum (uint16_t num)
-{
-    return (uint16_t)(*(g_usb1_function_ConfigurationPtr[num - 1] + 4));
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb1_function_GetAltNum
-* Description  : Returns the Alternate setting value of the configuration number
-*              : and the interface number specified by the argument.
-* Arguments    : uint16_t Con_Num       ; Configuration Number
-*              : uint16_t Int_Num       ; Interface Number
-* Return Value : Value used to select this alternate setting(bAlternateSetting).
-*******************************************************************************/
-#if 0
-uint16_t usb1_function_GetAltNum (uint16_t Con_Num, uint16_t Int_Num)
-{
-    uint8_t  * ptr;
-    uint16_t   point;
-    uint16_t   alt_num = 0;
-    uint16_t   length;
-
-    ptr = (uint8_t *)(g_usb1_function_ConfigurationPtr[Con_Num - 1]);
-    point = ptr[0];
-    ptr  += ptr[0];                                 /* InterfaceDescriptor[0] */
-    length  = (uint16_t)(*(g_usb1_function_ConfigurationPtr[Con_Num - 1] + 2));
-    length |= (uint16_t)((uint16_t)(*(g_usb1_function_ConfigurationPtr[Con_Num - 1] + 3)) << 8);
-
-    for (; point < length;)                                 /* Search Descriptor Table size */
-    {
-        switch (ptr[1])                                     /* Descriptor Type ? */
-        {
-            case USB_FUNCTION_DT_INTERFACE:                 /* Interface */
-                if (Int_Num == ptr[2])
-                {
-                    alt_num = (uint16_t)ptr[3];             /* Alternate Number count */
-                }
-                point += ptr[0];
-                ptr += ptr[0];
-            break;
-
-            case USB_FUNCTION_DT_DEVICE:                    /* Device */
-            case USB_FUNCTION_DT_CONFIGURATION:             /* Configuration */
-            case USB_FUNCTION_DT_STRING:                    /* String */
-            case USB_FUNCTION_DT_ENDPOINT:                  /* Endpoint */
-            default:                                        /* Class, Vendor, else */
-                point += ptr[0];
-                ptr   += ptr[0];
-            break;
-        }
-    }
-    return alt_num;
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb1_function_CheckRemoteWakeup
-* Description  : Returns the result of the remote wake up function is supported
-*              : or not referring to the configuration descriptor.
-* Arguments    : none
-* Return Value : DEVDRV_USBF_ON     :   Support Remote Wakeup
-*              : DEVDRV_USBF_OFF    :   not Support Remote Wakeup
-*******************************************************************************/
-#if 0
-uint16_t usb1_function_CheckRemoteWakeup (void)
-{
-    uint8_t atr;
-
-    if (g_usb1_function_ConfigNum == 0)
-    {
-        return DEVDRV_USBF_OFF;
-    }
-
-    atr = *(g_usb1_function_ConfigurationPtr[g_usb1_function_ConfigNum - 1] + 7);
-
-    if (atr & USB_FUNCTION_CF_RWUP)
-    {
-        return DEVDRV_USBF_ON;
-    }
-
-    return DEVDRV_USBF_OFF;
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb1_function_clear_alt
-* Description  : Initializes the Alternate setting area.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-#if 0
-void usb1_function_clear_alt (void)
-{
-    int i;
-
-    for (i = 0; i < USB_FUNCTION_ALT_NO; ++i)
-    {
-        g_usb1_function_Alternate[i] = 0;                           /* Alternate */
-    }
-}
-#endif
-
-/*******************************************************************************
-* Function Name: usb1_function_clear_pipe_tbl
-* Description  : Initializes pipe definition table.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-void usb1_function_clear_pipe_tbl (void)
-{
-    int pipe;
-
-    for (pipe = 0; pipe < (USB_FUNCTION_MAX_PIPE_NO + 1); ++pipe)
-    {
-        g_usb1_function_PipeTbl[pipe] = 0;
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_clear_ep_table_index
-* Description  : Initializes the end point table index.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-#if 0
-void usb1_function_clear_ep_table_index (void)
-{
-    int ep;
-
-    for (ep = 0; ep <= USB_FUNCTION_MAX_EP_NO; ++ep)
-    {
-        g_usb1_function_EPTableIndex[ep] = USB_FUNCTION_EP_ERROR;
-    }
-}
-#endif
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/userdef/usb1_function_dmacdrv.c	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,698 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb1_function_dmacdrv.c
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Device(s)    : RZ/A1H
-* Tool-Chain   :
-* OS           : None
-* H/W Platform :
-* Description  : RZ/A1H R7S72100 USB Sample Program
-* Operation    :
-* Limitations  :
-*******************************************************************************/
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include <stdio.h>
-#include "r_typedefs.h"
-#include "iodefine.h"
-#include "rza_io_regrw.h"
-#include "usb1_function_dmacdrv.h"
-
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-#define DMAC_INDEFINE   (255)       /* Macro definition when REQD bit is not used */
-
-/* ==== Request setting information for on-chip peripheral module ==== */
-typedef enum dmac_peri_req_reg_type
-{
-    DMAC_REQ_MID,
-    DMAC_REQ_RID,
-    DMAC_REQ_AM,
-    DMAC_REQ_LVL,
-    DMAC_REQ_REQD
-} dmac_peri_req_reg_type_t;
-
-
-/*******************************************************************************
-Imported global variables and functions (from other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-
-
-/*******************************************************************************
-Private global variables and functions
-*******************************************************************************/
-/* ==== Prototype declaration ==== */
-
-/* ==== Global variable ==== */
-/* On-chip peripheral module request setting table */
-static const uint8_t usb1_function_dmac_peri_req_init_table[8][5] =
-{
-    /* MID,RID,AM,LVL,REQD */
-    {32, 3, 2, 1, 1},    /* USB_0 channel 0 transmit FIFO empty */
-    {32, 3, 2, 1, 0},    /* USB_0 channel 0 receive FIFO full   */
-    {33, 3, 2, 1, 1},    /* USB_0 channel 1 transmit FIFO empty */
-    {33, 3, 2, 1, 0},    /* USB_0 channel 1 receive FIFO full   */
-    {34, 3, 2, 1, 1},    /* USB_1 channel 0 transmit FIFO empty */
-    {34, 3, 2, 1, 0},    /* USB_1 channel 0 receive FIFO full   */
-    {35, 3, 2, 1, 1},    /* USB_1 channel 1 transmit FIFO empty */
-    {35, 3, 2, 1, 0},    /* USB_1 channel 1 receive FIFO full   */
-};
-
-
-/*******************************************************************************
-* Function Name: usb1_function_DMAC3_PeriReqInit
-* Description  : Sets the register mode for DMA mode and the on-chip peripheral
-*              : module request for transfer request for DMAC channel 1.
-*              : Executes DMAC initial setting using the DMA information
-*              : specified by the argument *trans_info and the enabled/disabled
-*              : continuous transfer specified by the argument continuation.
-*              : Registers DMAC channel 1 interrupt handler function and sets
-*              : the interrupt priority level. Then enables transfer completion
-*              : interrupt.
-* Arguments    : dmac_transinfo_t *trans_info   : Setting information to DMAC register
-*              : uint32_t          dmamode      : DMA mode (only for DMAC_MODE_REGISTER)
-*              : uint32_t          continuation : Set continuous transfer to be valid
-*              :                                  after DMA transfer has been completed
-*              :             DMAC_SAMPLE_CONTINUATION : Execute continuous transfer
-*              :             DMAC_SAMPLE_SINGLE       : Do not execute continuous transfer
-*              : uint32_t request_factor        : Factor for on-chip peripheral module request
-*              :             DMAC_REQ_OSTM0TINT       : OSTM_0 compare match
-*              :             DMAC_REQ_OSTM1TINT       : OSTM_1 compare match
-*              :             DMAC_REQ_TGI0A           : MTU2_0 input capture/compare match
-*              :                  :
-*              : uint32_t          req_direction: Setting value of CHCFG_n register REQD bit
-* Return Value : none
-*******************************************************************************/
-void usb1_function_DMAC3_PeriReqInit (const dmac_transinfo_t * trans_info,
-                                      uint32_t dmamode, uint32_t continuation,
-                                      uint32_t request_factor, uint32_t req_direction)
-{
-    /* ==== Register mode ==== */
-    if (DMAC_MODE_REGISTER == dmamode)
-    {
-        /* ==== Next0 register set ==== */
-        DMAC3.N0SA_n = trans_info->src_addr;         /* Start address of transfer source      */
-        DMAC3.N0DA_n = trans_info->dst_addr;         /* Start address of transfer destination */
-        DMAC3.N0TB_n = trans_info->count;            /* Total transfer byte count             */
-
-        /* DAD : Transfer destination address counting direction */
-        /* SAD : Transfer source address counting direction      */
-        /* DDS : Transfer destination transfer size              */
-        /* SDS : Transfer source transfer size                   */
-        RZA_IO_RegWrite_32(&DMAC3.CHCFG_n,
-                            trans_info->daddr_dir,
-                            DMAC3_CHCFG_n_DAD_SHIFT,
-                            DMAC3_CHCFG_n_DAD);
-        RZA_IO_RegWrite_32(&DMAC3.CHCFG_n,
-                            trans_info->saddr_dir,
-                            DMAC3_CHCFG_n_SAD_SHIFT,
-                            DMAC3_CHCFG_n_SAD);
-        RZA_IO_RegWrite_32(&DMAC3.CHCFG_n,
-                            trans_info->dst_size,
-                            DMAC3_CHCFG_n_DDS_SHIFT,
-                            DMAC3_CHCFG_n_DDS);
-        RZA_IO_RegWrite_32(&DMAC3.CHCFG_n,
-                            trans_info->src_size,
-                            DMAC3_CHCFG_n_SDS_SHIFT,
-                            DMAC3_CHCFG_n_SDS);
-
-        /* DMS  : Register mode                            */
-        /* RSEL : Select Next0 register set                */
-        /* SBE  : No discharge of buffer data when aborted */
-        /* DEM  : No DMA interrupt mask                    */
-        RZA_IO_RegWrite_32(&DMAC3.CHCFG_n,
-                            0,
-                            DMAC3_CHCFG_n_DMS_SHIFT,
-                            DMAC3_CHCFG_n_DMS);
-        RZA_IO_RegWrite_32(&DMAC3.CHCFG_n,
-                            0,
-                            DMAC3_CHCFG_n_RSEL_SHIFT,
-                            DMAC3_CHCFG_n_RSEL);
-        RZA_IO_RegWrite_32(&DMAC3.CHCFG_n,
-                            0,
-                            DMAC3_CHCFG_n_SBE_SHIFT,
-                            DMAC3_CHCFG_n_SBE);
-        RZA_IO_RegWrite_32(&DMAC3.CHCFG_n,
-                            0,
-                            DMAC3_CHCFG_n_DEM_SHIFT,
-                            DMAC3_CHCFG_n_DEM);
-
-        /* ---- Continuous transfer ---- */
-        if (DMAC_SAMPLE_CONTINUATION == continuation)
-        {
-            /* REN : Execute continuous transfer                         */
-            /* RSW : Change register set when DMA transfer is completed. */
-            RZA_IO_RegWrite_32(&DMAC3.CHCFG_n,
-                                1,
-                                DMAC3_CHCFG_n_REN_SHIFT,
-                                DMAC3_CHCFG_n_REN);
-            RZA_IO_RegWrite_32(&DMAC3.CHCFG_n,
-                                1,
-                                DMAC3_CHCFG_n_RSW_SHIFT,
-                                DMAC3_CHCFG_n_RSW);
-        }
-        /* ---- Single transfer ---- */
-        else
-        {
-            /* REN : Do not execute continuous transfer                         */
-            /* RSW : Do not change register set when DMA transfer is completed. */
-            RZA_IO_RegWrite_32(&DMAC3.CHCFG_n,
-                                0,
-                                DMAC3_CHCFG_n_REN_SHIFT,
-                                DMAC3_CHCFG_n_REN);
-            RZA_IO_RegWrite_32(&DMAC3.CHCFG_n,
-                                0,
-                                DMAC3_CHCFG_n_RSW_SHIFT,
-                                DMAC3_CHCFG_n_RSW);
-        }
-
-        /* TM  : Single transfer                          */
-        /* SEL : Channel setting                          */
-        /* HIEN, LOEN : On-chip peripheral module request */
-        RZA_IO_RegWrite_32(&DMAC3.CHCFG_n,
-                            0,
-                            DMAC3_CHCFG_n_TM_SHIFT,
-                            DMAC3_CHCFG_n_TM);
-        RZA_IO_RegWrite_32(&DMAC3.CHCFG_n,
-                            3,
-                            DMAC3_CHCFG_n_SEL_SHIFT,
-                            DMAC3_CHCFG_n_SEL);
-        RZA_IO_RegWrite_32(&DMAC3.CHCFG_n,
-                            1,
-                            DMAC3_CHCFG_n_HIEN_SHIFT,
-                            DMAC3_CHCFG_n_HIEN);
-        RZA_IO_RegWrite_32(&DMAC3.CHCFG_n,
-                            0,
-                            DMAC3_CHCFG_n_LOEN_SHIFT,
-                            DMAC3_CHCFG_n_LOEN);
-
-        /* ---- Set factor by specified on-chip peripheral module request ---- */
-        RZA_IO_RegWrite_32(&DMAC3.CHCFG_n,
-                            usb1_function_dmac_peri_req_init_table[request_factor][DMAC_REQ_AM],
-                            DMAC3_CHCFG_n_AM_SHIFT,
-                            DMAC3_CHCFG_n_AM);
-        RZA_IO_RegWrite_32(&DMAC3.CHCFG_n,
-                            usb1_function_dmac_peri_req_init_table[request_factor][DMAC_REQ_LVL],
-                            DMAC3_CHCFG_n_LVL_SHIFT,
-                            DMAC3_CHCFG_n_LVL);
-
-        if (usb1_function_dmac_peri_req_init_table[request_factor][DMAC_REQ_REQD] != DMAC_INDEFINE)
-        {
-            RZA_IO_RegWrite_32(&DMAC3.CHCFG_n,
-                                usb1_function_dmac_peri_req_init_table[request_factor][DMAC_REQ_REQD],
-                                DMAC3_CHCFG_n_REQD_SHIFT,
-                                DMAC3_CHCFG_n_REQD);
-        }
-        else
-        {
-            RZA_IO_RegWrite_32(&DMAC3.CHCFG_n,
-                                req_direction,
-                                DMAC3_CHCFG_n_REQD_SHIFT,
-                                DMAC3_CHCFG_n_REQD);
-        }
-
-        RZA_IO_RegWrite_32(&DMAC23.DMARS,
-                            usb1_function_dmac_peri_req_init_table[request_factor][DMAC_REQ_RID],
-                            DMAC23_DMARS_CH3_RID_SHIFT,
-                            DMAC23_DMARS_CH3_RID);
-        RZA_IO_RegWrite_32(&DMAC23.DMARS,
-                            usb1_function_dmac_peri_req_init_table[request_factor][DMAC_REQ_MID],
-                            DMAC23_DMARS_CH3_MID_SHIFT,
-                            DMAC23_DMARS_CH3_MID);
-
-        /* PR : Round robin mode */
-        RZA_IO_RegWrite_32(&DMAC07.DCTRL_0_7,
-                            1,
-                            DMAC07_DCTRL_0_7_PR_SHIFT,
-                            DMAC07_DCTRL_0_7_PR);
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_DMAC3_Open
-* Description  : Enables DMAC channel 3 transfer.
-* Arguments    : uint32_t req : DMAC request mode
-* Return Value :  0 : Succeeded in enabling DMA transfer
-*              : -1 : Failed to enable DMA transfer (due to DMA operation)
-*******************************************************************************/
-int32_t usb1_function_DMAC3_Open (uint32_t req)
-{
-    int32_t ret;
-    volatile uint8_t dummy;
-
-    /* Transferable? */
-    if ((0 == RZA_IO_RegRead_32(&DMAC3.CHSTAT_n,
-                                DMAC3_CHSTAT_n_EN_SHIFT,
-                                DMAC3_CHSTAT_n_EN)) &&
-        (0 == RZA_IO_RegRead_32(&DMAC3.CHSTAT_n,
-                                DMAC3_CHSTAT_n_TACT_SHIFT,
-                                DMAC3_CHSTAT_n_TACT)))
-    {
-        /* Clear Channel Status Register */
-        RZA_IO_RegWrite_32(&DMAC3.CHCTRL_n,
-                            1,
-                            DMAC3_CHCTRL_n_SWRST_SHIFT,
-                            DMAC3_CHCTRL_n_SWRST);
-        dummy = RZA_IO_RegRead_32(&DMAC3.CHCTRL_n,
-                                DMAC3_CHCTRL_n_SWRST_SHIFT,
-                                DMAC3_CHCTRL_n_SWRST);
-        /* Enable DMA transfer */
-        RZA_IO_RegWrite_32(&DMAC3.CHCTRL_n,
-                            1,
-                            DMAC3_CHCTRL_n_SETEN_SHIFT,
-                            DMAC3_CHCTRL_n_SETEN);
-
-        /* ---- Request by software ---- */
-        if (DMAC_REQ_MODE_SOFT == req)
-        {
-            /* DMA transfer Request by software */
-            RZA_IO_RegWrite_32(&DMAC3.CHCTRL_n,
-                                1,
-                                DMAC3_CHCTRL_n_STG_SHIFT,
-                                DMAC3_CHCTRL_n_STG);
-        }
-
-        ret = 0;
-    }
-    else
-    {
-        ret = -1;
-    }
-
-    return ret;
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_DMAC3_Close
-* Description  : Aborts DMAC channel 3 transfer. Returns the remaining transfer
-*              : byte count at the time of DMA transfer abort to the argument
-*              : *remain.
-* Arguments    : uint32_t * remain : Remaining transfer byte count when
-*              :                   : DMA transfer is aborted
-* Return Value : none
-*******************************************************************************/
-void usb1_function_DMAC3_Close (uint32_t * remain)
-{
-
-    /* ==== Abort transfer ==== */
-    RZA_IO_RegWrite_32(&DMAC3.CHCTRL_n,
-                        1,
-                        DMAC3_CHCTRL_n_CLREN_SHIFT,
-                        DMAC3_CHCTRL_n_CLREN);
-
-    while (1 == RZA_IO_RegRead_32(&DMAC3.CHSTAT_n,
-                                DMAC3_CHSTAT_n_TACT_SHIFT,
-                                DMAC3_CHSTAT_n_TACT))
-    {
-        /* Loop until transfer is aborted */
-    }
-
-    while (1 == RZA_IO_RegRead_32(&DMAC3.CHSTAT_n,
-                                DMAC3_CHSTAT_n_EN_SHIFT,
-                                DMAC3_CHSTAT_n_EN))
-    {
-        /* Loop until 0 is set in EN before checking the remaining transfer byte count */
-    }
-    /* ==== Obtain remaining transfer byte count ==== */
-    *remain = DMAC3.CRTB_n;
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_DMAC3_Load_Set
-* Description  : Sets the transfer source address, transfer destination
-*              : address, and total transfer byte count respectively
-*              : specified by the argument src_addr, dst_addr, and count to
-*              : DMAC channel 3 as DMA transfer information.
-*              : Sets the register set selected by the CHCFG_n register
-*              : RSEL bit from the Next0 or Next1 register set.
-*              : This function should be called when DMA transfer of DMAC
-*              : channel 3 is aboted.
-* Arguments    : uint32_t src_addr : Transfer source address
-*              : uint32_t dst_addr : Transfer destination address
-*              : uint32_t count    : Total transfer byte count
-* Return Value : none
-*******************************************************************************/
-void usb1_function_DMAC3_Load_Set (uint32_t src_addr, uint32_t dst_addr, uint32_t count)
-{
-    uint8_t reg_set;
-
-    /* Obtain register set in use */
-    reg_set = RZA_IO_RegRead_32(&DMAC3.CHSTAT_n,
-                                DMAC3_CHSTAT_n_SR_SHIFT,
-                                DMAC3_CHSTAT_n_SR);
-
-    /* ==== Load ==== */
-    if (0 == reg_set)
-    {
-        /* ---- Next0 Register Set ---- */
-        DMAC3.N0SA_n = src_addr;    /* Start address of transfer source      */
-        DMAC3.N0DA_n = dst_addr;    /* Start address of transfer destination */
-        DMAC3.N0TB_n = count;       /* Total transfer byte count             */
-    }
-    else
-    {
-        /* ---- Next1 Register Set ---- */
-        DMAC3.N1SA_n = src_addr;     /* Start address of transfer source      */
-        DMAC3.N1DA_n = dst_addr;     /* Start address of transfer destination */
-        DMAC3.N1TB_n = count;        /* Total transfer byte count             */
-     }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_DMAC4_PeriReqInit
-* Description  : Sets the register mode for DMA mode and the on-chip peripheral
-*              : module request for transfer request for DMAC channel 2.
-*              : Executes DMAC initial setting using the DMA information
-*              : specified by the argument *trans_info and the enabled/disabled
-*              : continuous transfer specified by the argument continuation.
-*              : Registers DMAC channel 2 interrupt handler function and sets
-*              : the interrupt priority level. Then enables transfer completion
-*              : interrupt.
-* Arguments    : dmac_transinfo_t * trans_info : Setting information to DMAC
-*              :                               : register
-*              : uint32_t dmamode      : DMA mode (only for DMAC_MODE_REGISTER)
-*              : uint32_t continuation : Set continuous transfer to be valid
-*              :                       : after DMA transfer has been completed
-*              :         DMAC_SAMPLE_CONTINUATION : Execute continuous transfer
-*              :         DMAC_SAMPLE_SINGLE       : Do not execute continuous
-*              :                                  : transfer
-*              : uint32_t request_factor : Factor for on-chip peripheral module
-*              :                         : request
-*              :         DMAC_REQ_OSTM0TINT : OSTM_0 compare match
-*              :         DMAC_REQ_OSTM1TINT : OSTM_1 compare match
-*              :         DMAC_REQ_TGI0A     : MTU2_0 input capture/compare match
-*              :                 :
-*              : uint32_t req_direction : Setting value of CHCFG_n register
-*              :                        : REQD bit
-*******************************************************************************/
-void usb1_function_DMAC4_PeriReqInit (const dmac_transinfo_t * trans_info,
-                                      uint32_t dmamode, uint32_t continuation,
-                                      uint32_t request_factor, uint32_t req_direction)
-{
-    /* ==== Register mode ==== */
-    if (DMAC_MODE_REGISTER == dmamode)
-    {
-        /* ==== Next0 register set ==== */
-        DMAC4.N0SA_n = trans_info->src_addr;        /* Start address of transfer source      */
-        DMAC4.N0DA_n = trans_info->dst_addr;        /* Start address of transfer destination */
-        DMAC4.N0TB_n = trans_info->count;           /* Total transfer byte count             */
-
-        /* DAD : Transfer destination address counting direction */
-        /* SAD : Transfer source address counting direction      */
-        /* DDS : Transfer destination transfer size              */
-        /* SDS : Transfer source transfer size                   */
-        RZA_IO_RegWrite_32(&DMAC4.CHCFG_n,
-                            trans_info->daddr_dir,
-                            DMAC4_CHCFG_n_DAD_SHIFT,
-                            DMAC4_CHCFG_n_DAD);
-        RZA_IO_RegWrite_32(&DMAC4.CHCFG_n,
-                            trans_info->saddr_dir,
-                            DMAC4_CHCFG_n_SAD_SHIFT,
-                            DMAC4_CHCFG_n_SAD);
-        RZA_IO_RegWrite_32(&DMAC4.CHCFG_n,
-                            trans_info->dst_size,
-                            DMAC4_CHCFG_n_DDS_SHIFT,
-                            DMAC4_CHCFG_n_DDS);
-        RZA_IO_RegWrite_32(&DMAC4.CHCFG_n,
-                            trans_info->src_size,
-                            DMAC4_CHCFG_n_SDS_SHIFT,
-                            DMAC4_CHCFG_n_SDS);
-
-        /* DMS  : Register mode                            */
-        /* RSEL : Select Next0 register set                */
-        /* SBE  : No discharge of buffer data when aborted */
-        /* DEM  : No DMA interrupt mask                    */
-        RZA_IO_RegWrite_32(&DMAC4.CHCFG_n,
-                            0,
-                            DMAC4_CHCFG_n_DMS_SHIFT,
-                            DMAC4_CHCFG_n_DMS);
-        RZA_IO_RegWrite_32(&DMAC4.CHCFG_n,
-                            0,
-                            DMAC4_CHCFG_n_RSEL_SHIFT,
-                            DMAC4_CHCFG_n_RSEL);
-        RZA_IO_RegWrite_32(&DMAC4.CHCFG_n,
-                            0,
-                            DMAC4_CHCFG_n_SBE_SHIFT,
-                            DMAC4_CHCFG_n_SBE);
-        RZA_IO_RegWrite_32(&DMAC4.CHCFG_n,
-                            0,
-                            DMAC4_CHCFG_n_DEM_SHIFT,
-                            DMAC4_CHCFG_n_DEM);
-
-        /* ---- Continuous transfer ---- */
-        if (DMAC_SAMPLE_CONTINUATION == continuation)
-        {
-            /* REN : Execute continuous transfer                         */
-            /* RSW : Change register set when DMA transfer is completed. */
-            RZA_IO_RegWrite_32(&DMAC4.CHCFG_n,
-                                1,
-                                DMAC4_CHCFG_n_REN_SHIFT,
-                                DMAC4_CHCFG_n_REN);
-            RZA_IO_RegWrite_32(&DMAC4.CHCFG_n,
-                                1,
-                                DMAC4_CHCFG_n_RSW_SHIFT,
-                                DMAC4_CHCFG_n_RSW);
-        }
-        /* ---- Single transfer ---- */
-        else
-        {
-            /* REN : Do not execute continuous transfer                         */
-            /* RSW : Do not change register set when DMA transfer is completed. */
-            RZA_IO_RegWrite_32(&DMAC4.CHCFG_n,
-                                0,
-                                DMAC4_CHCFG_n_REN_SHIFT,
-                                DMAC4_CHCFG_n_REN);
-            RZA_IO_RegWrite_32(&DMAC4.CHCFG_n,
-                                0,
-                                DMAC4_CHCFG_n_RSW_SHIFT,
-                                DMAC4_CHCFG_n_RSW);
-        }
-
-        /* TM  : Single transfer                          */
-        /* SEL : Channel setting                          */
-        /* HIEN, LOEN : On-chip peripheral module request */
-        RZA_IO_RegWrite_32(&DMAC4.CHCFG_n,
-                            0,
-                            DMAC4_CHCFG_n_TM_SHIFT,
-                            DMAC4_CHCFG_n_TM);
-        RZA_IO_RegWrite_32(&DMAC4.CHCFG_n,
-                            4,
-                            DMAC4_CHCFG_n_SEL_SHIFT,
-                            DMAC4_CHCFG_n_SEL);
-        RZA_IO_RegWrite_32(&DMAC4.CHCFG_n,
-                            1,
-                            DMAC4_CHCFG_n_HIEN_SHIFT,
-                            DMAC4_CHCFG_n_HIEN);
-        RZA_IO_RegWrite_32(&DMAC4.CHCFG_n,
-                            0,
-                            DMAC4_CHCFG_n_LOEN_SHIFT,
-                            DMAC4_CHCFG_n_LOEN);
-
-        /* ---- Set factor by specified on-chip peripheral module request ---- */
-        RZA_IO_RegWrite_32(&DMAC4.CHCFG_n,
-                            usb1_function_dmac_peri_req_init_table[request_factor][DMAC_REQ_AM],
-                            DMAC4_CHCFG_n_AM_SHIFT,
-                            DMAC4_CHCFG_n_AM);
-        RZA_IO_RegWrite_32(&DMAC4.CHCFG_n,
-                            usb1_function_dmac_peri_req_init_table[request_factor][DMAC_REQ_LVL],
-                            DMAC4_CHCFG_n_LVL_SHIFT,
-                            DMAC4_CHCFG_n_LVL);
-        if (usb1_function_dmac_peri_req_init_table[request_factor][DMAC_REQ_REQD] != DMAC_INDEFINE)
-        {
-            RZA_IO_RegWrite_32(&DMAC4.CHCFG_n,
-                                usb1_function_dmac_peri_req_init_table[request_factor][DMAC_REQ_REQD],
-                                DMAC4_CHCFG_n_REQD_SHIFT,
-                                DMAC4_CHCFG_n_REQD);
-        }
-        else
-        {
-            RZA_IO_RegWrite_32(&DMAC4.CHCFG_n,
-                                req_direction,
-                                DMAC4_CHCFG_n_REQD_SHIFT,
-                                DMAC4_CHCFG_n_REQD);
-        }
-        RZA_IO_RegWrite_32(&DMAC45.DMARS,
-                            usb1_function_dmac_peri_req_init_table[request_factor][DMAC_REQ_RID],
-                            DMAC45_DMARS_CH4_RID_SHIFT,
-                            DMAC45_DMARS_CH4_RID);
-        RZA_IO_RegWrite_32(&DMAC45.DMARS,
-                            usb1_function_dmac_peri_req_init_table[request_factor][DMAC_REQ_MID],
-                            DMAC45_DMARS_CH4_MID_SHIFT,
-                            DMAC45_DMARS_CH4_MID);
-
-        /* PR : Round robin mode */
-        RZA_IO_RegWrite_32(&DMAC07.DCTRL_0_7,
-                            1,
-                            DMAC07_DCTRL_0_7_PR_SHIFT,
-                            DMAC07_DCTRL_0_7_PR);
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_DMAC4_Open
-* Description  : Enables DMAC channel 4 transfer.
-* Arguments    : uint32_t req : DMAC request mode
-* Return Value :  0 : Succeeded in enabling DMA transfer
-*              : -1 : Failed to enable DMA transfer (due to DMA operation)
-*******************************************************************************/
-int32_t usb1_function_DMAC4_Open (uint32_t req)
-{
-    int32_t ret;
-    volatile uint8_t  dummy;
-
-    /* Transferable? */
-    if ((0 == RZA_IO_RegRead_32(&DMAC4.CHSTAT_n,
-                                DMAC4_CHSTAT_n_EN_SHIFT,
-                                DMAC4_CHSTAT_n_EN)) &&
-        (0 == RZA_IO_RegRead_32(&DMAC4.CHSTAT_n,
-                                DMAC4_CHSTAT_n_TACT_SHIFT,
-                                DMAC4_CHSTAT_n_TACT)))
-    {
-        /* Clear Channel Status Register */
-        RZA_IO_RegWrite_32(&DMAC4.CHCTRL_n,
-                            1,
-                            DMAC4_CHCTRL_n_SWRST_SHIFT,
-                            DMAC4_CHCTRL_n_SWRST);
-        dummy = RZA_IO_RegRead_32(&DMAC4.CHCTRL_n,
-                                DMAC4_CHCTRL_n_SWRST_SHIFT,
-                                DMAC4_CHCTRL_n_SWRST);
-        /* Enable DMA transfer */
-        RZA_IO_RegWrite_32(&DMAC4.CHCTRL_n,
-                            1,
-                            DMAC4_CHCTRL_n_SETEN_SHIFT,
-                            DMAC4_CHCTRL_n_SETEN);
-
-        /* ---- Request by software ---- */
-        if (DMAC_REQ_MODE_SOFT == req)
-        {
-            /* DMA transfer Request by software */
-            RZA_IO_RegWrite_32(&DMAC4.CHCTRL_n,
-                                1,
-                                DMAC4_CHCTRL_n_STG_SHIFT,
-                                DMAC4_CHCTRL_n_STG);
-        }
-
-        ret = 0;
-    }
-    else
-    {
-        ret = -1;
-    }
-
-    return ret;
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_DMAC4_Close
-* Description  : Aborts DMAC channel 4 transfer. Returns the remaining transfer
-*              : byte count at the time of DMA transfer abort to the argument
-*              : *remain.
-* Arguments    : uint32_t * remain : Remaining transfer byte count when
-*              :                   : DMA transfer is aborted
-* Return Value : none
-*******************************************************************************/
-void usb1_function_DMAC4_Close (uint32_t * remain)
-{
-
-    /* ==== Abort transfer ==== */
-    RZA_IO_RegWrite_32(&DMAC4.CHCTRL_n,
-                        1,
-                        DMAC4_CHCTRL_n_CLREN_SHIFT,
-                        DMAC4_CHCTRL_n_CLREN);
-
-    while (1 == RZA_IO_RegRead_32(&DMAC4.CHSTAT_n,
-                                DMAC4_CHSTAT_n_TACT_SHIFT,
-                                DMAC4_CHSTAT_n_TACT))
-    {
-        /* Loop until transfer is aborted */
-    }
-
-    while (1 == RZA_IO_RegRead_32(&DMAC4.CHSTAT_n,
-                                DMAC4_CHSTAT_n_EN_SHIFT,
-                                DMAC4_CHSTAT_n_EN))
-    {
-        /* Loop until 0 is set in EN before checking the remaining transfer byte count */
-    }
-    /* ==== Obtain remaining transfer byte count ==== */
-    *remain = DMAC4.CRTB_n;
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_DMAC4_Load_Set
-* Description  : Sets the transfer source address, transfer destination
-*              : address, and total transfer byte count respectively
-*              : specified by the argument src_addr, dst_addr, and count to
-*              : DMAC channel 4 as DMA transfer information.
-*              : Sets the register set selected by the CHCFG_n register
-*              : RSEL bit from the Next0 or Next1 register set.
-*              : This function should be called when DMA transfer of DMAC
-*              : channel 4 is aboted.
-* Arguments    : uint32_t src_addr : Transfer source address
-*              : uint32_t dst_addr : Transfer destination address
-*              : uint32_t count    : Total transfer byte count
-* Return Value : none
-*******************************************************************************/
-void usb1_function_DMAC4_Load_Set (uint32_t src_addr, uint32_t dst_addr, uint32_t count)
-{
-    uint8_t reg_set;
-
-    /* Obtain register set in use */
-    reg_set = RZA_IO_RegRead_32(&DMAC4.CHSTAT_n,
-                                DMAC4_CHSTAT_n_SR_SHIFT,
-                                DMAC4_CHSTAT_n_SR);
-
-    /* ==== Load ==== */
-    if (0 == reg_set)
-    {
-        /* ---- Next0 Register Set ---- */
-        DMAC4.N0SA_n = src_addr;    /* Start address of transfer source      */
-        DMAC4.N0DA_n = dst_addr;    /* Start address of transfer destination */
-        DMAC4.N0TB_n = count;       /* Total transfer byte count             */
-    }
-    else
-    {
-        /* ---- Next1 Register Set ---- */
-        DMAC4.N1SA_n = src_addr;    /* Start address of transfer source      */
-        DMAC4.N1DA_n = dst_addr;    /* Start address of transfer destination */
-        DMAC4.N1TB_n = count;       /* Total transfer byte count             */
-     }
-}
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb1/src/userdef/usb1_function_userdef.c	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,762 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-/*******************************************************************************
-* File Name    : usb1_function_userdef.c
-* $Rev: 1116 $
-* $Date:: 2014-07-09 16:29:19 +0900#$
-* Device(s)    : RZ/A1H
-* Tool-Chain   :
-* OS           : None
-* H/W Platform :
-* Description  : RZ/A1H R7S72100 USB Sample Program
-* Operation    :
-* Limitations  :
-*******************************************************************************/
-
-
-/*******************************************************************************
-Includes   <System Includes> , "Project Includes"
-*******************************************************************************/
-#include <stdio.h>
-#include "r_typedefs.h"
-#include "iodefine.h"
-#include "devdrv_usb_function_api.h"
-#include "usb1_function_dmacdrv.h"  /* common DMAC driver for USB */
-
-
-/*******************************************************************************
-Typedef definitions
-*******************************************************************************/
-
-
-/*******************************************************************************
-Macro definitions
-*******************************************************************************/
-#define DUMMY_ACCESS OSTM0CNT
-
-/* #define CACHE_WRITEBACK */
-
-
-/*******************************************************************************
-Imported global variables and functions (from other files)
-*******************************************************************************/
-extern int32_t io_cwb(unsigned long start, unsigned long end);
-
-
-/*******************************************************************************
-Exported global variables and functions (to be accessed by other files)
-*******************************************************************************/
-static void usb1_function_enable_dmac0(uint32_t src, uint32_t dst, uint32_t count,
-                                       uint32_t size, uint32_t dir, uint32_t fifo, uint16_t dfacc);
-static void usb1_function_enable_dmac1(uint32_t src, uint32_t dst, uint32_t count,
-                                       uint32_t size, uint32_t dir, uint32_t fifo, uint16_t dfacc);
-static void Userdef_USB_usb1_function_delay_10us_2(void);
-
-
-/*******************************************************************************
-Private global variables and functions
-*******************************************************************************/
-
-
-/*******************************************************************************
-* Function Name: Userdef_USB_usb1_function_d0fifo_dmaintid
-* Description  : get D0FIFO DMA Interrupt ID
-* Arguments    : none
-* Return Value : D0FIFO DMA Interrupt ID
-*******************************************************************************/
-IRQn_Type Userdef_USB_usb1_function_d0fifo_dmaintid (void)
-{
-#if 0
-    return DMAINT1_IRQn;
-#else
-    return 0xFFFF;
-#endif
-}
-
-/*******************************************************************************
-* Function Name: Userdef_USB_usb1_function_d1fifo_dmaintid
-* Description  : get D1FIFO DMA Interrupt ID
-* Arguments    : none
-* Return Value : D1FIFO DMA Interrupt ID
-*******************************************************************************/
-IRQn_Type Userdef_USB_usb1_function_d1fifo_dmaintid (void)
-{
-#if 0
-    return DMAINT1_IRQn;
-#else
-    return 0xFFFF;
-#endif
-}
-
-/*******************************************************************************
-* Function Name: Userdef_USB_usb1_function_attach
-* Description  : Wait for the software of 1ms.
-*              : Alter this function according to the user's system.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-void Userdef_USB_usb1_function_attach (void)
-{
-    printf("\n");
-    printf("channel 1 attach device\n");
-    printf("\n");
-}
-
-/*******************************************************************************
-* Function Name: Userdef_USB_usb1_function_detach
-* Description  : Wait for the software of 1ms.
-*              : Alter this function according to the user's system.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-void Userdef_USB_usb1_function_detach (void)
-{
-    printf("\n");
-    printf("channel 1 detach device\n");
-    printf("\n");
-}
-
-/*******************************************************************************
-* Function Name: Userdef_USB_usb1_function_delay_1ms
-* Description  : Wait for the software of 1ms.
-*              : Alter this function according to the user's system.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-void Userdef_USB_usb1_function_delay_1ms (void)
-{
-    volatile int i;
-    volatile unsigned long tmp;
-
-    /*
-     * Wait 1ms (Please change for your MCU).
-     */
-    for (i = 0; i < 1440; ++i)
-    {
-        tmp = DUMMY_ACCESS;
-    }
-}
-
-/*******************************************************************************
-* Function Name: Userdef_USB_usb1_function_delay_xms
-* Description  : Wait for the software in the period of time specified by the
-*              : argument.
-*              : Alter this function according to the user's system.
-* Arguments    : uint32_t msec ; Wait Time (msec)
-* Return Value : none
-*******************************************************************************/
-void Userdef_USB_usb1_function_delay_xms (uint32_t msec)
-{
-    volatile unsigned short i;
-
-    for (i = 0; i < msec; ++i)
-    {
-        Userdef_USB_usb1_function_delay_1ms();
-    }
-}
-
-/*******************************************************************************
-* Function Name: Userdef_USB_usb1_function_delay_10us
-* Description  : Waits for software for the period specified by the argument.
-*              : Alter this function according to the user's system.
-* Arguments    : uint32_t usec ; Wait Time(x 10usec)
-* Return Value : none
-*******************************************************************************/
-void Userdef_USB_usb1_function_delay_10us (uint32_t usec)
-{
-    volatile int i;
-
-    /* Wait 10us (Please change for your MCU) */
-    for (i = 0; i < usec; ++i)
-    {
-        Userdef_USB_usb1_function_delay_10us_2();
-    }
-}
-
-/*******************************************************************************
-* Function Name: Userdef_USB_usb1_function_delay_10us_2
-* Description  : Waits for software for the period specified by the argument.
-*              : Alter this function according to the user's system.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-static void Userdef_USB_usb1_function_delay_10us_2 (void)
-{
-    volatile int i;
-    volatile unsigned long tmp;
-
-    /* Wait 1us (Please change for your MCU) */
-    for (i = 0; i < 14; ++i)
-    {
-        tmp = DUMMY_ACCESS;
-    }
-}
-
-/*******************************************************************************
-* Function Name: Userdef_USB_usb1_function_delay_500ns
-* Description  : Wait for software for 500ns.
-*              : Alter this function according to the user's system.
-* Arguments    : none
-* Return Value : none
-*******************************************************************************/
-void Userdef_USB_usb1_function_delay_500ns (void)
-{
-    volatile int i;
-    volatile unsigned long tmp;
-
-    /* Wait 500ns (Please change for your MCU) */
-    /* Wait 500ns I clock 266MHz */
-    tmp = DUMMY_ACCESS;
-}
-
-/*******************************************************************************
-* Function Name: Userdef_USB_usb1_function_start_dma
-* Description  : Enables DMA transfer on the information specified by the argument.
-*              : Set DMAC register by this function to enable DMA transfer.
-*              : After executing this function, USB module is set to start DMA
-*              : transfer. DMA transfer should not wait for DMA transfer complete.
-* Arguments    : USB_FUNCTION_DMA_t *dma   : DMA parameter
-*              :  typedef struct{
-*              :      uint32_t fifo;    FIFO for using
-*              :      uint32_t buffer;  Start address of transfer source/destination
-*              :      uint32_t bytes;   Transfer size(Byte)
-*              :      uint32_t dir;     Transfer direction(0:Buffer->FIFO, 1:FIFO->Buffer)
-*              :      uint32_t size;    DMA transfer size
-*              :   } USB_FUNCTION_DMA_t;
-*              : uint16_t dfacc ; 0 : cycle steal mode
-*              :                  1 : 16byte continuous mode
-*              :                  2 : 32byte continuous mode
-* Return Value : none
-*******************************************************************************/
-void Userdef_USB_usb1_function_start_dma (USB_FUNCTION_DMA_t * dma, uint16_t dfacc)
-{
-    uint32_t trncount;
-    uint32_t src;
-    uint32_t dst;
-    uint32_t size;
-    uint32_t dir;
-#ifdef CACHE_WRITEBACK
-    uint32_t ptr;
-#endif
-
-    trncount = dma->bytes;
-    dir      = dma->dir;
-
-    if (dir == USB_FUNCTION_FIFO2BUF)
-    {
-        /* DxFIFO determination */
-        dst = dma->buffer;
-#ifndef __USB_FUNCTION_DF_ACC_ENABLE__
-        if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-        {
-            src = (uint32_t)(&USB201.D0FIFO.UINT32);
-        }
-        else
-        {
-            src = (uint32_t)(&USB201.D1FIFO.UINT32);
-        }
-        size = dma->size;
-
-        if (size == 0)
-        {
-            src += 3;       /* byte access  */
-        }
-        else if (size == 1)
-        {
-            src += 2;       /* short access */
-        }
-        else
-        {
-            /* Do Nothing */
-        }
-#else
-        size = dma->size;
-
-        if (size == 2)
-        {
-            /* 32bit access */
-            if (dfacc == 2)
-            {
-                /* 32byte access */
-                if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-                {
-                    src = (uint32_t)(&USB201.D0FIFOB0);
-                }
-                else
-                {
-                    src = (uint32_t)(&USB201.D1FIFOB0);
-                }
-            }
-            else if (dfacc == 1)
-            {
-                /* 16byte access */
-                if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-                {
-                    src = (uint32_t)(&USB201.D0FIFOB0);
-                }
-                else
-                {
-                    src = (uint32_t)(&USB201.D1FIFOB0);
-                }
-            }
-            else
-            {
-                /* normal access */
-                if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-                {
-                    src = (uint32_t)(&USB201.D0FIFO.UINT32);
-                }
-                else
-                {
-                    src = (uint32_t)(&USB201.D1FIFO.UINT32);
-                }
-            }
-        }
-        else if (size == 1)
-        {
-            /* 16bit access */
-            dfacc = 0;      /* force normal access */
-
-            if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-            {
-                src = (uint32_t)(&USB201.D0FIFO.UINT32);
-            }
-            else
-            {
-                src = (uint32_t)(&USB201.D1FIFO.UINT32);
-            }
-            src += 2;       /* short access */
-        }
-        else
-        {
-            /* 8bit access */
-            dfacc = 0;      /* force normal access */
-
-            if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-            {
-                src = (uint32_t)(&USB201.D0FIFO.UINT32);
-            }
-            else
-            {
-                src = (uint32_t)(&USB201.D1FIFO.UINT32);
-            }
-            src += 3;       /* byte access */
-        }
-#endif
-    }
-    else
-    {
-        /* DxFIFO determination */
-        src = dma->buffer;
-#ifndef __USB_FUNCTION_DF_ACC_ENABLE__
-        if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-        {
-            dst = (uint32_t)(&USB201.D0FIFO.UINT32);
-        }
-        else
-        {
-            dst = (uint32_t)(&USB201.D1FIFO.UINT32);
-        }
-        size = dma->size;
-
-        if (size == 0)
-        {
-            dst += 3;       /* byte access  */
-        }
-        else if (size == 1)
-        {
-            dst += 2;       /* short access */
-        }
-        else
-        {
-            /* Do Nothing */
-        }
-#else
-        size = dma->size;
-
-        if (size == 2)
-        {
-            /* 32bit access */
-            if (dfacc == 2)
-            {
-                /* 32byte access */
-                if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-                {
-                    dst = (uint32_t)(&USB201.D0FIFOB0);
-                }
-                else
-                {
-                    dst = (uint32_t)(&USB201.D1FIFOB0);
-                }
-            }
-            else if (dfacc == 1)
-            {
-                /* 16byte access */
-                if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-                {
-                    dst = (uint32_t)(&USB201.D0FIFOB0);
-                }
-                else
-                {
-                    dst = (uint32_t)(&USB201.D1FIFOB0);
-                }
-            }
-            else
-            {
-                /* normal access */
-                if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-                {
-                    dst = (uint32_t)(&USB201.D0FIFO.UINT32);
-                }
-                else
-                {
-                    dst = (uint32_t)(&USB201.D1FIFO.UINT32);
-                }
-            }
-        }
-        else if (size == 1)
-        {
-            /* 16bit access */
-            dfacc = 0;      /* force normal access */
-            if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-            {
-                dst = (uint32_t)(&USB201.D0FIFO.UINT32);
-            }
-            else
-            {
-                dst = (uint32_t)(&USB201.D1FIFO.UINT32);
-            }
-            dst += 2;       /* short access */
-        }
-        else
-        {
-            /* 8bit access */
-            dfacc = 0;      /* force normal access */
-
-            if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-            {
-                dst = (uint32_t)(&USB201.D0FIFO.UINT32);
-            }
-            else
-            {
-                dst = (uint32_t)(&USB201.D1FIFO.UINT32);
-            }
-            dst += 3;       /* byte access  */
-        }
-#endif
-    }
-
-#ifdef CACHE_WRITEBACK
-    ptr = (uint32_t)dma->buffer;
-
-    if ((ptr & 0x20000000ul) == 0)
-    {
-        io_cwb((uint32_t)ptr, (uint32_t)(ptr) + trncount);
-    }
-#endif
-
-    if (dma->fifo == USB_FUNCTION_D0FIFO_DMA)
-    {
-        usb1_function_enable_dmac0(src, dst, trncount, size, dir, dma->fifo, dfacc);
-    }
-    else
-    {
-        usb1_function_enable_dmac1(src, dst, trncount, size, dir, dma->fifo, dfacc);
-    }
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_enable_dmac0
-* Description  : Enables DMA transfer on the information specified by the argument.
-* Arguments    : uint32_t src   : src address
-*              : uint32_t dst   : dst address
-*              : uint32_t count : transfer byte
-*              : uint32_t size  : transfer size
-*              : uint32_t dir   : direction
-*              : uint32_t fifo  : FIFO(D0FIFO or D1FIFO)
-*              : uint16_t dfacc : 0 : normal access
-*              :                : 1 : 16byte access
-*              :                : 2 : 32byte access
-* Return Value : none
-*******************************************************************************/
-static void usb1_function_enable_dmac0 (uint32_t src, uint32_t dst, uint32_t count,
-                                        uint32_t size, uint32_t dir, uint32_t fifo, uint16_t dfacc)
-{
-    dmac_transinfo_t trans_info;
-    uint32_t         request_factor = 0;
-    int32_t          ret;
-
-    /* ==== Variable setting for DMAC initialization ==== */
-    trans_info.src_addr = (uint32_t)src;                /* Start address of transfer source      */
-    trans_info.dst_addr = (uint32_t)dst;                /* Start address of transfer destination */
-    trans_info.count    = (uint32_t)count;              /* Total byte count to be transferred    */
-#ifndef __USB_FUNCTION_DF_ACC_ENABLE__
-    if (size == 0)
-    {
-        trans_info.src_size = DMAC_TRANS_SIZE_8;        /* Transfer source transfer size      */
-        trans_info.dst_size = DMAC_TRANS_SIZE_8;        /* Transfer destination transfer size */
-    }
-    else if (size == 1)
-    {
-        trans_info.src_size = DMAC_TRANS_SIZE_16;       /* Transfer source transfer size      */
-        trans_info.dst_size = DMAC_TRANS_SIZE_16;       /* Transfer destination transfer size */
-    }
-    else if (size == 2)
-    {
-        trans_info.src_size = DMAC_TRANS_SIZE_32;       /* Transfer source transfer size      */
-        trans_info.dst_size = DMAC_TRANS_SIZE_32;       /* Transfer destination transfer size */
-    }
-    else
-    {
-        printf("size error!!\n");
-    }
-#else
-    if (dfacc == 2)
-    {
-        /* 32byte access */
-        trans_info.src_size = DMAC_TRANS_SIZE_256;      /* Transfer source transfer size      */
-        trans_info.dst_size = DMAC_TRANS_SIZE_256;      /* Transfer destination transfer size */
-    }
-    else if (dfacc == 1)
-    {
-        /* 16byte access */
-        trans_info.src_size = DMAC_TRANS_SIZE_128;      /* Transfer source transfer size      */
-        trans_info.dst_size = DMAC_TRANS_SIZE_128;      /* Transfer destination transfer size */
-    }
-    else
-    {
-        /* normal access */
-        if (size == 0)
-        {
-            trans_info.src_size = DMAC_TRANS_SIZE_8;    /* Transfer source transfer size      */
-            trans_info.dst_size = DMAC_TRANS_SIZE_8;    /* Transfer destination transfer size */
-        }
-        else if (size == 1)
-        {
-            trans_info.src_size = DMAC_TRANS_SIZE_16;   /* Transfer source transfer size      */
-            trans_info.dst_size = DMAC_TRANS_SIZE_16;   /* Transfer destination transfer size */
-        }
-        else if (size == 2)
-        {
-            trans_info.src_size = DMAC_TRANS_SIZE_32;   /* Transfer source transfer size      */
-            trans_info.dst_size = DMAC_TRANS_SIZE_32;   /* Transfer destination transfer size */
-        }
-        else
-        {
-            printf("size error!!\n");
-        }
-    }
-#endif
-
-    if (dir == USB_FUNCTION_FIFO2BUF)
-    {
-        request_factor =DMAC_REQ_USB1_DMA0_RX;          /* USB_0 channel 0 receive FIFO full               */
-        trans_info.saddr_dir = DMAC_TRANS_ADR_NO_INC;   /* Count direction of transfer source address      */
-        trans_info.daddr_dir = DMAC_TRANS_ADR_INC;      /* Count direction of transfer destination address */
-    }
-    else if (dir == USB_FUNCTION_BUF2FIFO)
-    {
-        request_factor =DMAC_REQ_USB1_DMA0_TX;          /* USB_0 channel 0 receive FIFO empty              */
-        trans_info.saddr_dir = DMAC_TRANS_ADR_INC;      /* Count direction of transfer source address      */
-        trans_info.daddr_dir = DMAC_TRANS_ADR_NO_INC;   /* Count direction of transfer destination address */
-    }
-    else
-    {
-        /* Do Nothing */
-    }
-
-    /* ==== DMAC initialization ==== */
-    usb1_function_DMAC3_PeriReqInit((const dmac_transinfo_t *)&trans_info,
-                                    DMAC_MODE_REGISTER,
-                                    DMAC_SAMPLE_SINGLE,
-                                    request_factor,
-                                    0);     /* Don't care DMAC_REQ_REQD is setting in
-                                            usb1_function_DMAC3_PeriReqInit() */
-
-    /* ==== DMAC startup ==== */
-    ret = usb1_function_DMAC3_Open(DMAC_REQ_MODE_PERI);
-    if (ret != 0)
-    {
-        printf("DMAC3 Open error!!\n");
-    }
-
-    return;
-}
-
-/*******************************************************************************
-* Function Name: usb1_function_enable_dmac1
-* Description  : Enables DMA transfer on the information specified by the argument.
-* Arguments    : uint32_t src   : src address
-*              : uint32_t dst   : dst address
-*              : uint32_t count : transfer byte
-*              : uint32_t size  : transfer size
-*              : uint32_t dir   : direction
-*              : uint32_t fifo  : FIFO(D0FIFO or D1FIFO)
-*              : uint16_t dfacc : 0 : normal access
-*              :                : 1 : 16byte access
-*              :                : 2 : 32byte access
-* Return Value : none
-*******************************************************************************/
-static void usb1_function_enable_dmac1 (uint32_t src, uint32_t dst, uint32_t count,
-                                        uint32_t size, uint32_t dir, uint32_t fifo, uint16_t dfacc)
-{
-    dmac_transinfo_t trans_info;
-    uint32_t         request_factor = 0;
-    int32_t          ret;
-
-    /* ==== Variable setting for DMAC initialization ==== */
-    trans_info.src_addr = (uint32_t)src;                /* Start address of transfer source      */
-    trans_info.dst_addr = (uint32_t)dst;                /* Start address of transfer destination */
-    trans_info.count    = (uint32_t)count;              /* Total byte count to be transferred    */
-#ifndef __USB_FUNCTION_DF_ACC_ENABLE__
-    if (size == 0)
-    {
-        trans_info.src_size = DMAC_TRANS_SIZE_8;        /* Transfer source transfer size      */
-        trans_info.dst_size = DMAC_TRANS_SIZE_8;        /* Transfer destination transfer size */
-    }
-    else if (size == 1)
-    {
-        trans_info.src_size = DMAC_TRANS_SIZE_16;       /* Transfer source transfer size      */
-        trans_info.dst_size = DMAC_TRANS_SIZE_16;       /* Transfer destination transfer size */
-    }
-    else if (size == 2)
-    {
-        trans_info.src_size = DMAC_TRANS_SIZE_32;       /* Transfer source transfer size      */
-        trans_info.dst_size = DMAC_TRANS_SIZE_32;       /* Transfer destination transfer size */
-    }
-    else
-    {
-        printf("size error!!\n");
-    }
-#else
-    if (dfacc == 2)
-    {
-        /* 32byte access */
-        trans_info.src_size = DMAC_TRANS_SIZE_256;      /* Transfer source transfer size      */
-        trans_info.dst_size = DMAC_TRANS_SIZE_256;      /* Transfer destination transfer size */
-    }
-    else if (dfacc == 1)
-    {
-        /* 16byte access */
-        trans_info.src_size = DMAC_TRANS_SIZE_128;      /* Transfer source transfer size      */
-        trans_info.dst_size = DMAC_TRANS_SIZE_128;      /* Transfer destination transfer size */
-    }
-    else
-    {
-        /* normal access */
-        if (size == 0)
-        {
-            trans_info.src_size = DMAC_TRANS_SIZE_8;    /* Transfer source transfer size      */
-            trans_info.dst_size = DMAC_TRANS_SIZE_8;    /* Transfer destination transfer size */
-        }
-        else if (size == 1)
-        {
-            trans_info.src_size = DMAC_TRANS_SIZE_16;   /* Transfer source transfer size      */
-            trans_info.dst_size = DMAC_TRANS_SIZE_16;   /* Transfer destination transfer size */
-        }
-        else if (size == 2)
-        {
-            trans_info.src_size = DMAC_TRANS_SIZE_32;   /* Transfer source transfer size      */
-            trans_info.dst_size = DMAC_TRANS_SIZE_32;   /* Transfer destination transfer size */
-        }
-        else
-        {
-            printf("size error!!\n");
-        }
-    }
-#endif
-
-    if (dir == USB_FUNCTION_FIFO2BUF)
-    {
-        request_factor =DMAC_REQ_USB1_DMA1_RX;          /* USB_0 channel 0 receive FIFO full               */
-        trans_info.saddr_dir = DMAC_TRANS_ADR_NO_INC;   /* Count direction of transfer source address      */
-        trans_info.daddr_dir = DMAC_TRANS_ADR_INC;      /* Count direction of transfer destination address */
-    }
-    else if (dir == USB_FUNCTION_BUF2FIFO)
-    {
-        request_factor =DMAC_REQ_USB1_DMA1_TX;          /* USB_0 channel 0 receive FIFO empty              */
-        trans_info.saddr_dir = DMAC_TRANS_ADR_INC;      /* Count direction of transfer source address      */
-        trans_info.daddr_dir = DMAC_TRANS_ADR_NO_INC;   /* Count direction of transfer destination address */
-    }
-    else
-    {
-        /* Do Nothing */
-    }
-
-    /* ==== DMAC initialization ==== */
-    usb1_function_DMAC4_PeriReqInit((const dmac_transinfo_t *)&trans_info,
-                                    DMAC_MODE_REGISTER,
-                                    DMAC_SAMPLE_SINGLE,
-                                    request_factor,
-                                    0);     /* Don't care DMAC_REQ_REQD is setting in
-                                            usb1_function_DMAC4_PeriReqInit() */
-
-    /* ==== DMAC startup ==== */
-    ret = usb1_function_DMAC4_Open(DMAC_REQ_MODE_PERI);
-    if (ret != 0)
-    {
-        printf("DMAC4 Open error!!\n");
-    }
-
-    return;
-}
-
-/*******************************************************************************
-* Function Name: Userdef_USB_usb1_function_stop_dma0
-* Description  : Disables DMA transfer.
-*              : This function should be executed to DMAC executed at the time
-*              : of specification of D0_FIF0_DMA in dma->fifo.
-* Arguments    : none
-* Return Value : uint32_t return Transfer Counter register(DMATCRn) value
-*              : regarding to the bus width.
-*******************************************************************************/
-uint32_t Userdef_USB_usb1_function_stop_dma0 (void)
-{
-    uint32_t remain;
-
-    /* ==== DMAC release ==== */
-    usb1_function_DMAC3_Close(&remain);
-
-    return remain;
-}
-
-/*******************************************************************************
-* Function Name: Userdef_USB_usb1_function_stop_dma1
-* Description  : Disables DMA transfer.
-*              : This function should be executed to DMAC executed at the time
-*              : of specification of D1_FIF0_DMA in dma->fifo.
-* Arguments    : none
-* Return Value : uint32_t return Transfer Counter register(DMATCRn) value
-*              : regarding to the bus width.
-*******************************************************************************/
-uint32_t Userdef_USB_usb1_function_stop_dma1 (void)
-{
-    uint32_t remain;
-
-    /* ==== DMAC release ==== */
-    usb1_function_DMAC4_Close(&remain);
-
-    return remain;
-}
-
-/* End of File */
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/usb_function_setting.h	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,173 +0,0 @@
-/*******************************************************************************
-* DISCLAIMER
-* This software is supplied by Renesas Electronics Corporation and is only
-* intended for use with Renesas products. No other uses are authorized. This
-* software is owned by Renesas Electronics Corporation and is protected under
-* all applicable laws, including copyright laws.
-* THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
-* THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
-* LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
-* AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
-* TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
-* ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
-* FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
-* ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
-* BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-* Renesas reserves the right, without notice, to make changes to this software
-* and to discontinue the availability of this software. By using this software,
-* you agree to the additional terms and conditions found by accessing the
-* following link:
-* http://www.renesas.com/disclaimer
-* Copyright (C) 2014 - 2015 Renesas Electronics Corporation. All rights reserved.
-*******************************************************************************/
-
-#ifndef USB_FUNCTION_SETTING_H
-#define USB_FUNCTION_SETTING_H
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define USB_FUNCTION_CH                       0
-#define USB_FUNCTION_HISPEED                  1
-
-#if (USB_FUNCTION_CH == 0)
-#include "usb0_function.h"
-#define USB20X                                USB200
-#define USBIX_IRQn                            USBI0_IRQn
-#define g_usbx_function_bit_set               g_usb0_function_bit_set
-#define g_usbx_function_PipeDataSize          g_usb0_function_PipeDataSize
-#define g_usbx_function_data_count            g_usb0_function_data_count
-#define g_usbx_function_PipeTbl               g_usb0_function_PipeTbl
-#define g_usbx_function_DmaStatus             g_usb0_function_DmaStatus
-#define g_usbx_function_pipecfg               g_usb0_function_pipecfg
-#define g_usbx_function_pipe_status           g_usb0_function_pipe_status
-#define g_usbx_function_data_pointer          g_usb0_function_data_pointer
-#define g_usbx_function_pipebuf               g_usb0_function_pipebuf
-#define g_usbx_function_pipemaxp              g_usb0_function_pipemaxp
-#define g_usbx_function_pipeperi              g_usb0_function_pipeperi
-#define g_usbx_function_TestModeFlag          g_usb0_function_TestModeFlag
-#define usbx_function_BRDYInterruptPIPE0      usb0_function_BRDYInterruptPIPE0
-#define usbx_function_BRDYInterrupt           usb0_function_BRDYInterrupt
-#define usbx_function_NRDYInterruptPIPE0      usb0_function_NRDYInterruptPIPE0
-#define usbx_function_NRDYInterrupt           usb0_function_NRDYInterrupt
-#define usbx_function_BEMPInterruptPIPE0      usb0_function_BEMPInterruptPIPE0
-#define usbx_function_BEMPInterrupt           usb0_function_BEMPInterrupt
-#define usbx_function_read_buffer_c           usb0_function_read_buffer_c
-#define usbx_function_set_pid_buf             usb0_function_set_pid_buf
-#define usbx_function_disable_brdy_int        usb0_function_disable_brdy_int
-#define usbx_function_set_pid_stall           usb0_function_set_pid_stall
-#define usbx_function_dma_interrupt_d0fifo    usb0_function_dma_interrupt_d0fifo
-#define usbx_function_read_dma                usb0_function_read_dma
-#define usbx_function_dma_interrupt_d1fifo    usb0_function_dma_interrupt_d1fifo
-#define usbx_function_write_buffer            usb0_function_write_buffer
-#define usbx_function_set_pid_nak             usb0_function_set_pid_nak
-#define usbx_function_get_mbw                 usb0_function_get_mbw
-#define usbx_function_set_curpipe             usb0_function_set_curpipe
-#define usbx_function_aclrm                   usb0_function_aclrm
-#define usbx_function_enable_nrdy_int         usb0_function_enable_nrdy_int
-#define usbx_function_enable_brdy_int         usb0_function_enable_brdy_int
-#define usbx_function_get_pid                 usb0_function_get_pid
-#define usbx_function_get_inbuf               usb0_function_get_inbuf
-#define usbx_function_disable_bemp_int        usb0_function_disable_bemp_int
-#define usbx_function_EpToPipe                usb0_function_EpToPipe
-#define usbx_function_clear_pipe_tbl          usb0_function_clear_pipe_tbl
-#define Userdef_USB_usbx_function_d0fifo_dmaintid Userdef_USB_usb0_function_d0fifo_dmaintid
-#define Userdef_USB_usbx_function_d1fifo_dmaintid Userdef_USB_usb0_function_d1fifo_dmaintid
-#define usbx_function_reset_module            usb0_function_reset_module
-#define usbx_function_init_status             usb0_function_init_status
-#define usbx_function_InitModule              usb0_function_InitModule
-#define usbx_function_clear_alt               usb0_function_clear_alt
-#define usbx_function_set_sqclr               usb0_function_set_sqclr
-#define usbx_api_function_CtrlWriteStart      usb0_api_function_CtrlWriteStart
-#define usbx_api_function_CtrlReadStart       usb0_api_function_CtrlReadStart
-#define usbx_function_write_buffer_c          usb0_function_write_buffer_c
-#define usbx_api_function_check_pipe_status   usb0_api_function_check_pipe_status
-#define usbx_api_function_set_pid_nak         usb0_api_function_set_pid_nak
-#define usbx_api_function_clear_pipe_status   usb0_api_function_clear_pipe_status
-#define usbx_api_function_start_receive_transfer usb0_api_function_start_receive_transfer
-#define usbx_function_read_buffer             usb0_function_read_buffer
-#define usbx_api_function_start_send_transfer usb0_api_function_start_send_transfer
-#define usbx_function_stop_transfer           usb0_function_stop_transfer
-#define usbx_function_clear_pid_stall         usb0_function_clear_pid_stall
-#define usbx_function_CheckVBUStaus           usb0_function_CheckVBUStaus
-#define usbx_function_USB_FUNCTION_Attach     usb0_function_USB_FUNCTION_Attach
-#define usbx_function_USB_FUNCTION_Detach     usb0_function_USB_FUNCTION_Detach
-#define usbx_function_is_hispeed              usb0_function_is_hispeed
-#define usbx_function_ResetDescriptor         usb0_function_ResetDescriptor
-#define usbx_function_USB_FUNCTION_Suspend    usb0_function_USB_FUNCTION_Suspend
-#define usbx_function_USB_FUNCTION_TestMode   usb0_function_USB_FUNCTION_TestMode
-#else
-#include "usb1_function.h"
-#define USB20X                                USB201
-#define USBIX_IRQn                            USBI1_IRQn
-#define g_usbx_function_bit_set               g_usb1_function_bit_set
-#define g_usbx_function_PipeDataSize          g_usb1_function_PipeDataSize
-#define g_usbx_function_data_count            g_usb1_function_data_count
-#define g_usbx_function_PipeTbl               g_usb1_function_PipeTbl
-#define g_usbx_function_DmaStatus             g_usb1_function_DmaStatus
-#define g_usbx_function_pipecfg               g_usb1_function_pipecfg
-#define g_usbx_function_pipe_status           g_usb1_function_pipe_status
-#define g_usbx_function_data_pointer          g_usb1_function_data_pointer
-#define g_usbx_function_pipebuf               g_usb1_function_pipebuf
-#define g_usbx_function_pipemaxp              g_usb1_function_pipemaxp
-#define g_usbx_function_pipeperi              g_usb1_function_pipeperi
-#define g_usbx_function_TestModeFlag          g_usb1_function_TestModeFlag
-#define usbx_function_BRDYInterruptPIPE0      usb1_function_BRDYInterruptPIPE0
-#define usbx_function_BRDYInterrupt           usb1_function_BRDYInterrupt
-#define usbx_function_NRDYInterruptPIPE0      usb1_function_NRDYInterruptPIPE0
-#define usbx_function_NRDYInterrupt           usb1_function_NRDYInterrupt
-#define usbx_function_BEMPInterruptPIPE0      usb1_function_BEMPInterruptPIPE0
-#define usbx_function_BEMPInterrupt           usb1_function_BEMPInterrupt
-#define usbx_function_read_buffer_c           usb1_function_read_buffer_c
-#define usbx_function_set_pid_buf             usb1_function_set_pid_buf
-#define usbx_function_disable_brdy_int        usb1_function_disable_brdy_int
-#define usbx_function_set_pid_stall           usb1_function_set_pid_stall
-#define usbx_function_dma_interrupt_d0fifo    usb1_function_dma_interrupt_d0fifo
-#define usbx_function_read_dma                usb1_function_read_dma
-#define usbx_function_dma_interrupt_d1fifo    usb1_function_dma_interrupt_d1fifo
-#define usbx_function_write_buffer            usb1_function_write_buffer
-#define usbx_function_set_pid_nak             usb1_function_set_pid_nak
-#define usbx_function_get_mbw                 usb1_function_get_mbw
-#define usbx_function_set_curpipe             usb1_function_set_curpipe
-#define usbx_function_aclrm                   usb1_function_aclrm
-#define usbx_function_enable_nrdy_int         usb1_function_enable_nrdy_int
-#define usbx_function_enable_brdy_int         usb1_function_enable_brdy_int
-#define usbx_function_get_pid                 usb1_function_get_pid
-#define usbx_function_get_inbuf               usb1_function_get_inbuf
-#define usbx_function_disable_bemp_int        usb1_function_disable_bemp_int
-#define usbx_function_EpToPipe                usb1_function_EpToPipe
-#define usbx_function_clear_pipe_tbl          usb1_function_clear_pipe_tbl
-#define Userdef_USB_usbx_function_d0fifo_dmaintid Userdef_USB_usb1_function_d0fifo_dmaintid
-#define Userdef_USB_usbx_function_d1fifo_dmaintid Userdef_USB_usb1_function_d1fifo_dmaintid
-#define usbx_function_reset_module            usb1_function_reset_module
-#define usbx_function_init_status             usb1_function_init_status
-#define usbx_function_InitModule              usb1_function_InitModule
-#define usbx_function_clear_alt               usb1_function_clear_alt
-#define usbx_function_set_sqclr               usb1_function_set_sqclr
-#define usbx_api_function_CtrlWriteStart      usb1_api_function_CtrlWriteStart
-#define usbx_api_function_CtrlReadStart       usb1_api_function_CtrlReadStart
-#define usbx_function_write_buffer_c          usb1_function_write_buffer_c
-#define usbx_api_function_check_pipe_status   usb1_api_function_check_pipe_status
-#define usbx_api_function_set_pid_nak         usb1_api_function_set_pid_nak
-#define usbx_api_function_clear_pipe_status   usb1_api_function_clear_pipe_status
-#define usbx_api_function_start_receive_transfer usb1_api_function_start_receive_transfer
-#define usbx_function_read_buffer             usb1_function_read_buffer
-#define usbx_api_function_start_send_transfer usb1_api_function_start_send_transfer
-#define usbx_function_stop_transfer           usb1_function_stop_transfer
-#define usbx_function_clear_pid_stall         usb1_function_clear_pid_stall
-#define usbx_function_CheckVBUStaus           usb1_function_CheckVBUStaus
-#define usbx_function_USB_FUNCTION_Attach     usb1_function_USB_FUNCTION_Attach
-#define usbx_function_USB_FUNCTION_Detach     usb1_function_USB_FUNCTION_Detach
-#define usbx_function_is_hispeed              usb1_function_is_hispeed
-#define usbx_function_ResetDescriptor         usb1_function_ResetDescriptor
-#define usbx_function_USB_FUNCTION_Suspend    usb1_function_USB_FUNCTION_Suspend
-#define usbx_function_USB_FUNCTION_TestMode   usb1_function_USB_FUNCTION_TestMode
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif  /* USB_FUNCTION_SETTING_H */
--- a/USBDevice/USBEndpoints.h	Thu Jun 25 09:33:51 2015 +0900
+++ b/USBDevice/USBEndpoints.h	Fri Jul 08 21:16:25 2016 +0000
@@ -37,20 +37,8 @@
 } EP_STATUS;
 
 /* Include configuration for specific target */
-#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) || defined(TARGET_LPC4088) || defined(TARGET_LPC2460) || defined(TARGET_LPC4088_DM)
-#include "USBEndpoints_LPC17_LPC23.h"
-#elif defined(TARGET_LPC11UXX) || defined(TARGET_LPC1347) || defined (TARGET_LPC11U6X) || defined (TARGET_LPC1549)
-#include "USBEndpoints_LPC11U.h"
-#elif defined(TARGET_KL25Z) | defined(TARGET_KL43Z) | defined(TARGET_KL46Z) | defined(TARGET_K20D50M) | defined(TARGET_K64F) | defined(TARGET_K22F) | defined(TARGET_TEENSY3_1)
-#include "USBEndpoints_KL25Z.h"
-#elif defined (TARGET_STM32F4)
-#include "USBEndpoints_STM32F4.h"
-#elif defined(TARGET_STM32L1)||defined(TARGET_STM32F1)
-#include "USBEndpoints_STM32L1.h"
-#elif defined (TARGET_RZ_A1H)
-#include "USBEndpoints_RZ_A1H.h"
-#elif defined(TARGET_Maxim)
-#include "USBEndpoints_Maxim.h"
+#if defined(TARGET_STM32F1)
+#include "USBEndpoints_STM32F1.h"
 #else
 #error "Unknown target type"
 #endif
--- a/USBDevice/USBEndpoints_KL25Z.h	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-/* Copyright (c) 2010-2011 mbed.org, MIT License
-*
-* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-* and associated documentation files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use, copy, modify, merge, publish,
-* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following conditions:
-*
-* The above copyright notice and this permission notice shall be included in all copies or
-* substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
-* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#define NUMBER_OF_LOGICAL_ENDPOINTS (16)
-#define NUMBER_OF_PHYSICAL_ENDPOINTS (NUMBER_OF_LOGICAL_ENDPOINTS * 2)
-
-/* Define physical endpoint numbers */
-
-/*      Endpoint    No.   */
-/*      ----------------  */
-#define EP0OUT      (0)
-#define EP0IN       (1)
-#define EP1OUT      (2)
-#define EP1IN       (3)
-#define EP2OUT      (4)
-#define EP2IN       (5)
-#define EP3OUT      (6)
-#define EP3IN       (7)
-#define EP4OUT      (8)
-#define EP4IN       (9)
-#define EP5OUT      (10)
-#define EP5IN       (11)
-#define EP6OUT      (12)
-#define EP6IN       (13)
-#define EP7OUT      (14)
-#define EP7IN       (15)
-#define EP8OUT      (16)
-#define EP8IN       (17)
-#define EP9OUT      (18)
-#define EP9IN       (19)
-#define EP10OUT     (20)
-#define EP10IN      (21)
-#define EP11OUT     (22)
-#define EP11IN      (23)
-#define EP12OUT     (24)
-#define EP12IN      (25)
-#define EP13OUT     (26)
-#define EP13IN      (27)
-#define EP14OUT     (28)
-#define EP14IN      (29)
-#define EP15OUT     (30)
-#define EP15IN      (31)
-
-/* Maximum Packet sizes */
-
-#define MAX_PACKET_SIZE_EP0  (64)
-#define MAX_PACKET_SIZE_EP1  (64)
-#define MAX_PACKET_SIZE_EP2  (64)
-#define MAX_PACKET_SIZE_EP3  (1023)
-#define MAX_PACKET_SIZE_EP4  (64)
-#define MAX_PACKET_SIZE_EP5  (64)
-#define MAX_PACKET_SIZE_EP6  (64)
-#define MAX_PACKET_SIZE_EP7  (64)
-#define MAX_PACKET_SIZE_EP8  (64)
-#define MAX_PACKET_SIZE_EP9  (64)
-#define MAX_PACKET_SIZE_EP10 (64)
-#define MAX_PACKET_SIZE_EP11 (64)
-#define MAX_PACKET_SIZE_EP12 (64)
-#define MAX_PACKET_SIZE_EP13 (64)
-#define MAX_PACKET_SIZE_EP14 (64)
-#define MAX_PACKET_SIZE_EP15 (64)
-
-/* Generic endpoints - intended to be portable accross devices */
-/* and be suitable for simple USB devices. */
-
-/* Bulk endpoints */
-#define EPBULK_OUT  (EP2OUT)
-#define EPBULK_IN   (EP2IN)
-#define EPBULK_OUT_callback   EP2_OUT_callback
-#define EPBULK_IN_callback    EP2_IN_callback
-/* Interrupt endpoints */
-#define EPINT_OUT   (EP1OUT)
-#define EPINT_IN    (EP1IN)
-#define EPINT_OUT_callback    EP1_OUT_callback
-#define EPINT_IN_callback     EP1_IN_callback
-/* Isochronous endpoints */
-#define EPISO_OUT   (EP3OUT)
-#define EPISO_IN    (EP3IN)
-#define EPISO_OUT_callback    EP3_OUT_callback
-#define EPISO_IN_callback     EP3_IN_callback
-
-#define MAX_PACKET_SIZE_EPBULK  (MAX_PACKET_SIZE_EP2)
-#define MAX_PACKET_SIZE_EPINT   (MAX_PACKET_SIZE_EP1)
-#define MAX_PACKET_SIZE_EPISO   (MAX_PACKET_SIZE_EP3)
--- a/USBDevice/USBEndpoints_LPC11U.h	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-/* Copyright (c) 2010-2011 mbed.org, MIT License
-*
-* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-* and associated documentation files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use, copy, modify, merge, publish,
-* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following conditions:
-*
-* The above copyright notice and this permission notice shall be included in all copies or
-* substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
-* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#define NUMBER_OF_LOGICAL_ENDPOINTS (5)
-#define NUMBER_OF_PHYSICAL_ENDPOINTS (NUMBER_OF_LOGICAL_ENDPOINTS * 2)
-
-/* Define physical endpoint numbers */
-
-/*      Endpoint    No.     Type(s)       MaxPacket   DoubleBuffer  */
-/*      ----------------    ------------  ----------  ---           */
-#define EP0OUT      (0)  /* Control       64          No            */
-#define EP0IN       (1)  /* Control       64          No            */
-#define EP1OUT      (2)  /* Int/Bulk/Iso  64/64/1023  Yes           */
-#define EP1IN       (3)  /* Int/Bulk/Iso  64/64/1023  Yes           */
-#define EP2OUT      (4)  /* Int/Bulk/Iso  64/64/1023  Yes           */
-#define EP2IN       (5)  /* Int/Bulk/Iso  64/64/1023  Yes           */
-#define EP3OUT      (6)  /* Int/Bulk/Iso  64/64/1023  Yes           */
-#define EP3IN       (7)  /* Int/Bulk/Iso  64/64/1023  Yes           */
-#define EP4OUT      (8)  /* Int/Bulk/Iso  64/64/1023  Yes           */
-#define EP4IN       (9)  /* Int/Bulk/Iso  64/64/1023  Yes           */
-
-/* Maximum Packet sizes */
-
-#define MAX_PACKET_SIZE_EP0 (64)
-#define MAX_PACKET_SIZE_EP1 (64) /* Int/Bulk */
-#define MAX_PACKET_SIZE_EP2 (64) /* Int/Bulk */
-#define MAX_PACKET_SIZE_EP3 (64) /* Int/Bulk */
-#define MAX_PACKET_SIZE_EP4 (64) /* Int/Bulk */
-
-#define MAX_PACKET_SIZE_EP1_ISO (1023) /* Isochronous */
-#define MAX_PACKET_SIZE_EP2_ISO (1023) /* Isochronous */
-#define MAX_PACKET_SIZE_EP3_ISO (1023) /* Isochronous */
-#define MAX_PACKET_SIZE_EP4_ISO (1023) /* Isochronous */
-
-/* Generic endpoints - intended to be portable accross devices */
-/* and be suitable for simple USB devices. */
-
-/* Bulk endpoint */
-#define EPBULK_OUT  (EP2OUT)
-#define EPBULK_IN   (EP2IN)
-#define EPBULK_OUT_callback   EP2_OUT_callback
-#define EPBULK_IN_callback    EP2_IN_callback
-/* Interrupt endpoint */
-#define EPINT_OUT   (EP1OUT)
-#define EPINT_IN    (EP1IN)
-#define EPINT_OUT_callback    EP1_OUT_callback
-#define EPINT_IN_callback     EP1_IN_callback
-/* Isochronous endpoint */
-#define EPISO_OUT   (EP3OUT)
-#define EPISO_IN    (EP3IN)
-#define EPISO_OUT_callback    EP3_OUT_callback
-#define EPISO_IN_callback     EP3_IN_callback
-
-#define MAX_PACKET_SIZE_EPBULK  (MAX_PACKET_SIZE_EP2)
-#define MAX_PACKET_SIZE_EPINT   (MAX_PACKET_SIZE_EP1)
-#define MAX_PACKET_SIZE_EPISO   (MAX_PACKET_SIZE_EP3_ISO)
--- a/USBDevice/USBEndpoints_LPC17_LPC23.h	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-/* Copyright (c) 2010-2011 mbed.org, MIT License
-*
-* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-* and associated documentation files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use, copy, modify, merge, publish,
-* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following conditions:
-*
-* The above copyright notice and this permission notice shall be included in all copies or
-* substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
-* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#define NUMBER_OF_LOGICAL_ENDPOINTS (16)
-#define NUMBER_OF_PHYSICAL_ENDPOINTS (NUMBER_OF_LOGICAL_ENDPOINTS * 2)
-
-/* Define physical endpoint numbers */
-
-/*      Endpoint    No.     Type(s)       MaxPacket   DoubleBuffer  */
-/*      ----------------    ------------  ----------  ---           */
-#define EP0OUT      (0)  /* Control       64          No            */
-#define EP0IN       (1)  /* Control       64          No            */
-#define EP1OUT      (2)  /* Interrupt     64          No            */
-#define EP1IN       (3)  /* Interrupt     64          No            */
-#define EP2OUT      (4)  /* Bulk          64          Yes           */
-#define EP2IN       (5)  /* Bulk          64          Yes           */
-#define EP3OUT      (6)  /* Isochronous   1023        Yes           */
-#define EP3IN       (7)  /* Isochronous   1023        Yes           */
-#define EP4OUT      (8)  /* Interrupt     64          No            */
-#define EP4IN       (9)  /* Interrupt     64          No            */
-#define EP5OUT      (10) /* Bulk          64          Yes           */
-#define EP5IN       (11) /* Bulk          64          Yes           */
-#define EP6OUT      (12) /* Isochronous   1023        Yes           */
-#define EP6IN       (13) /* Isochronous   1023        Yes           */
-#define EP7OUT      (14) /* Interrupt     64          No            */
-#define EP7IN       (15) /* Interrupt     64          No            */
-#define EP8OUT      (16) /* Bulk          64          Yes           */
-#define EP8IN       (17) /* Bulk          64          Yes           */
-#define EP9OUT      (18) /* Isochronous   1023        Yes           */
-#define EP9IN       (19) /* Isochronous   1023        Yes           */
-#define EP10OUT     (20) /* Interrupt     64          No            */
-#define EP10IN      (21) /* Interrupt     64          No            */
-#define EP11OUT     (22) /* Bulk          64          Yes           */
-#define EP11IN      (23) /* Bulk          64          Yes           */
-#define EP12OUT     (24) /* Isochronous   1023        Yes           */
-#define EP12IN      (25) /* Isochronous   1023        Yes           */
-#define EP13OUT     (26) /* Interrupt     64          No            */
-#define EP13IN      (27) /* Interrupt     64          No            */
-#define EP14OUT     (28) /* Bulk          64          Yes           */
-#define EP14IN      (29) /* Bulk          64          Yes           */
-#define EP15OUT     (30) /* Bulk          64          Yes           */
-#define EP15IN      (31) /* Bulk          64          Yes           */
-
-/* Maximum Packet sizes */
-
-#define MAX_PACKET_SIZE_EP0  (64)
-#define MAX_PACKET_SIZE_EP1  (64)
-#define MAX_PACKET_SIZE_EP2  (64)
-#define MAX_PACKET_SIZE_EP3  (1023)
-#define MAX_PACKET_SIZE_EP4  (64)
-#define MAX_PACKET_SIZE_EP5  (64)
-#define MAX_PACKET_SIZE_EP6  (1023)
-#define MAX_PACKET_SIZE_EP7  (64)
-#define MAX_PACKET_SIZE_EP8  (64)
-#define MAX_PACKET_SIZE_EP9  (1023)
-#define MAX_PACKET_SIZE_EP10 (64)
-#define MAX_PACKET_SIZE_EP11 (64)
-#define MAX_PACKET_SIZE_EP12 (1023)
-#define MAX_PACKET_SIZE_EP13 (64)
-#define MAX_PACKET_SIZE_EP14 (64)
-#define MAX_PACKET_SIZE_EP15 (64)
-
-/* Generic endpoints - intended to be portable accross devices */
-/* and be suitable for simple USB devices. */
-
-/* Bulk endpoints */
-#define EPBULK_OUT  (EP2OUT)
-#define EPBULK_IN   (EP2IN)
-#define EPBULK_OUT_callback   EP2_OUT_callback
-#define EPBULK_IN_callback    EP2_IN_callback
-/* Interrupt endpoints */
-#define EPINT_OUT   (EP1OUT)
-#define EPINT_IN    (EP1IN)
-#define EPINT_OUT_callback    EP1_OUT_callback
-#define EPINT_IN_callback     EP1_IN_callback
-/* Isochronous endpoints */
-#define EPISO_OUT   (EP3OUT)
-#define EPISO_IN    (EP3IN)
-#define EPISO_OUT_callback    EP3_OUT_callback
-#define EPISO_IN_callback     EP3_IN_callback
-
-#define MAX_PACKET_SIZE_EPBULK  (MAX_PACKET_SIZE_EP2)
-#define MAX_PACKET_SIZE_EPINT   (MAX_PACKET_SIZE_EP1)
-#define MAX_PACKET_SIZE_EPISO   (MAX_PACKET_SIZE_EP3)
--- a/USBDevice/USBEndpoints_Maxim.h	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2015 Maxim Integrated Products, Inc., All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
- * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- * Except as contained in this notice, the name of Maxim Integrated
- * Products, Inc. shall not be used except as stated in the Maxim Integrated
- * Products, Inc. Branding Policy.
- *
- * The mere transfer of this software does not imply any licenses
- * of trade secrets, proprietary technology, copyrights, patents,
- * trademarks, maskwork rights, or any other form of intellectual
- * property whatsoever. Maxim Integrated Products, Inc. retains all
- * ownership rights.
- *******************************************************************************
- */
-
-#define NUMBER_OF_LOGICAL_ENDPOINTS   (8)
-#define NUMBER_OF_PHYSICAL_ENDPOINTS  (NUMBER_OF_LOGICAL_ENDPOINTS * 2)
-
-#define DIR_OUT       0x00
-#define DIR_IN        0x01
-#define EP_NUM(ep)    (ep >> 1)
-#define IN_EP(ep)     (ep & DIR_IN)
-#define OUT_EP(ep)    (!(ep & DIR_IN))
-
-/* Define physical endpoint numbers */
-
-/*      Endpoint    No.   */
-/*      ----------------  */
-#define EP0OUT      ((0 << 1) | DIR_OUT)
-#define EP0IN       ((0 << 1) | DIR_IN)
-#define EP1OUT      ((1 << 1) | DIR_OUT)
-#define EP1IN       ((1 << 1) | DIR_IN)
-#define EP2OUT      ((2 << 1) | DIR_OUT)
-#define EP2IN       ((2 << 1) | DIR_IN)
-#define EP3OUT      ((3 << 1) | DIR_OUT)
-#define EP3IN       ((3 << 1) | DIR_IN)
-#define EP4OUT      ((4 << 1) | DIR_OUT)
-#define EP4IN       ((4 << 1) | DIR_IN)
-#define EP5OUT      ((5 << 1) | DIR_OUT)
-#define EP5IN       ((5 << 1) | DIR_IN)
-#define EP6OUT      ((6 << 1) | DIR_OUT)
-#define EP6IN       ((6 << 1) | DIR_IN)
-#define EP7OUT      ((7 << 1) | DIR_OUT)
-#define EP7IN       ((7 << 1) | DIR_IN)
-
-/* Maximum Packet sizes */
-
-#define MAX_PACKET_SIZE_EP0  (64)
-#define MAX_PACKET_SIZE_EP1  (64)
-#define MAX_PACKET_SIZE_EP2  (64)
-#define MAX_PACKET_SIZE_EP3  (64)
-#define MAX_PACKET_SIZE_EP4  (64)
-#define MAX_PACKET_SIZE_EP5  (64)
-#define MAX_PACKET_SIZE_EP6  (64)
-#define MAX_PACKET_SIZE_EP7  (64)
-
-/* Generic endpoints - intended to be portable accross devices */
-/* and be suitable for simple USB devices. */
-
-/* Bulk endpoints */
-#define EPBULK_OUT  (EP1OUT)
-#define EPBULK_IN   (EP2IN)
-#define EPBULK_OUT_callback   EP1_OUT_callback
-#define EPBULK_IN_callback    EP2_IN_callback
-/* Interrupt endpoints */
-#define EPINT_OUT   (EP3OUT)
-#define EPINT_IN    (EP4IN)
-#define EPINT_OUT_callback    EP3_OUT_callback
-#define EPINT_IN_callback     EP4_IN_callback
-/* Isochronous endpoints */
-/* NOT SUPPORTED - use invalid endpoint number to prevent built errors */
-#define EPISO_OUT   (EP0OUT)
-#define EPISO_IN    (EP0IN)
-
-#define MAX_PACKET_SIZE_EPBULK  (64)
-#define MAX_PACKET_SIZE_EPINT   (64)
--- a/USBDevice/USBEndpoints_RZ_A1H.h	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/* Copyright (c) 2010-2011 mbed.org, MIT License
-*
-* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-* and associated documentation files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use, copy, modify, merge, publish,
-* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following conditions:
-*
-* The above copyright notice and this permission notice shall be included in all copies or
-* substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
-* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#define NUMBER_OF_LOGICAL_ENDPOINTS (16)
-#define NUMBER_OF_PHYSICAL_ENDPOINTS (NUMBER_OF_LOGICAL_ENDPOINTS * 2)
-
-/* Define physical endpoint numbers */
-
-/*      Endpoint    No.     Type(s)   MaxSiz  DoubleBuf  pipe */
-/*      ----------------    --------- ------  ---------  ---- */
-#define EP0OUT      (0)  /* Control    256    No           0  */
-#define EP0IN       (1)  /* Control    256    No           0  */
-#define EP1OUT      (2)  /* Int         64    No           6  */
-#define EP1IN       (3)  /* Int         64    No           7  */
-#define EP2OUT      (4)  /* Bulk      2048    Yes          3  */
-#define EP2IN       (5)  /* Bulk      2048    Yes          4  */
-#define EP3OUT      (6)  /* Bulk/Iso  2048    Yes          1  */
-#define EP3IN       (7)  /* Bulk/Iso  2048    Yes          2  */
-/*following EP is not configured in sample program*/
-#define EP6IN       (8)  /* Bulk      2048    Yes          5  */
-#define EP8IN       (9)  /* Int        64     No           8  */
-#define EP9IN       (10) /* Bulk       512    Bulk         9  */
-#define EP10IN      (11) /* Int/Bulk  2048    Bulk        10  */
-#define EP11IN      (12) /* Bulk      2048    Yes         11  */
-#define EP12IN      (13) /* Bulk      2048    Yes         12  */
-#define EP13IN      (14) /* Bulk      2048    Yes         13  */
-#define EP14IN      (15) /* Bulk      2048    Yes         14  */
-#define EP15IN      (16) /* Bulk      2048    Yes         15  */
-
-/* Maximum Packet sizes */
-#define MAX_PACKET_SIZE_EP0   (64)      /*pipe0/pipe0: control      */
-#define MAX_PACKET_SIZE_EP1   (64)      /*pipe6/pipe7: interrupt    */
-#define MAX_PACKET_SIZE_EP2  (512)      /*pipe3/pipe4: bulk         */
-#define MAX_PACKET_SIZE_EP3  (512)      /*pipe1/pipe2: isochronous  */
-#define MAX_PACKET_SIZE_EP6   (64)      /*pipe5:    Note *1 */
-#define MAX_PACKET_SIZE_EP8   (64)      /*pipe7:    Note *1 */
-#define MAX_PACKET_SIZE_EP9  (512)      /*pipe8:    Note *1 */
-#define MAX_PACKET_SIZE_EP10 (512)      /*pipe9:    Note *1 */
-#define MAX_PACKET_SIZE_EP11 (512)      /*pipe10:   Note *1 */
-#define MAX_PACKET_SIZE_EP12 (512)      /*pipe11:   Note *1 */
-#define MAX_PACKET_SIZE_EP13 (512)      /*pipe12:   Note *1 */
-#define MAX_PACKET_SIZE_EP14 (512)      /*pipe13:   Note *1 */
-#define MAX_PACKET_SIZE_EP15 (512)      /*pipe14:   Note *1 */
-/* Note *1: This pipe is not configure in sample program */
-
-
-/* Generic endpoints - intended to be portable accross devices */
-/* and be suitable for simple USB devices. */
-
-/* Bulk endpoints */
-#define EPBULK_OUT  (EP2OUT)
-#define EPBULK_IN   (EP2IN)
-#define EPBULK_OUT_callback   EP2_OUT_callback
-#define EPBULK_IN_callback    EP2_IN_callback
-/* Interrupt endpoints */
-#define EPINT_OUT   (EP1OUT)
-#define EPINT_IN    (EP1IN)
-#define EPINT_OUT_callback    EP1_OUT_callback
-#define EPINT_IN_callback     EP1_IN_callback
-/* Isochronous endpoints */
-#define EPISO_OUT   (EP3OUT)
-#define EPISO_IN    (EP3IN)
-#define EPISO_OUT_callback    EP3_OUT_callback
-#define EPISO_IN_callback     EP3_IN_callback
-
-#define MAX_PACKET_SIZE_EPBULK  (MAX_PACKET_SIZE_EP2)
-#define MAX_PACKET_SIZE_EPINT   (MAX_PACKET_SIZE_EP1)
-#define MAX_PACKET_SIZE_EPISO   (MAX_PACKET_SIZE_EP3)
-
-/*EOF*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/USBDevice/USBEndpoints_STM32F1.h	Fri Jul 08 21:16:25 2016 +0000
@@ -0,0 +1,67 @@
+/* Copyright (c) 2010-2015 mbed.org, MIT License
+*
+* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+* and associated documentation files (the "Software"), to deal in the Software without
+* restriction, including without limitation the rights to use, copy, modify, merge, publish,
+* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
+* Software is furnished to do so, subject to the following conditions:
+*
+* The above copyright notice and this permission notice shall be included in all copies or
+* substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+#define NUMBER_OF_LOGICAL_ENDPOINTS (4)
+#define NUMBER_OF_PHYSICAL_ENDPOINTS (NUMBER_OF_LOGICAL_ENDPOINTS * 2)
+
+/* Define physical endpoint numbers */
+
+/*      Endpoint    No.     Type(s)       MaxPacket   DoubleBuffer  */
+/*      ----------------    ------------  ----------  ---           */
+#define EP0OUT      (0)  /* Control       64          No            */
+#define EP0IN       (1)  /* Control       64          No            */
+#define EP1OUT      (2)  /* Int/Bulk/Iso  64/64/1023  Yes           */
+#define EP1IN       (3)  /* Int/Bulk/Iso  64/64/1023  Yes           */
+#define EP2OUT      (4)  /* Int/Bulk/Iso  64/64/1023  Yes           */
+#define EP2IN       (5)  /* Int/Bulk/Iso  64/64/1023  Yes           */
+#define EP3OUT      (6)  /* Int/Bulk/Iso  64/64/1023  Yes           */
+#define EP3IN       (7)  /* Int/Bulk/Iso  64/64/1023  Yes           */
+
+/* Maximum Packet sizes */
+
+#define MAX_PACKET_SIZE_EP0 (64)
+#define MAX_PACKET_SIZE_EP1 (64) /* Int/Bulk */
+#define MAX_PACKET_SIZE_EP2 (64) /* Int/Bulk */
+#define MAX_PACKET_SIZE_EP3 (64) /* Int/Bulk */
+
+#define MAX_PACKET_SIZE_EP1_ISO (192) /* Isochronous */
+#define MAX_PACKET_SIZE_EP2_ISO (192) /* Isochronous */
+#define MAX_PACKET_SIZE_EP3_ISO (192) /* Isochronous */
+
+/* Generic endpoints - intended to be portable accross devices */
+/* and be suitable for simple USB devices. */
+
+/* Bulk endpoint */
+#define EPBULK_OUT  (EP2OUT)
+#define EPBULK_IN   (EP2IN)
+#define EPBULK_OUT_callback   EP2_OUT_callback
+#define EPBULK_IN_callback    EP2_IN_callback
+/* Interrupt endpoint */
+#define EPINT_OUT   (EP1OUT)
+#define EPINT_IN    (EP1IN)
+#define EPINT_OUT_callback    EP1_OUT_callback
+#define EPINT_IN_callback     EP1_IN_callback
+/* Isochronous endpoint */
+#define EPISO_OUT   (EP3OUT)
+#define EPISO_IN    (EP3IN)
+#define EPISO_OUT_callback    EP3_OUT_callback
+#define EPISO_IN_callback     EP3_IN_callback
+
+#define MAX_PACKET_SIZE_EPBULK  (MAX_PACKET_SIZE_EP2)
+#define MAX_PACKET_SIZE_EPINT   (MAX_PACKET_SIZE_EP1)
+#define MAX_PACKET_SIZE_EPISO   (MAX_PACKET_SIZE_EP3_ISO)
--- a/USBDevice/USBEndpoints_STM32F4.h	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-/* Copyright (c) 2010-2011 mbed.org, MIT License
-*
-* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-* and associated documentation files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use, copy, modify, merge, publish,
-* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following conditions:
-*
-* The above copyright notice and this permission notice shall be included in all copies or
-* substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
-* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#define NUMBER_OF_LOGICAL_ENDPOINTS (4)
-#define NUMBER_OF_PHYSICAL_ENDPOINTS (NUMBER_OF_LOGICAL_ENDPOINTS * 2)
-
-/* Define physical endpoint numbers */
-
-/*      Endpoint    No.     Type(s)       MaxPacket   DoubleBuffer  */
-/*      ----------------    ------------  ----------  ---           */
-#define EP0OUT      (0)  /* Control       64          No            */
-#define EP0IN       (1)  /* Control       64          No            */
-#define EP1OUT      (2)  /* Int/Bulk/Iso  64/64/1023  Yes           */
-#define EP1IN       (3)  /* Int/Bulk/Iso  64/64/1023  Yes           */
-#define EP2OUT      (4)  /* Int/Bulk/Iso  64/64/1023  Yes           */
-#define EP2IN       (5)  /* Int/Bulk/Iso  64/64/1023  Yes           */
-#define EP3OUT      (6)  /* Int/Bulk/Iso  64/64/1023  Yes           */
-#define EP3IN       (7)  /* Int/Bulk/Iso  64/64/1023  Yes           */
-
-/* Maximum Packet sizes */
-
-#define MAX_PACKET_SIZE_EP0 (64)
-#define MAX_PACKET_SIZE_EP1 (64) /* Int/Bulk */
-#define MAX_PACKET_SIZE_EP2 (64) /* Int/Bulk */
-#define MAX_PACKET_SIZE_EP3 (64) /* Int/Bulk */
-
-#define MAX_PACKET_SIZE_EP1_ISO (1023) /* Isochronous */
-#define MAX_PACKET_SIZE_EP2_ISO (1023) /* Isochronous */
-#define MAX_PACKET_SIZE_EP3_ISO (1023) /* Isochronous */
-
-/* Generic endpoints - intended to be portable accross devices */
-/* and be suitable for simple USB devices. */
-
-/* Bulk endpoint */
-#define EPBULK_OUT  (EP2OUT)
-#define EPBULK_IN   (EP2IN)
-#define EPBULK_OUT_callback   EP2_OUT_callback
-#define EPBULK_IN_callback    EP2_IN_callback
-/* Interrupt endpoint */
-#define EPINT_OUT   (EP1OUT)
-#define EPINT_IN    (EP1IN)
-#define EPINT_OUT_callback    EP1_OUT_callback
-#define EPINT_IN_callback     EP1_IN_callback
-/* Isochronous endpoint */
-#define EPISO_OUT   (EP3OUT)
-#define EPISO_IN    (EP3IN)
-#define EPISO_OUT_callback    EP3_OUT_callback
-#define EPISO_IN_callback     EP3_IN_callback
-
-#define MAX_PACKET_SIZE_EPBULK  (MAX_PACKET_SIZE_EP2)
-#define MAX_PACKET_SIZE_EPINT   (MAX_PACKET_SIZE_EP1)
-#define MAX_PACKET_SIZE_EPISO   (MAX_PACKET_SIZE_EP3_ISO)
--- a/USBDevice/USBEndpoints_STM32L1.h	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-/* Copyright (c) 2010-2015 mbed.org, MIT License
-*
-* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-* and associated documentation files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use, copy, modify, merge, publish,
-* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following conditions:
-*
-* The above copyright notice and this permission notice shall be included in all copies or
-* substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
-* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#define NUMBER_OF_LOGICAL_ENDPOINTS (4)
-#define NUMBER_OF_PHYSICAL_ENDPOINTS (NUMBER_OF_LOGICAL_ENDPOINTS * 2)
-
-/* Define physical endpoint numbers */
-
-/*      Endpoint    No.     Type(s)       MaxPacket   DoubleBuffer  */
-/*      ----------------    ------------  ----------  ---           */
-#define EP0OUT      (0)  /* Control       64          No            */
-#define EP0IN       (1)  /* Control       64          No            */
-#define EP1OUT      (2)  /* Int/Bulk/Iso  64/64/1023  Yes           */
-#define EP1IN       (3)  /* Int/Bulk/Iso  64/64/1023  Yes           */
-#define EP2OUT      (4)  /* Int/Bulk/Iso  64/64/1023  Yes           */
-#define EP2IN       (5)  /* Int/Bulk/Iso  64/64/1023  Yes           */
-#define EP3OUT      (6)  /* Int/Bulk/Iso  64/64/1023  Yes           */
-#define EP3IN       (7)  /* Int/Bulk/Iso  64/64/1023  Yes           */
-
-/* Maximum Packet sizes */
-
-#define MAX_PACKET_SIZE_EP0 (64)
-#define MAX_PACKET_SIZE_EP1 (64) /* Int/Bulk */
-#define MAX_PACKET_SIZE_EP2 (64) /* Int/Bulk */
-#define MAX_PACKET_SIZE_EP3 (64) /* Int/Bulk */
-
-#define MAX_PACKET_SIZE_EP1_ISO (192) /* Isochronous */
-#define MAX_PACKET_SIZE_EP2_ISO (192) /* Isochronous */
-#define MAX_PACKET_SIZE_EP3_ISO (192) /* Isochronous */
-
-/* Generic endpoints - intended to be portable accross devices */
-/* and be suitable for simple USB devices. */
-
-/* Bulk endpoint */
-#define EPBULK_OUT  (EP2OUT)
-#define EPBULK_IN   (EP2IN)
-#define EPBULK_OUT_callback   EP2_OUT_callback
-#define EPBULK_IN_callback    EP2_IN_callback
-/* Interrupt endpoint */
-#define EPINT_OUT   (EP1OUT)
-#define EPINT_IN    (EP1IN)
-#define EPINT_OUT_callback    EP1_OUT_callback
-#define EPINT_IN_callback     EP1_IN_callback
-/* Isochronous endpoint */
-#define EPISO_OUT   (EP3OUT)
-#define EPISO_IN    (EP3IN)
-#define EPISO_OUT_callback    EP3_OUT_callback
-#define EPISO_IN_callback     EP3_IN_callback
-
-#define MAX_PACKET_SIZE_EPBULK  (MAX_PACKET_SIZE_EP2)
-#define MAX_PACKET_SIZE_EPINT   (MAX_PACKET_SIZE_EP1)
-#define MAX_PACKET_SIZE_EPISO   (MAX_PACKET_SIZE_EP3_ISO)
--- a/USBDevice/USBHAL_KL25Z.cpp	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,551 +0,0 @@
-/* Copyright (c) 2010-2011 mbed.org, MIT License
-*
-* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-* and associated documentation files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use, copy, modify, merge, publish,
-* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following conditions:
-*
-* The above copyright notice and this permission notice shall be included in all copies or
-* substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
-* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#if defined(TARGET_KL25Z) | defined(TARGET_KL43Z) | defined(TARGET_KL46Z) | defined(TARGET_K20D50M) | defined(TARGET_K64F) | defined(TARGET_K22F) | defined(TARGET_TEENSY3_1)
-
-#include "USBHAL.h"
-
-USBHAL * USBHAL::instance;
-
-static volatile int epComplete = 0;
-
-// Convert physical endpoint number to register bit
-#define EP(endpoint) (1<<(endpoint))
-
-// Convert physical to logical
-#define PHY_TO_LOG(endpoint)    ((endpoint)>>1)
-
-// Get endpoint direction
-#define IN_EP(endpoint)     ((endpoint) & 1U ? true : false)
-#define OUT_EP(endpoint)    ((endpoint) & 1U ? false : true)
-
-#define BD_OWN_MASK        (1<<7)
-#define BD_DATA01_MASK     (1<<6)
-#define BD_KEEP_MASK       (1<<5)
-#define BD_NINC_MASK       (1<<4)
-#define BD_DTS_MASK        (1<<3)
-#define BD_STALL_MASK      (1<<2)
-
-#define TX    1
-#define RX    0
-#define ODD   0
-#define EVEN  1
-// this macro waits a physical endpoint number
-#define EP_BDT_IDX(ep, dir, odd) (((ep * 4) + (2 * dir) + (1 *  odd)))
-
-#define SETUP_TOKEN    0x0D
-#define IN_TOKEN       0x09
-#define OUT_TOKEN      0x01
-#define TOK_PID(idx)   ((bdt[idx].info >> 2) & 0x0F)
-
-// for each endpt: 8 bytes
-typedef struct BDT {
-    uint8_t   info;       // BD[0:7]
-    uint8_t   dummy;      // RSVD: BD[8:15]
-    uint16_t  byte_count; // BD[16:32]
-    uint32_t  address;    // Addr
-} BDT;
-
-
-// there are:
-//    * 16 bidirectionnal endpt -> 32 physical endpt
-//    * as there are ODD and EVEN buffer -> 32*2 bdt
-__attribute__((__aligned__(512))) BDT bdt[NUMBER_OF_PHYSICAL_ENDPOINTS * 2];
-uint8_t * endpoint_buffer[(NUMBER_OF_PHYSICAL_ENDPOINTS - 2) * 2];
-uint8_t * endpoint_buffer_iso[2*2];
-
-static uint8_t set_addr = 0;
-static uint8_t addr = 0;
-
-static uint32_t Data1  = 0x55555555;
-
-static uint32_t frameNumber() {
-    return((USB0->FRMNUML | (USB0->FRMNUMH << 8)) & 0x07FF);
-}
-
-uint32_t USBHAL::endpointReadcore(uint8_t endpoint, uint8_t *buffer) {
-    return 0;
-}
-
-USBHAL::USBHAL(void) {
-    // Disable IRQ
-    NVIC_DisableIRQ(USB0_IRQn);
-
-#if defined(TARGET_K64F)
-    MPU->CESR=0;
-#endif
-    // fill in callback array
-    epCallback[0] = &USBHAL::EP1_OUT_callback;
-    epCallback[1] = &USBHAL::EP1_IN_callback;
-    epCallback[2] = &USBHAL::EP2_OUT_callback;
-    epCallback[3] = &USBHAL::EP2_IN_callback;
-    epCallback[4] = &USBHAL::EP3_OUT_callback;
-    epCallback[5] = &USBHAL::EP3_IN_callback;
-    epCallback[6] = &USBHAL::EP4_OUT_callback;
-    epCallback[7] = &USBHAL::EP4_IN_callback;
-    epCallback[8] = &USBHAL::EP5_OUT_callback;
-    epCallback[9] = &USBHAL::EP5_IN_callback;
-    epCallback[10] = &USBHAL::EP6_OUT_callback;
-    epCallback[11] = &USBHAL::EP6_IN_callback;
-    epCallback[12] = &USBHAL::EP7_OUT_callback;
-    epCallback[13] = &USBHAL::EP7_IN_callback;
-    epCallback[14] = &USBHAL::EP8_OUT_callback;
-    epCallback[15] = &USBHAL::EP8_IN_callback;
-    epCallback[16] = &USBHAL::EP9_OUT_callback;
-    epCallback[17] = &USBHAL::EP9_IN_callback;
-    epCallback[18] = &USBHAL::EP10_OUT_callback;
-    epCallback[19] = &USBHAL::EP10_IN_callback;
-    epCallback[20] = &USBHAL::EP11_OUT_callback;
-    epCallback[21] = &USBHAL::EP11_IN_callback;
-    epCallback[22] = &USBHAL::EP12_OUT_callback;
-    epCallback[23] = &USBHAL::EP12_IN_callback;
-    epCallback[24] = &USBHAL::EP13_OUT_callback;
-    epCallback[25] = &USBHAL::EP13_IN_callback;
-    epCallback[26] = &USBHAL::EP14_OUT_callback;
-    epCallback[27] = &USBHAL::EP14_IN_callback;
-    epCallback[28] = &USBHAL::EP15_OUT_callback;
-    epCallback[29] = &USBHAL::EP15_IN_callback;
-
-#if defined(TARGET_KL43Z)
-    // enable USBFS clock
-    SIM->SCGC4 |= SIM_SCGC4_USBFS_MASK;
-
-    // enable the IRC48M clock
-    USB0->CLK_RECOVER_IRC_EN |= USB_CLK_RECOVER_IRC_EN_IRC_EN_MASK;
-
-    // enable the USB clock recovery tuning
-    USB0->CLK_RECOVER_CTRL |= USB_CLK_RECOVER_CTRL_CLOCK_RECOVER_EN_MASK;
-
-    // choose usb src clock
-    SIM->SOPT2 |= SIM_SOPT2_USBSRC_MASK;
-#else
-    // choose usb src as PLL
-    SIM->SOPT2 &= ~SIM_SOPT2_PLLFLLSEL_MASK;
-    SIM->SOPT2 |= (SIM_SOPT2_USBSRC_MASK | (1 << SIM_SOPT2_PLLFLLSEL_SHIFT));
-
-    // enable OTG clock
-    SIM->SCGC4 |= SIM_SCGC4_USBOTG_MASK;
-#endif
-
-    // Attach IRQ
-    instance = this;
-    NVIC_SetVector(USB0_IRQn, (uint32_t)&_usbisr);
-    NVIC_EnableIRQ(USB0_IRQn);
-
-    // USB Module Configuration
-    // Reset USB Module
-    USB0->USBTRC0 |= USB_USBTRC0_USBRESET_MASK;
-    while(USB0->USBTRC0 & USB_USBTRC0_USBRESET_MASK);
-
-    // Set BDT Base Register
-    USB0->BDTPAGE1 = (uint8_t)((uint32_t)bdt>>8);
-    USB0->BDTPAGE2 = (uint8_t)((uint32_t)bdt>>16);
-    USB0->BDTPAGE3 = (uint8_t)((uint32_t)bdt>>24);
-
-    // Clear interrupt flag
-    USB0->ISTAT = 0xff;
-
-    // USB Interrupt Enablers
-    USB0->INTEN |= USB_INTEN_TOKDNEEN_MASK |
-                   USB_INTEN_SOFTOKEN_MASK |
-                   USB_INTEN_ERROREN_MASK  |
-                   USB_INTEN_USBRSTEN_MASK;
-
-    // Disable weak pull downs
-    USB0->USBCTRL &= ~(USB_USBCTRL_PDE_MASK | USB_USBCTRL_SUSP_MASK);
-
-    USB0->USBTRC0 |= 0x40;
-}
-
-USBHAL::~USBHAL(void) { }
-
-void USBHAL::connect(void) {
-    // enable USB
-    USB0->CTL |= USB_CTL_USBENSOFEN_MASK;
-    // Pull up enable
-    USB0->CONTROL |= USB_CONTROL_DPPULLUPNONOTG_MASK;
-}
-
-void USBHAL::disconnect(void) {
-    // disable USB
-    USB0->CTL &= ~USB_CTL_USBENSOFEN_MASK;
-    // Pull up disable
-    USB0->CONTROL &= ~USB_CONTROL_DPPULLUPNONOTG_MASK;
-
-    //Free buffers if required:
-    for (int i = 0; i<(NUMBER_OF_PHYSICAL_ENDPOINTS - 2) * 2; i++) {
-        free(endpoint_buffer[i]);
-        endpoint_buffer[i] = NULL;
-    }
-    free(endpoint_buffer_iso[2]);
-    endpoint_buffer_iso[2] = NULL;
-    free(endpoint_buffer_iso[0]);
-    endpoint_buffer_iso[0] = NULL;
-}
-
-void USBHAL::configureDevice(void) {
-    // not needed
-}
-
-void USBHAL::unconfigureDevice(void) {
-    // not needed
-}
-
-void USBHAL::setAddress(uint8_t address) {
-    // we don't set the address now otherwise the usb controller does not ack
-    // we set a flag instead
-    // see usbisr when an IN token is received
-    set_addr = 1;
-    addr = address;
-}
-
-bool USBHAL::realiseEndpoint(uint8_t endpoint, uint32_t maxPacket, uint32_t flags) {
-    uint32_t handshake_flag = 0;
-    uint8_t * buf;
-
-    if (endpoint > NUMBER_OF_PHYSICAL_ENDPOINTS - 1) {
-        return false;
-    }
-
-    uint32_t log_endpoint = PHY_TO_LOG(endpoint);
-
-    if ((flags & ISOCHRONOUS) == 0) {
-        handshake_flag = USB_ENDPT_EPHSHK_MASK;
-        if (IN_EP(endpoint)) {
-            if (endpoint_buffer[EP_BDT_IDX(log_endpoint, TX, ODD)] == NULL)
-                endpoint_buffer[EP_BDT_IDX(log_endpoint, TX, ODD)] = (uint8_t *) malloc (64*2);
-            buf = &endpoint_buffer[EP_BDT_IDX(log_endpoint, TX, ODD)][0];
-        } else {
-            if (endpoint_buffer[EP_BDT_IDX(log_endpoint, RX, ODD)] == NULL)
-                endpoint_buffer[EP_BDT_IDX(log_endpoint, RX, ODD)] = (uint8_t *) malloc (64*2);
-            buf = &endpoint_buffer[EP_BDT_IDX(log_endpoint, RX, ODD)][0];
-        }
-    } else {
-        if (IN_EP(endpoint)) {
-            if (endpoint_buffer_iso[2] == NULL)
-                endpoint_buffer_iso[2] = (uint8_t *) malloc (1023*2);
-            buf = &endpoint_buffer_iso[2][0];
-        } else {
-            if (endpoint_buffer_iso[0] == NULL)
-                endpoint_buffer_iso[0] = (uint8_t *) malloc (1023*2);
-            buf = &endpoint_buffer_iso[0][0];
-        }
-    }
-
-    // IN endpt -> device to host (TX)
-    if (IN_EP(endpoint)) {
-        USB0->ENDPOINT[log_endpoint].ENDPT |= handshake_flag |        // ep handshaking (not if iso endpoint)
-                                              USB_ENDPT_EPTXEN_MASK;  // en TX (IN) tran
-        bdt[EP_BDT_IDX(log_endpoint, TX, ODD )].address = (uint32_t) buf;
-        bdt[EP_BDT_IDX(log_endpoint, TX, EVEN)].address = 0;
-    }
-    // OUT endpt -> host to device (RX)
-    else {
-        USB0->ENDPOINT[log_endpoint].ENDPT |= handshake_flag |        // ep handshaking (not if iso endpoint)
-                                              USB_ENDPT_EPRXEN_MASK;  // en RX (OUT) tran.
-        bdt[EP_BDT_IDX(log_endpoint, RX, ODD )].byte_count = maxPacket;
-        bdt[EP_BDT_IDX(log_endpoint, RX, ODD )].address    = (uint32_t) buf;
-        bdt[EP_BDT_IDX(log_endpoint, RX, ODD )].info       = BD_OWN_MASK | BD_DTS_MASK;
-        bdt[EP_BDT_IDX(log_endpoint, RX, EVEN)].info       = 0;
-    }
-
-    Data1 |= (1 << endpoint);
-
-    return true;
-}
-
-// read setup packet
-void USBHAL::EP0setup(uint8_t *buffer) {
-    uint32_t sz;
-    endpointReadResult(EP0OUT, buffer, &sz);
-}
-
-void USBHAL::EP0readStage(void) {
-    Data1 &= ~1UL;  // set DATA0
-    bdt[0].info = (BD_DTS_MASK | BD_OWN_MASK);
-}
-
-void USBHAL::EP0read(void) {
-    uint32_t idx = EP_BDT_IDX(PHY_TO_LOG(EP0OUT), RX, 0);
-    bdt[idx].byte_count = MAX_PACKET_SIZE_EP0;
-}
-
-uint32_t USBHAL::EP0getReadResult(uint8_t *buffer) {
-    uint32_t sz;
-    endpointReadResult(EP0OUT, buffer, &sz);
-    return sz;
-}
-
-void USBHAL::EP0write(uint8_t *buffer, uint32_t size) {
-    endpointWrite(EP0IN, buffer, size);
-}
-
-void USBHAL::EP0getWriteResult(void) {
-}
-
-void USBHAL::EP0stall(void) {
-    stallEndpoint(EP0OUT);
-}
-
-EP_STATUS USBHAL::endpointRead(uint8_t endpoint, uint32_t maximumSize) {
-    endpoint = PHY_TO_LOG(endpoint);
-    uint32_t idx = EP_BDT_IDX(endpoint, RX, 0);
-    bdt[idx].byte_count = maximumSize;
-    return EP_PENDING;
-}
-
-EP_STATUS USBHAL::endpointReadResult(uint8_t endpoint, uint8_t * buffer, uint32_t *bytesRead) {
-    uint32_t n, sz, idx, setup = 0;
-    uint8_t not_iso;
-    uint8_t * ep_buf;
-
-    uint32_t log_endpoint = PHY_TO_LOG(endpoint);
-
-    if (endpoint > NUMBER_OF_PHYSICAL_ENDPOINTS - 1) {
-        return EP_INVALID;
-    }
-
-    // if read on a IN endpoint -> error
-    if (IN_EP(endpoint)) {
-        return EP_INVALID;
-    }
-
-    idx = EP_BDT_IDX(log_endpoint, RX, 0);
-    sz  = bdt[idx].byte_count;
-    not_iso = USB0->ENDPOINT[log_endpoint].ENDPT & USB_ENDPT_EPHSHK_MASK;
-
-    //for isochronous endpoint, we don't wait an interrupt
-    if ((log_endpoint != 0) && not_iso && !(epComplete & EP(endpoint))) {
-        return EP_PENDING;
-    }
-
-    if ((log_endpoint == 0) && (TOK_PID(idx) == SETUP_TOKEN)) {
-        setup = 1;
-    }
-
-    // non iso endpoint
-    if (not_iso) {
-        ep_buf = endpoint_buffer[idx];
-    } else {
-        ep_buf = endpoint_buffer_iso[0];
-    }
-
-    for (n = 0; n < sz; n++) {
-        buffer[n] = ep_buf[n];
-    }
-
-    if (((Data1 >> endpoint) & 1) == ((bdt[idx].info >> 6) & 1)) {
-        if (setup && (buffer[6] == 0))  // if no setup data stage,
-            Data1 &= ~1UL;              // set DATA0
-        else
-            Data1 ^= (1 << endpoint);
-    }
-
-    if (((Data1 >> endpoint) & 1)) {
-        bdt[idx].info = BD_DTS_MASK | BD_DATA01_MASK | BD_OWN_MASK;
-    }
-    else {
-        bdt[idx].info = BD_DTS_MASK | BD_OWN_MASK;
-    }
-
-    USB0->CTL &= ~USB_CTL_TXSUSPENDTOKENBUSY_MASK;
-    *bytesRead = sz;
-
-    epComplete &= ~EP(endpoint);
-    return EP_COMPLETED;
-}
-
-EP_STATUS USBHAL::endpointWrite(uint8_t endpoint, uint8_t *data, uint32_t size) {
-    uint32_t idx, n;
-    uint8_t * ep_buf;
-
-    if (endpoint > NUMBER_OF_PHYSICAL_ENDPOINTS - 1) {
-        return EP_INVALID;
-    }
-
-    // if write on a OUT endpoint -> error
-    if (OUT_EP(endpoint)) {
-        return EP_INVALID;
-    }
-
-    idx = EP_BDT_IDX(PHY_TO_LOG(endpoint), TX, 0);
-    bdt[idx].byte_count = size;
-
-
-    // non iso endpoint
-    if (USB0->ENDPOINT[PHY_TO_LOG(endpoint)].ENDPT & USB_ENDPT_EPHSHK_MASK) {
-        ep_buf = endpoint_buffer[idx];
-    } else {
-        ep_buf = endpoint_buffer_iso[2];
-    }
-
-    for (n = 0; n < size; n++) {
-        ep_buf[n] = data[n];
-    }
-
-    if ((Data1 >> endpoint) & 1) {
-        bdt[idx].info = BD_OWN_MASK | BD_DTS_MASK;
-    } else {
-        bdt[idx].info = BD_OWN_MASK | BD_DTS_MASK | BD_DATA01_MASK;
-    }
-
-    Data1 ^= (1 << endpoint);
-
-    return EP_PENDING;
-}
-
-EP_STATUS USBHAL::endpointWriteResult(uint8_t endpoint) {
-    if (epComplete & EP(endpoint)) {
-        epComplete &= ~EP(endpoint);
-        return EP_COMPLETED;
-    }
-
-    return EP_PENDING;
-}
-
-void USBHAL::stallEndpoint(uint8_t endpoint) {
-    USB0->ENDPOINT[PHY_TO_LOG(endpoint)].ENDPT |= USB_ENDPT_EPSTALL_MASK;
-}
-
-void USBHAL::unstallEndpoint(uint8_t endpoint) {
-    USB0->ENDPOINT[PHY_TO_LOG(endpoint)].ENDPT &= ~USB_ENDPT_EPSTALL_MASK;
-}
-
-bool USBHAL::getEndpointStallState(uint8_t endpoint) {
-    uint8_t stall = (USB0->ENDPOINT[PHY_TO_LOG(endpoint)].ENDPT & USB_ENDPT_EPSTALL_MASK);
-    return (stall) ? true : false;
-}
-
-void USBHAL::remoteWakeup(void) {
-    // [TODO]
-}
-
-
-void USBHAL::_usbisr(void) {
-    instance->usbisr();
-}
-
-
-void USBHAL::usbisr(void) {
-    uint8_t i;
-    uint8_t istat = USB0->ISTAT;
-
-    // reset interrupt
-    if (istat & USB_ISTAT_USBRST_MASK) {
-        // disable all endpt
-        for(i = 0; i < 16; i++) {
-            USB0->ENDPOINT[i].ENDPT = 0x00;
-        }
-
-        // enable control endpoint
-        realiseEndpoint(EP0OUT, MAX_PACKET_SIZE_EP0, 0);
-        realiseEndpoint(EP0IN, MAX_PACKET_SIZE_EP0, 0);
-
-        Data1 = 0x55555555;
-        USB0->CTL |=  USB_CTL_ODDRST_MASK;
-
-        USB0->ISTAT   =  0xFF;  // clear all interrupt status flags
-        USB0->ERRSTAT =  0xFF;  // clear all error flags
-        USB0->ERREN   =  0xFF;  // enable error interrupt sources
-        USB0->ADDR    =  0x00;  // set default address
-
-        return;
-    }
-
-    // resume interrupt
-    if (istat & USB_ISTAT_RESUME_MASK) {
-        USB0->ISTAT = USB_ISTAT_RESUME_MASK;
-    }
-
-    // SOF interrupt
-    if (istat & USB_ISTAT_SOFTOK_MASK) {
-        USB0->ISTAT = USB_ISTAT_SOFTOK_MASK;
-        // SOF event, read frame number
-        SOF(frameNumber());
-    }
-
-    // stall interrupt
-    if (istat & 1<<7) {
-        if (USB0->ENDPOINT[0].ENDPT & USB_ENDPT_EPSTALL_MASK)
-            USB0->ENDPOINT[0].ENDPT &= ~USB_ENDPT_EPSTALL_MASK;
-        USB0->ISTAT |= USB_ISTAT_STALL_MASK;
-    }
-
-    // token interrupt
-    if (istat & 1<<3) {
-        uint32_t num  = (USB0->STAT >> 4) & 0x0F;
-        uint32_t dir  = (USB0->STAT >> 3) & 0x01;
-        uint32_t ev_odd = (USB0->STAT >> 2) & 0x01;
-
-        // setup packet
-        if ((num == 0) && (TOK_PID((EP_BDT_IDX(num, dir, ev_odd))) == SETUP_TOKEN)) {
-            Data1 &= ~0x02;
-            bdt[EP_BDT_IDX(0, TX, EVEN)].info &= ~BD_OWN_MASK;
-            bdt[EP_BDT_IDX(0, TX, ODD)].info  &= ~BD_OWN_MASK;
-
-            // EP0 SETUP event (SETUP data received)
-            EP0setupCallback();
-
-        } else {
-            // OUT packet
-            if (TOK_PID((EP_BDT_IDX(num, dir, ev_odd))) == OUT_TOKEN) {
-                if (num == 0)
-                    EP0out();
-                else {
-                    epComplete |= (1 << EP(num));
-                    if ((instance->*(epCallback[EP(num) - 2]))()) {
-                        epComplete &= ~(1 << EP(num));
-                    }
-                }
-            }
-
-            // IN packet
-            if (TOK_PID((EP_BDT_IDX(num, dir, ev_odd))) == IN_TOKEN) {
-                if (num == 0) {
-                    EP0in();
-                    if (set_addr == 1) {
-                        USB0->ADDR = addr & 0x7F;
-                        set_addr = 0;
-                    }
-                }
-                else {
-                    epComplete |= (1 << (EP(num) + 1));
-                    if ((instance->*(epCallback[EP(num) + 1 - 2]))()) {
-                        epComplete &= ~(1 << (EP(num) + 1));
-                    }
-                }
-            }
-        }
-
-        USB0->ISTAT = USB_ISTAT_TOKDNE_MASK;
-    }
-
-    // sleep interrupt
-    if (istat & 1<<4) {
-        USB0->ISTAT |= USB_ISTAT_SLEEP_MASK;
-    }
-
-    // error interrupt
-    if (istat & USB_ISTAT_ERROR_MASK) {
-        USB0->ERRSTAT = 0xFF;
-        USB0->ISTAT |= USB_ISTAT_ERROR_MASK;
-    }
-}
-
-
-#endif
--- a/USBDevice/USBHAL_LPC11U.cpp	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,738 +0,0 @@
-/* Copyright (c) 2010-2011 mbed.org, MIT License
-*
-* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-* and associated documentation files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use, copy, modify, merge, publish,
-* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following conditions:
-*
-* The above copyright notice and this permission notice shall be included in all copies or
-* substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
-* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#if defined(TARGET_LPC11UXX) || defined(TARGET_LPC11U6X) || defined(TARGET_LPC1347) || defined(TARGET_LPC1549)
-
-#if defined(TARGET_LPC1347) || defined(TARGET_LPC1549)
-#define USB_IRQ USB_IRQ_IRQn
-#else
-#define USB_IRQ USB_IRQn
-#endif
-
-#include "USBHAL.h"
-
-USBHAL * USBHAL::instance;
-#if defined(TARGET_LPC1549)
-static uint8_t usbmem[2048] __attribute__((aligned(2048)));
-#endif
-
-// Valid physical endpoint numbers are 0 to (NUMBER_OF_PHYSICAL_ENDPOINTS-1)
-#define LAST_PHYSICAL_ENDPOINT (NUMBER_OF_PHYSICAL_ENDPOINTS-1)
-
-// Convert physical endpoint number to register bit
-#define EP(endpoint) (1UL<<endpoint)
-
-// Convert physical to logical
-#define PHY_TO_LOG(endpoint)    ((endpoint)>>1)
-
-// Get endpoint direction
-#define IN_EP(endpoint)     ((endpoint) & 1U ? true : false)
-#define OUT_EP(endpoint)    ((endpoint) & 1U ? false : true)
-
-// USB RAM
-#if defined(TARGET_LPC1549)
-#define USB_RAM_START ((uint32_t)usbmem)
-#define USB_RAM_SIZE  sizeof(usbmem)
-#else
-#define USB_RAM_START (0x20004000)
-#define USB_RAM_SIZE  (0x00000800)
-#endif
-
-// SYSAHBCLKCTRL
-#if defined(TARGET_LPC1549)
-#define CLK_USB     (1UL<<23)
-#else
-#define CLK_USB     (1UL<<14)
-#define CLK_USBRAM  (1UL<<27)
-#endif
-
-// USB Information register
-#define FRAME_NR(a)     ((a) & 0x7ff)   // Frame number
-
-// USB Device Command/Status register
-#define DEV_ADDR_MASK   (0x7f)          // Device address
-#define DEV_ADDR(a)     ((a) & DEV_ADDR_MASK)
-#define DEV_EN          (1UL<<7)        // Device enable
-#define SETUP           (1UL<<8)        // SETUP token received
-#define PLL_ON          (1UL<<9)        // PLL enabled in suspend
-#define DCON            (1UL<<16)       // Device status - connect
-#define DSUS            (1UL<<17)       // Device status - suspend
-#define DCON_C          (1UL<<24)       // Connect change
-#define DSUS_C          (1UL<<25)       // Suspend change
-#define DRES_C          (1UL<<26)       // Reset change
-#define VBUSDEBOUNCED   (1UL<<28)       // Vbus detected
-
-// Endpoint Command/Status list
-#define CMDSTS_A                 (1UL<<31)          // Active
-#define CMDSTS_D                 (1UL<<30)          // Disable
-#define CMDSTS_S                 (1UL<<29)          // Stall
-#define CMDSTS_TR                (1UL<<28)          // Toggle Reset
-#define CMDSTS_RF                (1UL<<27)          // Rate Feedback mode
-#define CMDSTS_TV                (1UL<<27)          // Toggle Value
-#define CMDSTS_T                 (1UL<<26)          // Endpoint Type
-#define CMDSTS_NBYTES(n)         (((n)&0x3ff)<<16)  // Number of bytes
-#define CMDSTS_ADDRESS_OFFSET(a) (((a)>>6)&0xffff)  // Buffer start address
-
-#define BYTES_REMAINING(s)       (((s)>>16)&0x3ff)  // Bytes remaining after transfer
-
-// USB Non-endpoint interrupt sources
-#define FRAME_INT   (1UL<<30)
-#define DEV_INT     (1UL<<31)
-
-static volatile int epComplete = 0;
-
-// One entry for a double-buffered logical endpoint in the endpoint
-// command/status list. Endpoint 0 is single buffered, out[1] is used
-// for the SETUP packet and in[1] is not used
-typedef struct {
-    uint32_t out[2];
-    uint32_t in[2];
-} PACKED EP_COMMAND_STATUS;
-
-typedef struct {
-    uint8_t out[MAX_PACKET_SIZE_EP0];
-    uint8_t in[MAX_PACKET_SIZE_EP0];
-    uint8_t setup[SETUP_PACKET_SIZE];
-} PACKED CONTROL_TRANSFER;
-
-typedef struct {
-    uint32_t    maxPacket;
-    uint32_t    buffer[2];
-    uint32_t    options;
-} PACKED EP_STATE;
-
-static volatile EP_STATE endpointState[NUMBER_OF_PHYSICAL_ENDPOINTS];
-
-// Pointer to the endpoint command/status list
-static EP_COMMAND_STATUS *ep = NULL;
-
-// Pointer to endpoint 0 data (IN/OUT and SETUP)
-static CONTROL_TRANSFER *ct = NULL;
-
-// Shadow DEVCMDSTAT register to avoid accidentally clearing flags or
-// initiating a remote wakeup event.
-static volatile uint32_t devCmdStat;
-
-// Pointers used to allocate USB RAM
-static uint32_t usbRamPtr = USB_RAM_START;
-static uint32_t epRamPtr = 0; // Buffers for endpoints > 0 start here
-
-#define ROUND_UP_TO_MULTIPLE(x, m) ((((x)+((m)-1))/(m))*(m))
-
-void USBMemCopy(uint8_t *dst, uint8_t *src, uint32_t size);
-void USBMemCopy(uint8_t *dst, uint8_t *src, uint32_t size) {
-    if (size > 0) {
-        do {
-            *dst++ = *src++;
-        } while (--size > 0);
-    }
-}
-
-
-USBHAL::USBHAL(void) {
-    NVIC_DisableIRQ(USB_IRQ);
-
-    // fill in callback array
-    epCallback[0] = &USBHAL::EP1_OUT_callback;
-    epCallback[1] = &USBHAL::EP1_IN_callback;
-    epCallback[2] = &USBHAL::EP2_OUT_callback;
-    epCallback[3] = &USBHAL::EP2_IN_callback;
-    epCallback[4] = &USBHAL::EP3_OUT_callback;
-    epCallback[5] = &USBHAL::EP3_IN_callback;
-    epCallback[6] = &USBHAL::EP4_OUT_callback;
-    epCallback[7] = &USBHAL::EP4_IN_callback;
-
-#if defined(TARGET_LPC1549)
-    /* Set USB PLL input to system oscillator */
-    LPC_SYSCON->USBPLLCLKSEL = 0x01;
-
-    /* Setup USB PLL  (FCLKIN = 12MHz) * 4 = 48MHz
-       MSEL = 3 (this is pre-decremented), PSEL = 1 (for P = 2)
-       FCLKOUT = FCLKIN * (MSEL + 1) = 12MHz * 4 = 48MHz
-       FCCO = FCLKOUT * 2 * P = 48MHz * 2 * 2 = 192MHz (within FCCO range) */
-    LPC_SYSCON->USBPLLCTRL = (0x3 | (1UL << 6));
-
-    /* Powerup USB PLL */
-    LPC_SYSCON->PDRUNCFG &= ~(CLK_USB);
-
-    /* Wait for PLL to lock */
-    while(!(LPC_SYSCON->USBPLLSTAT & 0x01));
-
-    /* enable USB main clock */
-    LPC_SYSCON->USBCLKSEL = 0x02;
-    LPC_SYSCON->USBCLKDIV = 1;
-
-    /* Enable AHB clock to the USB block. */
-    LPC_SYSCON->SYSAHBCLKCTRL1 |= CLK_USB;
-
-    /* power UP USB Phy */
-    LPC_SYSCON->PDRUNCFG &= ~(1UL << 9);
-
-    /* Reset USB block */
-    LPC_SYSCON->PRESETCTRL1 |= (CLK_USB);
-    LPC_SYSCON->PRESETCTRL1 &= ~(CLK_USB);
-
-#else
-    #if defined(TARGET_LPC11U35_401) || defined(TARGET_LPC11U35_501)
-    // USB_VBUS input with pull-down
-    LPC_IOCON->PIO0_3 = 0x00000009;
-    #endif
-
-    // nUSB_CONNECT output
-    LPC_IOCON->PIO0_6 = 0x00000001;
-
-    // Enable clocks (USB registers, USB RAM)
-    LPC_SYSCON->SYSAHBCLKCTRL |= CLK_USB | CLK_USBRAM;
-
-    // Ensure device disconnected (DCON not set)
-    LPC_USB->DEVCMDSTAT = 0;
-#endif
-    // to ensure that the USB host sees the device as
-    // disconnected if the target CPU is reset.
-    wait(0.3);
-
-    // Reserve space in USB RAM for endpoint command/status list
-    // Must be 256 byte aligned
-    usbRamPtr = ROUND_UP_TO_MULTIPLE(usbRamPtr, 256);
-    ep = (EP_COMMAND_STATUS *)usbRamPtr;
-    usbRamPtr += (sizeof(EP_COMMAND_STATUS) * NUMBER_OF_LOGICAL_ENDPOINTS);
-    LPC_USB->EPLISTSTART = (uint32_t)(ep) & 0xffffff00;
-
-    // Reserve space in USB RAM for Endpoint 0
-    // Must be 64 byte aligned
-    usbRamPtr = ROUND_UP_TO_MULTIPLE(usbRamPtr, 64);
-    ct = (CONTROL_TRANSFER *)usbRamPtr;
-    usbRamPtr += sizeof(CONTROL_TRANSFER);
-    LPC_USB->DATABUFSTART =(uint32_t)(ct) & 0xffc00000;
-
-    // Setup command/status list for EP0
-    ep[0].out[0] = 0;
-    ep[0].in[0] =  0;
-    ep[0].out[1] = CMDSTS_ADDRESS_OFFSET((uint32_t)ct->setup);
-
-    // Route all interrupts to IRQ, some can be routed to
-    // USB_FIQ if you wish.
-    LPC_USB->INTROUTING = 0;
-
-    // Set device address 0, enable USB device, no remote wakeup
-    devCmdStat = DEV_ADDR(0) | DEV_EN | DSUS;
-    LPC_USB->DEVCMDSTAT = devCmdStat;
-
-    // Enable interrupts for device events and EP0
-    LPC_USB->INTEN = DEV_INT | EP(EP0IN) | EP(EP0OUT) | FRAME_INT;
-    instance = this;
-
-    //attach IRQ handler and enable interrupts
-    NVIC_SetVector(USB_IRQ, (uint32_t)&_usbisr);
-}
-
-USBHAL::~USBHAL(void) {
-    // Ensure device disconnected (DCON not set)
-    LPC_USB->DEVCMDSTAT = 0;
-    // Disable USB interrupts
-    NVIC_DisableIRQ(USB_IRQ);
-}
-
-void USBHAL::connect(void) {
-    NVIC_EnableIRQ(USB_IRQ);
-    devCmdStat |= DCON;
-    LPC_USB->DEVCMDSTAT = devCmdStat;
-}
-
-void USBHAL::disconnect(void) {
-    NVIC_DisableIRQ(USB_IRQ);
-    devCmdStat &= ~DCON;
-    LPC_USB->DEVCMDSTAT = devCmdStat;
-}
-
-void USBHAL::configureDevice(void) {
-    // Not required
-}
-
-void USBHAL::unconfigureDevice(void) {
-    // Not required
-}
-
-void USBHAL::EP0setup(uint8_t *buffer) {
-    // Copy setup packet data
-    USBMemCopy(buffer, ct->setup, SETUP_PACKET_SIZE);
-}
-
-void USBHAL::EP0read(void) {
-    // Start an endpoint 0 read
-
-    // The USB ISR will call USBDevice_EP0out() when a packet has been read,
-    // the USBDevice layer then calls USBBusInterface_EP0getReadResult() to
-    // read the data.
-
-    ep[0].out[0] = CMDSTS_A |CMDSTS_NBYTES(MAX_PACKET_SIZE_EP0) \
-                   | CMDSTS_ADDRESS_OFFSET((uint32_t)ct->out);
-}
-
-uint32_t USBHAL::EP0getReadResult(uint8_t *buffer) {
-    // Complete an endpoint 0 read
-    uint32_t bytesRead;
-
-    // Find how many bytes were read
-    bytesRead = MAX_PACKET_SIZE_EP0 - BYTES_REMAINING(ep[0].out[0]);
-
-    // Copy data
-    USBMemCopy(buffer, ct->out, bytesRead);
-    return bytesRead;
-}
-
-
-void USBHAL::EP0readStage(void) {
-    // Not required
-}
-
-void USBHAL::EP0write(uint8_t *buffer, uint32_t size) {
-    // Start and endpoint 0 write
-
-    // The USB ISR will call USBDevice_EP0in() when the data has
-    // been written, the USBDevice layer then calls
-    // USBBusInterface_EP0getWriteResult() to complete the transaction.
-
-    // Copy data
-    USBMemCopy(ct->in, buffer, size);
-
-    // Start transfer
-    ep[0].in[0] = CMDSTS_A | CMDSTS_NBYTES(size) \
-                  | CMDSTS_ADDRESS_OFFSET((uint32_t)ct->in);
-}
-
-
-EP_STATUS USBHAL::endpointRead(uint8_t endpoint, uint32_t maximumSize) {
-    uint8_t bf = 0;
-    uint32_t flags = 0;
-
-    //check which buffer must be filled
-    if (LPC_USB->EPBUFCFG & EP(endpoint)) {
-        // Double buffered
-        if (LPC_USB->EPINUSE & EP(endpoint)) {
-            bf = 1;
-        } else {
-            bf = 0;
-        }
-    }
-
-    // if isochronous endpoint, T = 1
-    if(endpointState[endpoint].options & ISOCHRONOUS)
-    {
-        flags |= CMDSTS_T;
-    }
-
-    //Active the endpoint for reading
-    ep[PHY_TO_LOG(endpoint)].out[bf] = CMDSTS_A | CMDSTS_NBYTES(maximumSize) \
-                                       | CMDSTS_ADDRESS_OFFSET((uint32_t)ct->out) | flags;
-    return EP_PENDING;
-}
-
-EP_STATUS USBHAL::endpointReadResult(uint8_t endpoint, uint8_t *data, uint32_t *bytesRead) {
-
-    uint8_t bf = 0;
-
-    if (!(epComplete & EP(endpoint)))
-        return EP_PENDING;
-    else {
-        epComplete &= ~EP(endpoint);
-
-        //check which buffer has been filled
-        if (LPC_USB->EPBUFCFG & EP(endpoint)) {
-            // Double buffered (here we read the previous buffer which was used)
-            if (LPC_USB->EPINUSE & EP(endpoint)) {
-                bf = 0;
-            } else {
-                bf = 1;
-            }
-        }
-
-        // Find how many bytes were read
-        *bytesRead = (uint32_t) (endpointState[endpoint].maxPacket - BYTES_REMAINING(ep[PHY_TO_LOG(endpoint)].out[bf]));
-
-        // Copy data
-        USBMemCopy(data, ct->out, *bytesRead);
-        return EP_COMPLETED;
-    }
-}
-
-void USBHAL::EP0getWriteResult(void) {
-    // Not required
-}
-
-void USBHAL::EP0stall(void) {
-    ep[0].in[0] = CMDSTS_S;
-    ep[0].out[0] = CMDSTS_S;
-}
-
-void USBHAL::setAddress(uint8_t address) {
-    devCmdStat &= ~DEV_ADDR_MASK;
-    devCmdStat |= DEV_ADDR(address);
-    LPC_USB->DEVCMDSTAT = devCmdStat;
-}
-
-EP_STATUS USBHAL::endpointWrite(uint8_t endpoint, uint8_t *data, uint32_t size) {
-    uint32_t flags = 0;
-    uint32_t bf;
-
-    // Validate parameters
-    if (data == NULL) {
-        return EP_INVALID;
-    }
-
-    if (endpoint > LAST_PHYSICAL_ENDPOINT) {
-        return EP_INVALID;
-    }
-
-    if ((endpoint==EP0IN) || (endpoint==EP0OUT)) {
-        return EP_INVALID;
-    }
-
-    if (size > endpointState[endpoint].maxPacket) {
-        return EP_INVALID;
-    }
-
-    if (LPC_USB->EPBUFCFG & EP(endpoint)) {
-        // Double buffered
-        if (LPC_USB->EPINUSE & EP(endpoint)) {
-            bf = 1;
-        } else {
-            bf = 0;
-        }
-    } else {
-        // Single buffered
-        bf = 0;
-    }
-
-    // Check if already active
-    if (ep[PHY_TO_LOG(endpoint)].in[bf] & CMDSTS_A) {
-        return EP_INVALID;
-    }
-
-    // Check if stalled
-    if (ep[PHY_TO_LOG(endpoint)].in[bf] & CMDSTS_S) {
-        return EP_STALLED;
-    }
-
-    // Copy data to USB RAM
-    USBMemCopy((uint8_t *)endpointState[endpoint].buffer[bf], data, size);
-
-    // Add options
-    if (endpointState[endpoint].options & RATE_FEEDBACK_MODE) {
-        flags |= CMDSTS_RF;
-    }
-
-    if (endpointState[endpoint].options & ISOCHRONOUS) {
-        flags |= CMDSTS_T;
-    }
-
-    // Add transfer
-    ep[PHY_TO_LOG(endpoint)].in[bf] = CMDSTS_ADDRESS_OFFSET( \
-                                      endpointState[endpoint].buffer[bf]) \
-                                      | CMDSTS_NBYTES(size) | CMDSTS_A | flags;
-
-    return EP_PENDING;
-}
-
-EP_STATUS USBHAL::endpointWriteResult(uint8_t endpoint) {
-    uint32_t bf;
-
-    // Validate parameters
-    if (endpoint > LAST_PHYSICAL_ENDPOINT) {
-        return EP_INVALID;
-    }
-
-    if (OUT_EP(endpoint)) {
-        return EP_INVALID;
-    }
-
-    if (LPC_USB->EPBUFCFG & EP(endpoint)) {
-        // Double buffered     // TODO: FIX THIS
-        if (LPC_USB->EPINUSE & EP(endpoint)) {
-            bf = 1;
-        } else {
-            bf = 0;
-        }
-    } else {
-        // Single buffered
-        bf = 0;
-    }
-
-    // Check if endpoint still active
-    if (ep[PHY_TO_LOG(endpoint)].in[bf] & CMDSTS_A) {
-        return EP_PENDING;
-    }
-
-    // Check if stalled
-    if (ep[PHY_TO_LOG(endpoint)].in[bf] & CMDSTS_S) {
-        return EP_STALLED;
-    }
-
-    return EP_COMPLETED;
-}
-
-void USBHAL::stallEndpoint(uint8_t endpoint) {
-
-    // FIX: should this clear active bit?
-    if (IN_EP(endpoint)) {
-        ep[PHY_TO_LOG(endpoint)].in[0] |= CMDSTS_S;
-        ep[PHY_TO_LOG(endpoint)].in[1] |= CMDSTS_S;
-    } else {
-        ep[PHY_TO_LOG(endpoint)].out[0] |= CMDSTS_S;
-        ep[PHY_TO_LOG(endpoint)].out[1] |= CMDSTS_S;
-    }
-}
-
-void USBHAL::unstallEndpoint(uint8_t endpoint) {
-    if (LPC_USB->EPBUFCFG & EP(endpoint)) {
-        // Double buffered
-        if (IN_EP(endpoint)) {
-            ep[PHY_TO_LOG(endpoint)].in[0] = 0; // S = 0
-            ep[PHY_TO_LOG(endpoint)].in[1] = 0; // S = 0
-
-            if (LPC_USB->EPINUSE & EP(endpoint)) {
-                ep[PHY_TO_LOG(endpoint)].in[1] = CMDSTS_TR; // S = 0, TR = 1, TV = 0
-            } else {
-                ep[PHY_TO_LOG(endpoint)].in[0] = CMDSTS_TR; // S = 0, TR = 1, TV = 0
-            }
-        } else {
-            ep[PHY_TO_LOG(endpoint)].out[0] = 0; // S = 0
-            ep[PHY_TO_LOG(endpoint)].out[1] = 0; // S = 0
-
-            if (LPC_USB->EPINUSE & EP(endpoint)) {
-                ep[PHY_TO_LOG(endpoint)].out[1] = CMDSTS_TR; // S = 0, TR = 1, TV = 0
-            } else {
-                ep[PHY_TO_LOG(endpoint)].out[0] = CMDSTS_TR; // S = 0, TR = 1, TV = 0
-            }
-        }
-    } else {
-        // Single buffered
-        if (IN_EP(endpoint)) {
-            ep[PHY_TO_LOG(endpoint)].in[0] = CMDSTS_TR;     // S = 0, TR = 1, TV = 0
-        } else {
-            ep[PHY_TO_LOG(endpoint)].out[0] = CMDSTS_TR;    // S = 0, TR = 1, TV = 0
-        }
-    }
-}
-
-bool USBHAL::getEndpointStallState(unsigned char endpoint) {
-    if (IN_EP(endpoint)) {
-        if (LPC_USB->EPINUSE & EP(endpoint)) {
-            if (ep[PHY_TO_LOG(endpoint)].in[1] & CMDSTS_S) {
-                return true;
-            }
-        } else {
-            if (ep[PHY_TO_LOG(endpoint)].in[0] & CMDSTS_S) {
-                return true;
-            }
-        }
-    } else {
-        if (LPC_USB->EPINUSE & EP(endpoint)) {
-            if (ep[PHY_TO_LOG(endpoint)].out[1] & CMDSTS_S) {
-                return true;
-            }
-        } else {
-            if (ep[PHY_TO_LOG(endpoint)].out[0] & CMDSTS_S) {
-                return true;
-            }
-        }
-    }
-
-    return false;
-}
-
-bool USBHAL::realiseEndpoint(uint8_t endpoint, uint32_t maxPacket, uint32_t options) {
-    uint32_t tmpEpRamPtr;
-
-    if (endpoint > LAST_PHYSICAL_ENDPOINT) {
-        return false;
-    }
-
-    // Not applicable to the control endpoints
-    if ((endpoint==EP0IN) || (endpoint==EP0OUT)) {
-        return false;
-    }
-
-    // Allocate buffers in USB RAM
-    tmpEpRamPtr = epRamPtr;
-
-    // Must be 64 byte aligned
-    tmpEpRamPtr = ROUND_UP_TO_MULTIPLE(tmpEpRamPtr, 64);
-
-    if ((tmpEpRamPtr + maxPacket) > (USB_RAM_START + USB_RAM_SIZE)) {
-        // Out of memory
-        return false;
-    }
-
-    // Allocate first buffer
-    endpointState[endpoint].buffer[0] = tmpEpRamPtr;
-    tmpEpRamPtr += maxPacket;
-
-    if (!(options & SINGLE_BUFFERED)) {
-        // Must be 64 byte aligned
-        tmpEpRamPtr = ROUND_UP_TO_MULTIPLE(tmpEpRamPtr, 64);
-
-        if ((tmpEpRamPtr + maxPacket) > (USB_RAM_START + USB_RAM_SIZE)) {
-            // Out of memory
-            return false;
-        }
-
-        // Allocate second buffer
-        endpointState[endpoint].buffer[1] = tmpEpRamPtr;
-        tmpEpRamPtr += maxPacket;
-    }
-
-    // Commit to this USB RAM allocation
-    epRamPtr = tmpEpRamPtr;
-
-    // Remaining endpoint state values
-    endpointState[endpoint].maxPacket = maxPacket;
-    endpointState[endpoint].options = options;
-
-    // Enable double buffering if required
-    if (options & SINGLE_BUFFERED) {
-        LPC_USB->EPBUFCFG &= ~EP(endpoint);
-    } else {
-        // Double buffered
-        LPC_USB->EPBUFCFG |= EP(endpoint);
-    }
-
-    // Enable interrupt
-    LPC_USB->INTEN |= EP(endpoint);
-
-    // Enable endpoint
-    unstallEndpoint(endpoint);
-    return true;
-}
-
-void USBHAL::remoteWakeup(void) {
-    // Clearing DSUS bit initiates a remote wakeup if the
-    // device is currently enabled and suspended - otherwise
-    // it has no effect.
-    LPC_USB->DEVCMDSTAT = devCmdStat & ~DSUS;
-}
-
-
-static void disableEndpoints(void) {
-    uint32_t logEp;
-
-    // Ref. Table 158 "When a bus reset is received, software
-    // must set the disable bit of all endpoints to 1".
-
-    for (logEp = 1; logEp < NUMBER_OF_LOGICAL_ENDPOINTS; logEp++) {
-        ep[logEp].out[0] = CMDSTS_D;
-        ep[logEp].out[1] = CMDSTS_D;
-        ep[logEp].in[0] =  CMDSTS_D;
-        ep[logEp].in[1] =  CMDSTS_D;
-    }
-
-    // Start of USB RAM for endpoints > 0
-    epRamPtr = usbRamPtr;
-}
-
-
-
-void USBHAL::_usbisr(void) {
-    instance->usbisr();
-}
-
-void USBHAL::usbisr(void) {
-    // Start of frame
-    if (LPC_USB->INTSTAT & FRAME_INT) {
-        // Clear SOF interrupt
-        LPC_USB->INTSTAT = FRAME_INT;
-
-        // SOF event, read frame number
-        SOF(FRAME_NR(LPC_USB->INFO));
-    }
-
-    // Device state
-    if (LPC_USB->INTSTAT & DEV_INT) {
-        LPC_USB->INTSTAT = DEV_INT;
-
-        if (LPC_USB->DEVCMDSTAT & DSUS_C) {
-            // Suspend status changed
-            LPC_USB->DEVCMDSTAT = devCmdStat | DSUS_C;
-            if((LPC_USB->DEVCMDSTAT & DSUS) != 0) {
-                suspendStateChanged(1);
-            }
-        }
-
-        if (LPC_USB->DEVCMDSTAT & DRES_C) {
-            // Bus reset
-            LPC_USB->DEVCMDSTAT = devCmdStat | DRES_C;
-
-            suspendStateChanged(0);
-
-            // Disable endpoints > 0
-            disableEndpoints();
-
-            // Bus reset event
-            busReset();
-        }
-    }
-
-    // Endpoint 0
-    if (LPC_USB->INTSTAT & EP(EP0OUT)) {
-        // Clear EP0OUT/SETUP interrupt
-        LPC_USB->INTSTAT = EP(EP0OUT);
-
-        // Check if SETUP
-        if (LPC_USB->DEVCMDSTAT & SETUP) {
-            // Clear Active and Stall bits for EP0
-            // Documentation does not make it clear if we must use the
-            // EPSKIP register to achieve this, Fig. 16 and NXP reference
-            // code suggests we can just clear the Active bits - check with
-            // NXP to be sure.
-            ep[0].in[0] = 0;
-            ep[0].out[0] = 0;
-
-            // Clear EP0IN interrupt
-            LPC_USB->INTSTAT = EP(EP0IN);
-
-            // Clear SETUP (and INTONNAK_CI/O) in device status register
-            LPC_USB->DEVCMDSTAT = devCmdStat | SETUP;
-
-            // EP0 SETUP event (SETUP data received)
-            EP0setupCallback();
-        } else {
-            // EP0OUT ACK event (OUT data received)
-            EP0out();
-        }
-    }
-
-    if (LPC_USB->INTSTAT & EP(EP0IN)) {
-        // Clear EP0IN interrupt
-        LPC_USB->INTSTAT = EP(EP0IN);
-
-        // EP0IN ACK event (IN data sent)
-        EP0in();
-    }
-
-    for (uint8_t num = 2; num < 5*2; num++) {
-        if (LPC_USB->INTSTAT & EP(num)) {
-            LPC_USB->INTSTAT = EP(num);
-            epComplete |= EP(num);
-            if ((instance->*(epCallback[num - 2]))()) {
-                epComplete &= ~EP(num);
-            }
-        }
-    }
-}
-
-#endif
--- a/USBDevice/USBHAL_LPC17.cpp	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,623 +0,0 @@
-/* Copyright (c) 2010-2011 mbed.org, MIT License
-*
-* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-* and associated documentation files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use, copy, modify, merge, publish,
-* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following conditions:
-*
-* The above copyright notice and this permission notice shall be included in all copies or
-* substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
-* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#if defined(TARGET_LPC1768) || defined(TARGET_LPC2368) || defined(TARGET_LPC2460)
-
-#include "USBHAL.h"
-
-
-// Get endpoint direction
-#define IN_EP(endpoint)     ((endpoint) & 1U ? true : false)
-#define OUT_EP(endpoint)    ((endpoint) & 1U ? false : true)
-
-// Convert physical endpoint number to register bit
-#define EP(endpoint) (1UL<<endpoint)
-
-// Power Control for Peripherals register
-#define PCUSB      (1UL<<31)
-
-// USB Clock Control register
-#define DEV_CLK_EN (1UL<<1)
-#define AHB_CLK_EN (1UL<<4)
-
-// USB Clock Status register
-#define DEV_CLK_ON (1UL<<1)
-#define AHB_CLK_ON (1UL<<4)
-
-// USB Device Interupt registers
-#define FRAME      (1UL<<0)
-#define EP_FAST    (1UL<<1)
-#define EP_SLOW    (1UL<<2)
-#define DEV_STAT   (1UL<<3)
-#define CCEMPTY    (1UL<<4)
-#define CDFULL     (1UL<<5)
-#define RxENDPKT   (1UL<<6)
-#define TxENDPKT   (1UL<<7)
-#define EP_RLZED   (1UL<<8)
-#define ERR_INT    (1UL<<9)
-
-// USB Control register
-#define RD_EN (1<<0)
-#define WR_EN (1<<1)
-#define LOG_ENDPOINT(endpoint) ((endpoint>>1)<<2)
-
-// USB Receive Packet Length register
-#define DV      (1UL<<10)
-#define PKT_RDY (1UL<<11)
-#define PKT_LNGTH_MASK (0x3ff)
-
-// Serial Interface Engine (SIE)
-#define SIE_WRITE   (0x01)
-#define SIE_READ    (0x02)
-#define SIE_COMMAND (0x05)
-#define SIE_CMD_CODE(phase, data) ((phase<<8)|(data<<16))
-
-// SIE Command codes
-#define SIE_CMD_SET_ADDRESS        (0xD0)
-#define SIE_CMD_CONFIGURE_DEVICE   (0xD8)
-#define SIE_CMD_SET_MODE           (0xF3)
-#define SIE_CMD_READ_FRAME_NUMBER  (0xF5)
-#define SIE_CMD_READ_TEST_REGISTER (0xFD)
-#define SIE_CMD_SET_DEVICE_STATUS  (0xFE)
-#define SIE_CMD_GET_DEVICE_STATUS  (0xFE)
-#define SIE_CMD_GET_ERROR_CODE     (0xFF)
-#define SIE_CMD_READ_ERROR_STATUS  (0xFB)
-
-#define SIE_CMD_SELECT_ENDPOINT(endpoint)                 (0x00+endpoint)
-#define SIE_CMD_SELECT_ENDPOINT_CLEAR_INTERRUPT(endpoint) (0x40+endpoint)
-#define SIE_CMD_SET_ENDPOINT_STATUS(endpoint)             (0x40+endpoint)
-
-#define SIE_CMD_CLEAR_BUFFER    (0xF2)
-#define SIE_CMD_VALIDATE_BUFFER (0xFA)
-
-// SIE Device Status register
-#define SIE_DS_CON    (1<<0)
-#define SIE_DS_CON_CH (1<<1)
-#define SIE_DS_SUS    (1<<2)
-#define SIE_DS_SUS_CH (1<<3)
-#define SIE_DS_RST    (1<<4)
-
-// SIE Device Set Address register
-#define SIE_DSA_DEV_EN  (1<<7)
-
-// SIE Configue Device register
-#define SIE_CONF_DEVICE (1<<0)
-
-// Select Endpoint register
-#define SIE_SE_FE       (1<<0)
-#define SIE_SE_ST       (1<<1)
-#define SIE_SE_STP      (1<<2)
-#define SIE_SE_PO       (1<<3)
-#define SIE_SE_EPN      (1<<4)
-#define SIE_SE_B_1_FULL (1<<5)
-#define SIE_SE_B_2_FULL (1<<6)
-
-// Set Endpoint Status command
-#define SIE_SES_ST      (1<<0)
-#define SIE_SES_DA      (1<<5)
-#define SIE_SES_RF_MO   (1<<6)
-#define SIE_SES_CND_ST  (1<<7)
-
-
-USBHAL * USBHAL::instance;
-
-static volatile int epComplete;
-static uint32_t endpointStallState;
-
-static void SIECommand(uint32_t command) {
-    // The command phase of a SIE transaction
-    LPC_USB->USBDevIntClr = CCEMPTY;
-    LPC_USB->USBCmdCode = SIE_CMD_CODE(SIE_COMMAND, command);
-    while (!(LPC_USB->USBDevIntSt & CCEMPTY));
-}
-
-static void SIEWriteData(uint8_t data) {
-    // The data write phase of a SIE transaction
-    LPC_USB->USBDevIntClr = CCEMPTY;
-    LPC_USB->USBCmdCode = SIE_CMD_CODE(SIE_WRITE, data);
-    while (!(LPC_USB->USBDevIntSt & CCEMPTY));
-}
-
-static uint8_t SIEReadData(uint32_t command) {
-    // The data read phase of a SIE transaction
-    LPC_USB->USBDevIntClr = CDFULL;
-    LPC_USB->USBCmdCode = SIE_CMD_CODE(SIE_READ, command);
-    while (!(LPC_USB->USBDevIntSt & CDFULL));
-    return (uint8_t)LPC_USB->USBCmdData;
-}
-
-static void SIEsetDeviceStatus(uint8_t status) {
-    // Write SIE device status register
-    SIECommand(SIE_CMD_SET_DEVICE_STATUS);
-    SIEWriteData(status);
-}
-
-static uint8_t SIEgetDeviceStatus(void) {
-    // Read SIE device status register
-    SIECommand(SIE_CMD_GET_DEVICE_STATUS);
-    return SIEReadData(SIE_CMD_GET_DEVICE_STATUS);
-}
-
-void SIEsetAddress(uint8_t address) {
-    // Write SIE device address register
-    SIECommand(SIE_CMD_SET_ADDRESS);
-    SIEWriteData((address & 0x7f) | SIE_DSA_DEV_EN);
-}
-
-static uint8_t SIEselectEndpoint(uint8_t endpoint) {
-    // SIE select endpoint command
-    SIECommand(SIE_CMD_SELECT_ENDPOINT(endpoint));
-    return SIEReadData(SIE_CMD_SELECT_ENDPOINT(endpoint));
-}
-
-static uint8_t SIEclearBuffer(void) {
-    // SIE clear buffer command
-    SIECommand(SIE_CMD_CLEAR_BUFFER);
-    return SIEReadData(SIE_CMD_CLEAR_BUFFER);
-}
-
-static void SIEvalidateBuffer(void) {
-    // SIE validate buffer command
-    SIECommand(SIE_CMD_VALIDATE_BUFFER);
-}
-
-static void SIEsetEndpointStatus(uint8_t endpoint, uint8_t status) {
-    // SIE set endpoint status command
-    SIECommand(SIE_CMD_SET_ENDPOINT_STATUS(endpoint));
-    SIEWriteData(status);
-}
-
-static uint16_t SIEgetFrameNumber(void) __attribute__ ((unused));
-static uint16_t SIEgetFrameNumber(void) {
-    // Read current frame number
-    uint16_t lowByte;
-    uint16_t highByte;
-
-    SIECommand(SIE_CMD_READ_FRAME_NUMBER);
-    lowByte = SIEReadData(SIE_CMD_READ_FRAME_NUMBER);
-    highByte = SIEReadData(SIE_CMD_READ_FRAME_NUMBER);
-
-    return (highByte << 8) | lowByte;
-}
-
-static void SIEconfigureDevice(void) {
-    // SIE Configure device command
-    SIECommand(SIE_CMD_CONFIGURE_DEVICE);
-    SIEWriteData(SIE_CONF_DEVICE);
-}
-
-static void SIEunconfigureDevice(void) {
-    // SIE Configure device command
-    SIECommand(SIE_CMD_CONFIGURE_DEVICE);
-    SIEWriteData(0);
-}
-
-static void SIEconnect(void) {
-    // Connect USB device
-    uint8_t status = SIEgetDeviceStatus();
-    SIEsetDeviceStatus(status | SIE_DS_CON);
-}
-
-
-static void SIEdisconnect(void) {
-    // Disconnect USB device
-    uint8_t status = SIEgetDeviceStatus();
-    SIEsetDeviceStatus(status & ~SIE_DS_CON);
-}
-
-
-static uint8_t selectEndpointClearInterrupt(uint8_t endpoint) {
-    // Implemented using using EP_INT_CLR.
-    LPC_USB->USBEpIntClr = EP(endpoint);
-    while (!(LPC_USB->USBDevIntSt & CDFULL));
-    return (uint8_t)LPC_USB->USBCmdData;
-}
-
-
-static void enableEndpointEvent(uint8_t endpoint) {
-    // Enable an endpoint interrupt
-    LPC_USB->USBEpIntEn |= EP(endpoint);
-}
-
-static void disableEndpointEvent(uint8_t endpoint) __attribute__ ((unused));
-static void disableEndpointEvent(uint8_t endpoint) {
-    // Disable an endpoint interrupt
-    LPC_USB->USBEpIntEn &= ~EP(endpoint);
-}
-
-static volatile uint32_t __attribute__((used)) dummyRead;
-uint32_t USBHAL::endpointReadcore(uint8_t endpoint, uint8_t *buffer) {
-    // Read from an OUT endpoint
-    uint32_t size;
-    uint32_t i;
-    uint32_t data = 0;
-    uint8_t offset;
-
-    LPC_USB->USBCtrl = LOG_ENDPOINT(endpoint) | RD_EN;
-    while (!(LPC_USB->USBRxPLen & PKT_RDY));
-
-    size = LPC_USB->USBRxPLen & PKT_LNGTH_MASK;
-
-    offset = 0;
-
-    if (size > 0) {
-        for (i=0; i<size; i++) {
-            if (offset==0) {
-                // Fetch up to four bytes of data as a word
-                data = LPC_USB->USBRxData;
-            }
-
-            // extract a byte
-            *buffer = (data>>offset) & 0xff;
-            buffer++;
-
-            // move on to the next byte
-            offset = (offset + 8) % 32;
-        }
-    } else {
-        dummyRead = LPC_USB->USBRxData;
-    }
-
-    LPC_USB->USBCtrl = 0;
-
-    if ((endpoint >> 1) % 3 || (endpoint >> 1) == 0) {
-        SIEselectEndpoint(endpoint);
-        SIEclearBuffer();
-    }
-
-    return size;
-}
-
-static void endpointWritecore(uint8_t endpoint, uint8_t *buffer, uint32_t size) {
-    // Write to an IN endpoint
-    uint32_t temp, data;
-    uint8_t offset;
-
-    LPC_USB->USBCtrl = LOG_ENDPOINT(endpoint) | WR_EN;
-
-    LPC_USB->USBTxPLen = size;
-    offset = 0;
-    data = 0;
-
-    if (size>0) {
-        do {
-            // Fetch next data byte into a word-sized temporary variable
-            temp = *buffer++;
-
-            // Add to current data word
-            temp = temp << offset;
-            data = data | temp;
-
-            // move on to the next byte
-            offset = (offset + 8) % 32;
-            size--;
-
-            if ((offset==0) || (size==0)) {
-                // Write the word to the endpoint
-                LPC_USB->USBTxData = data;
-                data = 0;
-            }
-        } while (size>0);
-    } else {
-        LPC_USB->USBTxData = 0;
-    }
-
-    // Clear WR_EN to cover zero length packet case
-    LPC_USB->USBCtrl=0;
-
-    SIEselectEndpoint(endpoint);
-    SIEvalidateBuffer();
-}
-
-USBHAL::USBHAL(void) {
-    // Disable IRQ
-    NVIC_DisableIRQ(USB_IRQn);
-
-    // fill in callback array
-    epCallback[0] = &USBHAL::EP1_OUT_callback;
-    epCallback[1] = &USBHAL::EP1_IN_callback;
-    epCallback[2] = &USBHAL::EP2_OUT_callback;
-    epCallback[3] = &USBHAL::EP2_IN_callback;
-    epCallback[4] = &USBHAL::EP3_OUT_callback;
-    epCallback[5] = &USBHAL::EP3_IN_callback;
-    epCallback[6] = &USBHAL::EP4_OUT_callback;
-    epCallback[7] = &USBHAL::EP4_IN_callback;
-    epCallback[8] = &USBHAL::EP5_OUT_callback;
-    epCallback[9] = &USBHAL::EP5_IN_callback;
-    epCallback[10] = &USBHAL::EP6_OUT_callback;
-    epCallback[11] = &USBHAL::EP6_IN_callback;
-    epCallback[12] = &USBHAL::EP7_OUT_callback;
-    epCallback[13] = &USBHAL::EP7_IN_callback;
-    epCallback[14] = &USBHAL::EP8_OUT_callback;
-    epCallback[15] = &USBHAL::EP8_IN_callback;
-    epCallback[16] = &USBHAL::EP9_OUT_callback;
-    epCallback[17] = &USBHAL::EP9_IN_callback;
-    epCallback[18] = &USBHAL::EP10_OUT_callback;
-    epCallback[19] = &USBHAL::EP10_IN_callback;
-    epCallback[20] = &USBHAL::EP11_OUT_callback;
-    epCallback[21] = &USBHAL::EP11_IN_callback;
-    epCallback[22] = &USBHAL::EP12_OUT_callback;
-    epCallback[23] = &USBHAL::EP12_IN_callback;
-    epCallback[24] = &USBHAL::EP13_OUT_callback;
-    epCallback[25] = &USBHAL::EP13_IN_callback;
-    epCallback[26] = &USBHAL::EP14_OUT_callback;
-    epCallback[27] = &USBHAL::EP14_IN_callback;
-    epCallback[28] = &USBHAL::EP15_OUT_callback;
-    epCallback[29] = &USBHAL::EP15_IN_callback;
-
-    // Enable power to USB device controller
-    LPC_SC->PCONP |= PCUSB;
-
-    // Enable USB clocks
-    LPC_USB->USBClkCtrl |= DEV_CLK_EN | AHB_CLK_EN;
-    while (LPC_USB->USBClkSt != (DEV_CLK_ON | AHB_CLK_ON));
-
-    // Configure pins P0.29 and P0.30 to be USB D+ and USB D-
-    LPC_PINCON->PINSEL1 &= 0xc3ffffff;
-    LPC_PINCON->PINSEL1 |= 0x14000000;
-
-    // Disconnect USB device
-    SIEdisconnect();
-
-    // Configure pin P2.9 to be Connect
-    LPC_PINCON->PINSEL4 &= 0xfffcffff;
-    LPC_PINCON->PINSEL4 |= 0x00040000;
-
-    // Connect must be low for at least 2.5uS
-    wait(0.3);
-
-    // Set the maximum packet size for the control endpoints
-    realiseEndpoint(EP0IN, MAX_PACKET_SIZE_EP0, 0);
-    realiseEndpoint(EP0OUT, MAX_PACKET_SIZE_EP0, 0);
-
-    // Attach IRQ
-    instance = this;
-    NVIC_SetVector(USB_IRQn, (uint32_t)&_usbisr);
-
-    // Enable interrupts for device events and EP0
-    LPC_USB->USBDevIntEn = EP_SLOW | DEV_STAT | FRAME;
-    enableEndpointEvent(EP0IN);
-    enableEndpointEvent(EP0OUT);
-}
-
-USBHAL::~USBHAL(void) {
-    // Ensure device disconnected
-    SIEdisconnect();
-    // Disable USB interrupts
-    NVIC_DisableIRQ(USB_IRQn);
-}
-
-void USBHAL::connect(void) {
-    NVIC_EnableIRQ(USB_IRQn);
-    // Connect USB device
-    SIEconnect();
-}
-
-void USBHAL::disconnect(void) {
-    NVIC_DisableIRQ(USB_IRQn);
-    // Disconnect USB device
-    SIEdisconnect();
-}
-
-void USBHAL::configureDevice(void) {
-    SIEconfigureDevice();
-}
-
-void USBHAL::unconfigureDevice(void) {
-    SIEunconfigureDevice();
-}
-
-void USBHAL::setAddress(uint8_t address) {
-    SIEsetAddress(address);
-}
-
-void USBHAL::EP0setup(uint8_t *buffer) {
-    endpointReadcore(EP0OUT, buffer);
-}
-
-void USBHAL::EP0read(void) {
-    // Not required
-}
-
-void USBHAL::EP0readStage(void) {
-    // Not required
-}
-
-uint32_t USBHAL::EP0getReadResult(uint8_t *buffer) {
-    return endpointReadcore(EP0OUT, buffer);
-}
-
-void USBHAL::EP0write(uint8_t *buffer, uint32_t size) {
-    endpointWritecore(EP0IN, buffer, size);
-}
-
-void USBHAL::EP0getWriteResult(void) {
-    // Not required
-}
-
-void USBHAL::EP0stall(void) {
-    // This will stall both control endpoints
-    stallEndpoint(EP0OUT);
-}
-
-EP_STATUS USBHAL::endpointRead(uint8_t endpoint, uint32_t maximumSize) {
-    return EP_PENDING;
-}
-
-EP_STATUS USBHAL::endpointReadResult(uint8_t endpoint, uint8_t * buffer, uint32_t *bytesRead) {
-
-    //for isochronous endpoint, we don't wait an interrupt
-    if ((endpoint >> 1) % 3 || (endpoint >> 1) == 0) {
-        if (!(epComplete & EP(endpoint)))
-            return EP_PENDING;
-    }
-
-    *bytesRead = endpointReadcore(endpoint, buffer);
-    epComplete &= ~EP(endpoint);
-    return EP_COMPLETED;
-}
-
-EP_STATUS USBHAL::endpointWrite(uint8_t endpoint, uint8_t *data, uint32_t size) {
-    if (getEndpointStallState(endpoint)) {
-        return EP_STALLED;
-    }
-
-    epComplete &= ~EP(endpoint);
-
-    endpointWritecore(endpoint, data, size);
-    return EP_PENDING;
-}
-
-EP_STATUS USBHAL::endpointWriteResult(uint8_t endpoint) {
-    if (epComplete & EP(endpoint)) {
-        epComplete &= ~EP(endpoint);
-        return EP_COMPLETED;
-    }
-
-    return EP_PENDING;
-}
-
-bool USBHAL::realiseEndpoint(uint8_t endpoint, uint32_t maxPacket, uint32_t flags) {
-    // Realise an endpoint
-    LPC_USB->USBDevIntClr = EP_RLZED;
-    LPC_USB->USBReEp |= EP(endpoint);
-    LPC_USB->USBEpInd = endpoint;
-    LPC_USB->USBMaxPSize = maxPacket;
-
-    while (!(LPC_USB->USBDevIntSt & EP_RLZED));
-    LPC_USB->USBDevIntClr = EP_RLZED;
-
-    // Clear stall state
-    endpointStallState &= ~EP(endpoint);
-
-    enableEndpointEvent(endpoint);
-    return true;
-}
-
-void USBHAL::stallEndpoint(uint8_t endpoint) {
-    // Stall an endpoint
-    if ( (endpoint==EP0IN) || (endpoint==EP0OUT) ) {
-        // Conditionally stall both control endpoints
-        SIEsetEndpointStatus(EP0OUT, SIE_SES_CND_ST);
-    } else {
-        SIEsetEndpointStatus(endpoint, SIE_SES_ST);
-
-        // Update stall state
-        endpointStallState |= EP(endpoint);
-    }
-}
-
-void USBHAL::unstallEndpoint(uint8_t endpoint) {
-    // Unstall an endpoint. The endpoint will also be reinitialised
-    SIEsetEndpointStatus(endpoint, 0);
-
-    // Update stall state
-    endpointStallState &= ~EP(endpoint);
-}
-
-bool USBHAL::getEndpointStallState(uint8_t endpoint) {
-    // Returns true if endpoint stalled
-    return endpointStallState & EP(endpoint);
-}
-
-void USBHAL::remoteWakeup(void) {
-    // Remote wakeup
-    uint8_t status;
-
-    // Enable USB clocks
-    LPC_USB->USBClkCtrl |= DEV_CLK_EN | AHB_CLK_EN;
-    while (LPC_USB->USBClkSt != (DEV_CLK_ON | AHB_CLK_ON));
-
-    status = SIEgetDeviceStatus();
-    SIEsetDeviceStatus(status & ~SIE_DS_SUS);
-}
-
-void USBHAL::_usbisr(void) {
-    instance->usbisr();
-}
-
-
-void USBHAL::usbisr(void) {
-    uint8_t devStat;
-
-    if (LPC_USB->USBDevIntSt & FRAME) {
-        // Start of frame event
-        SOF(SIEgetFrameNumber());
-        // Clear interrupt status flag
-        LPC_USB->USBDevIntClr = FRAME;
-    }
-
-    if (LPC_USB->USBDevIntSt & DEV_STAT) {
-        // Device Status interrupt
-        // Must clear the interrupt status flag before reading the device status from the SIE
-        LPC_USB->USBDevIntClr = DEV_STAT;
-
-        // Read device status from SIE
-        devStat = SIEgetDeviceStatus();
-        //printf("devStat: %d\r\n", devStat);
-
-        if (devStat & SIE_DS_SUS_CH) {
-            // Suspend status changed
-            if((devStat & SIE_DS_SUS) != 0) {
-                suspendStateChanged(0);
-            }
-        }
-
-        if (devStat & SIE_DS_RST) {
-            // Bus reset
-            if((devStat & SIE_DS_SUS) == 0) {
-                suspendStateChanged(1);
-            }
-            busReset();
-        }
-    }
-
-    if (LPC_USB->USBDevIntSt & EP_SLOW) {
-        // (Slow) Endpoint Interrupt
-
-        // Process each endpoint interrupt
-        if (LPC_USB->USBEpIntSt & EP(EP0OUT)) {
-            if (selectEndpointClearInterrupt(EP0OUT) & SIE_SE_STP) {
-                // this is a setup packet
-                EP0setupCallback();
-            } else {
-                EP0out();
-            }
-            LPC_USB->USBDevIntClr = EP_SLOW;
-        }
-
-        if (LPC_USB->USBEpIntSt & EP(EP0IN)) {
-            selectEndpointClearInterrupt(EP0IN);
-            LPC_USB->USBDevIntClr = EP_SLOW;
-            EP0in();
-        }
-
-        for (uint8_t num = 2; num < 16*2; num++) {
-            if (LPC_USB->USBEpIntSt & EP(num)) {
-                selectEndpointClearInterrupt(num);
-                epComplete |= EP(num);
-                LPC_USB->USBDevIntClr = EP_SLOW;
-                if ((instance->*(epCallback[num - 2]))()) {
-                    epComplete &= ~EP(num);
-                }
-            }
-        }
-    }
-}
-
-#endif
--- a/USBDevice/USBHAL_LPC40.cpp	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,628 +0,0 @@
-/* Copyright (c) 2010-2011 mbed.org, MIT License
-*
-* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-* and associated documentation files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use, copy, modify, merge, publish,
-* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following conditions:
-*
-* The above copyright notice and this permission notice shall be included in all copies or
-* substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
-* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#if defined(TARGET_LPC4088) || defined(TARGET_LPC4088_DM)
-
-#include "USBHAL.h"
-
-
-// Get endpoint direction
-#define IN_EP(endpoint)     ((endpoint) & 1U ? true : false)
-#define OUT_EP(endpoint)    ((endpoint) & 1U ? false : true)
-
-// Convert physical endpoint number to register bit
-#define EP(endpoint) (1UL<<endpoint)
-
-// Power Control for Peripherals register
-#define PCUSB      (1UL<<31)
-
-// USB Clock Control register
-#define DEV_CLK_EN  (1UL<<1)
-#define PORT_CLK_EN (1UL<<3)
-#define AHB_CLK_EN  (1UL<<4)
-
-// USB Clock Status register
-#define DEV_CLK_ON (1UL<<1)
-#define AHB_CLK_ON (1UL<<4)
-
-// USB Device Interupt registers
-#define FRAME      (1UL<<0)
-#define EP_FAST    (1UL<<1)
-#define EP_SLOW    (1UL<<2)
-#define DEV_STAT   (1UL<<3)
-#define CCEMPTY    (1UL<<4)
-#define CDFULL     (1UL<<5)
-#define RxENDPKT   (1UL<<6)
-#define TxENDPKT   (1UL<<7)
-#define EP_RLZED   (1UL<<8)
-#define ERR_INT    (1UL<<9)
-
-// USB Control register
-#define RD_EN (1<<0)
-#define WR_EN (1<<1)
-#define LOG_ENDPOINT(endpoint) ((endpoint>>1)<<2)
-
-// USB Receive Packet Length register
-#define DV      (1UL<<10)
-#define PKT_RDY (1UL<<11)
-#define PKT_LNGTH_MASK (0x3ff)
-
-// Serial Interface Engine (SIE)
-#define SIE_WRITE   (0x01)
-#define SIE_READ    (0x02)
-#define SIE_COMMAND (0x05)
-#define SIE_CMD_CODE(phase, data) ((phase<<8)|(data<<16))
-
-// SIE Command codes
-#define SIE_CMD_SET_ADDRESS        (0xD0)
-#define SIE_CMD_CONFIGURE_DEVICE   (0xD8)
-#define SIE_CMD_SET_MODE           (0xF3)
-#define SIE_CMD_READ_FRAME_NUMBER  (0xF5)
-#define SIE_CMD_READ_TEST_REGISTER (0xFD)
-#define SIE_CMD_SET_DEVICE_STATUS  (0xFE)
-#define SIE_CMD_GET_DEVICE_STATUS  (0xFE)
-#define SIE_CMD_GET_ERROR_CODE     (0xFF)
-#define SIE_CMD_READ_ERROR_STATUS  (0xFB)
-
-#define SIE_CMD_SELECT_ENDPOINT(endpoint)                 (0x00+endpoint)
-#define SIE_CMD_SELECT_ENDPOINT_CLEAR_INTERRUPT(endpoint) (0x40+endpoint)
-#define SIE_CMD_SET_ENDPOINT_STATUS(endpoint)             (0x40+endpoint)
-
-#define SIE_CMD_CLEAR_BUFFER    (0xF2)
-#define SIE_CMD_VALIDATE_BUFFER (0xFA)
-
-// SIE Device Status register
-#define SIE_DS_CON    (1<<0)
-#define SIE_DS_CON_CH (1<<1)
-#define SIE_DS_SUS    (1<<2)
-#define SIE_DS_SUS_CH (1<<3)
-#define SIE_DS_RST    (1<<4)
-
-// SIE Device Set Address register
-#define SIE_DSA_DEV_EN  (1<<7)
-
-// SIE Configue Device register
-#define SIE_CONF_DEVICE (1<<0)
-
-// Select Endpoint register
-#define SIE_SE_FE       (1<<0)
-#define SIE_SE_ST       (1<<1)
-#define SIE_SE_STP      (1<<2)
-#define SIE_SE_PO       (1<<3)
-#define SIE_SE_EPN      (1<<4)
-#define SIE_SE_B_1_FULL (1<<5)
-#define SIE_SE_B_2_FULL (1<<6)
-
-// Set Endpoint Status command
-#define SIE_SES_ST      (1<<0)
-#define SIE_SES_DA      (1<<5)
-#define SIE_SES_RF_MO   (1<<6)
-#define SIE_SES_CND_ST  (1<<7)
-
-
-USBHAL * USBHAL::instance;
-
-static volatile int epComplete;
-static uint32_t endpointStallState;
-
-static void SIECommand(uint32_t command) {
-    // The command phase of a SIE transaction
-    LPC_USB->DevIntClr = CCEMPTY;
-    LPC_USB->CmdCode = SIE_CMD_CODE(SIE_COMMAND, command);
-    while (!(LPC_USB->DevIntSt & CCEMPTY));
-}
-
-static void SIEWriteData(uint8_t data) {
-    // The data write phase of a SIE transaction
-    LPC_USB->DevIntClr = CCEMPTY;
-    LPC_USB->CmdCode = SIE_CMD_CODE(SIE_WRITE, data);
-    while (!(LPC_USB->DevIntSt & CCEMPTY));
-}
-
-static uint8_t SIEReadData(uint32_t command) {
-    // The data read phase of a SIE transaction
-    LPC_USB->DevIntClr = CDFULL;
-    LPC_USB->CmdCode = SIE_CMD_CODE(SIE_READ, command);
-    while (!(LPC_USB->DevIntSt & CDFULL));
-    return (uint8_t)LPC_USB->CmdData;
-}
-
-static void SIEsetDeviceStatus(uint8_t status) {
-    // Write SIE device status register
-    SIECommand(SIE_CMD_SET_DEVICE_STATUS);
-    SIEWriteData(status);
-}
-
-static uint8_t SIEgetDeviceStatus(void) {
-    // Read SIE device status register
-    SIECommand(SIE_CMD_GET_DEVICE_STATUS);
-    return SIEReadData(SIE_CMD_GET_DEVICE_STATUS);
-}
-
-void SIEsetAddress(uint8_t address) {
-    // Write SIE device address register
-    SIECommand(SIE_CMD_SET_ADDRESS);
-    SIEWriteData((address & 0x7f) | SIE_DSA_DEV_EN);
-}
-
-static uint8_t SIEselectEndpoint(uint8_t endpoint) {
-    // SIE select endpoint command
-    SIECommand(SIE_CMD_SELECT_ENDPOINT(endpoint));
-    return SIEReadData(SIE_CMD_SELECT_ENDPOINT(endpoint));
-}
-
-static uint8_t SIEclearBuffer(void) {
-    // SIE clear buffer command
-    SIECommand(SIE_CMD_CLEAR_BUFFER);
-    return SIEReadData(SIE_CMD_CLEAR_BUFFER);
-}
-
-static void SIEvalidateBuffer(void) {
-    // SIE validate buffer command
-    SIECommand(SIE_CMD_VALIDATE_BUFFER);
-}
-
-static void SIEsetEndpointStatus(uint8_t endpoint, uint8_t status) {
-    // SIE set endpoint status command
-    SIECommand(SIE_CMD_SET_ENDPOINT_STATUS(endpoint));
-    SIEWriteData(status);
-}
-
-static uint16_t SIEgetFrameNumber(void) __attribute__ ((unused));
-static uint16_t SIEgetFrameNumber(void) {
-    // Read current frame number
-    uint16_t lowByte;
-    uint16_t highByte;
-
-    SIECommand(SIE_CMD_READ_FRAME_NUMBER);
-    lowByte = SIEReadData(SIE_CMD_READ_FRAME_NUMBER);
-    highByte = SIEReadData(SIE_CMD_READ_FRAME_NUMBER);
-
-    return (highByte << 8) | lowByte;
-}
-
-static void SIEconfigureDevice(void) {
-    // SIE Configure device command
-    SIECommand(SIE_CMD_CONFIGURE_DEVICE);
-    SIEWriteData(SIE_CONF_DEVICE);
-}
-
-static void SIEunconfigureDevice(void) {
-    // SIE Configure device command
-    SIECommand(SIE_CMD_CONFIGURE_DEVICE);
-    SIEWriteData(0);
-}
-
-static void SIEconnect(void) {
-    // Connect USB device
-    uint8_t status = SIEgetDeviceStatus();
-    SIEsetDeviceStatus(status | SIE_DS_CON);
-}
-
-
-static void SIEdisconnect(void) {
-    // Disconnect USB device
-    uint8_t status = SIEgetDeviceStatus();
-    SIEsetDeviceStatus(status & ~SIE_DS_CON);
-}
-
-
-static uint8_t selectEndpointClearInterrupt(uint8_t endpoint) {
-    // Implemented using using EP_INT_CLR.
-    LPC_USB->EpIntClr = EP(endpoint);
-    while (!(LPC_USB->DevIntSt & CDFULL));
-    return (uint8_t)LPC_USB->CmdData;
-}
-
-
-static void enableEndpointEvent(uint8_t endpoint) {
-    // Enable an endpoint interrupt
-    LPC_USB->EpIntEn |= EP(endpoint);
-}
-
-static void disableEndpointEvent(uint8_t endpoint) __attribute__ ((unused));
-static void disableEndpointEvent(uint8_t endpoint) {
-    // Disable an endpoint interrupt
-    LPC_USB->EpIntEn &= ~EP(endpoint);
-}
-
-static volatile uint32_t __attribute__((used)) dummyRead;
-uint32_t USBHAL::endpointReadcore(uint8_t endpoint, uint8_t *buffer) {
-    // Read from an OUT endpoint
-    uint32_t size;
-    uint32_t i;
-    uint32_t data = 0;
-    uint8_t offset;
-
-    LPC_USB->Ctrl = LOG_ENDPOINT(endpoint) | RD_EN;
-    while (!(LPC_USB->RxPLen & PKT_RDY));
-
-    size = LPC_USB->RxPLen & PKT_LNGTH_MASK;
-
-    offset = 0;
-
-    if (size > 0) {
-        for (i=0; i<size; i++) {
-            if (offset==0) {
-                // Fetch up to four bytes of data as a word
-                data = LPC_USB->RxData;
-            }
-
-            // extract a byte
-            *buffer = (data>>offset) & 0xff;
-            buffer++;
-
-            // move on to the next byte
-            offset = (offset + 8) % 32;
-        }
-    } else {
-        dummyRead = LPC_USB->RxData;
-    }
-
-    LPC_USB->Ctrl = 0;
-
-    if ((endpoint >> 1) % 3 || (endpoint >> 1) == 0) {
-        SIEselectEndpoint(endpoint);
-        SIEclearBuffer();
-    }
-
-    return size;
-}
-
-static void endpointWritecore(uint8_t endpoint, uint8_t *buffer, uint32_t size) {
-    // Write to an IN endpoint
-    uint32_t temp, data;
-    uint8_t offset;
-
-    LPC_USB->Ctrl = LOG_ENDPOINT(endpoint) | WR_EN;
-
-    LPC_USB->TxPLen = size;
-    offset = 0;
-    data = 0;
-
-    if (size>0) {
-        do {
-            // Fetch next data byte into a word-sized temporary variable
-            temp = *buffer++;
-
-            // Add to current data word
-            temp = temp << offset;
-            data = data | temp;
-
-            // move on to the next byte
-            offset = (offset + 8) % 32;
-            size--;
-
-            if ((offset==0) || (size==0)) {
-                // Write the word to the endpoint
-                LPC_USB->TxData = data;
-                data = 0;
-            }
-        } while (size>0);
-    } else {
-        LPC_USB->TxData = 0;
-    }
-
-    // Clear WR_EN to cover zero length packet case
-    LPC_USB->Ctrl=0;
-
-    SIEselectEndpoint(endpoint);
-    SIEvalidateBuffer();
-}
-
-USBHAL::USBHAL(void) {
-    // Disable IRQ
-    NVIC_DisableIRQ(USB_IRQn);
-
-    // fill in callback array
-    epCallback[0] = &USBHAL::EP1_OUT_callback;
-    epCallback[1] = &USBHAL::EP1_IN_callback;
-    epCallback[2] = &USBHAL::EP2_OUT_callback;
-    epCallback[3] = &USBHAL::EP2_IN_callback;
-    epCallback[4] = &USBHAL::EP3_OUT_callback;
-    epCallback[5] = &USBHAL::EP3_IN_callback;
-    epCallback[6] = &USBHAL::EP4_OUT_callback;
-    epCallback[7] = &USBHAL::EP4_IN_callback;
-    epCallback[8] = &USBHAL::EP5_OUT_callback;
-    epCallback[9] = &USBHAL::EP5_IN_callback;
-    epCallback[10] = &USBHAL::EP6_OUT_callback;
-    epCallback[11] = &USBHAL::EP6_IN_callback;
-    epCallback[12] = &USBHAL::EP7_OUT_callback;
-    epCallback[13] = &USBHAL::EP7_IN_callback;
-    epCallback[14] = &USBHAL::EP8_OUT_callback;
-    epCallback[15] = &USBHAL::EP8_IN_callback;
-    epCallback[16] = &USBHAL::EP9_OUT_callback;
-    epCallback[17] = &USBHAL::EP9_IN_callback;
-    epCallback[18] = &USBHAL::EP10_OUT_callback;
-    epCallback[19] = &USBHAL::EP10_IN_callback;
-    epCallback[20] = &USBHAL::EP11_OUT_callback;
-    epCallback[21] = &USBHAL::EP11_IN_callback;
-    epCallback[22] = &USBHAL::EP12_OUT_callback;
-    epCallback[23] = &USBHAL::EP12_IN_callback;
-    epCallback[24] = &USBHAL::EP13_OUT_callback;
-    epCallback[25] = &USBHAL::EP13_IN_callback;
-    epCallback[26] = &USBHAL::EP14_OUT_callback;
-    epCallback[27] = &USBHAL::EP14_IN_callback;
-    epCallback[28] = &USBHAL::EP15_OUT_callback;
-    epCallback[29] = &USBHAL::EP15_IN_callback;
-
-    // Enable power to USB device controller
-    LPC_SC->PCONP |= PCUSB;
-
-    // Enable USB clocks
-    LPC_USB->USBClkCtrl |= DEV_CLK_EN | AHB_CLK_EN | PORT_CLK_EN;
-    while ((LPC_USB->USBClkSt & (DEV_CLK_EN | AHB_CLK_EN | PORT_CLK_EN)) != (DEV_CLK_ON | AHB_CLK_ON | PORT_CLK_EN));
-
-    // Select port USB2
-    LPC_USB->StCtrl |= 3;
-
-
-    // Configure pin P0.31 to be USB2
-    LPC_IOCON->P0_31 &= ~0x07;
-    LPC_IOCON->P0_31 |= 0x01;
-
-    // Disconnect USB device
-    SIEdisconnect();
-
-    // Configure pin P0.14 to be Connect
-    LPC_IOCON->P0_14 &= ~0x07;
-    LPC_IOCON->P0_14 |= 0x03;
-
-    // Connect must be low for at least 2.5uS
-    wait(0.3);
-
-    // Set the maximum packet size for the control endpoints
-    realiseEndpoint(EP0IN, MAX_PACKET_SIZE_EP0, 0);
-    realiseEndpoint(EP0OUT, MAX_PACKET_SIZE_EP0, 0);
-
-    // Attach IRQ
-    instance = this;
-    NVIC_SetVector(USB_IRQn, (uint32_t)&_usbisr);
-
-    // Enable interrupts for device events and EP0
-    LPC_USB->DevIntEn = EP_SLOW | DEV_STAT | FRAME;
-    enableEndpointEvent(EP0IN);
-    enableEndpointEvent(EP0OUT);
-}
-
-USBHAL::~USBHAL(void) {
-    // Ensure device disconnected
-    SIEdisconnect();
-    // Disable USB interrupts
-    NVIC_DisableIRQ(USB_IRQn);
-}
-
-void USBHAL::connect(void) {
-    NVIC_EnableIRQ(USB_IRQn);
-    // Connect USB device
-    SIEconnect();
-}
-
-void USBHAL::disconnect(void) {
-    NVIC_DisableIRQ(USB_IRQn);
-    // Disconnect USB device
-    SIEdisconnect();
-}
-
-void USBHAL::configureDevice(void) {
-    SIEconfigureDevice();
-}
-
-void USBHAL::unconfigureDevice(void) {
-    SIEunconfigureDevice();
-}
-
-void USBHAL::setAddress(uint8_t address) {
-    SIEsetAddress(address);
-}
-
-void USBHAL::EP0setup(uint8_t *buffer) {
-    endpointReadcore(EP0OUT, buffer);
-}
-
-void USBHAL::EP0read(void) {
-    // Not required
-}
-
-void USBHAL::EP0readStage(void) {
-    // Not required
-}
-
-uint32_t USBHAL::EP0getReadResult(uint8_t *buffer) {
-    return endpointReadcore(EP0OUT, buffer);
-}
-
-void USBHAL::EP0write(uint8_t *buffer, uint32_t size) {
-    endpointWritecore(EP0IN, buffer, size);
-}
-
-void USBHAL::EP0getWriteResult(void) {
-    // Not required
-}
-
-void USBHAL::EP0stall(void) {
-    // This will stall both control endpoints
-    stallEndpoint(EP0OUT);
-}
-
-EP_STATUS USBHAL::endpointRead(uint8_t endpoint, uint32_t maximumSize) {
-    return EP_PENDING;
-}
-
-EP_STATUS USBHAL::endpointReadResult(uint8_t endpoint, uint8_t * buffer, uint32_t *bytesRead) {
-
-    //for isochronous endpoint, we don't wait an interrupt
-    if ((endpoint >> 1) % 3 || (endpoint >> 1) == 0) {
-        if (!(epComplete & EP(endpoint)))
-            return EP_PENDING;
-    }
-
-    *bytesRead = endpointReadcore(endpoint, buffer);
-    epComplete &= ~EP(endpoint);
-    return EP_COMPLETED;
-}
-
-EP_STATUS USBHAL::endpointWrite(uint8_t endpoint, uint8_t *data, uint32_t size) {
-    if (getEndpointStallState(endpoint)) {
-        return EP_STALLED;
-    }
-
-    epComplete &= ~EP(endpoint);
-
-    endpointWritecore(endpoint, data, size);
-    return EP_PENDING;
-}
-
-EP_STATUS USBHAL::endpointWriteResult(uint8_t endpoint) {
-    if (epComplete & EP(endpoint)) {
-        epComplete &= ~EP(endpoint);
-        return EP_COMPLETED;
-    }
-
-    return EP_PENDING;
-}
-
-bool USBHAL::realiseEndpoint(uint8_t endpoint, uint32_t maxPacket, uint32_t flags) {
-    // Realise an endpoint
-    LPC_USB->DevIntClr = EP_RLZED;
-    LPC_USB->ReEp |= EP(endpoint);
-    LPC_USB->EpInd = endpoint;
-    LPC_USB->MaxPSize = maxPacket;
-
-    while (!(LPC_USB->DevIntSt & EP_RLZED));
-    LPC_USB->DevIntClr = EP_RLZED;
-
-    // Clear stall state
-    endpointStallState &= ~EP(endpoint);
-
-    enableEndpointEvent(endpoint);
-    return true;
-}
-
-void USBHAL::stallEndpoint(uint8_t endpoint) {
-    // Stall an endpoint
-    if ( (endpoint==EP0IN) || (endpoint==EP0OUT) ) {
-        // Conditionally stall both control endpoints
-        SIEsetEndpointStatus(EP0OUT, SIE_SES_CND_ST);
-    } else {
-        SIEsetEndpointStatus(endpoint, SIE_SES_ST);
-
-        // Update stall state
-        endpointStallState |= EP(endpoint);
-    }
-}
-
-void USBHAL::unstallEndpoint(uint8_t endpoint) {
-    // Unstall an endpoint. The endpoint will also be reinitialised
-    SIEsetEndpointStatus(endpoint, 0);
-
-    // Update stall state
-    endpointStallState &= ~EP(endpoint);
-}
-
-bool USBHAL::getEndpointStallState(uint8_t endpoint) {
-    // Returns true if endpoint stalled
-    return endpointStallState & EP(endpoint);
-}
-
-void USBHAL::remoteWakeup(void) {
-    // Remote wakeup
-    uint8_t status;
-
-    // Enable USB clocks
-    LPC_USB->USBClkCtrl |= DEV_CLK_EN | AHB_CLK_EN;
-    while (LPC_USB->USBClkSt != (DEV_CLK_ON | AHB_CLK_ON));
-
-    status = SIEgetDeviceStatus();
-    SIEsetDeviceStatus(status & ~SIE_DS_SUS);
-}
-
-void USBHAL::_usbisr(void) {
-    instance->usbisr();
-}
-
-
-void USBHAL::usbisr(void) {
-    uint8_t devStat;
-
-    if (LPC_USB->DevIntSt & FRAME) {
-        // Start of frame event
-        SOF(SIEgetFrameNumber());
-        // Clear interrupt status flag
-        LPC_USB->DevIntClr = FRAME;
-    }
-
-    if (LPC_USB->DevIntSt & DEV_STAT) {
-        // Device Status interrupt
-        // Must clear the interrupt status flag before reading the device status from the SIE
-        LPC_USB->DevIntClr = DEV_STAT;
-
-        // Read device status from SIE
-        devStat = SIEgetDeviceStatus();
-        //printf("devStat: %d\r\n", devStat);
-
-        if (devStat & SIE_DS_SUS_CH) {
-            // Suspend status changed
-            if((devStat & SIE_DS_SUS) != 0) {
-                suspendStateChanged(0);
-            }
-        }
-
-        if (devStat & SIE_DS_RST) {
-            // Bus reset
-            if((devStat & SIE_DS_SUS) == 0) {
-                suspendStateChanged(1);
-            }
-            busReset();
-        }
-    }
-
-    if (LPC_USB->DevIntSt & EP_SLOW) {
-        // (Slow) Endpoint Interrupt
-
-        // Process each endpoint interrupt
-        if (LPC_USB->EpIntSt & EP(EP0OUT)) {
-            if (selectEndpointClearInterrupt(EP0OUT) & SIE_SE_STP) {
-                // this is a setup packet
-                EP0setupCallback();
-            } else {
-                EP0out();
-            }
-            LPC_USB->DevIntClr = EP_SLOW;
-        }
-
-        if (LPC_USB->EpIntSt & EP(EP0IN)) {
-            selectEndpointClearInterrupt(EP0IN);
-            LPC_USB->DevIntClr = EP_SLOW;
-            EP0in();
-        }
-
-        for (uint8_t num = 2; num < 16*2; num++) {
-            if (LPC_USB->EpIntSt & EP(num)) {
-                selectEndpointClearInterrupt(num);
-                epComplete |= EP(num);
-                LPC_USB->DevIntClr = EP_SLOW;
-                if ((instance->*(epCallback[num - 2]))()) {
-                    epComplete &= ~EP(num);
-                }
-            }
-        }
-    }
-}
-
-#endif
--- a/USBDevice/USBHAL_Maxim.cpp	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,473 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2015 Maxim Integrated Products, Inc., All Rights Reserved.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
- * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
- * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
- *
- * Except as contained in this notice, the name of Maxim Integrated
- * Products, Inc. shall not be used except as stated in the Maxim Integrated
- * Products, Inc. Branding Policy.
- *
- * The mere transfer of this software does not imply any licenses
- * of trade secrets, proprietary technology, copyrights, patents,
- * trademarks, maskwork rights, or any other form of intellectual
- * property whatsoever. Maxim Integrated Products, Inc. retains all
- * ownership rights.
- *******************************************************************************
- */
-
-#if defined(TARGET_Maxim)
-
-#include "USBHAL.h"
-#include "usb_regs.h"
-#include "clkman_regs.h"
-
-#define CONNECT_INTS    (MXC_F_USB_DEV_INTEN_BRST | MXC_F_USB_DEV_INTEN_SETUP | MXC_F_USB_DEV_INTEN_EP_IN | MXC_F_USB_DEV_INTEN_EP_OUT | MXC_F_USB_DEV_INTEN_DMA_ERR)
-
-USBHAL *USBHAL::instance;
-
-typedef struct {
-    volatile uint32_t buf0_desc;
-    volatile uint32_t buf0_address;
-    volatile uint32_t buf1_desc;
-    volatile uint32_t buf1_address;
-} ep_buffer_t;
-
-typedef struct {
-    ep_buffer_t out_buffer;
-    ep_buffer_t in_buffer;
-} ep0_buffer_t;
-
-typedef struct {
-    ep0_buffer_t ep0;
-    ep_buffer_t ep[MXC_USB_NUM_EP - 1];
-} ep_buffer_descriptor_t;
-
-// Static storage for endpoint buffer descriptor table. Must be 512 byte alligned for DMA.
-#ifdef __IAR_SYSTEMS_ICC__
-#pragma data_alignment = 512
-#else
-__attribute__ ((aligned (512))) 
-#endif
-ep_buffer_descriptor_t ep_buffer_descriptor;
-
-// static storage for temporary data buffers. Must be 32 byte alligned.
-#ifdef __IAR_SYSTEMS_ICC__
-#pragma data_alignment = 4
-#else
-__attribute__ ((aligned (4))) 
-#endif
-static uint8_t aligned_buffer[NUMBER_OF_LOGICAL_ENDPOINTS][MXC_USB_MAX_PACKET];
-
-// contorl packet state
-static enum {
-    CTRL_NONE = 0,
-    CTRL_SETUP,
-    CTRL_OUT,
-    CTRL_IN,
-} control_state;
-
-USBHAL::USBHAL(void)
-{
-    NVIC_DisableIRQ(USB_IRQn);
-
-    // The PLL must be enabled for USB
-    MBED_ASSERT(MXC_CLKMAN->clk_config & MXC_F_CLKMAN_CLK_CONFIG_PLL_ENABLE);
-
-    // Enable the USB clock
-    MXC_CLKMAN->clk_ctrl |= MXC_F_CLKMAN_CLK_CTRL_USB_GATE_N;
-
-    // reset the device
-    MXC_USB->cn = 0;
-    MXC_USB->cn = 1;
-    MXC_USB->dev_inten = 0;
-    MXC_USB->dev_cn = 0;
-    MXC_USB->dev_cn = MXC_F_USB_DEV_CN_URST;
-    MXC_USB->dev_cn = 0;
-
-    // fill in callback arrays
-    epCallback[EP0OUT] = NULL;
-    epCallback[EP0IN]  = NULL;
-    epCallback[EP1OUT] = &USBHAL::EP1_OUT_callback;
-    epCallback[EP1IN ] = &USBHAL::EP1_IN_callback;
-    epCallback[EP2OUT] = &USBHAL::EP2_OUT_callback;
-    epCallback[EP2IN ] = &USBHAL::EP2_IN_callback;
-    epCallback[EP3OUT] = &USBHAL::EP3_OUT_callback;
-    epCallback[EP3IN ] = &USBHAL::EP3_IN_callback;
-    epCallback[EP4OUT] = &USBHAL::EP4_OUT_callback;
-    epCallback[EP4IN ] = &USBHAL::EP4_IN_callback;
-    epCallback[EP5OUT] = &USBHAL::EP5_OUT_callback;
-    epCallback[EP5IN ] = &USBHAL::EP5_IN_callback;
-    epCallback[EP6OUT] = &USBHAL::EP6_OUT_callback;
-    epCallback[EP6IN ] = &USBHAL::EP6_IN_callback;
-    epCallback[EP7OUT] = &USBHAL::EP7_OUT_callback;
-    epCallback[EP7IN ] = &USBHAL::EP7_IN_callback;
-
-    // clear driver state
-    control_state = CTRL_NONE;
-
-    // set the descriptor location
-    MXC_USB->ep_base = (uint32_t)&ep_buffer_descriptor;
-
-    // attach IRQ handler and enable interrupts
-    instance = this;
-    NVIC_SetVector(USB_IRQn, (uint32_t)&_usbisr);
-    NVIC_EnableIRQ(USB_IRQn);
-}
-
-USBHAL::~USBHAL(void)
-{
-    MXC_USB->dev_cn = MXC_F_USB_DEV_CN_URST;
-    MXC_USB->dev_cn = 0;
-    MXC_USB->cn = 0;
-}
-
-void USBHAL::connect(void)
-{
-    // enable interrupts
-    MXC_USB->dev_inten |= CONNECT_INTS;
-
-    // allow interrupts on ep0
-    MXC_USB->ep[0] |= MXC_F_USB_EP_INT_EN;
-
-    // pullup enable
-    MXC_USB->dev_cn |= (MXC_F_USB_DEV_CN_CONNECT | MXC_F_USB_DEV_CN_FIFO_MODE);
-}
-
-void USBHAL::disconnect(void)
-{
-    // disable interrupts
-    MXC_USB->dev_inten &= ~CONNECT_INTS;
-
-    // disable pullup
-    MXC_USB->dev_cn &= ~MXC_F_USB_DEV_CN_CONNECT;
-}
-
-void USBHAL::configureDevice(void)
-{
-    // do nothing
-}
-
-void USBHAL::unconfigureDevice(void)
-{
-    // reset endpoints
-    for (int i = 0; i < MXC_USB_NUM_EP; i++) {
-        // Disable endpoint and clear the data toggle
-        MXC_USB->ep[i] &= ~MXC_F_USB_EP_DIR;
-        MXC_USB->ep[i] |= MXC_F_USB_EP_DT;
-    }
-}
-
-void USBHAL::setAddress(uint8_t address)
-{
-    // do nothing
-}
-
-void USBHAL::remoteWakeup(void)
-{
-    // do nothing
-}
-
-static ep_buffer_t *get_desc(uint8_t endpoint)
-{
-    uint8_t epnum = EP_NUM(endpoint);
-    ep_buffer_t *desc;
-
-    if (epnum == 0) {
-        if (IN_EP(endpoint)) {
-            desc = &ep_buffer_descriptor.ep0.in_buffer;
-        } else {
-            desc = &ep_buffer_descriptor.ep0.out_buffer;
-        }
-    } else {
-        desc = &ep_buffer_descriptor.ep[epnum - 1];
-    }
-
-    return desc;
-}
-
-void USBHAL::EP0setup(uint8_t *buffer)
-{
-    memcpy(buffer, (void*)&MXC_USB->setup0, 8); // setup packet is fixed at 8 bytes
-}
-
-void USBHAL::EP0read(void)
-{
-    if (control_state == CTRL_IN) {
-        // This is the status stage. ACK.
-        MXC_USB->ep[0] |= MXC_F_USB_EP_ST_ACK;
-        control_state = CTRL_NONE;
-        return;
-    }
-
-    control_state = CTRL_OUT;
-
-    endpointRead(EP0OUT, MAX_PACKET_SIZE_EP0);
-}
-
-void USBHAL::EP0readStage(void)
-{
-    // do nothing
-}
-
-uint32_t USBHAL::EP0getReadResult(uint8_t *buffer)
-{
-    uint32_t size;
-
-    if (MXC_USB->out_owner & 1) {
-        return 0;
-    }
-
-    // get the packet length and contents
-    ep_buffer_t *desc = get_desc(EP0OUT);
-    size = desc->buf0_desc;
-    memcpy(buffer, aligned_buffer[0], size);
-
-    return size;
-}
-
-void USBHAL::EP0write(uint8_t *buffer, uint32_t size)
-{
-    if ((size == 0) && (control_state != CTRL_IN)) {
-        // This is a status stage ACK. Handle in hardware.
-        MXC_USB->ep[0] |= MXC_F_USB_EP_ST_ACK;
-        control_state = CTRL_NONE;
-        return;
-    }
-
-    control_state = CTRL_IN;
-
-    endpointWrite(EP0IN, buffer, size);
-}
-
-void USBHAL::EP0stall(void)
-{
-    stallEndpoint(0);
-}
-
-EP_STATUS USBHAL::endpointRead(uint8_t endpoint, uint32_t maximumSize)
-{
-    uint8_t epnum = EP_NUM(endpoint);
-
-    if ((endpoint >= NUMBER_OF_PHYSICAL_ENDPOINTS) || IN_EP(endpoint)) {
-        return EP_INVALID;
-    }
-
-    if (maximumSize > MXC_USB_MAX_PACKET) {
-        return EP_INVALID;
-    }
-    
-    uint32_t mask = (1 << epnum);
-    if (MXC_USB->out_owner & mask) {
-        return EP_INVALID;
-    }
-
-    ep_buffer_t *desc = get_desc(endpoint);
-    desc->buf0_desc = maximumSize;
-    desc->buf0_address = (uint32_t)aligned_buffer[epnum];
-
-    MXC_USB->out_owner = mask;
-
-    return EP_PENDING;
-}
-
-EP_STATUS USBHAL::endpointReadResult(uint8_t endpoint, uint8_t *data, uint32_t *bytesRead)
-{
-    if ((endpoint >= NUMBER_OF_PHYSICAL_ENDPOINTS) || IN_EP(endpoint)) {
-        return EP_INVALID;
-    }
-
-    uint32_t mask = (1 << EP_NUM(endpoint));
-    if (MXC_USB->out_owner & mask) {
-        return EP_PENDING;
-    }
-
-    // get the packet length and contents
-    ep_buffer_t *desc = get_desc(endpoint);
-    *bytesRead = desc->buf0_desc;
-    memcpy(data, aligned_buffer[EP_NUM(endpoint)], *bytesRead);
-
-    return EP_COMPLETED;
-}
-
-EP_STATUS USBHAL::endpointWrite(uint8_t endpoint, uint8_t *data, uint32_t size)
-{
-    uint8_t epnum = EP_NUM(endpoint);
-
-    if ((endpoint >= NUMBER_OF_PHYSICAL_ENDPOINTS) || OUT_EP(endpoint)) {
-        return EP_INVALID;
-    }
-
-    if (size > MXC_USB_MAX_PACKET) {
-        return EP_INVALID;
-    }
-
-    uint32_t mask = (1 << epnum);
-    if (MXC_USB->in_owner & mask) {
-        return EP_INVALID;
-    }
-
-    memcpy(aligned_buffer[epnum], data, size);
-
-    ep_buffer_t *desc = get_desc(endpoint);
-    desc->buf0_desc = size;
-    desc->buf0_address = (uint32_t)aligned_buffer[epnum];
-
-    // start the DMA
-    MXC_USB->in_owner = mask;
-
-    return EP_PENDING;
-}
-
-EP_STATUS USBHAL::endpointWriteResult(uint8_t endpoint)
-{
-    uint32_t mask = (1 << EP_NUM(endpoint));
-    if (MXC_USB->in_owner & mask) {
-        return EP_PENDING;
-    }
-
-    return EP_COMPLETED;
-}
-
-void USBHAL::stallEndpoint(uint8_t endpoint)
-{
-    uint8_t epnum = EP_NUM(endpoint);
-
-    if (epnum == 0) {
-        MXC_USB->ep[epnum] |= MXC_F_USB_EP_ST_STALL;
-    }
-
-    MXC_USB->ep[epnum] |= MXC_F_USB_EP_STALL;
-}
-
-void USBHAL::unstallEndpoint(uint8_t endpoint)
-{
-    MXC_USB->ep[EP_NUM(endpoint)] &= ~MXC_F_USB_EP_STALL;
-}
-
-bool USBHAL::realiseEndpoint(uint8_t endpoint, uint32_t maxPacket, uint32_t options)
-{
-    uint8_t epnum = EP_NUM(endpoint);
-    uint32_t ep_ctrl;
-
-    if (epnum >= NUMBER_OF_PHYSICAL_ENDPOINTS) {
-        return false;
-    }
-
-    if (IN_EP(endpoint)) {
-        ep_ctrl = (MXC_V_USB_EP_DIR_IN << MXC_F_USB_EP_DIR_POS);
-    } else {
-        ep_ctrl = (MXC_S_USB_EP_DIR_OUT << MXC_F_USB_EP_DIR_POS);
-    }
-
-    ep_ctrl |= (MXC_F_USB_EP_DT | MXC_F_USB_EP_INT_EN);
-
-    MXC_USB->ep[epnum] = ep_ctrl;
-
-    return true;
-}
-
-bool USBHAL::getEndpointStallState(unsigned char endpoint)
-{
-    return !!(MXC_USB->ep[endpoint] & MXC_F_USB_EP_STALL);
-}
-
-void USBHAL::_usbisr(void)
-{
-    instance->usbisr();
-}
-
-void USBHAL::usbisr(void)
-{
-    // get and clear irqs
-    uint32_t irq_flags = MXC_USB->dev_intfl;
-    MXC_USB->dev_intfl = irq_flags;
-
-    // process only enabled interrupts
-    irq_flags &= MXC_USB->dev_inten;
-
-    // suspend 
-    if (irq_flags & MXC_F_USB_DEV_INTFL_SUSP) {
-        suspendStateChanged(1);
-    }
-
-    // bus reset
-    if (irq_flags & MXC_F_USB_DEV_INTFL_BRST) {
-
-        // reset endpoints
-        for (int i = 0; i < MXC_USB_NUM_EP; i++) {
-            // Disable endpoint and clear the data toggle
-            MXC_USB->ep[i] &= ~MXC_F_USB_EP_DIR;
-            MXC_USB->ep[i] |= MXC_F_USB_EP_DT;
-        }
-
-        // clear driver state
-        control_state = CTRL_NONE;
-
-        busReset();
-
-        // no need to process events after reset
-        return;
-    }
-
-    // Setup packet
-    if (irq_flags & MXC_F_USB_DEV_INTFL_SETUP) {
-        control_state = CTRL_SETUP;
-        EP0setupCallback();
-    }
-
-    // IN packets
-    if (irq_flags & MXC_F_USB_DEV_INTFL_EP_IN) {
-        // get and clear IN irqs
-        uint32_t in_irqs = MXC_USB->in_int;
-        MXC_USB->in_int = in_irqs;
-
-        if (in_irqs & 1) {
-            EP0in();
-        }
-
-        for (uint8_t epnum = 1; epnum < NUMBER_OF_LOGICAL_ENDPOINTS; epnum++) {
-            uint32_t irq_mask = (1 << epnum);
-            if (in_irqs & irq_mask) {
-                uint8_t endpoint = (epnum << 1) | DIR_IN;
-                (instance->*(epCallback[endpoint]))();
-            }
-        }
-    }
-
-    // OUT packets
-    if (irq_flags & MXC_F_USB_DEV_INTFL_EP_OUT) {
-        // get and clear OUT irqs
-        uint32_t out_irqs = MXC_USB->out_int;
-        MXC_USB->out_int = out_irqs;
-
-        if (out_irqs & 1) {
-            EP0out();
-        }
-
-        for (uint8_t epnum = 1; epnum < NUMBER_OF_LOGICAL_ENDPOINTS; epnum++) {
-            uint32_t irq_mask = (1 << epnum);
-            if (out_irqs & irq_mask) {
-                uint8_t endpoint = (epnum << 1) | DIR_OUT;
-                (instance->*(epCallback[endpoint]))();
-            }
-        }
-    }
-}
-
-#endif
--- a/USBDevice/USBHAL_RZ_A1H.cpp	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1497 +0,0 @@
-/* Copyright (c) 2010-2011 mbed.org, MIT License
-*
-* Permission is hereby granted, free of charge, to any person
-* obtaining a copy of this software and associated documentation
-* files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use,
-* copy, modify, merge, publish, distribute, sublicense, and/or
-* sell copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following
-* conditions:
-*
-* The above copyright notice and this permission notice shall be
-* included in all copies or substantial portions of the
-* Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
-* KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
-* WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
-* PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
-* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#if defined(TARGET_RZ_A1H)
-
-/*
-  This class can use the pipe1, pipe3 and pipe6 only. You should
-  re-program this class if you wanted to use other pipe.
- */
-
-/*************************************************************************/
-extern "C"
-{
-#include "r_typedefs.h"
-#include "iodefine.h"
-}
-#include "USBHAL.h"
-#include "devdrv_usb_function_api.h"
-#include "usb_iobitmask.h"
-#include "rza_io_regrw.h"
-#include "USBDevice_Types.h"
-#include "usb_function_setting.h"
-
-
-/*************************************************************************/
-/* constants */
-const struct PIPECFGREC {
-    uint16_t    endpoint;
-    uint16_t    pipesel;
-    uint16_t    pipecfg;
-    uint16_t    pipebuf;
-    uint16_t    pipemaxp;
-    uint16_t    pipeperi;
-} def_pipecfg[] = {
-    /*EP0OUT and EP0IN are configured by USB IP*/
-    {
-        EP1OUT, /*EP1: Host -> Func, INT*/
-        6 | USB_FUNCTION_D0FIFO_USE,
-        USB_FUNCTION_INTERRUPT |
-        USB_FUNCTION_BFREOFF   |
-        USB_FUNCTION_DBLBOFF   |
-        USB_FUNCTION_CNTMDON   |
-        USB_FUNCTION_SHTNAKOFF |
-        USB_FUNCTION_DIR_P_OUT |
-        USB_FUNCTION_EP1,
-        ( ( (  64) / 64 - 1 ) << 10 ) | 0x04u,
-        MAX_PACKET_SIZE_EP1,
-        DEVDRV_USBF_OFF |
-        ( 3 << USB_PIPEPERI_IITV_SHIFT ),
-    },
-    {
-        EP1IN,  /*EP1: Host <- Func, INT*/
-        7 | USB_FUNCTION_D1FIFO_USE,
-        USB_FUNCTION_INTERRUPT |
-        USB_FUNCTION_BFREOFF   |
-        USB_FUNCTION_DBLBOFF   |
-        USB_FUNCTION_CNTMDOFF  |
-        USB_FUNCTION_SHTNAKOFF |
-        USB_FUNCTION_DIR_P_IN  |
-        USB_FUNCTION_EP1,
-        ( ( (  64) / 64 - 1 ) << 10 ) | 0x05u,
-        MAX_PACKET_SIZE_EP1,
-        DEVDRV_USBF_OFF |
-        ( 3 << USB_PIPEPERI_IITV_SHIFT ),
-    },
-    {
-        EP2OUT, /*EP2: Host -> Func, BULK*/
-        3 | USB_FUNCTION_D0FIFO_USE,
-        USB_FUNCTION_BULK      |
-        USB_FUNCTION_BFREOFF   |
-        USB_FUNCTION_DBLBON    |
-        USB_FUNCTION_CNTMDON   |
-        USB_FUNCTION_SHTNAKON  |
-        USB_FUNCTION_DIR_P_OUT |
-        USB_FUNCTION_EP2,
-        ( ( (2048) / 64 - 1 ) << 10 ) | 0x30u,
-        MAX_PACKET_SIZE_EP2,
-        DEVDRV_USBF_OFF |
-        ( 0 << USB_PIPEPERI_IITV_SHIFT ),
-    },
-    {
-        EP2IN,  /*EP2: Host <- Func, BULK*/
-        4 | USB_FUNCTION_D1FIFO_USE,
-        USB_FUNCTION_BULK      |
-        USB_FUNCTION_BFREOFF   |
-        USB_FUNCTION_DBLBOFF   |
-        USB_FUNCTION_CNTMDON   |
-        USB_FUNCTION_SHTNAKOFF |
-        USB_FUNCTION_DIR_P_IN  |
-        USB_FUNCTION_EP2,
-        ( ( (2048) / 64 - 1 ) << 10 ) | 0x50u,
-        MAX_PACKET_SIZE_EP2,
-        DEVDRV_USBF_OFF |
-        ( 0 << USB_PIPEPERI_IITV_SHIFT ),
-    },
-    {
-        EP3OUT, /*EP3: Host -> Func, ISO*/
-        1 | USB_FUNCTION_D0FIFO_USE,
-        USB_FUNCTION_ISO       |
-        USB_FUNCTION_BFREOFF   |
-        USB_FUNCTION_DBLBON    |
-        USB_FUNCTION_CNTMDOFF  |
-        USB_FUNCTION_SHTNAKON  |
-        USB_FUNCTION_DIR_P_OUT |
-        USB_FUNCTION_EP3,
-        ( ( ( 512) / 64 - 1 ) << 10 ) | 0x10u,
-        MAX_PACKET_SIZE_EP3,
-        DEVDRV_USBF_OFF |
-        ( 0 << USB_PIPEPERI_IITV_SHIFT ),
-    },
-    {
-        EP3IN,  /*EP3: Host <- Func, ISO*/
-        2 | USB_FUNCTION_D1FIFO_USE,
-        USB_FUNCTION_ISO       |
-        USB_FUNCTION_BFREOFF   |
-        USB_FUNCTION_DBLBON    |
-        USB_FUNCTION_CNTMDOFF  |
-        USB_FUNCTION_SHTNAKOFF |
-        USB_FUNCTION_DIR_P_IN  |
-        USB_FUNCTION_EP3,
-        ( ( ( 512) / 64 - 1 ) << 10 ) | 0x20u,
-        MAX_PACKET_SIZE_EP3,
-        DEVDRV_USBF_OFF |
-        ( 0 << USB_PIPEPERI_IITV_SHIFT ),
-    },
-    { /*terminator*/
-        0, 0, 0, 0, 0,
-    },
-};
-
-
-/*************************************************************************/
-/* workareas */
-USBHAL * USBHAL::instance;
-
-static IRQn_Type    int_id;         /* interrupt ID          */
-static uint16_t     int_level;      /* initerrupt level      */
-static uint16_t     clock_mode;     /* input clock selector  */
-static uint16_t     mode;           /* USB speed (HIGH/FULL) */
-
-//static DigitalOut *usbx_en;
-
-static uint16_t     EP0_read_status;
-static uint16_t     EPx_read_status;
-
-static uint16_t setup_buffer[MAX_PACKET_SIZE_EP0 / 2];
-
-/* 0: not used / other: a pipe number to use recv_buffer*/
-static uint8_t  recv_buffer[MAX_PACKET_SIZE_EPBULK];
-volatile static uint16_t    recv_error;
-
-
-/*************************************************************************/
-/* prototypes for C */
-extern "C" {
-    void usbx_function_BRDYInterruptPIPE0 (uint16_t status, uint16_t intenb,
-        USBHAL *object, void (USBHAL::*EP0func)(void));
-
-    void usbx_function_BRDYInterrupt (uint16_t status, uint16_t intenb,
-        USBHAL *object, bool (USBHAL::*epCallback[])(void));
-
-    void usbx_function_NRDYInterruptPIPE0(uint16_t status, uint16_t intenb,
-        USBHAL *object, void (USBHAL::*EP0func)(void));
-
-    void usbx_function_NRDYInterrupt (uint16_t status, uint16_t intenb,
-        USBHAL *object, bool (USBHAL::*epCallback[])(void));
-
-    void usbx_function_BEMPInterruptPIPE0(uint16_t status, uint16_t intenb,
-        USBHAL *object, void (USBHAL::*EP0func)(void));
-
-    void usbx_function_BEMPInterrupt (uint16_t status, uint16_t intenb,
-        USBHAL *object, bool (USBHAL::*epCallback[])(void));
-}
-
-
-/*************************************************************************/
-/* macros */
-
-/******************************************************************************
- * Function Name: usbx_function_BRDYInterruptPIPE0
- * Description  : Executes BRDY interrupt for pipe0.
- * Arguments    : uint16_t status       ; BRDYSTS Register Value
- *              : uint16_t intenb       ; BRDYENB Register Value
- * Return Value : none
- *****************************************************************************/
-extern "C" {
-    void usbx_function_BRDYInterruptPIPE0 (
-        uint16_t status,
-        uint16_t intenb,
-        USBHAL *object,
-        void (USBHAL::*EP0func)(void)
-    )
-    {
-        volatile uint16_t dumy_sts;
-        uint16_t read_status;
-
-        USB20X.BRDYSTS =
-            (uint16_t)~g_usbx_function_bit_set[USB_FUNCTION_PIPE0];
-        RZA_IO_RegWrite_16(
-            &USB20X.CFIFOSEL, USB_FUNCTION_PIPE0,
-            USB_CFIFOSEL_CURPIPE_SHIFT, USB_CFIFOSEL_CURPIPE);
-
-        g_usbx_function_PipeDataSize[USB_FUNCTION_PIPE0] =
-            g_usbx_function_data_count[USB_FUNCTION_PIPE0];
-
-        read_status = usbx_function_read_buffer_c(USB_FUNCTION_PIPE0);
-
-        g_usbx_function_PipeDataSize[USB_FUNCTION_PIPE0] -=
-            g_usbx_function_data_count[USB_FUNCTION_PIPE0];
-
-        switch (read_status) {
-            case USB_FUNCTION_READING:      /* Continue of data read */
-            case USB_FUNCTION_READEND:      /* End of data read */
-                /* PID = BUF */
-                usbx_function_set_pid_buf(USB_FUNCTION_PIPE0);
-
-                /*callback*/
-                (object->*EP0func)();
-                break;
-
-            case USB_FUNCTION_READSHRT:     /* End of data read */
-                usbx_function_disable_brdy_int(USB_FUNCTION_PIPE0);
-                /* PID = BUF */
-                usbx_function_set_pid_buf(USB_FUNCTION_PIPE0);
-
-                /*callback*/
-                (object->*EP0func)();
-                break;
-
-            case USB_FUNCTION_READOVER:     /* FIFO access error */
-                /* Buffer Clear */
-                USB20X.CFIFOCTR = USB_FUNCTION_BITBCLR;
-                usbx_function_disable_brdy_int(USB_FUNCTION_PIPE0);
-                /* Req Error */
-                usbx_function_set_pid_stall(USB_FUNCTION_PIPE0);
-
-                /*callback*/
-                (object->*EP0func)();
-                break;
-
-            case DEVDRV_USBF_FIFOERROR:     /* FIFO access error */
-            default:
-                usbx_function_disable_brdy_int(USB_FUNCTION_PIPE0);
-                /* Req Error */
-                usbx_function_set_pid_stall(USB_FUNCTION_PIPE0);
-                break;
-        }
-        /* Three dummy reads for clearing interrupt requests */
-        dumy_sts = USB20X.BRDYSTS;
-    }
-}
-
-
-/******************************************************************************
- * Function Name: usbx_function_BRDYInterrupt
- * Description  : Executes BRDY interrupt uxclude pipe0.
- * Arguments    : uint16_t status       ; BRDYSTS Register Value
- *              : uint16_t intenb       ; BRDYENB Register Value
- * Return Value : none
- *****************************************************************************/
-extern "C" {
-    void usbx_function_BRDYInterrupt(
-        uint16_t status,
-        uint16_t intenb,
-        USBHAL *object,
-        bool (USBHAL::*epCallback[])(void)
-    )
-    {
-        volatile uint16_t dumy_sts;
-
-        /**************************************************************
-         * Function Name: usbx_function_brdy_int
-         * Description  : Executes BRDY interrupt(USB_FUNCTION_PIPE1-9).
-         *              : According to the pipe that interrupt is generated in,
-         *              : reads/writes buffer allocated in the pipe.
-         *              : This function is executed in the BRDY
-         *              : interrupt handler.  This function
-         *              : clears BRDY interrupt status and BEMP
-         *              : interrupt status.
-         * Arguments    : uint16_t Status    ; BRDYSTS Register Value
-         *              : uint16_t Int_enbl  ; BRDYENB Register Value
-         * Return Value : none
-         *************************************************************/
-        /* copied from usbx_function_intrn.c */
-        uint32_t int_sense = 0;
-        uint16_t pipe;
-        uint16_t pipebit;
-        uint16_t ep;
-
-        for (pipe = USB_FUNCTION_PIPE1; pipe <= USB_FUNCTION_MAX_PIPE_NO; pipe++) {
-            pipebit = g_usbx_function_bit_set[pipe];
-
-            if ((status & pipebit) && (intenb & pipebit)) {
-                USB20X.BRDYSTS = (uint16_t)~pipebit;
-                USB20X.BEMPSTS = (uint16_t)~pipebit;
-
-                switch (g_usbx_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE) {
-                    case USB_FUNCTION_D0FIFO_DMA:
-                        if (g_usbx_function_DmaStatus[USB_FUNCTION_D0FIFO] != USB_FUNCTION_DMA_READY) {
-                            /*now, DMA is not supported*/
-                            usbx_function_dma_interrupt_d0fifo(int_sense);
-                        }
-
-                        if (RZA_IO_RegRead_16(
-                                &g_usbx_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 0) {
-                            /*now, DMA is not supported*/
-                            usbx_function_read_dma(pipe);
-                            usbx_function_disable_brdy_int(pipe);
-                        } else {
-                            USB20X.D0FIFOCTR = USB_FUNCTION_BITBCLR;
-                            g_usbx_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_DONE;
-                        }
-                        break;
-
-                    case USB_FUNCTION_D1FIFO_DMA:
-                        if (g_usbx_function_DmaStatus[USB_FUNCTION_D1FIFO] != USB_FUNCTION_DMA_READY) {
-                            /*now, DMA is not supported*/
-                            usbx_function_dma_interrupt_d1fifo(int_sense);
-                        }
-
-                        if (RZA_IO_RegRead_16(
-                                &g_usbx_function_pipecfg[pipe], USB_PIPECFG_BFRE_SHIFT, USB_PIPECFG_BFRE) == 0) {
-                            /*now, DMA is not supported*/
-                            usbx_function_read_dma(pipe);
-                            usbx_function_disable_brdy_int(pipe);
-                        } else {
-                            USB20X.D1FIFOCTR = USB_FUNCTION_BITBCLR;
-                            g_usbx_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_DONE;
-                        }
-                        break;
-
-                    default:
-                        ep = (g_usbx_function_pipecfg[pipe] & USB_PIPECFG_EPNUM) >> USB_PIPECFG_EPNUM_SHIFT;
-                        ep <<= 1;
-                        if (RZA_IO_RegRead_16(
-                                &g_usbx_function_pipecfg[pipe], USB_PIPECFG_DIR_SHIFT, USB_PIPECFG_DIR) == 0) {
-                            /* read */
-                            EPx_read_status = DEVDRV_USBF_PIPE_WAIT;
-                            (object->*(epCallback[ep - 2])) ();
-                            EPx_read_status = DEVDRV_USBF_PIPE_DONE;
-                        } else {
-                            /* write */
-                            EPx_read_status = DEVDRV_USBF_PIPE_WAIT;
-                            (object->*(epCallback[ep - 2 + 1])) ();
-                            EPx_read_status = DEVDRV_USBF_PIPE_DONE;
-                            usbx_function_write_buffer(pipe);
-                        }
-                }
-            }
-        }
-        /* Three dummy reads for clearing interrupt requests */
-        dumy_sts = USB20X.BRDYSTS;
-    }
-}
-
-
-/******************************************************************************
- * Function Name: usbx_function_NRDYInterruptPIPE0
- * Description  : Executes NRDY interrupt for pipe0.
- * Arguments    : uint16_t status       ; NRDYSTS Register Value
- *              : uint16_t intenb       ; NRDYENB Register Value
- * Return Value : none
- *****************************************************************************/
-extern "C" {
-    void usbx_function_NRDYInterruptPIPE0(
-        uint16_t status,
-        uint16_t intenb,
-        USBHAL *object,
-        void (USBHAL::*EP0func)(void)
-    )
-    {
-        volatile uint16_t dumy_sts;
-
-        USB20X.NRDYSTS =
-            (uint16_t)~g_usbx_function_bit_set[USB_FUNCTION_PIPE0];
-
-        /* Three dummy reads for clearing interrupt requests */
-        dumy_sts = USB20X.NRDYSTS;
-    }
-}
-
-
-/******************************************************************************
- * Function Name: usbx_function_NRDYInterrupt
- * Description  : Executes NRDY interrupt exclude pipe0.
- * Arguments    : uint16_t status       ; NRDYSTS Register Value
- *              : uint16_t intenb       ; NRDYENB Register Value
- * Return Value : none
- *****************************************************************************/
-extern "C" {
-    void usbx_function_NRDYInterrupt(
-        uint16_t status,
-        uint16_t intenb,
-        USBHAL *object,
-        bool (USBHAL::*epCallback[])(void)
-    )
-    {
-        volatile uint16_t dumy_sts;
-
-        /**************************************************************
-         * Function Name: usbx_function_nrdy_int
-         * Description  : Executes NRDY interrupt(USB_FUNCTION_PIPE1-9).
-         *              : Checks NRDY interrupt cause by PID. When the cause if STALL,
-         *              : regards the pipe state as STALL and ends the processing.
-         *              : Then the cause is not STALL, increments the error count to
-         *              : communicate again. When the error count is 3, determines
-         *              : the pipe state as DEVDRV_USBF_PIPE_NORES and ends the processing.
-         *              : This function is executed in the NRDY interrupt handler.
-         *              : This function clears NRDY interrupt status.
-         * Arguments    : uint16_t status       ; NRDYSTS Register Value
-         *              : uint16_t int_enb      ; NRDYENB Register Value
-         * Return Value : none
-         *************************************************************/
-        /* copied from usbx_function_intrn.c */
-#if 0
-        uint16_t usefifo;
-#endif
-        uint16_t pid;
-        uint16_t pipe;
-        uint16_t bitcheck;
-#if 0
-        uint16_t mbw;
-        uint32_t size;
-#endif
-        uint16_t ep;
-
-        bitcheck = (uint16_t)(status & intenb);
-
-        USB20X.NRDYSTS = (uint16_t)~status;
-
-
-        if (RZA_IO_RegRead_16(&USB20X.SYSCFG0, USB_SYSCFG_DCFM_SHIFT, USB_SYSCFG_DCFM) == 1) {
-            /* USB HOST */
-            /* not support */
-
-        } else {
-            /* USB Function */
-            for (pipe = USB_FUNCTION_PIPE1; pipe <= USB_FUNCTION_MAX_PIPE_NO; pipe++) {
-                if ((bitcheck&g_usbx_function_bit_set[pipe]) != g_usbx_function_bit_set[pipe]) {
-                    continue;
-                }
-
-                if (g_usbx_function_pipe_status[pipe] != DEVDRV_USBF_PIPE_WAIT) {
-                    continue;
-                }
-
-#if 0
-                usbx_function_set_pid_nak(pipe);
-
-                size = (uint32_t)g_usbx_function_data_count[pipe];
-                mbw = usbx_function_get_mbw(
-                    size, (uint32_t)g_usbx_function_data_pointer[pipe]);
-
-                usefifo = (uint16_t)(g_usbx_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE);
-                switch (usefifo) {
-
-                    case USB_FUNCTION_D0FIFO_USE:
-                        usbx_function_set_curpipe(
-                            pipe, USB_FUNCTION_D0USE, DEVDRV_USBF_NO, mbw);
-                        USB20X.D0FIFOCTR = USB_FUNCTION_BITBCLR;
-                        break;
-
-                    case USB_FUNCTION_D1FIFO_USE:
-                        usbx_function_set_curpipe(
-                            pipe, USB_FUNCTION_D1USE, DEVDRV_USBF_NO, mbw);
-                        USB20X.D1FIFOCTR = USB_FUNCTION_BITBCLR;
-                        break;
-
-                    default:
-                        usbx_function_set_curpipe(
-                            pipe, USB_FUNCTION_CUSE, USB_FUNCTION_CFIFO_READ, mbw);
-                        USB20X.CFIFOCTR = USB_FUNCTION_BITBCLR;
-                        break;
-                }
-
-                usbx_function_aclrm(pipe);
-
-                usbx_function_enable_nrdy_int(pipe);
-                usbx_function_enable_brdy_int(pipe);
-
-                usbx_function_set_pid_buf(pipe);
-#endif
-
-                pid = usbx_function_get_pid(pipe);
-                if ((pid == DEVDRV_USBF_PID_STALL) || (pid == DEVDRV_USBF_PID_STALL2)) {
-                    g_usbx_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_STALL;
-                } else {
-                    usbx_function_set_pid_buf(pipe);
-                }
-
-                ep = (g_usbx_function_pipecfg[pipe] & USB_PIPECFG_EPNUM) >> USB_PIPECFG_EPNUM_SHIFT;
-                ep <<= 1;
-                if (RZA_IO_RegRead_16(
-                        &g_usbx_function_pipecfg[pipe], USB_PIPECFG_DIR_SHIFT, USB_PIPECFG_DIR) == 0) {
-                    /* read */
-                    __NOP();
-                } else {
-                    /* write */
-                    __NOP();
-                }
-            }
-        }
-
-        /* Three dummy reads for clearing interrupt requests */
-        dumy_sts = USB20X.NRDYSTS;
-    }
-}
-
-/******************************************************************************
- * Function Name: usbx_function_BEMPInterruptPIPE0
- * Description  : Executes BEMP interrupt for pipe0.
- * Arguments    : uint16_t status       ; BEMPSTS Register Value
- *              : uint16_t intenb       ; BEMPENB Register Value
- * Return Value : none
- *****************************************************************************/
-extern "C" {
-    void usbx_function_BEMPInterruptPIPE0(
-        uint16_t status,
-        uint16_t intenb,
-        USBHAL *object,
-        void (USBHAL::*EP0func)(void)
-    )
-    {
-        volatile uint16_t dumy_sts;
-
-        USB20X.BEMPSTS =
-            (uint16_t)~g_usbx_function_bit_set[USB_FUNCTION_PIPE0];
-        RZA_IO_RegWrite_16(
-            &USB20X.CFIFOSEL, USB_FUNCTION_PIPE0,
-            USB_CFIFOSEL_CURPIPE_SHIFT, USB_CFIFOSEL_CURPIPE);
-
-        /*usbx_function_write_buffer_c(USB_FUNCTION_PIPE0);*/
-        (object->*EP0func)();
-
-        /* Three dummy reads for clearing interrupt requests */
-        dumy_sts = USB20X.BEMPSTS;
-    }
-}
-
-
-/******************************************************************************
- * Function Name: usbx_function_BEMPInterrupt
- * Description  : Executes BEMP interrupt exclude pipe0.
- * Arguments    : uint16_t status       ; BEMPSTS Register Value
- *              : uint16_t intenb       ; BEMPENB Register Value
- * Return Value : none
- *****************************************************************************/
-extern "C" {
-    void usbx_function_BEMPInterrupt(
-        uint16_t status,
-        uint16_t intenb,
-        USBHAL *object,
-        bool (USBHAL::*epCallback[])(void)
-    )
-    {
-        volatile uint16_t dumy_sts;
-
-        /**************************************************************
-         * Function Name: usbx_function_bemp_int
-         * Description  : Executes BEMP interrupt(USB_FUNCTION_PIPE1-9).
-         * Arguments    : uint16_t status       ; BEMPSTS Register Value
-         *              : uint16_t intenb      ; BEMPENB Register Value
-         * Return Value : none
-         *************************************************************/
-        /* copied from usbx_function_intrn.c */
-        uint16_t pid;
-        uint16_t pipe;
-        uint16_t bitcheck;
-        uint16_t inbuf;
-        uint16_t ep;
-
-        bitcheck = (uint16_t)(status & intenb);
-
-        USB20X.BEMPSTS = (uint16_t)~status;
-
-        for (pipe = USB_FUNCTION_PIPE1; pipe <= USB_FUNCTION_MAX_PIPE_NO; pipe++) {
-            if ((bitcheck&g_usbx_function_bit_set[pipe]) != g_usbx_function_bit_set[pipe]) {
-                continue;
-            }
-
-            pid = usbx_function_get_pid(pipe);
-
-            if ((pid == DEVDRV_USBF_PID_STALL) ||
-                (pid == DEVDRV_USBF_PID_STALL2)) {
-                g_usbx_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_STALL;
-
-            } else {
-                inbuf = usbx_function_get_inbuf(pipe);
-
-                if (inbuf == 0) {
-                    usbx_function_disable_bemp_int(pipe);
-                    usbx_function_set_pid_nak(pipe);
-                    g_usbx_function_pipe_status[pipe] = DEVDRV_USBF_PIPE_DONE;
-
-                    switch (g_usbx_function_PipeTbl[pipe] & USB_FUNCTION_FIFO_USE) {
-                        case USB_FUNCTION_D0FIFO_DMA:
-                            /*now, DMA is not supported*/
-                            break;
-
-                        case USB_FUNCTION_D1FIFO_DMA:
-                            /*now, DMA is not supported*/
-                            break;
-
-                        default:
-                            ep = (g_usbx_function_pipecfg[pipe] & USB_PIPECFG_EPNUM) >> USB_PIPECFG_EPNUM_SHIFT;
-                            ep <<= 1;
-                            if (RZA_IO_RegRead_16(
-                                    &g_usbx_function_pipecfg[pipe], USB_PIPECFG_DIR_SHIFT, USB_PIPECFG_DIR) == 0) {
-                                /* read */
-                                __NOP();
-                            } else {
-                                /* write */
-                                EPx_read_status = DEVDRV_USBF_PIPE_WAIT;
-                                (object->*(epCallback[ep - 2 + 1])) ();
-                                EPx_read_status = DEVDRV_USBF_PIPE_DONE;
-                            }
-                    }
-                }
-            }
-        }
-
-        /* Three dummy reads for clearing interrupt requests */
-        dumy_sts = USB20X.BEMPSTS;
-    }
-}
-
-/******************************************************************************
- * Function Name: EP2PIPE
- * Description  : Converts from endpoint to pipe
- * Arguments    : number of endpoint
- * Return Value : number of pipe
- *****************************************************************************/
-/*EP2PIPE converter is for pipe1, pipe3 and pipe6 only.*/
-#define EP2PIPE(endpoint)   ((uint32_t)usbx_function_EpToPipe(endpoint))
-
-
-/******************************************************************************
- * Function Name: usbx_function_save_request
- * Description  : Retains the USB request information in variables.
- * Arguments    : none
- * Return Value : none
- *****************************************************************************/
-#define  usbx_function_save_request()                       \
-    {                                                       \
-        uint16_t *bufO = &setup_buffer[0];                  \
-                                                            \
-        USB20X.INTSTS0 = (uint16_t)~USB_FUNCTION_BITVALID;  \
-        /*data[0] <= bmRequest, data[1] <= bmRequestType */ \
-        *bufO++ = USB20X.USBREQ;                            \
-        /*data[2] data[3] <= wValue*/                       \
-        *bufO++ = USB20X.USBVAL;                            \
-        /*data[4] data[5] <= wIndex*/                       \
-        *bufO++ = USB20X.USBINDX;                           \
-        /*data[6] data[6] <= wIndex*/                       \
-        *bufO++ = USB20X.USBLENG;                           \
-    }
-
-
-/*************************************************************************/
-/*************************************************************************/
-/*************************************************************************/
-
-/*************************************************************************/
-/* constructor */
-USBHAL::USBHAL(void)
-{
-    /* ---- P4_1 : P4_1 (USB0_EN for GR-PEACH) ---- */
-    //usbx_en = new DigitalOut(P4_1, 1);
-
-    /* some constants */
-    int_id          = USBIX_IRQn;
-    int_level       = ( 2 << 3 );
-    clock_mode      = USBFCLOCK_X1_48MHZ;
-#if (USB_FUNCTION_HISPEED == 0)
-    mode            = USB_FUNCTION_FULL_SPEED;
-#else
-    mode            = USB_FUNCTION_HIGH_SPEED;
-#endif
-    EP0_read_status = DEVDRV_USBF_WRITEEND;
-    EPx_read_status = DEVDRV_USBF_PIPE_DONE;
-
-    /* Disables interrupt for usb */
-    GIC_DisableIRQ(int_id);
-
-    /* Setup the end point */
-    epCallback[ 0] = &USBHAL::EP1_OUT_callback;
-    epCallback[ 1] = &USBHAL::EP1_IN_callback;
-    epCallback[ 2] = &USBHAL::EP2_OUT_callback;
-    epCallback[ 3] = &USBHAL::EP2_IN_callback;
-    epCallback[ 4] = &USBHAL::EP3_OUT_callback;
-    epCallback[ 5] = &USBHAL::EP3_IN_callback;
-    epCallback[ 6] = &USBHAL::EP4_OUT_callback;
-    epCallback[ 7] = &USBHAL::EP4_IN_callback;
-    epCallback[ 8] = &USBHAL::EP5_OUT_callback;
-    epCallback[ 9] = &USBHAL::EP5_IN_callback;
-    epCallback[10] = &USBHAL::EP6_OUT_callback;
-    epCallback[11] = &USBHAL::EP6_IN_callback;
-    epCallback[12] = &USBHAL::EP7_OUT_callback;
-    epCallback[13] = &USBHAL::EP7_IN_callback;
-    epCallback[14] = &USBHAL::EP8_OUT_callback;
-    epCallback[15] = &USBHAL::EP8_IN_callback;
-    epCallback[16] = &USBHAL::EP9_OUT_callback;
-    epCallback[17] = &USBHAL::EP9_IN_callback;
-    epCallback[18] = &USBHAL::EP10_OUT_callback;
-    epCallback[19] = &USBHAL::EP10_IN_callback;
-    epCallback[20] = &USBHAL::EP11_OUT_callback;
-    epCallback[21] = &USBHAL::EP11_IN_callback;
-    epCallback[22] = &USBHAL::EP12_OUT_callback;
-    epCallback[23] = &USBHAL::EP12_IN_callback;
-    epCallback[24] = &USBHAL::EP13_OUT_callback;
-    epCallback[25] = &USBHAL::EP13_IN_callback;
-    epCallback[26] = &USBHAL::EP14_OUT_callback;
-    epCallback[27] = &USBHAL::EP14_IN_callback;
-    epCallback[28] = &USBHAL::EP15_OUT_callback;
-    epCallback[29] = &USBHAL::EP15_IN_callback;
-
-    /* registers me */
-    instance = this;
-
-    /* Clear pipe table */
-    usbx_function_clear_pipe_tbl();
-
-/******************************************************************************
- * Function Name: usbx_api_function_init
- * Description  : Initializes the USB module in the USB function mode.
- *****************************************************************************/
-    /* The clock of USB0 modules is permitted */
-#if (USB_FUNCTION_CH == 0)
-    CPG.STBCR7 &= ~(CPG_STBCR7_MSTP71);
-#else
-    CPG.STBCR7 &= ~(CPG_STBCR7_MSTP71 | CPG_STBCR7_MSTP70);
-#endif
-    volatile uint8_t    dummy8;
-    dummy8 = CPG.STBCR7;
-
-    {
-/******************************************************************************
- * Function Name: usbx_function_setting_interrupt
- * Description  : Sets the USB module interrupt level.
- *****************************************************************************/
-#if 0   /*DMA is not supported*/
-        IRQn_Type d0fifo_dmaintid;
-        IRQn_Type d1fifo_dmaintid;
-#endif
-
-        InterruptHandlerRegister(int_id, &_usbisr);
-        GIC_SetPriority(int_id, int_level);
-        GIC_EnableIRQ(int_id);
-
-#if 0   /*DMA is not supported*/
-        d0fifo_dmaintid = Userdef_USB_usbx_function_d0fifo_dmaintid();
-        if (d0fifo_dmaintid != 0xFFFF) {
-            InterruptHandlerRegister(d0fifo_dmaintid, usbx_function_dma_interrupt_d0fifo);
-            GIC_SetPriority(d0fifo_dmaintid, int_level);
-            GIC_EnableIRQ(d0fifo_dmaintid);
-        }
-#endif
-
-#if 0   /*DMA is not supported*/
-        d1fifo_dmaintid = Userdef_USB_usbx_function_d1fifo_dmaintid();
-        if (d1fifo_dmaintid != 0xFFFF) {
-            InterruptHandlerRegister(d1fifo_dmaintid, usbx_function_dma_interrupt_d1fifo);
-            GIC_SetPriority(d1fifo_dmaintid, int_level);
-            GIC_EnableIRQ(d1fifo_dmaintid);
-        }
-#endif
-/*****************************************************************************/
-    }
-
-    /* reset USB module with setting tranciever and HSE=1 */
-    usbx_function_reset_module(clock_mode);
-
-    /* clear variables */
-    usbx_function_init_status();
-
-    /* select USB Function and Interrupt Enable */
-    /* Detect USB Device to attach or detach    */
-    usbx_function_InitModule(mode);
-
-    {
-        uint16_t buf;
-        buf  = USB20X.INTENB0;
-        buf |= USB_INTENB0_SOFE;
-        USB20X.INTENB0 = buf;
-    }
-}
-
-/*************************************************************************/
-USBHAL::~USBHAL(void)
-{
-    /* Disables interrupt for usb */
-    GIC_DisableIRQ( int_id );
-    /* Unregisters interrupt function and priority */
-    InterruptHandlerRegister( int_id, (uint32_t)NULL );
-
-    //usbx_en  = NULL;
-    instance = NULL;
-}
-
-/*************************************************************************/
-void USBHAL::connect(void)
-{
-    /* Activates USB0_EN */
-    //(*usbx_en) = 0;
-}
-
-
-/*************************************************************************/
-void USBHAL::disconnect(void)
-{
-    /* Deactivates USB0_EN */
-    //(*usbx_en) = 1;
-}
-
-
-/*************************************************************************/
-void USBHAL::configureDevice(void)
-{
-    /*The pipes set up in USBHAL::realiseEndpoint*/
-    /*usbx_function_clear_alt();*/      /* Alternate setting clear */
-    /*usbx_function_set_pid_buf(USB_FUNCTION_PIPE0);*/
-}
-
-
-/*************************************************************************/
-void USBHAL::unconfigureDevice(void)
-{
-    /* The Interface would be managed by USBDevice */
-    /*usbx_function_clear_alt();*/      /* Alternate setting clear */
-    /*usbx_function_set_pid_buf(USB_FUNCTION_PIPE0);*/
-}
-
-
-/*************************************************************************/
-void USBHAL::setAddress(uint8_t address)
-{
-    if (address <= 127) {
-        usbx_function_set_pid_buf(USB_FUNCTION_PIPE0);      /* OK */
-    } else {
-        usbx_function_set_pid_stall(USB_FUNCTION_PIPE0);    /* Not Spec */
-    }
-}
-
-
-/*************************************************************************/
-bool USBHAL::realiseEndpoint(uint8_t endpoint, uint32_t maxPacket, uint32_t flags)
-{
-    const struct PIPECFGREC *cfg;
-    uint16_t pipe;
-    uint16_t buf;
-
-    if ( (EP0OUT == endpoint) || (EP0IN  == endpoint) ) {
-        return true;
-    }
-
-    for (cfg = &def_pipecfg[0]; cfg->pipesel != 0; cfg++) {
-        if (cfg->endpoint == endpoint) {
-            break;
-        }
-    }
-    if (cfg->pipesel == 0) {
-        return false;
-    }
-
-    pipe = ((cfg->pipesel & USB_PIPESEL_PIPESEL) >> USB_PIPESEL_PIPESEL_SHIFT);
-
-    g_usbx_function_PipeTbl[ pipe ] = (uint16_t)(endpoint | ((cfg->pipesel & USB_FUNCTION_FIFO_USE) << 0));
-
-    /* There are maintenance routine of SHTNAK and BFRE bits
-     * in original sample program. This sample is not
-     * programmed. Do maintenance the "def_pipecfg" array if
-     * you want it. */
-
-    /* Interrupt Disable */
-    buf  = USB20X.BRDYENB;
-    buf &= (uint16_t)~g_usbx_function_bit_set[pipe];
-    USB20X.BRDYENB = buf;
-    buf  = USB20X.NRDYENB;
-    buf &= (uint16_t)~g_usbx_function_bit_set[pipe];
-    USB20X.NRDYENB = buf;
-    buf  = USB20X.BEMPENB;
-    buf &= (uint16_t)~g_usbx_function_bit_set[pipe];
-    USB20X.BEMPENB = buf;
-
-    usbx_function_set_pid_nak(pipe);
-
-    /* CurrentPIPE Clear */
-    if (RZA_IO_RegRead_16(&USB20X.CFIFOSEL, USB_CFIFOSEL_CURPIPE_SHIFT, USB_CFIFOSEL_CURPIPE) == pipe) {
-        RZA_IO_RegWrite_16(&USB20X.CFIFOSEL, 0, USB_CFIFOSEL_CURPIPE_SHIFT, USB_CFIFOSEL_CURPIPE);
-    }
-
-    if (RZA_IO_RegRead_16(&USB20X.D0FIFOSEL, USB_DnFIFOSEL_CURPIPE_SHIFT, USB_DnFIFOSEL_CURPIPE) == pipe) {
-        RZA_IO_RegWrite_16(&USB20X.D0FIFOSEL, 0, USB_DnFIFOSEL_CURPIPE_SHIFT, USB_DnFIFOSEL_CURPIPE);
-    }
-
-    if (RZA_IO_RegRead_16(&USB20X.D1FIFOSEL, USB_DnFIFOSEL_CURPIPE_SHIFT, USB_DnFIFOSEL_CURPIPE) == pipe) {
-        RZA_IO_RegWrite_16(&USB20X.D1FIFOSEL, 0, USB_DnFIFOSEL_CURPIPE_SHIFT, USB_DnFIFOSEL_CURPIPE);
-    }
-
-    /* PIPE Configuration */
-    USB20X.PIPESEL  = pipe;
-    USB20X.PIPECFG  = cfg->pipecfg;
-    USB20X.PIPEBUF  = cfg->pipebuf;
-    USB20X.PIPEMAXP = cfg->pipemaxp;
-    USB20X.PIPEPERI = cfg->pipeperi;
-
-    g_usbx_function_pipecfg[pipe]  = cfg->pipecfg;
-    g_usbx_function_pipebuf[pipe]  = cfg->pipebuf;
-    g_usbx_function_pipemaxp[pipe] = cfg->pipemaxp;
-    g_usbx_function_pipeperi[pipe] = cfg->pipeperi;
-
-    /* Buffer Clear */
-    usbx_function_set_sqclr(pipe);
-    usbx_function_aclrm(pipe);
-
-    /* init Global */
-    g_usbx_function_pipe_status[pipe]  = DEVDRV_USBF_PIPE_IDLE;
-    g_usbx_function_PipeDataSize[pipe] = 0;
-
-    return true;
-}
-
-
-/*************************************************************************/
-// read setup packet
-void USBHAL::EP0setup(uint8_t *buffer)
-{
-    memcpy(buffer, setup_buffer, MAX_PACKET_SIZE_EP0);
-}
-
-
-/*************************************************************************/
-void USBHAL::EP0readStage(void)
-{
-    // No implements
-}
-
-
-/*************************************************************************/
-void USBHAL::EP0read(void)
-{
-    uint8_t *buffer;
-    uint32_t size;
-
-    /* remain of last writing */
-    while (EP0_read_status != DEVDRV_USBF_WRITEEND) {
-        static uint8_t bbb[2] = { 255, 255 };
-        EP0write(&bbb[0], 0);
-    }
-
-    buffer = (uint8_t*)(&setup_buffer[4]);
-    size   = (MAX_PACKET_SIZE_EP0 / 2) - 8;
-    usbx_api_function_CtrlWriteStart(size, buffer);
-}
-
-
-/*************************************************************************/
-uint32_t USBHAL::EP0getReadResult(uint8_t *buffer)
-{
-    memcpy(buffer, (uint8_t*)(&setup_buffer[4]), g_usbx_function_PipeDataSize[USB_FUNCTION_PIPE0]);
-
-    return g_usbx_function_PipeDataSize[USB_FUNCTION_PIPE0];
-}
-
-
-/*************************************************************************/
-void USBHAL::EP0write(uint8_t *buffer, uint32_t size)
-{
-    /* zero byte writing */
-    if ( (size == 0) && (EP0_read_status == DEVDRV_USBF_WRITEEND) ) {
-        return;
-    }
-
-    if (EP0_read_status == DEVDRV_USBF_WRITEEND) {
-        /*1st block*/
-        EP0_read_status = usbx_api_function_CtrlReadStart(size, buffer);
-    } else {
-        /* waits the last transmission */
-        /*other blocks*/
-        g_usbx_function_data_count[ USB_FUNCTION_PIPE0 ]    = size;
-        g_usbx_function_data_pointer [ USB_FUNCTION_PIPE0 ] = buffer;
-        EP0_read_status = usbx_function_write_buffer_c(USB_FUNCTION_PIPE0);
-    }
-    /*max size may be deblocking outside*/
-    if (size == MAX_PACKET_SIZE_EP0) {
-        EP0_read_status = DEVDRV_USBF_WRITING;
-    }
-}
-
-
-/*************************************************************************/
-#if 0   // No implements
-void USBHAL::EP0getWriteResult(void)
-{
-}
-#endif
-
-/*************************************************************************/
-void USBHAL::EP0stall(void)
-{
-    stallEndpoint( 0 );
-}
-
-
-/*************************************************************************/
-EP_STATUS USBHAL::endpointRead(uint8_t endpoint, uint32_t max_size)
-{
-    uint32_t    pipe = EP2PIPE(endpoint);
-    uint32_t    pipe_size;
-    uint16_t    pipe_status;
-    EP_STATUS status = EP_COMPLETED;
-
-    pipe_status = usbx_api_function_check_pipe_status(pipe, &pipe_size);
-
-    switch (pipe_status) {
-        case DEVDRV_USBF_PIPE_IDLE:
-        case DEVDRV_USBF_PIPE_WAIT:
-            usbx_api_function_set_pid_nak(pipe);
-            usbx_api_function_clear_pipe_status(pipe);
-
-            usbx_api_function_start_receive_transfer(pipe, max_size, recv_buffer);
-            break;
-
-        default:
-            status = EP_PENDING;
-            break;
-    }
-
-    return status;
-}
-
-
-/*************************************************************************/
-EP_STATUS USBHAL::endpointReadResult(uint8_t endpoint, uint8_t *buffer, uint32_t *bytes_read )
-{
-    uint32_t pipe = EP2PIPE(endpoint);
-    uint16_t pipe_status;
-    uint16_t err;
-    EP_STATUS status = EP_PENDING;
-
-
-    if (EPx_read_status != DEVDRV_USBF_PIPE_WAIT) {
-        return status;
-    }
-
-    pipe_status = usbx_api_function_check_pipe_status(pipe, bytes_read);
-    switch (pipe_status) {
-        case DEVDRV_USBF_PIPE_IDLE:
-            return EP_COMPLETED;
-
-        case DEVDRV_USBF_PIPE_DONE:
-            return EP_COMPLETED;
-
-        case DEVDRV_USBF_PIPE_WAIT:
-            break;
-
-        default:
-            return status;
-    }
-
-    /* sets the output buffer and size */
-    g_usbx_function_data_pointer[pipe] = buffer;
-
-    /* receives data from pipe */
-    err = usbx_function_read_buffer(pipe);
-    recv_error = err;
-    switch (err) {
-        case USB_FUNCTION_READEND:
-        case USB_FUNCTION_READSHRT:
-        case USB_FUNCTION_READOVER:
-            *bytes_read = g_usbx_function_PipeDataSize[pipe];
-            break;
-
-        case USB_FUNCTION_READING:
-        case DEVDRV_USBF_FIFOERROR:
-            break;
-    }
-
-    pipe_status = usbx_api_function_check_pipe_status(pipe, bytes_read);
-    switch (pipe_status) {
-        case DEVDRV_USBF_PIPE_DONE:
-            status = EP_COMPLETED;
-            break;
-
-        case DEVDRV_USBF_PIPE_IDLE:
-        case DEVDRV_USBF_PIPE_NORES:
-        case DEVDRV_USBF_PIPE_STALL:
-        case DEVDRV_USBF_FIFOERROR:
-        default:
-            break;
-    }
-
-    return status;
-}
-
-
-/*************************************************************************/
-EP_STATUS USBHAL::endpointWrite(uint8_t endpoint, uint8_t *data, uint32_t size)
-{
-    uint32_t pipe = EP2PIPE(endpoint);
-    uint32_t pipe_size;
-    uint16_t pipe_status;
-    uint16_t err;
-    uint16_t count;
-    EP_STATUS status = EP_PENDING;
-
-    pipe_status = usbx_api_function_check_pipe_status(pipe, &pipe_size);
-
-    /* waits the last transmission */
-    count = 30000;
-    while ((pipe_status == DEVDRV_USBF_PIPE_WAIT) || (pipe_status == DEVDRV_USBF_PIPE_DONE)) {
-        pipe_status = usbx_api_function_check_pipe_status(pipe, &pipe_size);
-        if( --count == 0 ) {
-            pipe_status = DEVDRV_USBF_PIPE_STALL;
-            break;
-        }
-    }
-
-    switch (pipe_status) {
-        case DEVDRV_USBF_PIPE_IDLE:
-            err = usbx_api_function_start_send_transfer(pipe, size, data);
-
-            switch (err) {
-                    /* finish to write */
-                case DEVDRV_USBF_WRITEEND:
-                    /* finish to write, but data is short */
-                case DEVDRV_USBF_WRITESHRT:
-                    /* continue to write */
-                case DEVDRV_USBF_WRITING:
-                    /* use DMA */
-                case DEVDRV_USBF_WRITEDMA:
-                    /* error */
-                case DEVDRV_USBF_FIFOERROR:
-                    status = EP_PENDING;
-                    break;
-            }
-            break;
-
-        case DEVDRV_USBF_PIPE_WAIT:
-        case DEVDRV_USBF_PIPE_DONE:
-            status = EP_PENDING;
-            break;
-
-        case DEVDRV_USBF_PIPE_NORES:
-        case DEVDRV_USBF_PIPE_STALL:
-        default:
-            status = EP_STALLED;
-            break;
-    }
-
-    return status;
-}
-
-
-/*************************************************************************/
-EP_STATUS USBHAL::endpointWriteResult(uint8_t endpoint)
-{
-    uint32_t    pipe = EP2PIPE(endpoint);
-    uint32_t    pipe_size;
-    uint16_t    pipe_status;
-    EP_STATUS status = EP_PENDING;
-
-    pipe_status = usbx_api_function_check_pipe_status(pipe, &pipe_size);
-
-    switch (pipe_status) {
-        case DEVDRV_USBF_PIPE_IDLE:
-            status = EP_COMPLETED;
-            break;
-
-        case DEVDRV_USBF_PIPE_WAIT:
-            status = EP_PENDING;
-            break;
-
-        case DEVDRV_USBF_PIPE_DONE:
-            usbx_function_stop_transfer(pipe);
-            status = EP_COMPLETED;
-            break;
-
-        case DEVDRV_USBF_PIPE_NORES:
-            status = EP_STALLED;
-            break;
-
-        case DEVDRV_USBF_PIPE_STALL:
-            status = EP_STALLED;
-            break;
-
-        default:
-            status = EP_PENDING;
-    }
-
-    return status;
-}
-
-
-/*************************************************************************/
-void USBHAL::stallEndpoint(uint8_t endpoint)
-{
-    uint32_t pipe = EP2PIPE(endpoint);
-
-    usbx_function_clear_pid_stall(pipe);
-}
-
-
-/*************************************************************************/
-void USBHAL::unstallEndpoint(uint8_t endpoint)
-{
-    uint32_t pipe = EP2PIPE(endpoint);
-
-    usbx_function_set_pid_stall( pipe );
-}
-
-
-/*************************************************************************/
-bool USBHAL::getEndpointStallState(uint8_t endpoint)
-{
-    // No implemens
-    return false;
-}
-
-
-/*************************************************************************/
-#if 0   // No implements
-void USBHAL::remoteWakeup(void)
-{
-}
-#endif
-
-/*************************************************************************/
-void USBHAL::_usbisr(void)
-{
-    instance->usbisr();
-}
-
-
-/*************************************************************************/
-void USBHAL::usbisr(void)
-{
-    uint16_t            int_sts0;
-    uint16_t            int_sts1;
-    uint16_t            int_sts2;
-    uint16_t            int_sts3;
-    uint16_t            int_enb0;
-    uint16_t            int_enb2;
-    uint16_t            int_enb3;
-    uint16_t            int_enb4;
-    volatile uint16_t   dumy_sts;
-
-
-    int_sts0 = USB20X.INTSTS0;
-
-    if (!(int_sts0 & (
-                USB_FUNCTION_BITVBINT |
-                USB_FUNCTION_BITRESM  |
-                USB_FUNCTION_BITSOFR  |
-                USB_FUNCTION_BITDVST  |
-                USB_FUNCTION_BITCTRT  |
-                USB_FUNCTION_BITBEMP  |
-                USB_FUNCTION_BITNRDY  |
-                USB_FUNCTION_BITBRDY ))) {
-        return;
-    }
-
-    int_sts1 = USB20X.BRDYSTS;
-    int_sts2 = USB20X.NRDYSTS;
-    int_sts3 = USB20X.BEMPSTS;
-    int_enb0 = USB20X.INTENB0;
-    int_enb2 = USB20X.BRDYENB;
-    int_enb3 = USB20X.NRDYENB;
-    int_enb4 = USB20X.BEMPENB;
-
-    if ((int_sts0 & USB_FUNCTION_BITRESM) &&
-            (int_enb0 & USB_FUNCTION_BITRSME)) {
-        USB20X.INTSTS0 = (uint16_t)~USB_FUNCTION_BITRESM;
-        RZA_IO_RegWrite_16(&USB20X.INTENB0, 0, USB_INTENB0_RSME_SHIFT, USB_INTENB0_RSME);
-        /*usbx_function_USB_FUNCTION_Resume();*/
-        suspendStateChanged(1);
-    } else if (
-        (int_sts0 & USB_FUNCTION_BITVBINT) &&
-        (int_enb0 & USB_FUNCTION_BITVBSE)) {
-        USB20X.INTSTS0 = (uint16_t)~USB_FUNCTION_BITVBINT;
-
-        if (usbx_function_CheckVBUStaus() == DEVDRV_USBF_ON) {
-            usbx_function_USB_FUNCTION_Attach();
-        } else {
-            usbx_function_USB_FUNCTION_Detach();
-        }
-    } else if (
-        (int_sts0 & USB_FUNCTION_BITSOFR) &&
-        (int_enb0 & USB_FUNCTION_BITSOFE)) {
-        USB20X.INTSTS0 = (uint16_t)~USB_FUNCTION_BITSOFR;
-        SOF((USB20X.FRMNUM & USB_FRMNUM_FRNM) >> USB_FRMNUM_FRNM_SHIFT);
-    } else if (
-        (int_sts0 & USB_FUNCTION_BITDVST) &&
-        (int_enb0 & USB_FUNCTION_BITDVSE)) {
-        USB20X.INTSTS0 = (uint16_t)~USB_FUNCTION_BITDVST;
-        switch (int_sts0 & USB_FUNCTION_BITDVSQ) {
-            case USB_FUNCTION_DS_POWR:
-                break;
-
-            case USB_FUNCTION_DS_DFLT:
-                /*****************************************************************************
-                 * Function Name: usbx_function_USB_FUNCTION_BusReset
-                 * Description  : This function is executed when the USB device is transitioned
-                 *              : to POWERD_STATE. Sets the device descriptor according to the
-                 *              : connection speed determined by the USB reset hand shake.
-                 * Arguments    : none
-                 * Return Value : none
-                 *****************************************************************************/
-                usbx_function_init_status();            /* memory clear */
-
-#if 0
-                /* You would program those steps in USBCallback_busReset
-                 * if the system need the comment out steps.
-                 */
-
-                if (usbx_function_is_hispeed() == USB_FUNCTION_HIGH_SPEED) {
-                    /* Device Descriptor reset */
-                    usbx_function_ResetDescriptor(USB_FUNCTION_HIGH_SPEED);
-                } else {
-                    /* Device Descriptor reset */
-                    usbx_function_ResetDescriptor(USB_FUNCTION_FULL_SPEED);
-                }
-#endif
-                /* Default Control PIPE reset */
-                /*****************************************************************************
-                 * Function Name: usbx_function_ResetDCP
-                 * Description  : Initializes the default control pipe(DCP).
-                 * Outline      : Reset default control pipe
-                 * Arguments    : none
-                 * Return Value : none
-                 *****************************************************************************/
-                USB20X.DCPCFG  = 0;
-                USB20X.DCPMAXP = 64;    /*TODO: This value is copied from sample*/
-
-                USB20X.CFIFOSEL  = (uint16_t)(USB_FUNCTION_BITMBW_8 | USB_FUNCTION_BITBYTE_LITTLE);
-                USB20X.D0FIFOSEL = (uint16_t)(USB_FUNCTION_BITMBW_8 | USB_FUNCTION_BITBYTE_LITTLE);
-                USB20X.D1FIFOSEL = (uint16_t)(USB_FUNCTION_BITMBW_8 | USB_FUNCTION_BITBYTE_LITTLE);
-
-                busReset();
-                break;
-
-            case USB_FUNCTION_DS_ADDS:
-                break;
-
-            case USB_FUNCTION_DS_CNFG:
-                break;
-
-            case USB_FUNCTION_DS_SPD_POWR:
-            case USB_FUNCTION_DS_SPD_DFLT:
-            case USB_FUNCTION_DS_SPD_ADDR:
-            case USB_FUNCTION_DS_SPD_CNFG:
-                suspendStateChanged(0);
-                /*usbx_function_USB_FUNCTION_Suspend();*/
-                break;
-
-            default:
-                break;
-        }
-    } else if (
-        (int_sts0 & USB_FUNCTION_BITBEMP) &&
-        (int_enb0 & USB_FUNCTION_BITBEMP) &&
-        ((int_sts3 & int_enb4) & g_usbx_function_bit_set[USB_FUNCTION_PIPE0])) {
-        /* ==== BEMP PIPE0 ==== */
-        usbx_function_BEMPInterruptPIPE0(int_sts3, int_enb4, this, &USBHAL::EP0in);
-    } else if (
-        (int_sts0 & USB_FUNCTION_BITBRDY) &&
-        (int_enb0 & USB_FUNCTION_BITBRDY) &&
-        ((int_sts1 & int_enb2) & g_usbx_function_bit_set[USB_FUNCTION_PIPE0])) {
-        /* ==== BRDY PIPE0 ==== */
-        usbx_function_BRDYInterruptPIPE0(int_sts1, int_enb2, this, &USBHAL::EP0out);
-    } else if (
-        (int_sts0 & USB_FUNCTION_BITNRDY) &&
-        (int_enb0 & USB_FUNCTION_BITNRDY) &&
-        ((int_sts2 & int_enb3) & g_usbx_function_bit_set[USB_FUNCTION_PIPE0])) {
-        /* ==== NRDY PIPE0 ==== */
-        usbx_function_NRDYInterruptPIPE0(int_sts2, int_enb3, this, NULL);
-    } else if (
-        (int_sts0 & USB_FUNCTION_BITCTRT) && (int_enb0 & USB_FUNCTION_BITCTRE)) {
-        int_sts0 = USB20X.INTSTS0;
-        USB20X.INTSTS0 = (uint16_t)~USB_FUNCTION_BITCTRT;
-
-        if (((int_sts0 & USB_FUNCTION_BITCTSQ) == USB_FUNCTION_CS_RDDS) ||
-                ((int_sts0 & USB_FUNCTION_BITCTSQ) == USB_FUNCTION_CS_WRDS) ||
-                ((int_sts0 & USB_FUNCTION_BITCTSQ) == USB_FUNCTION_CS_WRND)) {
-
-            /* remake EP0 into buffer */
-            usbx_function_save_request();
-            if ((USB20X.INTSTS0 & USB_FUNCTION_BITVALID) && (
-                        ((int_sts0 & USB_FUNCTION_BITCTSQ) == USB_FUNCTION_CS_RDDS) ||
-                        ((int_sts0 & USB_FUNCTION_BITCTSQ) == USB_FUNCTION_CS_WRDS) ||
-                        ((int_sts0 & USB_FUNCTION_BITCTSQ) == USB_FUNCTION_CS_WRND))) {
-                /* New SETUP token received */
-                /* Three dummy reads for cleearing interrupt requests */
-                dumy_sts = USB20X.INTSTS0;
-                dumy_sts = USB20X.INTSTS0;
-                dumy_sts = USB20X.INTSTS0;
-                return;
-            }
-        }
-
-        switch (int_sts0 & USB_FUNCTION_BITCTSQ) {
-            case USB_FUNCTION_CS_IDST:
-                if (g_usbx_function_TestModeFlag == DEVDRV_USBF_YES) {
-                    /* ==== Test Mode ==== */
-                    usbx_function_USB_FUNCTION_TestMode();
-                }
-                /* Needs not procedure in this state */
-                break;
-
-            case USB_FUNCTION_CS_RDDS:
-                /* Reads a setup packet */
-                EP0setupCallback();
-                break;
-
-            case USB_FUNCTION_CS_WRDS:
-                /* Original code was the SetDescriptor was called */
-                EP0setupCallback();
-                break;
-
-            case USB_FUNCTION_CS_WRND:
-                EP0setupCallback();
-
-                /*The EP0setupCallback should finish in successful */
-                usbx_function_set_pid_buf(USB_FUNCTION_PIPE0);
-
-                RZA_IO_RegWrite_16(&USB20X.DCPCTR, 1, USB_DCPCTR_CCPL_SHIFT, USB_DCPCTR_CCPL);
-                break;
-
-            case USB_FUNCTION_CS_RDSS:
-                RZA_IO_RegWrite_16(&USB20X.DCPCTR, 1, USB_DCPCTR_CCPL_SHIFT, USB_DCPCTR_CCPL);
-                break;
-
-            case USB_FUNCTION_CS_WRSS:
-                RZA_IO_RegWrite_16(&USB20X.DCPCTR, 1, USB_DCPCTR_CCPL_SHIFT, USB_DCPCTR_CCPL);
-                break;
-
-            case USB_FUNCTION_CS_SQER:
-                usbx_function_set_pid_stall(USB_FUNCTION_PIPE0);
-                break;
-
-            default:
-                usbx_function_set_pid_stall(USB_FUNCTION_PIPE0);
-                break;
-        }
-    } else if (
-        (int_sts0 & USB_FUNCTION_BITBEMP) &&
-        (int_enb0 & USB_FUNCTION_BITBEMP) &&
-        (int_sts3 & int_enb4) ) {
-        /* ==== BEMP PIPEx ==== */
-        usbx_function_BEMPInterrupt(int_sts3, int_enb4, this, epCallback);
-    } else if (
-        (int_sts0 & USB_FUNCTION_BITBRDY) &&
-        (int_enb0 & USB_FUNCTION_BITBRDY) &&
-        (int_sts1 & int_enb2) ) {
-        /* ==== BRDY PIPEx ==== */
-        usbx_function_BRDYInterrupt(int_sts1, int_enb2, this, epCallback);
-    } else if (
-        (int_sts0 & USB_FUNCTION_BITNRDY) &&
-        (int_enb0 & USB_FUNCTION_BITNRDY) &&
-        (int_sts2 & int_enb3)) {
-        /* ==== NRDY PIPEx ==== */
-        usbx_function_NRDYInterrupt(int_sts2, int_enb3, this, epCallback);
-    } else {
-        /* Do Nothing */
-    }
-
-    /* Three dummy reads for cleearing interrupt requests */
-    dumy_sts = USB20X.INTSTS0;
-    dumy_sts = USB20X.INTSTS1;
-}
-
-/*************************************************************************/
-#endif
-/*************************************************************************/
-/*EOF*/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/USBDevice/USBHAL_STM32F1.cpp	Fri Jul 08 21:16:25 2016 +0000
@@ -0,0 +1,381 @@
+/* Copyright (c) 2010-2015 mbed.org, MIT License
+*
+* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+* and associated documentation files (the "Software"), to deal in the Software without
+* restriction, including without limitation the rights to use, copy, modify, merge, publish,
+* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
+* Software is furnished to do so, subject to the following conditions:
+*
+* The above copyright notice and this permission notice shall be included in all copies or
+* substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+#include "USBDevice.h"
+
+#define USB_LP_IRQn USB_LP_CAN1_RX0_IRQn
+const uint8_t PCD_EP_TYPE_CTRL = EP_TYPE_CTRL;
+const uint8_t PCD_EP_TYPE_INTR = EP_TYPE_INTR;
+const uint8_t PCD_EP_TYPE_BULK = EP_TYPE_BULK;
+const uint8_t PCD_EP_TYPE_ISOC = EP_TYPE_ISOC;
+
+static PCD_HandleTypeDef hpcd_USB_FS;
+static volatile int epComplete = 0;
+
+USBHAL * USBHAL::instance;
+uint32_t USBHAL::endpointReadcore(uint8_t endpoint, uint8_t *buffer) {return 0;}
+
+USBHAL::USBHAL(void) {
+    hpcd_USB_FS.pData = this;
+    hpcd_USB_FS.Instance = USB;
+    hpcd_USB_FS.Init.dev_endpoints = 8;
+    hpcd_USB_FS.Init.speed = PCD_SPEED_FULL;
+    hpcd_USB_FS.Init.ep0_mps = DEP0CTL_MPS_8;
+    hpcd_USB_FS.Init.phy_itface = PCD_PHY_EMBEDDED;
+    hpcd_USB_FS.Init.Sof_enable = DISABLE;
+    hpcd_USB_FS.Init.low_power_enable = DISABLE;
+    hpcd_USB_FS.Init.battery_charging_enable = DISABLE;
+    NVIC_SetVector(USB_LP_IRQn, (uint32_t)&_usbisr);
+    HAL_PCD_Init(&hpcd_USB_FS);
+    HAL_PCD_Start(&hpcd_USB_FS);
+}
+
+void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd) {
+    __USB_CLK_ENABLE();
+    HAL_NVIC_SetPriority(USB_LP_IRQn, 0, 0);
+    HAL_NVIC_EnableIRQ(USB_LP_IRQn);
+}
+
+void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd) {
+    __USB_CLK_DISABLE(); // Peripheral clock disable
+    HAL_NVIC_DisableIRQ(USB_LP_IRQn); // Peripheral interrupt Deinit
+}
+
+USBHAL::~USBHAL(void) {
+    HAL_PCD_DeInit(&hpcd_USB_FS);
+}
+
+void USBHAL::connect(void) {
+    HAL_PCD_DevConnect(&hpcd_USB_FS);
+}
+
+void USBHAL::disconnect(void) {
+    HAL_PCD_DevDisconnect(&hpcd_USB_FS);
+}
+
+void USBHAL::configureDevice(void) {
+    // Not needed
+}
+void USBHAL::unconfigureDevice(void) {
+    // Not needed
+}
+
+void USBHAL::setAddress(uint8_t address) {
+    HAL_PCD_SetAddress(&hpcd_USB_FS, address);
+}
+
+class PacketBufferAreaManager {
+public:
+    PacketBufferAreaManager(int bufsize_):bufsize(bufsize_) {
+        reset();
+    }
+    void reset() { 
+        head = 0; 
+        tail = bufsize; 
+    }
+    int allocBuf(int maxPacketSize) {
+        head += 4;
+        tail -= maxPacketSize;
+        if (tail < head) {
+            return 0;
+        }
+        return tail;
+    }
+private:
+    int head,tail;
+    int bufsize;
+} PktBufArea(512);
+
+bool USBHAL::realiseEndpoint(uint8_t endpoint, uint32_t maxPacket, uint32_t flags) {
+    int pmaadress = PktBufArea.allocBuf(maxPacket);
+    MBED_ASSERT(pmaadress != 0);
+    if (pmaadress == 0) {
+        return false;
+    }
+    PCD_HandleTypeDef *hpcd = &hpcd_USB_FS;
+    uint8_t ep_type;
+    switch(endpoint) {
+        case EP0OUT:
+            HAL_PCDEx_PMAConfig(hpcd, 0x00, PCD_SNG_BUF, pmaadress);
+            HAL_PCD_EP_Open(hpcd, 0x00, maxPacket, PCD_EP_TYPE_CTRL);
+            break;
+        case EP0IN:
+            HAL_PCDEx_PMAConfig(hpcd, 0x80, PCD_SNG_BUF, pmaadress);
+            HAL_PCD_EP_Open(hpcd, 0x80, maxPacket, PCD_EP_TYPE_CTRL);
+            break;
+        case EPINT_OUT:
+            HAL_PCDEx_PMAConfig(hpcd, 0x01, PCD_SNG_BUF, pmaadress);
+            HAL_PCD_EP_Open(hpcd, 0x01, maxPacket, PCD_EP_TYPE_INTR);
+            break;
+        case EPINT_IN:
+            HAL_PCDEx_PMAConfig(hpcd, 0x81, PCD_SNG_BUF, pmaadress);
+            HAL_PCD_EP_Open(hpcd, 0x81, maxPacket, PCD_EP_TYPE_INTR);
+            break;
+        case EPBULK_OUT:
+            HAL_PCDEx_PMAConfig(hpcd, 0x02, PCD_SNG_BUF, pmaadress);
+            HAL_PCD_EP_Open(hpcd, 0x02, maxPacket, PCD_EP_TYPE_BULK);
+            break;
+        case EPBULK_IN:
+            HAL_PCDEx_PMAConfig(hpcd, 0x82, PCD_SNG_BUF, pmaadress);
+            HAL_PCD_EP_Open(hpcd, 0x82, maxPacket, PCD_EP_TYPE_BULK);
+            break;
+        case EP3OUT:
+            HAL_PCDEx_PMAConfig(hpcd, 0x03, PCD_SNG_BUF, pmaadress);
+            ep_type = (flags & ISOCHRONOUS) ? PCD_EP_TYPE_ISOC : PCD_EP_TYPE_BULK;
+            HAL_PCD_EP_Open(hpcd, 0x03, maxPacket, ep_type);
+            break;
+        case EP3IN:
+            HAL_PCDEx_PMAConfig(hpcd, 0x83, PCD_SNG_BUF, pmaadress);
+            ep_type = (flags & ISOCHRONOUS) ? PCD_EP_TYPE_ISOC : PCD_EP_TYPE_BULK;
+            HAL_PCD_EP_Open(hpcd, 0x83, maxPacket, ep_type);
+            break;
+        default:
+            MBED_ASSERT(0);
+            return false;
+    }
+    return true;
+}
+
+// read setup packet
+void USBHAL::EP0setup(uint8_t *buffer) {
+    memcpy(buffer, hpcd_USB_FS.Setup, 8);
+}
+
+void USBHAL::EP0readStage(void) {
+}
+
+void USBHAL::EP0read(void) {
+    endpointRead(EP0OUT, MAX_PACKET_SIZE_EP0);
+}
+
+class rxTempBufferManager {
+    uint8_t buf0[MAX_PACKET_SIZE_EP0];
+    uint8_t buf1[MAX_PACKET_SIZE_EP1];
+    uint8_t buf2[MAX_PACKET_SIZE_EP2];
+    uint8_t buf3[MAX_PACKET_SIZE_EP3_ISO];
+public:
+    uint8_t* ptr(uint8_t endpoint, int maxPacketSize) {
+        switch(endpoint) {
+            case EP0OUT:
+                MBED_ASSERT(maxPacketSize <= MAX_PACKET_SIZE_EP0);
+                break;
+            case EP1OUT:
+                MBED_ASSERT(maxPacketSize <= MAX_PACKET_SIZE_EP1);
+                break;
+            case EP2OUT:
+                MBED_ASSERT(maxPacketSize <= MAX_PACKET_SIZE_EP2);
+                break;
+            case EP3OUT:
+                MBED_ASSERT(maxPacketSize <= MAX_PACKET_SIZE_EP3_ISO);
+                break;
+        }
+        return ptr(endpoint);
+    }
+    uint8_t* ptr(uint8_t endpoint) {
+        switch(endpoint) {
+            case EP0OUT: return buf0;
+            case EP1OUT: return buf1;
+            case EP2OUT: return buf2;
+            case EP3OUT: return buf3;
+        }
+        MBED_ASSERT(0);
+        return NULL;
+    }
+} rxtmp;
+
+uint32_t USBHAL::EP0getReadResult(uint8_t *buffer) {
+    const uint8_t endpoint = EP0OUT;
+    uint32_t length = HAL_PCD_EP_GetRxCount(&hpcd_USB_FS, endpoint>>1);
+    memcpy(buffer, rxtmp.ptr(endpoint), length);
+    return length;
+}
+
+void USBHAL::EP0write(uint8_t *buffer, uint32_t size) {
+    endpointWrite(EP0IN, buffer, size);
+}
+
+void USBHAL::EP0getWriteResult(void) {
+}
+
+void USBHAL::EP0stall(void) {
+    // If we stall the out endpoint here then we have problems transferring
+    // and setup requests after the (stalled) get device qualifier requests.
+    // TODO: Find out if this is correct behavior, or whether we are doing
+    // something else wrong
+    stallEndpoint(EP0IN);
+//    stallEndpoint(EP0OUT);
+}
+
+EP_STATUS USBHAL::endpointRead(uint8_t endpoint, uint32_t maximumSize) {
+    HAL_PCD_EP_Receive(&hpcd_USB_FS, endpoint>>1, rxtmp.ptr(endpoint, maximumSize), maximumSize);
+    epComplete &= ~(1 << endpoint);
+    return EP_PENDING;
+}
+
+EP_STATUS USBHAL::endpointReadResult(uint8_t endpoint, uint8_t * buffer, uint32_t *bytesRead) {
+    if (!(epComplete & (1 << endpoint))) {
+        return EP_PENDING;
+    }
+    int len = HAL_PCD_EP_GetRxCount(&hpcd_USB_FS, endpoint>>1);
+    memcpy(buffer, rxtmp.ptr(endpoint), len);
+    *bytesRead = len;
+    return EP_COMPLETED;
+}
+
+EP_STATUS USBHAL::endpointWrite(uint8_t endpoint, uint8_t *data, uint32_t size) {
+    HAL_PCD_EP_Transmit(&hpcd_USB_FS, endpoint>>1, data, size);
+    epComplete &= ~(1 << endpoint);
+    return EP_PENDING;
+}
+
+EP_STATUS USBHAL::endpointWriteResult(uint8_t endpoint) {
+    if (epComplete & (1 << endpoint)) {
+        epComplete &= ~(1 << endpoint);
+        return EP_COMPLETED;
+    }
+    return EP_PENDING;
+}
+
+void USBHAL::stallEndpoint(uint8_t endpoint) {
+    PCD_HandleTypeDef *hpcd = &hpcd_USB_FS;
+    switch(endpoint) {
+        case EP0IN:
+            HAL_PCD_EP_SetStall(hpcd, 0x80);
+            break;
+        case EP0OUT:
+            HAL_PCD_EP_SetStall(hpcd, 0x00);
+            break;
+        default:
+            break;
+    }
+}
+
+void USBHAL::unstallEndpoint(uint8_t endpoint) {
+}
+
+bool USBHAL::getEndpointStallState(uint8_t endpoint) {
+    return false;
+}
+
+void USBHAL::remoteWakeup(void) {}
+
+void USBHAL::_usbisr(void) {
+    HAL_PCD_IRQHandler(&hpcd_USB_FS);
+}
+
+void USBHAL::usbisr(void) {}
+
+void USBHAL::SetupStageCallback() {
+    EP0setupCallback();
+}
+
+void USBHAL::DataInStageCallback(uint8_t epnum) {
+    switch(epnum) {
+        case 0: // EP0IN
+            EP0in();
+            break;
+        case 1: 
+            epComplete |= (1<<EP1IN);
+            if (EP1_IN_callback()) {
+                epComplete &= ~(1<<EP1IN);
+            }
+            break;
+        case 2:
+            epComplete |= (1<<EP2IN);
+            if (EP2_IN_callback()) {
+                epComplete &= ~(1<<EP2IN);
+            }
+            break;
+        case 3: 
+            epComplete |= (1<<EP3IN);
+            if (EP3_IN_callback()) {
+                epComplete &= ~(1<<EP3IN);
+            }
+            break;
+        default:
+            MBED_ASSERT(0);
+            break;
+    }
+}
+
+void USBHAL::DataOutStageCallback(uint8_t epnum) {
+    switch(epnum) {
+        case 0: // EP0OUT
+            if ((hpcd_USB_FS.Setup[0]&0x80) == 0x00) { // host to device ?
+                EP0out();
+            }
+            break;
+        case 1:
+            epComplete |= (1<<EP1OUT);
+            if (EP1_OUT_callback()) {
+                epComplete &= ~(1<<EP1OUT);
+            }
+            break;
+        case 2:
+            epComplete |= (1<<EP2OUT);
+            if (EP2_OUT_callback()) {
+                epComplete &= ~(1<<EP2OUT);
+            }
+            break;
+        case 3:
+            epComplete |= (1<<EP3OUT);
+            if (EP3_OUT_callback()) {
+                epComplete &= ~(1<<EP3OUT);
+            }
+            break;
+        default:
+            MBED_ASSERT(0);
+            break;
+    }
+}
+
+void USBHAL::ResetCallback() {
+    PktBufArea.reset();
+    realiseEndpoint(EP0IN, MAX_PACKET_SIZE_EP0, 0);
+    realiseEndpoint(EP0OUT, MAX_PACKET_SIZE_EP0, 0);
+}
+
+void USBHAL::SOFCallback() {
+    SOF(hpcd_USB_FS.Instance->FNR & USB_FNR_FN);
+}
+
+void HAL_PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd) {
+    reinterpret_cast<USBHAL*>(hpcd->pData)->SetupStageCallback();
+}
+
+void HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) {
+    reinterpret_cast<USBHAL*>(hpcd->pData)->DataInStageCallback(epnum);
+}
+
+void HAL_PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) {
+    reinterpret_cast<USBHAL*>(hpcd->pData)->DataOutStageCallback(epnum);
+}
+
+void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd) {
+    reinterpret_cast<USBHAL*>(hpcd->pData)->ResetCallback();
+}
+
+void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd) {
+    reinterpret_cast<USBHAL*>(hpcd->pData)->SOFCallback();
+}
+
+void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd) {
+    if (hpcd->Init.low_power_enable) {
+        SCB->SCR |= (uint32_t)((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk));
+    }
+}
--- a/USBDevice/USBHAL_STM32F4.cpp	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,416 +0,0 @@
-/* Copyright (c) 2010-2011 mbed.org, MIT License
-*
-* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-* and associated documentation files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use, copy, modify, merge, publish,
-* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following conditions:
-*
-* The above copyright notice and this permission notice shall be included in all copies or
-* substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
-* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#if defined(TARGET_STM32F4)
-
-#include "USBHAL.h"
-#include "USBRegs_STM32.h"
-#include "pinmap.h"
-
-USBHAL * USBHAL::instance;
-
-static volatile int epComplete = 0;
-
-static uint32_t bufferEnd = 0;
-static const uint32_t rxFifoSize = 512;
-static uint32_t rxFifoCount = 0;
-
-static uint32_t setupBuffer[MAX_PACKET_SIZE_EP0 >> 2];
-
-uint32_t USBHAL::endpointReadcore(uint8_t endpoint, uint8_t *buffer) {
-    return 0;
-}
-
-USBHAL::USBHAL(void) {
-    NVIC_DisableIRQ(OTG_FS_IRQn);
-    epCallback[0] = &USBHAL::EP1_OUT_callback;
-    epCallback[1] = &USBHAL::EP1_IN_callback;
-    epCallback[2] = &USBHAL::EP2_OUT_callback;
-    epCallback[3] = &USBHAL::EP2_IN_callback;
-    epCallback[4] = &USBHAL::EP3_OUT_callback;
-    epCallback[5] = &USBHAL::EP3_IN_callback;
-
-    // Enable power and clocking
-    RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN;
-
-#if defined(TARGET_STM32F407VG) || defined(TARGET_STM32F401RE) || defined(TARGET_STM32F411RE) || defined(TARGET_STM32F429ZI)
-    pin_function(PA_8, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF10_OTG_FS));
-    pin_function(PA_9, STM_PIN_DATA(STM_MODE_INPUT, GPIO_PULLDOWN, GPIO_AF10_OTG_FS));
-    pin_function(PA_10, STM_PIN_DATA(STM_MODE_AF_OD, GPIO_PULLUP, GPIO_AF10_OTG_FS));
-    pin_function(PA_11, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF10_OTG_FS));
-    pin_function(PA_12, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF10_OTG_FS));
-#else
-    pin_function(PA_8, STM_PIN_DATA(2, 10));
-    pin_function(PA_9, STM_PIN_DATA(0, 0));
-    pin_function(PA_10, STM_PIN_DATA(2, 10));
-    pin_function(PA_11, STM_PIN_DATA(2, 10));
-    pin_function(PA_12, STM_PIN_DATA(2, 10));
-
-    // Set ID pin to open drain with pull-up resistor
-    pin_mode(PA_10, OpenDrain);
-    GPIOA->PUPDR &= ~(0x3 << 20);
-    GPIOA->PUPDR |= 1 << 20;
-
-    // Set VBUS pin to open drain
-    pin_mode(PA_9, OpenDrain);
-#endif
-
-    RCC->AHB2ENR |= RCC_AHB2ENR_OTGFSEN;
-
-    // Enable interrupts
-    OTG_FS->GREGS.GAHBCFG |= (1 << 0);
-
-    // Turnaround time to maximum value - too small causes packet loss
-    OTG_FS->GREGS.GUSBCFG |= (0xF << 10);
-
-    // Unmask global interrupts
-    OTG_FS->GREGS.GINTMSK |= (1 << 3) | // SOF
-                             (1 << 4) | // RX FIFO not empty
-                             (1 << 12); // USB reset
-
-    OTG_FS->DREGS.DCFG |= (0x3 << 0) | // Full speed
-                          (1 << 2); // Non-zero-length status OUT handshake
-
-    OTG_FS->GREGS.GCCFG |= (1 << 19) | // Enable VBUS sensing
-                           (1 << 16); // Power Up
-
-    instance = this;
-    NVIC_SetVector(OTG_FS_IRQn, (uint32_t)&_usbisr);
-    NVIC_SetPriority(OTG_FS_IRQn, 1);
-}
-
-USBHAL::~USBHAL(void) {
-}
-
-void USBHAL::connect(void) {
-    NVIC_EnableIRQ(OTG_FS_IRQn);
-}
-
-void USBHAL::disconnect(void) {
-    NVIC_DisableIRQ(OTG_FS_IRQn);
-}
-
-void USBHAL::configureDevice(void) {
-    // Not needed
-}
-
-void USBHAL::unconfigureDevice(void) {
-    // Not needed
-}
-
-void USBHAL::setAddress(uint8_t address) {
-    OTG_FS->DREGS.DCFG |= (address << 4);
-    EP0write(0, 0);
-}
-
-bool USBHAL::realiseEndpoint(uint8_t endpoint, uint32_t maxPacket,
-                             uint32_t flags) {
-    uint32_t epIndex = endpoint >> 1;
-
-    uint32_t type;
-    switch (endpoint) {
-        case EP0IN:
-        case EP0OUT:
-            type = 0;
-            break;
-        case EPISO_IN:
-        case EPISO_OUT:
-            type = 1;
-        case EPBULK_IN:
-        case EPBULK_OUT:
-            type = 2;
-            break;
-        case EPINT_IN:
-        case EPINT_OUT:
-            type = 3;
-            break;
-    }
-
-    // Generic in or out EP controls
-    uint32_t control = (maxPacket << 0) | // Packet size
-                       (1 << 15) | // Active endpoint
-                       (type << 18); // Endpoint type
-
-    if (endpoint & 0x1) { // In Endpoint
-        // Set up the Tx FIFO
-        if (endpoint == EP0IN) {
-            OTG_FS->GREGS.DIEPTXF0_HNPTXFSIZ = ((maxPacket >> 2) << 16) |
-                                               (bufferEnd << 0);
-        }
-        else {
-            OTG_FS->GREGS.DIEPTXF[epIndex - 1] = ((maxPacket >> 2) << 16) |
-                                                 (bufferEnd << 0);
-        }
-        bufferEnd += maxPacket >> 2;
-
-        // Set the In EP specific control settings
-        if (endpoint != EP0IN) {
-            control |= (1 << 28); // SD0PID
-        }
-
-        control |= (epIndex << 22) | // TxFIFO index
-                   (1 << 27); // SNAK
-        OTG_FS->INEP_REGS[epIndex].DIEPCTL = control;
-
-        // Unmask the interrupt
-        OTG_FS->DREGS.DAINTMSK |= (1 << epIndex);
-    }
-    else { // Out endpoint
-        // Set the out EP specific control settings
-        control |= (1 << 26); // CNAK
-        OTG_FS->OUTEP_REGS[epIndex].DOEPCTL = control;
-
-        // Unmask the interrupt
-        OTG_FS->DREGS.DAINTMSK |= (1 << (epIndex + 16));
-    }
-    return true;
-}
-
-// read setup packet
-void USBHAL::EP0setup(uint8_t *buffer) {
-    memcpy(buffer, setupBuffer, MAX_PACKET_SIZE_EP0);
-}
-
-void USBHAL::EP0readStage(void) {
-}
-
-void USBHAL::EP0read(void) {
-}
-
-uint32_t USBHAL::EP0getReadResult(uint8_t *buffer) {
-    uint32_t* buffer32 = (uint32_t *) buffer;
-    uint32_t length = rxFifoCount;
-    for (uint32_t i = 0; i < length; i += 4) {
-        buffer32[i >> 2] = OTG_FS->FIFO[0][0];
-    }
-
-    rxFifoCount = 0;
-    return length;
-}
-
-void USBHAL::EP0write(uint8_t *buffer, uint32_t size) {
-    endpointWrite(0, buffer, size);
-}
-
-void USBHAL::EP0getWriteResult(void) {
-}
-
-void USBHAL::EP0stall(void) {
-    // If we stall the out endpoint here then we have problems transferring
-    // and setup requests after the (stalled) get device qualifier requests.
-    // TODO: Find out if this is correct behavior, or whether we are doing
-    // something else wrong
-    stallEndpoint(EP0IN);
-//    stallEndpoint(EP0OUT);
-}
-
-EP_STATUS USBHAL::endpointRead(uint8_t endpoint, uint32_t maximumSize) {
-    uint32_t epIndex = endpoint >> 1;
-    uint32_t size = (1 << 19) | // 1 packet
-                    (maximumSize << 0); // Packet size
-//    if (endpoint == EP0OUT) {
-        size |= (1 << 29); // 1 setup packet
-//    }
-    OTG_FS->OUTEP_REGS[epIndex].DOEPTSIZ = size;
-    OTG_FS->OUTEP_REGS[epIndex].DOEPCTL |= (1 << 31) | // Enable endpoint
-                                           (1 << 26); // Clear NAK
-
-    epComplete &= ~(1 << endpoint);
-    return EP_PENDING;
-}
-
-EP_STATUS USBHAL::endpointReadResult(uint8_t endpoint, uint8_t * buffer, uint32_t *bytesRead) {
-    if (!(epComplete & (1 << endpoint))) {
-        return EP_PENDING;
-    }
-
-    uint32_t* buffer32 = (uint32_t *) buffer;
-    uint32_t length = rxFifoCount;
-    for (uint32_t i = 0; i < length; i += 4) {
-        buffer32[i >> 2] = OTG_FS->FIFO[endpoint >> 1][0];
-    }
-    rxFifoCount = 0;
-    *bytesRead = length;
-    return EP_COMPLETED;
-}
-
-EP_STATUS USBHAL::endpointWrite(uint8_t endpoint, uint8_t *data, uint32_t size) {
-    uint32_t epIndex = endpoint >> 1;
-    OTG_FS->INEP_REGS[epIndex].DIEPTSIZ = (1 << 19) | // 1 packet
-                                          (size << 0); // Size of packet
-    OTG_FS->INEP_REGS[epIndex].DIEPCTL |= (1 << 31) | // Enable endpoint
-                                          (1 << 26); // CNAK
-    OTG_FS->DREGS.DIEPEMPMSK = (1 << epIndex);
-
-    while ((OTG_FS->INEP_REGS[epIndex].DTXFSTS & 0XFFFF) < ((size + 3) >> 2));
-
-    for (uint32_t i=0; i<(size + 3) >> 2; i++, data+=4) {
-        OTG_FS->FIFO[epIndex][0] = *(uint32_t *)data;
-    }
-
-    epComplete &= ~(1 << endpoint);
-
-    return EP_PENDING;
-}
-
-EP_STATUS USBHAL::endpointWriteResult(uint8_t endpoint) {
-    if (epComplete & (1 << endpoint)) {
-        epComplete &= ~(1 << endpoint);
-        return EP_COMPLETED;
-    }
-
-    return EP_PENDING;
-}
-
-void USBHAL::stallEndpoint(uint8_t endpoint) {
-    if (endpoint & 0x1) { // In EP
-        OTG_FS->INEP_REGS[endpoint >> 1].DIEPCTL |= (1 << 30) | // Disable
-                                                    (1 << 21); // Stall
-    }
-    else {  // Out EP
-        OTG_FS->DREGS.DCTL |= (1 << 9); // Set global out NAK
-        OTG_FS->OUTEP_REGS[endpoint >> 1].DOEPCTL |= (1 << 30) | // Disable
-                                                     (1 << 21); // Stall
-    }
-}
-
-void USBHAL::unstallEndpoint(uint8_t endpoint) {
-
-}
-
-bool USBHAL::getEndpointStallState(uint8_t endpoint) {
-    return false;
-}
-
-void USBHAL::remoteWakeup(void) {
-}
-
-
-void USBHAL::_usbisr(void) {
-    instance->usbisr();
-}
-
-
-void USBHAL::usbisr(void) {
-    if (OTG_FS->GREGS.GINTSTS & (1 << 11)) { // USB Suspend
-        suspendStateChanged(1);
-    };
-
-    if (OTG_FS->GREGS.GINTSTS & (1 << 12)) { // USB Reset
-        suspendStateChanged(0);
-
-        // Set SNAK bits
-        OTG_FS->OUTEP_REGS[0].DOEPCTL |= (1 << 27);
-        OTG_FS->OUTEP_REGS[1].DOEPCTL |= (1 << 27);
-        OTG_FS->OUTEP_REGS[2].DOEPCTL |= (1 << 27);
-        OTG_FS->OUTEP_REGS[3].DOEPCTL |= (1 << 27);
-
-        OTG_FS->DREGS.DIEPMSK = (1 << 0);
-
-        bufferEnd = 0;
-
-        // Set the receive FIFO size
-        OTG_FS->GREGS.GRXFSIZ = rxFifoSize >> 2;
-        bufferEnd += rxFifoSize >> 2;
-
-        // Create the endpoints, and wait for setup packets on out EP0
-        realiseEndpoint(EP0IN, MAX_PACKET_SIZE_EP0, 0);
-        realiseEndpoint(EP0OUT, MAX_PACKET_SIZE_EP0, 0);
-        endpointRead(EP0OUT, MAX_PACKET_SIZE_EP0);
-
-        OTG_FS->GREGS.GINTSTS = (1 << 12);
-    }
-
-    if (OTG_FS->GREGS.GINTSTS & (1 << 4)) { // RX FIFO not empty
-        uint32_t status = OTG_FS->GREGS.GRXSTSP;
-
-        uint32_t endpoint = (status & 0xF) << 1;
-        uint32_t length = (status >> 4) & 0x7FF;
-        uint32_t type = (status >> 17) & 0xF;
-
-        rxFifoCount = length;
-
-        if (type == 0x6) {
-            // Setup packet
-            for (uint32_t i=0; i<length; i+=4) {
-                setupBuffer[i >> 2] = OTG_FS->FIFO[0][i >> 2];
-            }
-            rxFifoCount = 0;
-        }
-
-        if (type == 0x4) {
-            // Setup complete
-            EP0setupCallback();
-            endpointRead(EP0OUT, MAX_PACKET_SIZE_EP0);
-        }
-
-        if (type == 0x2) {
-            // Out packet
-            if (endpoint == EP0OUT) {
-                EP0out();
-            }
-            else {
-                epComplete |= (1 << endpoint);
-                if ((instance->*(epCallback[endpoint - 2]))()) {
-                    epComplete &= (1 << endpoint);
-                }
-            }
-        }
-
-        for (uint32_t i=0; i<rxFifoCount; i+=4) {
-            (void) OTG_FS->FIFO[0][0];
-        }
-        OTG_FS->GREGS.GINTSTS = (1 << 4);
-    }
-
-    if (OTG_FS->GREGS.GINTSTS & (1 << 18)) { // In endpoint interrupt
-        // Loop through the in endpoints
-        for (uint32_t i=0; i<4; i++) {
-            if (OTG_FS->DREGS.DAINT & (1 << i)) { // Interrupt is on endpoint
-
-                if (OTG_FS->INEP_REGS[i].DIEPINT & (1 << 7)) {// Tx FIFO empty
-                    // If the Tx FIFO is empty on EP0 we need to send a further
-                    // packet, so call EP0in()
-                    if (i == 0) {
-                        EP0in();
-                    }
-                    // Clear the interrupt
-                    OTG_FS->INEP_REGS[i].DIEPINT = (1 << 7);
-                    // Stop firing Tx empty interrupts
-                    // Will get turned on again if another write is called
-                    OTG_FS->DREGS.DIEPEMPMSK &= ~(1 << i);
-                }
-
-                // If the transfer is complete
-                if (OTG_FS->INEP_REGS[i].DIEPINT & (1 << 0)) { // Tx Complete
-                    epComplete |= (1 << (1 + (i << 1)));
-                    OTG_FS->INEP_REGS[i].DIEPINT = (1 << 0);
-                }
-            }
-        }
-        OTG_FS->GREGS.GINTSTS = (1 << 18);
-    }
-
-    if (OTG_FS->GREGS.GINTSTS & (1 << 3)) { // Start of frame
-        SOF((OTG_FS->GREGS.GRXSTSR >> 17) & 0xF);
-        OTG_FS->GREGS.GINTSTS = (1 << 3);
-    }
-}
-
-
-#endif
--- a/USBDevice/USBHAL_STM32L1.cpp	Thu Jun 25 09:33:51 2015 +0900
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,409 +0,0 @@
-/* Copyright (c) 2010-2015 mbed.org, MIT License
-*
-* Permission is hereby granted, free of charge, to any person obtaining a copy of this software
-* and associated documentation files (the "Software"), to deal in the Software without
-* restriction, including without limitation the rights to use, copy, modify, merge, publish,
-* distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the
-* Software is furnished to do so, subject to the following conditions:
-*
-* The above copyright notice and this permission notice shall be included in all copies or
-* substantial portions of the Software.
-*
-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
-* BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
-* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#if defined(TARGET_STM32L1)||defined(TARGET_STM32F1)
-#include "USBDevice.h"
-
-#if defined(TARGET_STM32F1)
-#define USB_LP_IRQn USB_LP_CAN1_RX0_IRQn
-const uint8_t PCD_EP_TYPE_CTRL = EP_TYPE_CTRL;
-const uint8_t PCD_EP_TYPE_INTR = EP_TYPE_INTR;
-const uint8_t PCD_EP_TYPE_BULK = EP_TYPE_BULK;
-const uint8_t PCD_EP_TYPE_ISOC = EP_TYPE_ISOC;
-
-#elif defined(TARGET_STM32L1)
-void HAL_PCDEx_SetConnectionState(PCD_HandleTypeDef *hpcd, uint8_t state) {
-    __SYSCFG_CLK_ENABLE(); // for SYSCFG_PMC_USB_PU
-    if (state == 1) {
-        __HAL_SYSCFG_USBPULLUP_ENABLE();
-    } else {
-        __HAL_SYSCFG_USBPULLUP_DISABLE();
-    } 
-}
-
-#elif defined(TARGET_STM32L0)||defined(TARGET_STM32F0)
-#define USB_LP_IRQn USB_IRQn
-void HAL_PCDEx_SetConnectionState(PCD_HandleTypeDef *hpcd, uint8_t state) {
-    if (state == 1) {
-        SET_BIT(USB->BCDR, USB_BCDR_DPPU); // DP Pull-up
-    } else {
-        CLEAR_BIT(USB->BCDR, USB_BCDR_DPPU);
-    } 
-}
-
-#elif defined(TARGET_STM32F3)
-#define USB_LP_IRQn USB_LP_CAN1_RX0_IRQn
-#endif
-
-static PCD_HandleTypeDef hpcd_USB_FS;
-static volatile int epComplete = 0;
-
-USBHAL * USBHAL::instance;
-uint32_t USBHAL::endpointReadcore(uint8_t endpoint, uint8_t *buffer) {return 0;}
-
-USBHAL::USBHAL(void) {
-    hpcd_USB_FS.pData = this;
-    hpcd_USB_FS.Instance = USB;
-    hpcd_USB_FS.Init.dev_endpoints = 8;
-    hpcd_USB_FS.Init.speed = PCD_SPEED_FULL;
-    hpcd_USB_FS.Init.ep0_mps = DEP0CTL_MPS_8;
-    hpcd_USB_FS.Init.phy_itface = PCD_PHY_EMBEDDED;
-    hpcd_USB_FS.Init.Sof_enable = DISABLE;
-    hpcd_USB_FS.Init.low_power_enable = DISABLE;
-    hpcd_USB_FS.Init.battery_charging_enable = DISABLE;
-    NVIC_SetVector(USB_LP_IRQn, (uint32_t)&_usbisr);
-    HAL_PCD_Init(&hpcd_USB_FS);
-    HAL_PCD_Start(&hpcd_USB_FS);
-}
-
-void HAL_PCD_MspInit(PCD_HandleTypeDef* hpcd) {
-    __USB_CLK_ENABLE();
-    HAL_NVIC_SetPriority(USB_LP_IRQn, 0, 0);
-    HAL_NVIC_EnableIRQ(USB_LP_IRQn);
-}
-
-void HAL_PCD_MspDeInit(PCD_HandleTypeDef* hpcd) {
-    __USB_CLK_DISABLE(); // Peripheral clock disable
-    HAL_NVIC_DisableIRQ(USB_LP_IRQn); // Peripheral interrupt Deinit
-}
-
-USBHAL::~USBHAL(void) {
-    HAL_PCD_DeInit(&hpcd_USB_FS);
-}
-
-void USBHAL::connect(void) {
-    HAL_PCD_DevConnect(&hpcd_USB_FS);
-}
-
-void USBHAL::disconnect(void) {
-    HAL_PCD_DevDisconnect(&hpcd_USB_FS);
-}
-
-void USBHAL::configureDevice(void) {
-    // Not needed
-}
-void USBHAL::unconfigureDevice(void) {
-    // Not needed
-}
-
-void USBHAL::setAddress(uint8_t address) {
-    HAL_PCD_SetAddress(&hpcd_USB_FS, address);
-}
-
-class PacketBufferAreaManager {
-public:
-    PacketBufferAreaManager(int bufsize_):bufsize(bufsize_) {
-        reset();
-    }
-    void reset() { 
-        head = 0; 
-        tail = bufsize; 
-    }
-    int allocBuf(int maxPacketSize) {
-        head += 4;
-        tail -= maxPacketSize;
-        if (tail < head) {
-            return 0;
-        }
-        return tail;
-    }
-private:
-    int head,tail;
-    int bufsize;
-} PktBufArea(512);
-
-bool USBHAL::realiseEndpoint(uint8_t endpoint, uint32_t maxPacket, uint32_t flags) {
-    int pmaadress = PktBufArea.allocBuf(maxPacket);
-    MBED_ASSERT(pmaadress != 0);
-    if (pmaadress == 0) {
-        return false;
-    }
-    PCD_HandleTypeDef *hpcd = &hpcd_USB_FS;
-    uint8_t ep_type;
-    switch(endpoint) {
-        case EP0OUT:
-            HAL_PCDEx_PMAConfig(hpcd, 0x00, PCD_SNG_BUF, pmaadress);
-            HAL_PCD_EP_Open(hpcd, 0x00, maxPacket, PCD_EP_TYPE_CTRL);
-            break;
-        case EP0IN:
-            HAL_PCDEx_PMAConfig(hpcd, 0x80, PCD_SNG_BUF, pmaadress);
-            HAL_PCD_EP_Open(hpcd, 0x80, maxPacket, PCD_EP_TYPE_CTRL);
-            break;
-        case EPINT_OUT:
-            HAL_PCDEx_PMAConfig(hpcd, 0x01, PCD_SNG_BUF, pmaadress);
-            HAL_PCD_EP_Open(hpcd, 0x01, maxPacket, PCD_EP_TYPE_INTR);
-            break;
-        case EPINT_IN:
-            HAL_PCDEx_PMAConfig(hpcd, 0x81, PCD_SNG_BUF, pmaadress);
-            HAL_PCD_EP_Open(hpcd, 0x81, maxPacket, PCD_EP_TYPE_INTR);
-            break;
-        case EPBULK_OUT:
-            HAL_PCDEx_PMAConfig(hpcd, 0x02, PCD_SNG_BUF, pmaadress);
-            HAL_PCD_EP_Open(hpcd, 0x02, maxPacket, PCD_EP_TYPE_BULK);
-            break;
-        case EPBULK_IN:
-            HAL_PCDEx_PMAConfig(hpcd, 0x82, PCD_SNG_BUF, pmaadress);
-            HAL_PCD_EP_Open(hpcd, 0x82, maxPacket, PCD_EP_TYPE_BULK);
-            break;
-        case EP3OUT:
-            HAL_PCDEx_PMAConfig(hpcd, 0x03, PCD_SNG_BUF, pmaadress);
-            ep_type = (flags & ISOCHRONOUS) ? PCD_EP_TYPE_ISOC : PCD_EP_TYPE_BULK;
-            HAL_PCD_EP_Open(hpcd, 0x03, maxPacket, ep_type);
-            break;
-        case EP3IN:
-            HAL_PCDEx_PMAConfig(hpcd, 0x83, PCD_SNG_BUF, pmaadress);
-            ep_type = (flags & ISOCHRONOUS) ? PCD_EP_TYPE_ISOC : PCD_EP_TYPE_BULK;
-            HAL_PCD_EP_Open(hpcd, 0x83, maxPacket, ep_type);
-            break;
-        default:
-            MBED_ASSERT(0);
-            return false;
-    }
-    return true;
-}
-
-// read setup packet
-void USBHAL::EP0setup(uint8_t *buffer) {
-    memcpy(buffer, hpcd_USB_FS.Setup, 8);
-}
-
-void USBHAL::EP0readStage(void) {
-}
-
-void USBHAL::EP0read(void) {
-    endpointRead(EP0OUT, MAX_PACKET_SIZE_EP0);
-}
-
-class rxTempBufferManager {
-    uint8_t buf0[MAX_PACKET_SIZE_EP0];
-    uint8_t buf1[MAX_PACKET_SIZE_EP1];
-    uint8_t buf2[MAX_PACKET_SIZE_EP2];
-    uint8_t buf3[MAX_PACKET_SIZE_EP3_ISO];
-public:
-    uint8_t* ptr(uint8_t endpoint, int maxPacketSize) {
-        switch(endpoint) {
-            case EP0OUT:
-                MBED_ASSERT(maxPacketSize <= MAX_PACKET_SIZE_EP0);
-                break;
-            case EP1OUT:
-                MBED_ASSERT(maxPacketSize <= MAX_PACKET_SIZE_EP1);
-                break;
-            case EP2OUT:
-                MBED_ASSERT(maxPacketSize <= MAX_PACKET_SIZE_EP2);
-                break;
-            case EP3OUT:
-                MBED_ASSERT(maxPacketSize <= MAX_PACKET_SIZE_EP3_ISO);
-                break;
-        }
-        return ptr(endpoint);
-    }
-    uint8_t* ptr(uint8_t endpoint) {
-        switch(endpoint) {
-            case EP0OUT: return buf0;
-            case EP1OUT: return buf1;
-            case EP2OUT: return buf2;
-            case EP3OUT: return buf3;
-        }
-        MBED_ASSERT(0);
-        return NULL;
-    }
-} rxtmp;
-
-uint32_t USBHAL::EP0getReadResult(uint8_t *buffer) {
-    const uint8_t endpoint = EP0OUT;
-    uint32_t length = HAL_PCD_EP_GetRxCount(&hpcd_USB_FS, endpoint>>1);
-    memcpy(buffer, rxtmp.ptr(endpoint), length);
-    return length;
-}
-
-void USBHAL::EP0write(uint8_t *buffer, uint32_t size) {
-    endpointWrite(EP0IN, buffer, size);
-}
-
-void USBHAL::EP0getWriteResult(void) {
-}
-
-void USBHAL::EP0stall(void) {
-    // If we stall the out endpoint here then we have problems transferring
-    // and setup requests after the (stalled) get device qualifier requests.
-    // TODO: Find out if this is correct behavior, or whether we are doing
-    // something else wrong
-    stallEndpoint(EP0IN);
-//    stallEndpoint(EP0OUT);
-}
-
-EP_STATUS USBHAL::endpointRead(uint8_t endpoint, uint32_t maximumSize) {
-    HAL_PCD_EP_Receive(&hpcd_USB_FS, endpoint>>1, rxtmp.ptr(endpoint, maximumSize), maximumSize);
-    epComplete &= ~(1 << endpoint);
-    return EP_PENDING;
-}
-
-EP_STATUS USBHAL::endpointReadResult(uint8_t endpoint, uint8_t * buffer, uint32_t *bytesRead) {
-    if (!(epComplete & (1 << endpoint))) {
-        return EP_PENDING;
-    }
-    int len = HAL_PCD_EP_GetRxCount(&hpcd_USB_FS, endpoint>>1);
-    memcpy(buffer, rxtmp.ptr(endpoint), len);
-    *bytesRead = len;
-    return EP_COMPLETED;
-}
-
-EP_STATUS USBHAL::endpointWrite(uint8_t endpoint, uint8_t *data, uint32_t size) {
-    HAL_PCD_EP_Transmit(&hpcd_USB_FS, endpoint>>1, data, size);
-    epComplete &= ~(1 << endpoint);
-    return EP_PENDING;
-}
-
-EP_STATUS USBHAL::endpointWriteResult(uint8_t endpoint) {
-    if (epComplete & (1 << endpoint)) {
-        epComplete &= ~(1 << endpoint);
-        return EP_COMPLETED;
-    }
-    return EP_PENDING;
-}
-
-void USBHAL::stallEndpoint(uint8_t endpoint) {
-    PCD_HandleTypeDef *hpcd = &hpcd_USB_FS;
-    switch(endpoint) {
-        case EP0IN:
-            HAL_PCD_EP_SetStall(hpcd, 0x80);
-            break;
-        case EP0OUT:
-            HAL_PCD_EP_SetStall(hpcd, 0x00);
-            break;
-        default:
-            break;
-    }
-}
-
-void USBHAL::unstallEndpoint(uint8_t endpoint) {
-}
-
-bool USBHAL::getEndpointStallState(uint8_t endpoint) {
-    return false;
-}
-
-void USBHAL::remoteWakeup(void) {}
-
-void USBHAL::_usbisr(void) {
-    HAL_PCD_IRQHandler(&hpcd_USB_FS);
-}
-
-void USBHAL::usbisr(void) {}
-
-void USBHAL::SetupStageCallback() {
-    EP0setupCallback();
-}
-
-void USBHAL::DataInStageCallback(uint8_t epnum) {
-    switch(epnum) {
-        case 0: // EP0IN
-            EP0in();
-            break;
-        case 1: 
-            epComplete |= (1<<EP1IN);
-            if (EP1_IN_callback()) {
-                epComplete &= ~(1<<EP1IN);
-            }
-            break;
-        case 2:
-            epComplete |= (1<<EP2IN);
-            if (EP2_IN_callback()) {
-                epComplete &= ~(1<<EP2IN);
-            }
-            break;
-        case 3: 
-            epComplete |= (1<<EP3IN);
-            if (EP3_IN_callback()) {
-                epComplete &= ~(1<<EP3IN);
-            }
-            break;
-        default:
-            MBED_ASSERT(0);
-            break;
-    }
-}
-
-void USBHAL::DataOutStageCallback(uint8_t epnum) {
-    switch(epnum) {
-        case 0: // EP0OUT
-            if ((hpcd_USB_FS.Setup[0]&0x80) == 0x00) { // host to device ?
-                EP0out();
-            }
-            break;
-        case 1:
-            epComplete |= (1<<EP1OUT);
-            if (EP1_OUT_callback()) {
-                epComplete &= ~(1<<EP1OUT);
-            }
-            break;
-        case 2:
-            epComplete |= (1<<EP2OUT);
-            if (EP2_OUT_callback()) {
-                epComplete &= ~(1<<EP2OUT);
-            }
-            break;
-        case 3:
-            epComplete |= (1<<EP3OUT);
-            if (EP3_OUT_callback()) {
-                epComplete &= ~(1<<EP3OUT);
-            }
-            break;
-        default:
-            MBED_ASSERT(0);
-            break;
-    }
-}
-
-void USBHAL::ResetCallback() {
-    PktBufArea.reset();
-    realiseEndpoint(EP0IN, MAX_PACKET_SIZE_EP0, 0);
-    realiseEndpoint(EP0OUT, MAX_PACKET_SIZE_EP0, 0);
-}
-
-void USBHAL::SOFCallback() {
-    SOF(hpcd_USB_FS.Instance->FNR & USB_FNR_FN);
-}
-
-void HAL_PCD_SetupStageCallback(PCD_HandleTypeDef *hpcd) {
-    reinterpret_cast<USBHAL*>(hpcd->pData)->SetupStageCallback();
-}
-
-void HAL_PCD_DataInStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) {
-    reinterpret_cast<USBHAL*>(hpcd->pData)->DataInStageCallback(epnum);
-}
-
-void HAL_PCD_DataOutStageCallback(PCD_HandleTypeDef *hpcd, uint8_t epnum) {
-    reinterpret_cast<USBHAL*>(hpcd->pData)->DataOutStageCallback(epnum);
-}
-
-void HAL_PCD_ResetCallback(PCD_HandleTypeDef *hpcd) {
-    reinterpret_cast<USBHAL*>(hpcd->pData)->ResetCallback();
-}
-
-void HAL_PCD_SOFCallback(PCD_HandleTypeDef *hpcd) {
-    reinterpret_cast<USBHAL*>(hpcd->pData)->SOFCallback();
-}
-
-void HAL_PCD_SuspendCallback(PCD_HandleTypeDef *hpcd) {
-    if (hpcd->Init.low_power_enable) {
-        SCB->SCR |= (uint32_t)((uint32_t)(SCB_SCR_SLEEPDEEP_Msk | SCB_SCR_SLEEPONEXIT_Msk));
-    }
-}
-
-#endif
--- a/USBSerial/CircBuffer.h	Thu Jun 25 09:33:51 2015 +0900
+++ b/USBSerial/CircBuffer.h	Fri Jul 08 21:16:25 2016 +0000
@@ -19,10 +19,16 @@
 #ifndef CIRCBUFFER_H
 #define CIRCBUFFER_H
 
-template <class T, int Size>
+template <class T>
 class CircBuffer {
 public:
-    CircBuffer():write(0), read(0){}
+    CircBuffer(int length) {
+        write = 0;
+        read = 0;
+        size = length + 1;
+        buf = (T *)malloc(size * sizeof(T));
+    };
+
     bool isFull() {
         return ((write + 1) % size == read);
     };
@@ -56,8 +62,8 @@
 private:
     volatile uint16_t write;
     volatile uint16_t read;
-    static const int size = Size+1;  //a modern optimizer should be able to remove this so it uses no ram.
-    T buf[Size+1];
+    uint16_t size;
+    T * buf;
 };
 
 #endif
--- a/USBSerial/USBCDC.cpp	Thu Jun 25 09:33:51 2015 +0900
+++ b/USBSerial/USBCDC.cpp	Fri Jul 08 21:16:25 2016 +0000
@@ -27,15 +27,11 @@
 #define CDC_GET_LINE_CODING        0x21
 #define CDC_SET_CONTROL_LINE_STATE 0x22
 
-// Control Line State bits
-#define CLS_DTR   (1 << 0)
-#define CLS_RTS   (1 << 1)
-
 #define MAX_CDC_REPORT_SIZE MAX_PACKET_SIZE_EPBULK
 
-USBCDC::USBCDC(uint16_t vendor_id, uint16_t product_id, uint16_t product_release, bool connect_blocking): USBDevice(vendor_id, product_id, product_release) {
+USBCDC::USBCDC(uint16_t vendor_id, uint16_t product_id, uint16_t product_release): USBDevice(vendor_id, product_id, product_release) {
     terminal_connected = false;
-    USBDevice::connect(connect_blocking);
+    USBDevice::connect();
 }
 
 bool USBCDC::USBCallback_request(void) {
@@ -56,15 +52,11 @@
                 break;
             case CDC_SET_LINE_CODING:
                 transfer->remaining = 7;
-                transfer->notify = true;
                 success = true;
+                terminal_connected = true;
                 break;
             case CDC_SET_CONTROL_LINE_STATE:
-                if (transfer->setup.wValue & CLS_DTR) {
-                    terminal_connected = true;
-                } else {
-                    terminal_connected = false;
-                }
+                terminal_connected = false;
                 success = true;
                 break;
             default:
@@ -75,31 +67,6 @@
     return success;
 }
 
-void USBCDC::USBCallback_requestCompleted(uint8_t *buf, uint32_t length) {
-    // Request of setting line coding has 7 bytes
-    if (length != 7) {
-        return;
-    }
-
-    CONTROL_TRANSFER * transfer = getTransferPtr();
-
-    /* Process class-specific requests */
-    if (transfer->setup.bmRequestType.Type == CLASS_TYPE) {
-        if (transfer->setup.bRequest == CDC_SET_LINE_CODING) {
-            if (memcmp(cdc_line_coding, buf, 7)) {
-                memcpy(cdc_line_coding, buf, 7);
-
-                int baud = buf[0] + (buf[1] << 8)
-                         + (buf[2] << 16) + (buf[3] << 24);
-                int stop = buf[4];
-                int bits = buf[6];
-                int parity = buf[5];
-
-                lineCodingChanged(baud, bits, parity, stop);
-            }
-        }
-    }
-}
 
 // Called in ISR context
 // Set configuration. Return false if the
@@ -149,8 +116,8 @@
         0,                    // bDeviceSubClass
         0,                    // bDeviceProtocol
         MAX_PACKET_SIZE_EP0,  // bMaxPacketSize0
-        (uint8_t)(LSB(VENDOR_ID)), (uint8_t)(MSB(VENDOR_ID)),  // idVendor
-        (uint8_t)(LSB(PRODUCT_ID)), (uint8_t)(MSB(PRODUCT_ID)),// idProduct
+        LSB(VENDOR_ID), MSB(VENDOR_ID),  // idVendor
+        LSB(PRODUCT_ID), MSB(PRODUCT_ID),// idProduct
         0x00, 0x01,           // bcdDevice
         1,                    // iManufacturer
         2,                    // iProduct
@@ -193,7 +160,7 @@
         0,                      // iConfiguration
         0x80,                   // bmAttributes
         50,                     // bMaxPower
-
+        
         // IAD to associate the two CDC interfaces
         0x08,                   // bLength
         0x0b,                   // bDescriptorType
--- a/USBSerial/USBCDC.h	Thu Jun 25 09:33:51 2015 +0900
+++ b/USBSerial/USBCDC.h	Fri Jul 08 21:16:25 2016 +0000
@@ -35,40 +35,39 @@
     * @param vendor_id Your vendor_id
     * @param product_id Your product_id
     * @param product_release Your preoduct_release
-    * @param connect_blocking define if the connection must be blocked if USB not plugged in
     */
-    USBCDC(uint16_t vendor_id, uint16_t product_id, uint16_t product_release, bool connect_blocking);
+    USBCDC(uint16_t vendor_id, uint16_t product_id, uint16_t product_release);
 
 protected:
-
+    
     /*
     * Get device descriptor. Warning: this method has to store the length of the report descriptor in reportLength.
     *
     * @returns pointer to the device descriptor
     */
     virtual uint8_t * deviceDesc();
-
+    
     /*
     * Get string product descriptor
     *
     * @returns pointer to the string product descriptor
     */
     virtual uint8_t * stringIproductDesc();
-
+    
     /*
     * Get string interface descriptor
     *
     * @returns pointer to the string interface descriptor
     */
     virtual uint8_t * stringIinterfaceDesc();
-
+    
     /*
     * Get configuration descriptor
     *
     * @returns pointer to the configuration descriptor
     */
     virtual uint8_t * configurationDesc();
-
+    
     /*
     * Send a buffer
     *
@@ -78,7 +77,7 @@
     * @returns true if successful
     */
     bool send(uint8_t * buffer, uint32_t size);
-
+    
     /*
     * Read a buffer from a certain endpoint. Warning: blocking
     *
@@ -89,7 +88,7 @@
     * @returns true if successful
     */
     bool readEP(uint8_t * buffer, uint32_t * size);
-
+    
     /*
     * Read a buffer from a certain endpoint. Warning: non blocking
     *
@@ -100,21 +99,9 @@
     * @returns true if successful
     */
     bool readEP_NB(uint8_t * buffer, uint32_t * size);
-
-    /*
-    * Called by USBCallback_requestCompleted when CDC line coding is changed
-    * Warning: Called in ISR
-    *
-    * @param baud The baud rate
-    * @param bits The number of bits in a word (5-8)
-    * @param parity The parity
-    * @param stop The number of stop bits (1 or 2)
-    */
-    virtual void lineCodingChanged(int baud, int bits, int parity, int stop) {};
-
+    
 protected:
     virtual bool USBCallback_request();
-    virtual void USBCallback_requestCompleted(uint8_t *buf, uint32_t length);
     virtual bool USBCallback_setConfiguration(uint8_t configuration);
     volatile bool terminal_connected;
 
--- a/USBSerial/USBSerial.cpp	Thu Jun 25 09:33:51 2015 +0900
+++ b/USBSerial/USBSerial.cpp	Fri Jul 08 21:16:25 2016 +0000
@@ -27,7 +27,7 @@
 }
 
 int USBSerial::_getc() {
-    uint8_t c = 0;
+    uint8_t c;
     while (buf.isEmpty());
     buf.dequeue(&c);
     return c;
@@ -46,19 +46,21 @@
 
 
 
-bool USBSerial::EPBULK_OUT_callback() {
+bool USBSerial::EP2_OUT_callback() {
     uint8_t c[65];
     uint32_t size = 0;
 
     //we read the packet received and put it on the circular buffer
     readEP(c, &size);
-    for (uint32_t i = 0; i < size; i++) {
+    for (int i = 0; i < size; i++) {
         buf.queue(c[i]);
     }
 
     //call a potential handler
     rx.call();
 
+    // We reactivate the endpoint to receive next characters
+    readStart(EPBULK_OUT, MAX_PACKET_SIZE_EPBULK);
     return true;
 }
 
--- a/USBSerial/USBSerial.h	Thu Jun 25 09:33:51 2015 +0900
+++ b/USBSerial/USBSerial.h	Fri Jul 08 21:16:25 2016 +0000
@@ -53,12 +53,9 @@
     * @param vendor_id Your vendor_id (default: 0x1f00)
     * @param product_id Your product_id (default: 0x2012)
     * @param product_release Your preoduct_release (default: 0x0001)
-    * @param connect_blocking define if the connection must be blocked if USB not plugged in
     *
     */
-    USBSerial(uint16_t vendor_id = 0x1f00, uint16_t product_id = 0x2012, uint16_t product_release = 0x0001, bool connect_blocking = true): USBCDC(vendor_id, product_id, product_release, connect_blocking){
-        settingsChangedCallback = 0;
-    };
+    USBSerial(uint16_t vendor_id = 0x1f00, uint16_t product_id = 0x2012, uint16_t product_release = 0x0001): USBCDC(vendor_id, product_id, product_release), buf(128){ };
 
 
     /**
@@ -68,39 +65,23 @@
     * @returns true if there is no error, false otherwise
     */
     virtual int _putc(int c);
-
+    
     /**
     * Read a character: blocking
     *
     * @returns character read
     */
     virtual int _getc();
-
+    
     /**
     * Check the number of bytes available.
     *
     * @returns the number of bytes available
     */
-    uint8_t available();
-
-    /** Determine if there is a character available to read
-     *
-     *  @returns
-     *    1 if there is a character available to read,
-     *    0 otherwise
-     */
-    int readable() { return available() ? 1 : 0; }
-
-    /** Determine if there is space available to write a character
-     *
-     *  @returns
-     *    1 if there is space to write a character,
-     *    0 otherwise
-     */
-    int writeable() { return 1; } // always return 1, for write operation is blocking
-
+    uint8_t available(); 
+    
     /**
-    * Write a block of data.
+    * Write a block of data. 
     *
     * For more efficiency, a block of size 64 (maximum size of a bulk endpoint) has to be written.
     *
@@ -112,7 +93,7 @@
     bool writeBlock(uint8_t * buf, uint16_t size);
 
     /**
-     *  Attach a member function to call when a packet is received.
+     *  Attach a member function to call when a packet is received. 
      *
      *  @param tptr pointer to the object to call the member function on
      *  @param mptr pointer to the member function to be called
@@ -129,33 +110,19 @@
      *
      * @param fptr function pointer
      */
-    void attach(void (*fptr)(void)) {
-        if(fptr != NULL) {
-            rx.attach(fptr);
+    void attach(void (*fn)(void)) {
+        if(fn != NULL) {
+            rx.attach(fn);
         }
     }
 
-    /**
-     * Attach a callback to call when serial's settings are changed.
-     *
-     * @param fptr function pointer
-     */
-    void attach(void (*fptr)(int baud, int bits, int parity, int stop)) {
-        settingsChangedCallback = fptr;
-    }
 
 protected:
-    virtual bool EPBULK_OUT_callback();
-    virtual void lineCodingChanged(int baud, int bits, int parity, int stop){
-        if (settingsChangedCallback) {
-            settingsChangedCallback(baud, bits, parity, stop);
-        }
-    }
+    virtual bool EP2_OUT_callback();
 
 private:
     FunctionPointer rx;
-    CircBuffer<uint8_t,128> buf;
-    void (*settingsChangedCallback)(int baud, int bits, int parity, int stop);
+    CircBuffer<uint8_t> buf;
 };
 
 #endif