zephyr/subsys/usb/device_next/usbd_device.h
Tomasz Moń 8d344cc9d8 usb: device_next: Rename usbd_contex to usbd_context
Add the missing "t" to struct usbd_contex. No functional changes.

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
2024-06-03 06:43:20 -07:00

137 lines
3.1 KiB
C

/*
* Copyright (c) 2022 Nordic Semiconductor ASA
*
* SPDX-License-Identifier: Apache-2.0
*/
#ifndef ZEPHYR_INCLUDE_USBD_DEVICE_H
#define ZEPHYR_INCLUDE_USBD_DEVICE_H
#include <zephyr/drivers/usb/udc.h>
#include <zephyr/usb/usbd.h>
/**
* @brief Get device descriptor bNumConfigurations value
*
* @param[in] uds_ctx Pointer to a device context
* @param[in] speed Speed for which the bNumConfigurations should be returned
*
* @return bNumConfigurations value
*/
static inline uint8_t usbd_get_num_configs(const struct usbd_context *const uds_ctx,
const enum usbd_speed speed)
{
struct usb_device_descriptor *desc;
if (speed == USBD_SPEED_FS) {
desc = uds_ctx->fs_desc;
} else if (speed == USBD_SPEED_HS) {
desc = uds_ctx->hs_desc;
} else {
return 0;
}
return desc->bNumConfigurations;
}
/**
* @brief Set device descriptor bNumConfigurations value
*
* @param[in] uds_ctx Pointer to a device context
* @param[in] speed Speed for which the bNumConfigurations should be set
* @param[in] value new bNumConfigurations value
*/
static inline void usbd_set_num_configs(struct usbd_context *const uds_ctx,
const enum usbd_speed speed,
const uint8_t value)
{
struct usb_device_descriptor *desc;
if (speed == USBD_SPEED_FS) {
desc = uds_ctx->fs_desc;
} else if (speed == USBD_SPEED_HS) {
desc = uds_ctx->hs_desc;
} else {
return;
}
desc->bNumConfigurations = value;
}
/**
* @brief Check whether USB device is enabled
*
* @param[in] node Pointer to a device context
*
* @return true if USB device is in enabled, false otherwise
*/
static inline bool usbd_is_enabled(const struct usbd_context *const uds_ctx)
{
return uds_ctx->status.enabled;
}
/**
* @brief Check whether USB device is enabled
*
* @param[in] node Pointer to a device context
*
* @return true if USB device is in enabled, false otherwise
*/
static inline bool usbd_is_initialized(const struct usbd_context *const uds_ctx)
{
return uds_ctx->status.initialized;
}
/**
* @brief Set device suspended status
*
* @param[in] uds_ctx Pointer to a device context
* @param[in] value new suspended value
*/
static inline void usbd_status_suspended(struct usbd_context *const uds_ctx,
const bool value)
{
uds_ctx->status.suspended = value;
}
/**
* @brief Lock USB device stack context
*
* @param[in] node Pointer to a device context
*/
static inline void usbd_device_lock(struct usbd_context *const uds_ctx)
{
k_mutex_lock(&uds_ctx->mutex, K_FOREVER);
}
/**
* @brief Lock USB device stack context
*
* @param[in] node Pointer to a device context
*/
static inline void usbd_device_unlock(struct usbd_context *const uds_ctx)
{
k_mutex_unlock(&uds_ctx->mutex);
}
/**
* @brief Init USB device stack core
*
* @param[in] uds_ctx Pointer to a device context
*
* @return 0 on success, other values on fail.
*/
int usbd_device_init_core(struct usbd_context *uds_ctx);
/**
* @brief Shutdown USB device stack core
*
* @param[in] uds_ctx Pointer to a device context
*
* @return 0 on success, other values on fail.
*/
int usbd_device_shutdown_core(struct usbd_context *const uds_ctx);
#endif /* ZEPHYR_INCLUDE_USBD_DEVICE_H */