VSF Documented
usbd.h
Go to the documentation of this file.
1/*****************************************************************************
2 * Copyright(C)2009-2022 by VSF Team *
3 * *
4 * Licensed under the Apache License, Version 2.0 (the "License"); *
5 * you may not use this file except in compliance with the License. *
6 * You may obtain a copy of the License at *
7 * *
8 * http://www.apache.org/licenses/LICENSE-2.0 *
9 * *
10 * Unless required by applicable law or agreed to in writing, software *
11 * distributed under the License is distributed on an "AS IS" BASIS, *
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13 * See the License for the specific language governing permissions and *
14 * limitations under the License. *
15 * *
16 ****************************************************************************/
17
18#ifndef __HAL_DRIVER_WCH_CH32f10x_USBD_H__
19#define __HAL_DRIVER_WCH_CH32f10x_USBD_H__
20
21/*============================ INCLUDES ======================================*/
22#include "hal/vsf_hal_cfg.h"
23#include "../../../__device.h"
24
26//#include "../../io/io.h"
27//#include "../../pm/pm.h"
28
30
31/*============================ MACROS ========================================*/
32
33#undef USB_DC_HAS_CONST
34#if !defined(USB_DC_EP_NUM) && !defined(USB_DC_HP_IRQN) \
35 && !defined(USB_DC_HP_IRQN) && !defined(USB_DC_REG_BASE) \
36 && !defined(USB_DC_PMA_BASE)
37# define USB_DC_HAS_CONST
38#endif
39
40/*============================ MACROFIED FUNCTIONS ===========================*/
41/*============================ TYPES =========================================*/
42
43#ifdef USB_DC_HAS_CONST
45 // information from device.h
46# ifndef USB_DC_EP_NUM
48# endif
49# ifndef USB_DC_LP_IRQN
51# endif
52# ifndef USB_DC_REG_BASE
53 void *reg;
54# endif
55# ifndef USB_DC_PMA_BASE
56 void *pma;
57# endif
58};
60#endif
61
63 struct {
65 void *param;
67#ifdef USB_DC_HAS_CONST
69#endif
70
74 union {
75#ifndef USB_DC_EP_NUM
76 struct {
79 };
81#else
82 struct {
85 };
87#endif
88 };
89};
91
92/*============================ GLOBAL VARIABLES ==============================*/
93/*============================ INCLUDES ======================================*/
94/*============================ PROTOTYPES ====================================*/
95
97extern void ch32f10x_usbd_fini(ch32f10x_usbd_t *usbd);
98extern void ch32f10x_usbd_reset(ch32f10x_usbd_t *usbd, usb_dc_cfg_t *cfg);
99
100extern void ch32f10x_usbd_connect(ch32f10x_usbd_t *usbd);
102extern void ch32f10x_usbd_wakeup(ch32f10x_usbd_t *usbd);
103
106
109
110extern void ch32f10x_usbd_get_setup(ch32f10x_usbd_t *usbd, uint8_t *buffer);
111extern void ch32f10x_usbd_status_stage(ch32f10x_usbd_t *usbd, bool is_in);
112
116
120
122
127
130
131extern void ch32f10x_usbd_irq(ch32f10x_usbd_t *usbd);
132
133#endif
134/* EOF */
vsf_err_t
Definition __type.h:42
void ch32f10x_usbd_irq(ch32f10x_usbd_t *usbd)
Definition usbd.c:675
void ch32f10x_usbd_get_setup(ch32f10x_usbd_t *usbd, uint8_t *buffer)
Definition usbd.c:425
uint_fast16_t ch32f10x_usbd_get_frame_number(ch32f10x_usbd_t *usbd)
Definition usbd.c:414
uint_fast8_t ch32f10x_usbd_ep_get_feature(ch32f10x_usbd_t *usbd, uint_fast8_t ep, uint_fast8_t feature)
Definition usbd.c:440
uint_fast32_t ch32f10x_usbd_ep_get_data_size(ch32f10x_usbd_t *usbd, uint_fast8_t ep)
Definition usbd.c:550
vsf_err_t ch32f10x_usbd_ep_transaction_write_buffer(ch32f10x_usbd_t *usbd, uint_fast8_t ep, uint8_t *buffer, uint_fast16_t size)
Definition usbd.c:637
void ch32f10x_usbd_fini(ch32f10x_usbd_t *usbd)
Definition usbd.c:361
bool ch32f10x_usbd_ep_is_stalled(ch32f10x_usbd_t *usbd, uint_fast8_t ep)
Definition usbd.c:514
void ch32f10x_usbd_connect(ch32f10x_usbd_t *usbd)
Definition usbd.c:385
vsf_err_t ch32f10x_usbd_ep_transaction_read_buffer(ch32f10x_usbd_t *usbd, uint_fast8_t ep, uint8_t *buffer, uint_fast16_t size)
Definition usbd.c:564
void ch32f10x_usbd_wakeup(ch32f10x_usbd_t *usbd)
Definition usbd.c:397
uint_fast16_t ch32f10x_usbd_ep_get_size(ch32f10x_usbd_t *usbd, uint_fast8_t ep)
Definition usbd.c:478
void ch32f10x_usbd_set_address(ch32f10x_usbd_t *usbd, uint_fast8_t addr)
Definition usbd.c:402
vsf_err_t ch32f10x_usbd_ep_add(ch32f10x_usbd_t *usbd, uint_fast8_t ep, usb_ep_type_t type, uint_fast16_t size)
Definition usbd.c:445
uint_fast8_t ch32f10x_usbd_get_mframe_number(ch32f10x_usbd_t *usbd)
Definition usbd.c:420
vsf_err_t ch32f10x_usbd_ep_clear_stall(ch32f10x_usbd_t *usbd, uint_fast8_t ep)
Definition usbd.c:529
vsf_err_t ch32f10x_usbd_ep_transfer_recv(ch32f10x_usbd_t *usbd, uint_fast8_t ep, uint8_t *buffer, uint_fast32_t size)
Definition usbd.c:658
vsf_err_t ch32f10x_usbd_ep_transaction_enable_out(ch32f10x_usbd_t *usbd, uint_fast8_t ep)
Definition usbd.c:592
vsf_err_t ch32f10x_usbd_ep_set_stall(ch32f10x_usbd_t *usbd, uint_fast8_t ep)
Definition usbd.c:494
void ch32f10x_usbd_reset(ch32f10x_usbd_t *usbd, usb_dc_cfg_t *cfg)
Definition usbd.c:374
void ch32f10x_usbd_disconnect(ch32f10x_usbd_t *usbd)
Definition usbd.c:391
vsf_err_t ch32f10x_usbd_ep_transfer_send(ch32f10x_usbd_t *usbd, uint_fast8_t ep, uint8_t *buffer, uint_fast32_t size, bool zlp)
Definition usbd.c:663
vsf_err_t ch32f10x_usbd_init(ch32f10x_usbd_t *usbd, usb_dc_cfg_t *cfg)
Definition usbd.c:311
void ch32f10x_usbd_status_stage(ch32f10x_usbd_t *usbd, bool is_in)
Definition usbd.c:431
vsf_err_t ch32f10x_usbd_ep_transaction_set_data_size(ch32f10x_usbd_t *usbd, uint_fast8_t ep, uint_fast16_t size)
Definition usbd.c:608
uint_fast8_t ch32f10x_usbd_get_address(ch32f10x_usbd_t *usbd)
Definition usbd.c:408
enum IRQn IRQn_Type
#define USB_DC_EP_NUM
Definition device.h:87
unsigned short uint16_t
Definition stdint.h:7
unsigned char uint_fast8_t
Definition stdint.h:23
unsigned int uint_fast32_t
Definition stdint.h:27
unsigned short uint_fast16_t
Definition stdint.h:25
unsigned char uint8_t
Definition stdint.h:5
Definition usbd.h:44
uint8_t ep_num
Definition usbd.h:47
void * pma
Definition usbd.h:56
IRQn_Type lp_irq
Definition usbd.h:50
void * reg
Definition usbd.h:53
Definition usbd.h:62
usb_dc_evthandler_t evthandler
Definition usbd.h:64
void * param
Definition usbd.h:65
uint8_t ep_size_out[16]
Definition usbd.h:78
uint8_t ep_size_in[16]
Definition usbd.h:77
const ch32f10x_usbd_const_t * param
Definition usbd.h:68
struct ch32f10x_usbd_t::@669 callback
bool is_status_out
Definition usbd.h:73
uint8_t ep_size[32]
Definition usbd.h:80
uint16_t ep_buf_ptr
Definition usbd.h:71
bool is_status_in
Definition usbd.h:72
Definition vsf_template_usb.h:316
vk_av_control_type_t type
Definition vsf_audio.h:170
uint32_t size
Definition vsf_memfs.h:50
usb_ep_type_t
Definition vsf_template_usb.h:277
void(* usb_dc_evthandler_t)(void *param, usb_evt_t evt, uint_fast8_t value)
Definition vsf_template_usb.h:309