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_host.h
26 * $Date:: 2014-07-09 16:29:19 +0900#$
27 * Description : RZ/A1H R7S72100 USB Sample Program
28 *******************************************************************************/
32 /*******************************************************************************
33 Includes <System Includes> , "Project Includes"
34 *******************************************************************************/
35 #include "devdrv_usb_host_api.h"
38 /*******************************************************************************
39 Imported global variables and functions (from other files)
40 *******************************************************************************/
41 extern const uint16_t g_usb1_host_bit_set
[];
42 extern uint32_t g_usb1_host_data_count
[USB_HOST_MAX_PIPE_NO
+ 1];
43 extern uint8_t *g_usb1_host_data_pointer
[USB_HOST_MAX_PIPE_NO
+ 1];
45 extern uint16_t g_usb1_host_PipeIgnore
[];
46 extern uint16_t g_usb1_host_PipeTbl
[];
47 extern uint16_t g_usb1_host_pipe_status
[];
48 extern uint32_t g_usb1_host_PipeDataSize
[];
50 extern USB_HOST_DMA_t g_usb1_host_DmaInfo
[];
51 extern uint16_t g_usb1_host_DmaPipe
[];
52 extern uint16_t g_usb1_host_DmaBval
[];
53 extern uint16_t g_usb1_host_DmaStatus
[];
55 extern uint16_t g_usb1_host_driver_state
;
56 extern uint16_t g_usb1_host_ConfigNum
;
57 extern uint16_t g_usb1_host_CmdStage
;
58 extern uint16_t g_usb1_host_bchg_flag
;
59 extern uint16_t g_usb1_host_detach_flag
;
60 extern uint16_t g_usb1_host_attach_flag
;
62 extern uint16_t g_usb1_host_UsbAddress
;
63 extern uint16_t g_usb1_host_setUsbAddress
;
64 extern uint16_t g_usb1_host_default_max_packet
[USB_HOST_MAX_DEVICE
+ 1];
65 extern uint16_t g_usb1_host_UsbDeviceSpeed
;
66 extern uint16_t g_usb1_host_SupportUsbDeviceSpeed
;
68 extern uint16_t g_usb1_host_SavReq
;
69 extern uint16_t g_usb1_host_SavVal
;
70 extern uint16_t g_usb1_host_SavIndx
;
71 extern uint16_t g_usb1_host_SavLen
;
73 extern uint16_t g_usb1_host_pipecfg
[USB_HOST_MAX_PIPE_NO
+ 1];
74 extern uint16_t g_usb1_host_pipebuf
[USB_HOST_MAX_PIPE_NO
+ 1];
75 extern uint16_t g_usb1_host_pipemaxp
[USB_HOST_MAX_PIPE_NO
+ 1];
76 extern uint16_t g_usb1_host_pipeperi
[USB_HOST_MAX_PIPE_NO
+ 1];
78 /*******************************************************************************
80 *******************************************************************************/
81 /* ==== common ==== */
82 void usb1_host_dma_stop_d0(uint16_t pipe
, uint32_t remain
);
83 void usb1_host_dma_stop_d1(uint16_t pipe
, uint32_t remain
);
84 uint16_t usb1_host_is_hispeed(void);
85 uint16_t usb1_host_is_hispeed_enable(void);
86 uint16_t usb1_host_start_send_transfer(uint16_t pipe
, uint32_t size
, uint8_t *data
);
87 uint16_t usb1_host_write_buffer(uint16_t pipe
);
88 uint16_t usb1_host_write_buffer_c(uint16_t pipe
);
89 uint16_t usb1_host_write_buffer_d0(uint16_t pipe
);
90 uint16_t usb1_host_write_buffer_d1(uint16_t pipe
);
91 void usb1_host_start_receive_transfer(uint16_t pipe
, uint32_t size
, uint8_t *data
);
92 uint16_t usb1_host_read_buffer(uint16_t pipe
);
93 uint16_t usb1_host_read_buffer_c(uint16_t pipe
);
94 uint16_t usb1_host_read_buffer_d0(uint16_t pipe
);
95 uint16_t usb1_host_read_buffer_d1(uint16_t pipe
);
96 uint16_t usb1_host_change_fifo_port(uint16_t pipe
, uint16_t fifosel
, uint16_t isel
, uint16_t mbw
);
97 void usb1_host_set_curpipe(uint16_t pipe
, uint16_t fifosel
, uint16_t isel
, uint16_t mbw
);
98 void usb1_host_set_curpipe2(uint16_t pipe
, uint16_t fifosel
, uint16_t isel
, uint16_t mbw
, uint16_t dfacc
);
99 uint16_t usb1_host_get_mbw(uint32_t trncount
, uint32_t dtptr
);
100 uint16_t usb1_host_read_dma(uint16_t pipe
);
101 void usb1_host_stop_transfer(uint16_t pipe
);
102 void usb1_host_brdy_int(uint16_t status
, uint16_t int_enb
);
103 void usb1_host_nrdy_int(uint16_t status
, uint16_t int_enb
);
104 void usb1_host_bemp_int(uint16_t status
, uint16_t int_enb
);
105 void usb1_host_setting_interrupt(uint8_t level
);
106 void usb1_host_reset_module(uint16_t clockmode
);
107 uint16_t usb1_host_get_buf_size(uint16_t pipe
);
108 uint16_t usb1_host_get_mxps(uint16_t pipe
);
109 void usb1_host_enable_brdy_int(uint16_t pipe
);
110 void usb1_host_disable_brdy_int(uint16_t pipe
);
111 void usb1_host_clear_brdy_sts(uint16_t pipe
);
112 void usb1_host_enable_bemp_int(uint16_t pipe
);
113 void usb1_host_disable_bemp_int(uint16_t pipe
);
114 void usb1_host_clear_bemp_sts(uint16_t pipe
);
115 void usb1_host_enable_nrdy_int(uint16_t pipe
);
116 void usb1_host_disable_nrdy_int(uint16_t pipe
);
117 void usb1_host_clear_nrdy_sts(uint16_t pipe
);
118 void usb1_host_set_pid_buf(uint16_t pipe
);
119 void usb1_host_set_pid_nak(uint16_t pipe
);
120 void usb1_host_set_pid_stall(uint16_t pipe
);
121 void usb1_host_clear_pid_stall(uint16_t pipe
);
122 uint16_t usb1_host_get_pid(uint16_t pipe
);
123 void usb1_host_set_sqclr(uint16_t pipe
);
124 void usb1_host_set_sqset(uint16_t pipe
);
125 void usb1_host_set_csclr(uint16_t pipe
);
126 void usb1_host_aclrm(uint16_t pipe
);
127 void usb1_host_set_aclrm(uint16_t pipe
);
128 void usb1_host_clr_aclrm(uint16_t pipe
);
129 uint16_t usb1_host_get_sqmon(uint16_t pipe
);
130 uint16_t usb1_host_get_inbuf(uint16_t pipe
);
133 void usb1_host_init_pipe_status(void);
134 int32_t usb1_host_CtrlTransStart(uint16_t devadr
, uint16_t Req
, uint16_t Val
, uint16_t Indx
, uint16_t Len
, uint8_t *Buf
);
135 void usb1_host_SetupStage(uint16_t Req
, uint16_t Val
, uint16_t Indx
, uint16_t Len
);
136 void usb1_host_CtrlReadStart(uint32_t Bsize
, uint8_t *Table
);
137 uint16_t usb1_host_CtrlWriteStart(uint32_t Bsize
, uint8_t *Table
);
138 void usb1_host_StatusStage(void);
139 void usb1_host_get_devadd(uint16_t addr
, uint16_t *devadd
);
140 void usb1_host_set_devadd(uint16_t addr
, uint16_t *devadd
);
141 void usb1_host_InitModule(void);
142 uint16_t usb1_host_CheckAttach(void);
143 void usb1_host_UsbDetach(void);
144 void usb1_host_UsbDetach2(void);
145 void usb1_host_UsbAttach(void);
146 uint16_t usb1_host_UsbBusReset(void);
147 int32_t usb1_host_UsbResume(void);
148 int32_t usb1_host_UsbSuspend(void);
149 void usb1_host_Enable_DetachINT(void);
150 void usb1_host_Disable_DetachINT(void);
151 void usb1_host_UsbStateManager(void);
154 #endif /* USB1_HOST_H */