usbopt: Add usb control operation enum
Add usbopt, a number of defines to control USB peripheral device settings. Options are split into settings for USB devices and USB endpoints.
This commit is contained in:
parent
f52d0c7c53
commit
30c8d97092
122
sys/include/usb/usbopt.h
Normal file
122
sys/include/usb/usbopt.h
Normal file
@ -0,0 +1,122 @@
|
||||
/*
|
||||
* Copyright (C) 2018 Koen Zandberg <koen@bergzand.net>
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU Lesser General
|
||||
* Public License v2.1. See the file LICENSE in the top level directory for
|
||||
* more details.
|
||||
*/
|
||||
/**
|
||||
* @defgroup usb_usbopt usbopt - Configuration options for USB APIs
|
||||
* @ingroup usb
|
||||
* @brief List of available configuration options for the
|
||||
* @ref drivers_periph_usbdev
|
||||
* @{
|
||||
*
|
||||
* @file
|
||||
* @brief Definition of global USB peripheral and USB peripheral endpoint
|
||||
* configuration options.
|
||||
*
|
||||
* @author Koen Zandberg <koen@bergzand.net>
|
||||
*/
|
||||
|
||||
#ifndef USB_USBOPT_H
|
||||
#define USB_USBOPT_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @brief List of configuration settings for USB peripherals
|
||||
*
|
||||
* The data type specified in parentheses for each individual option is the
|
||||
* data type to use for the argument when getting/setting the value of the option.
|
||||
*/
|
||||
typedef enum {
|
||||
|
||||
/**
|
||||
* @brief (uint8_t) USB device address, limited to 7 bit by the protocol
|
||||
*/
|
||||
USBOPT_ADDRESS,
|
||||
|
||||
/**
|
||||
* @brief (usbopt_enable_t) Attach/detach USB peripheral to host
|
||||
*
|
||||
* In practice this happens by enabling or disabling the pull-up resistor
|
||||
* on one of the data lines.
|
||||
*/
|
||||
USBOPT_ATTACH,
|
||||
|
||||
/**
|
||||
* @brief (usbopt_enable_t) Whether a USB host connection is detected
|
||||
*
|
||||
* Setting this option must return -ENOTSUP
|
||||
*/
|
||||
USBOPT_CONNECTED,
|
||||
|
||||
/**
|
||||
* @brief (usb_version_t) Highest USB version supported by peripheral
|
||||
*
|
||||
* Setting this option must return -ENOTSUP
|
||||
*/
|
||||
USBOPT_MAX_VERSION,
|
||||
|
||||
/**
|
||||
* @brief (usb_version_t) Highest USB speed supported by peripheral
|
||||
*
|
||||
* Setting this option must return -ENOTSUP
|
||||
*/
|
||||
USBOPT_MAX_SPEED,
|
||||
|
||||
/* expand list if required */
|
||||
} usbopt_t;
|
||||
|
||||
/**
|
||||
* @brief List of configuration settings for USB peripheral endpoints
|
||||
*
|
||||
* The data type specified in parentheses for each individual option is the
|
||||
* data type to use for the argument when getting/setting the value of the option.
|
||||
*/
|
||||
typedef enum {
|
||||
|
||||
/**
|
||||
* @brief (usbopt_enable_t) Enable or disable the endpoint
|
||||
*/
|
||||
USBOPT_EP_ENABLE,
|
||||
|
||||
/**
|
||||
* @brief (usbopt_enable_t) Enable or disable stall replies for endpoint
|
||||
*/
|
||||
USBOPT_EP_STALL,
|
||||
|
||||
/**
|
||||
* @brief (usbopt_enable_t) Signal data ready or not ready anymore
|
||||
*/
|
||||
USBOPT_EP_READY,
|
||||
|
||||
/**
|
||||
* @brief (size_t) Retrieve number of bytes available on endpoint.
|
||||
*/
|
||||
USBOPT_EP_AVAILABLE,
|
||||
|
||||
/* expand list if required */
|
||||
} usbopt_ep_t;
|
||||
|
||||
/**
|
||||
* @brief Binary parameter for enabling and disabling options
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
USBOPT_DISABLE = 0, /**< disable a given option */
|
||||
USBOPT_ENABLE = 1, /**< enable a given option */
|
||||
} usbopt_enable_t;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* USB_USBOPT_H */
|
||||
/** @} */
|
||||
Loading…
x
Reference in New Issue
Block a user