1 /*******************************************************************************
3 * This software is supplied by Renesas Electronics Corporation and is only
4 * intended for use with Renesas products. No other uses are authorized. This
5 * software is owned by Renesas Electronics Corporation and is protected under
6 * all applicable laws, including copyright laws.
7 * THIS SOFTWARE IS PROVIDED "AS IS" AND RENESAS MAKES NO WARRANTIES REGARDING
8 * THIS SOFTWARE, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING BUT NOT
9 * LIMITED TO WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE
10 * AND NON-INFRINGEMENT. ALL SUCH WARRANTIES ARE EXPRESSLY DISCLAIMED.
11 * TO THE MAXIMUM EXTENT PERMITTED NOT PROHIBITED BY LAW, NEITHER RENESAS
12 * ELECTRONICS CORPORATION NOR ANY OF ITS AFFILIATED COMPANIES SHALL BE LIABLE
13 * FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES FOR
14 * ANY REASON RELATED TO THIS SOFTWARE, EVEN IF RENESAS OR ITS AFFILIATES HAVE
15 * BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
16 * Renesas reserves the right, without notice, to make changes to this software
17 * and to discontinue the availability of this software. By using this software,
18 * you agree to the additional terms and conditions found by accessing the
20 * http://www.renesas.com/disclaimer
21 * Copyright (C) 2012 - 2014 Renesas Electronics Corporation. All rights reserved.
22 *******************************************************************************/
23 /*******************************************************************************
24 * File Name : usb1_function.h
26 * $Date:: 2014-07-09 16:29:19 +0900#$
27 * Description : RZ/A1H R7S72100 USB Sample Program
28 *******************************************************************************/
29 #ifndef USB1_FUNCTION_H
30 #define USB1_FUNCTION_H
33 /*******************************************************************************
34 Includes <System Includes> , "Project Includes"
35 *******************************************************************************/
36 #include "devdrv_usb_function_api.h"
37 #include "usb_function.h"
44 /*******************************************************************************
46 *******************************************************************************/
49 /*******************************************************************************
51 *******************************************************************************/
54 /*******************************************************************************
55 Imported global variables and functions (from other files)
56 *******************************************************************************/
57 extern const uint16_t g_usb1_function_bit_set
[];
58 extern uint32_t g_usb1_function_data_count
[USB_FUNCTION_MAX_PIPE_NO
+ 1];
59 extern uint8_t *g_usb1_function_data_pointer
[USB_FUNCTION_MAX_PIPE_NO
+ 1];
61 extern uint16_t g_usb1_function_PipeIgnore
[];
62 extern uint16_t g_usb1_function_PipeTbl
[];
63 extern uint16_t g_usb1_function_pipe_status
[];
64 extern uint32_t g_usb1_function_PipeDataSize
[];
66 extern USB_FUNCTION_DMA_t g_usb1_function_DmaInfo
[];
67 extern uint16_t g_usb1_function_DmaPipe
[];
68 extern uint16_t g_usb1_function_DmaBval
[];
69 extern uint16_t g_usb1_function_DmaStatus
[];
71 extern uint16_t g_usb1_function_CtrZeroLengthFlag
;
73 extern uint16_t g_usb1_function_ConfigNum
;
74 extern uint16_t g_usb1_function_Alternate
[USB_FUNCTION_ALT_NO
];
75 extern uint16_t g_usb1_function_RemoteWakeupFlag
;
76 extern uint16_t g_usb1_function_TestModeFlag
;
77 extern uint16_t g_usb1_function_TestModeSelectors
;
79 extern uint16_t g_usb1_function_ReqType
;
80 extern uint16_t g_usb1_function_ReqTypeType
;
81 extern uint16_t g_usb1_function_ReqTypeRecip
;
82 extern uint16_t g_usb1_function_ReqRequest
;
83 extern uint16_t g_usb1_function_ReqValue
;
84 extern uint16_t g_usb1_function_ReqIndex
;
85 extern uint16_t g_usb1_function_ReqLength
;
87 extern uint16_t g_usb1_function_EPTableIndex
[USB_FUNCTION_MAX_EP_NO
+ 1];
89 extern uint16_t g_usb1_function_pipecfg
[USB_FUNCTION_MAX_PIPE_NO
+ 1];
90 extern uint16_t g_usb1_function_pipebuf
[USB_FUNCTION_MAX_PIPE_NO
+ 1];
91 extern uint16_t g_usb1_function_pipemaxp
[USB_FUNCTION_MAX_PIPE_NO
+ 1];
92 extern uint16_t g_usb1_function_pipeperi
[USB_FUNCTION_MAX_PIPE_NO
+ 1];
95 /*******************************************************************************
96 Exported global variables and functions (to be accessed by other files)
97 *******************************************************************************/
98 /* ==== common ==== */
99 void usb1_function_dma_stop_d0(uint16_t pipe
, uint32_t remain
);
100 void usb1_function_dma_stop_d1(uint16_t pipe
, uint32_t remain
);
101 uint16_t usb1_function_is_hispeed(void);
102 uint16_t usb1_function_is_hispeed_enable(void);
103 uint16_t usb1_function_start_send_transfer(uint16_t pipe
, uint32_t size
, uint8_t *data
);
104 uint16_t usb1_function_write_buffer(uint16_t pipe
);
105 uint16_t usb1_function_write_buffer_c(uint16_t pipe
);
106 uint16_t usb1_function_write_buffer_d0(uint16_t pipe
);
107 uint16_t usb1_function_write_buffer_d1(uint16_t pipe
);
108 void usb1_function_start_receive_transfer(uint16_t pipe
, uint32_t size
, uint8_t *data
);
109 uint16_t usb1_function_read_buffer(uint16_t pipe
);
110 uint16_t usb1_function_read_buffer_c(uint16_t pipe
);
111 uint16_t usb1_function_read_buffer_d0(uint16_t pipe
);
112 uint16_t usb1_function_read_buffer_d1(uint16_t pipe
);
113 uint16_t usb1_function_change_fifo_port(uint16_t pipe
, uint16_t fifosel
, uint16_t isel
, uint16_t mbw
);
114 void usb1_function_set_curpipe(uint16_t pipe
, uint16_t fifosel
, uint16_t isel
, uint16_t mbw
);
115 void usb1_function_set_curpipe2(uint16_t pipe
, uint16_t fifosel
, uint16_t isel
, uint16_t mbw
, uint16_t dfacc
);
116 uint16_t usb1_function_get_mbw(uint32_t trncount
, uint32_t dtptr
);
117 uint16_t usb1_function_read_dma(uint16_t pipe
);
118 void usb1_function_brdy_int(uint16_t status
, uint16_t int_enb
);
119 void usb1_function_nrdy_int(uint16_t status
, uint16_t int_enb
);
120 void usb1_function_bemp_int(uint16_t status
, uint16_t int_enb
);
121 void usb1_function_setting_interrupt(uint8_t level
);
122 void usb1_function_reset_module(uint16_t clockmode
);
123 uint16_t usb1_function_get_buf_size(uint16_t pipe
);
124 uint16_t usb1_function_get_mxps(uint16_t pipe
);
125 void usb1_function_clear_brdy_sts(uint16_t pipe
);
126 void usb1_function_clear_bemp_sts(uint16_t pipe
);
127 void usb1_function_clear_nrdy_sts(uint16_t pipe
);
128 void usb1_function_set_pid_buf(uint16_t pipe
);
129 void usb1_function_set_pid_nak(uint16_t pipe
);
130 void usb1_function_set_pid_stall(uint16_t pipe
);
131 void usb1_function_clear_pid_stall(uint16_t pipe
);
132 uint16_t usb1_function_get_pid(uint16_t pipe
);
133 void usb1_function_set_sqclr(uint16_t pipe
);
134 void usb1_function_set_sqset(uint16_t pipe
);
135 void usb1_function_set_csclr(uint16_t pipe
);
136 void usb1_function_aclrm(uint16_t pipe
);
137 void usb1_function_set_aclrm(uint16_t pipe
);
138 void usb1_function_clr_aclrm(uint16_t pipe
);
139 uint16_t usb1_function_get_sqmon(uint16_t pipe
);
140 uint16_t usb1_function_get_inbuf(uint16_t pipe
);
142 /* ==== function ==== */
143 void usb1_function_init_status(void);
144 void usb1_function_InitModule(uint16_t mode
);
145 uint16_t usb1_function_CheckVBUStaus(void);
146 void usb1_function_USB_FUNCTION_Attach(void);
147 void usb1_function_USB_FUNCTION_Detach(void);
148 void usb1_function_USB_FUNCTION_BusReset(void);
149 void usb1_function_USB_FUNCTION_Resume(void);
150 void usb1_function_USB_FUNCTION_Suspend(void);
151 void usb1_function_USB_FUNCTION_TestMode(void);
152 void usb1_function_ResetDCP(void);
153 void usb1_function_ResetEP(uint16_t num
);
154 uint16_t usb1_function_EpToPipe(uint16_t ep
);
155 void usb1_function_InitEPTable(uint16_t Con_Num
, uint16_t Int_Num
, uint16_t Alt_Num
);
156 uint16_t usb1_function_GetConfigNum(void);
157 uint16_t usb1_function_GetAltNum(uint16_t Con_Num
, uint16_t Int_Num
);
158 uint16_t usb1_function_CheckRemoteWakeup(void);
159 void usb1_function_clear_alt(void);
160 void usb1_function_clear_pipe_tbl(void);
161 void usb1_function_clear_ep_table_index(void);
162 uint16_t usb1_function_GetInterfaceNum(uint16_t num
);
169 #endif /* USB1_FUNCTION_H */