updsted the USB to persuade it to build for the Dragonfly platfom
Fork of USBDevice by
Diff: USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/src/function/usb0_function_api.c
- Revision:
- 46:378357d7e90d
- Parent:
- 45:0f216c4e75e5
- Child:
- 47:a0cd9646ecd1
--- a/USBDevice/TARGET_RENESAS/TARGET_RZ_A1H/src/function/usb0_function_api.c Thu Mar 26 14:30:20 2015 +0000 +++ /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 */