Zephyr API Documentation  2.7.0-rc2
A Scalable Open Source RTOS
usb_dc.h
Go to the documentation of this file.
1/* usb_dc.h - USB device controller driver interface */
2
3/*
4 * Copyright (c) 2016 Intel Corporation.
5 *
6 * SPDX-License-Identifier: Apache-2.0
7 */
8
17#ifndef ZEPHYR_INCLUDE_DRIVERS_USB_USB_DC_H_
18#define ZEPHYR_INCLUDE_DRIVERS_USB_USB_DC_H_
19
20#include <device.h>
21
25#define USB_EP_DIR_MASK 0x80U
26#define USB_EP_DIR_IN 0x80U
27#define USB_EP_DIR_OUT 0x00U
28
30#define USB_EP_GET_IDX(ep) ((ep) & ~USB_EP_DIR_MASK)
32#define USB_EP_GET_DIR(ep) ((ep) & USB_EP_DIR_MASK)
34#define USB_EP_GET_ADDR(idx, dir) ((idx) | ((dir) & USB_EP_DIR_MASK))
36#define USB_EP_DIR_IS_IN(ep) (USB_EP_GET_DIR(ep) == USB_EP_DIR_IN)
38#define USB_EP_DIR_IS_OUT(ep) (USB_EP_GET_DIR(ep) == USB_EP_DIR_OUT)
39
43#define USB_EP_TRANSFER_TYPE_MASK 0x3U
44
50#define USB_EP_SYNCHRONIZATION_TYPE_MASK (0x3 << 2U)
51
88};
89
103
117
129 USB_DC_EP_ADAPTIVE = (2U << 2U),
131 USB_DC_EP_SYNCHRONOUS = (3U << 2U)
133
152};
153
158 enum usb_dc_ep_cb_status_code cb_status);
159
164 const uint8_t *param);
165
176
186
195int usb_dc_reset(void);
196
205
216
230int usb_dc_ep_check_cap(const struct usb_dc_ep_cfg_data * const cfg);
231
243int usb_dc_ep_configure(const struct usb_dc_ep_cfg_data * const cfg);
244
254
264
274int usb_dc_ep_is_stalled(const uint8_t ep, uint8_t *const stalled);
275
285
299
313
325
344int usb_dc_ep_write(const uint8_t ep, const uint8_t *const data,
345 const uint32_t data_len, uint32_t * const ret_bytes);
346
366int usb_dc_ep_read(const uint8_t ep, uint8_t *const data,
367 const uint32_t max_data_len, uint32_t *const read_bytes);
368
384
404 uint32_t *read_bytes);
405
420
430
439
444#endif /* ZEPHYR_INCLUDE_DRIVERS_USB_USB_DC_H_ */
void
Definition: eswifi_shell.c:15
int usb_dc_ep_read_wait(uint8_t ep, uint8_t *data, uint32_t max_data_len, uint32_t *read_bytes)
Read data from the specified endpoint.
int usb_dc_ep_disable(const uint8_t ep)
Disable the selected endpoint.
int usb_dc_detach(void)
Detach the USB device.
int usb_dc_ep_enable(const uint8_t ep)
Enable the selected endpoint.
void(* usb_dc_status_callback)(enum usb_dc_status_code cb_status, const uint8_t *param)
Definition: usb_dc.h:163
int usb_dc_wakeup_request(void)
Start the host wake up procedure.
void usb_dc_set_status_callback(const usb_dc_status_callback cb)
Set USB device controller status callback.
int usb_dc_set_address(const uint8_t addr)
Set USB device address.
int usb_dc_ep_set_stall(const uint8_t ep)
Set stall condition for the selected endpoint.
int usb_dc_ep_mps(uint8_t ep)
Get endpoint max packet size.
int usb_dc_ep_halt(const uint8_t ep)
Halt the selected endpoint.
int usb_dc_ep_configure(const struct usb_dc_ep_cfg_data *const cfg)
Configure endpoint.
int usb_dc_reset(void)
Reset the USB device.
int usb_dc_ep_read(const uint8_t ep, uint8_t *const data, const uint32_t max_data_len, uint32_t *const read_bytes)
Read data from the specified endpoint.
int usb_dc_ep_flush(const uint8_t ep)
Flush the selected endpoint.
int usb_dc_ep_read_continue(uint8_t ep)
Continue reading data from the endpoint.
int usb_dc_ep_check_cap(const struct usb_dc_ep_cfg_data *const cfg)
check endpoint capabilities
int usb_dc_ep_clear_stall(const uint8_t ep)
Clear stall condition for the selected endpoint.
int usb_dc_ep_set_callback(const uint8_t ep, const usb_dc_ep_callback cb)
Set callback function for the specified endpoint.
usb_dc_status_code
USB Driver Status Codes.
Definition: usb_dc.h:63
usb_dc_ep_transfer_type
USB Endpoint Transfer Type.
Definition: usb_dc.h:107
int usb_dc_ep_write(const uint8_t ep, const uint8_t *const data, const uint32_t data_len, uint32_t *const ret_bytes)
Write data to the specified endpoint.
void(* usb_dc_ep_callback)(uint8_t ep, enum usb_dc_ep_cb_status_code cb_status)
Definition: usb_dc.h:157
usb_dc_ep_synchronozation_type
USB Endpoint Synchronization Type.
Definition: usb_dc.h:123
int usb_dc_attach(void)
Attach USB for device connection.
usb_dc_ep_cb_status_code
USB Endpoint Callback Status Codes.
Definition: usb_dc.h:95
int usb_dc_ep_is_stalled(const uint8_t ep, uint8_t *const stalled)
Check if the selected endpoint is stalled.
@ USB_DC_CLEAR_HALT
Definition: usb_dc.h:83
@ USB_DC_RESUME
Definition: usb_dc.h:77
@ USB_DC_DISCONNECTED
Definition: usb_dc.h:73
@ USB_DC_SET_HALT
Definition: usb_dc.h:81
@ USB_DC_CONFIGURED
Definition: usb_dc.h:71
@ USB_DC_CONNECTED
Definition: usb_dc.h:69
@ USB_DC_RESET
Definition: usb_dc.h:67
@ USB_DC_INTERFACE
Definition: usb_dc.h:79
@ USB_DC_UNKNOWN
Definition: usb_dc.h:87
@ USB_DC_ERROR
Definition: usb_dc.h:65
@ USB_DC_SOF
Definition: usb_dc.h:85
@ USB_DC_SUSPEND
Definition: usb_dc.h:75
@ USB_DC_EP_CONTROL
Definition: usb_dc.h:109
@ USB_DC_EP_ISOCHRONOUS
Definition: usb_dc.h:111
@ USB_DC_EP_BULK
Definition: usb_dc.h:113
@ USB_DC_EP_INTERRUPT
Definition: usb_dc.h:115
@ USB_DC_EP_ADAPTIVE
Definition: usb_dc.h:129
@ USB_DC_EP_SYNCHRONOUS
Definition: usb_dc.h:131
@ USB_DC_EP_ASYNCHRONOUS
Definition: usb_dc.h:127
@ USB_DC_EP_NO_SYNCHRONIZATION
Definition: usb_dc.h:125
@ USB_DC_EP_DATA_OUT
Definition: usb_dc.h:99
@ USB_DC_EP_SETUP
Definition: usb_dc.h:97
@ USB_DC_EP_DATA_IN
Definition: usb_dc.h:101
__UINT32_TYPE__ uint32_t
Definition: stdint.h:60
__UINT8_TYPE__ uint8_t
Definition: stdint.h:58
__UINT16_TYPE__ uint16_t
Definition: stdint.h:59
USB Endpoint Configuration.
Definition: usb_dc.h:139
uint16_t ep_mps
Definition: usb_dc.h:147
enum usb_dc_ep_transfer_type ep_type
Definition: usb_dc.h:151
uint8_t ep_addr
Definition: usb_dc.h:145
static fdata_t data[2]
Definition: test_fifo_contexts.c:15