12#ifndef ZEPHYR_INCLUDE_UHC_H 
   13#define ZEPHYR_INCLUDE_UHC_H 
  146#define UHC_STATUS_INITIALIZED          0 
  150#define UHC_STATUS_ENABLED              1 
  208        int (*unlock)(
const struct device *dev);
 
  210        int (*init)(
const struct device *dev);
 
  211        int (*enable)(
const struct device *dev);
 
  212        int (*disable)(
const struct device *dev);
 
  215        int (*bus_reset)(
const struct device *dev);
 
  216        int (*sof_enable)(
const struct device *dev);
 
  217        int (*bus_suspend)(
const struct device *dev);
 
  218        int (*bus_resume)(
const struct device *dev);
 
  220        int (*ep_enqueue)(
const struct device *dev,
 
  222        int (*ep_dequeue)(
const struct device *dev,
 
  242        const struct uhc_api *api = dev->
api;
 
  246        ret = api->bus_reset(dev);
 
  264        const struct uhc_api *api = dev->
api;
 
  268        ret = api->sof_enable(dev);
 
  287        const struct uhc_api *api = dev->
api;
 
  291        ret = api->bus_suspend(dev);
 
  310        const struct uhc_api *api = dev->
api;
 
  314        ret = api->bus_resume(dev);
 
long atomic_t
Definition: atomic.h:22
 
ZTEST_BMEM int timeout
Definition: main.c:31
 
Doubly-linked list implementation.
 
static bool atomic_test_bit(const atomic_t *target, int bit)
Atomically test a bit.
Definition: atomic.h:131
 
static int shutdown(int sock, int how)
Definition: socket.h:707
 
struct _dnode sys_dnode_t
Definition: dlist.h:49
 
struct _dnode sys_dlist_t
Definition: dlist.h:48
 
#define UHC_STATUS_INITIALIZED
Definition: uhc.h:146
 
static bool uhc_is_enabled(const struct device *dev)
Checks whether the controller is enabled.
Definition: uhc.h:196
 
#define UHC_STATUS_ENABLED
Definition: uhc.h:150
 
static bool uhc_is_initialized(const struct device *dev)
Checks whether the controller is initialized.
Definition: uhc.h:182
 
struct uhc_transfer * uhc_xfer_alloc(const struct device *dev, const uint8_t addr, const uint8_t ep, const uint8_t attrib, const uint16_t mps, const uint16_t timeout, void *const owner)
Allocate UHC transfer.
 
static int uhc_bus_reset(const struct device *dev)
Reset USB bus.
Definition: uhc.h:240
 
int(* uhc_event_cb_t)(const struct device *dev, const struct uhc_event *const event)
Callback to submit UHC event to higher layer.
Definition: uhc.h:130
 
static int uhc_bus_resume(const struct device *dev)
Resume USB bus.
Definition: uhc.h:308
 
int uhc_xfer_buf_free(const struct device *dev, struct net_buf *const buf)
Free UHC request buffer.
 
int uhc_ep_enqueue(const struct device *dev, struct uhc_transfer *const xfer)
Queue USB host controller transfer.
 
int uhc_ep_dequeue(const struct device *dev, struct uhc_transfer *const xfer)
Remove a USB host controller transfers from queue.
 
static struct uhc_device_caps uhc_caps(const struct device *dev)
Get USB host controller capabilities.
Definition: uhc.h:476
 
static int uhc_bus_suspend(const struct device *dev)
Suspend USB bus.
Definition: uhc.h:285
 
int uhc_disable(const struct device *dev)
Disable USB host controller.
 
int uhc_xfer_free(const struct device *dev, struct uhc_transfer *const xfer)
Free UHC transfer and any buffers.
 
uhc_event_type
USB host controller event types.
Definition: uhc.h:68
 
struct net_buf * uhc_xfer_buf_alloc(const struct device *dev, struct uhc_transfer *const xfer, const size_t size)
Allocate UHC transfer buffer.
 
int uhc_init(const struct device *dev, uhc_event_cb_t event_cb)
Initialize USB host controller.
 
int uhc_shutdown(const struct device *dev)
Poweroff USB host controller.
 
static int uhc_sof_enable(const struct device *dev)
Enable Start of Frame generator.
Definition: uhc.h:262
 
int uhc_enable(const struct device *dev)
Enable USB host controller.
 
@ UHC_EVT_EP_REQUEST
Definition: uhc.h:86
 
@ UHC_EVT_DEV_CONNECTED_HS
Definition: uhc.h:74
 
@ UHC_EVT_DEV_CONNECTED_FS
Definition: uhc.h:72
 
@ UHC_EVT_RWUP
Definition: uhc.h:84
 
@ UHC_EVT_SUSPENDED
Definition: uhc.h:80
 
@ UHC_EVT_DEV_REMOVED
Definition: uhc.h:76
 
@ UHC_EVT_RESUMED
Definition: uhc.h:82
 
@ UHC_EVT_DEV_CONNECTED_LS
Definition: uhc.h:70
 
@ UHC_EVT_ERROR
Definition: uhc.h:91
 
@ UHC_EVT_RESETED
Definition: uhc.h:78
 
static ZTEST_BMEM volatile int ret
Definition: k_float_disable.c:29
 
struct _snode sys_snode_t
Definition: slist.h:33
 
static struct k_spinlock lock
Definition: spinlock_error_case.c:13
 
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
 
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
 
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
 
Runtime device structure (in ROM) per driver instance.
Definition: device.h:380
 
void * data
Definition: device.h:390
 
const void * api
Definition: device.h:386
 
Definition: kernel.h:2310
 
Definition: kernel.h:2822
 
Network buffer representation.
Definition: buf.h:906
 
uint16_t size
Definition: buf.h:938
 
struct k_mutex mutex
Definition: uhc.h:162
 
atomic_t status
Definition: uhc.h:170
 
void * priv
Definition: uhc.h:172
 
sys_dlist_t ctrl_xfers
Definition: uhc.h:164
 
struct uhc_device_caps caps
Definition: uhc.h:160
 
sys_dlist_t bulk_xfers
Definition: uhc.h:166
 
uhc_event_cb_t event_cb
Definition: uhc.h:168
 
uint32_t hs
Definition: uhc.h:140
 
struct uhc_transfer * xfer
Definition: uhc.h:111
 
const struct device * dev
Definition: uhc.h:116
 
uint32_t value
Definition: uhc.h:109
 
enum uhc_event_type type
Definition: uhc.h:106
 
int status
Definition: uhc.h:114
 
sys_snode_t node
Definition: uhc.h:104
 
unsigned int claimed
Definition: uhc.h:56
 
void * owner
Definition: uhc.h:62
 
uint8_t addr
Definition: uhc.h:46
 
uint16_t mps
Definition: uhc.h:52
 
uint16_t timeout
Definition: uhc.h:54
 
unsigned int setup
Definition: uhc.h:60
 
uint8_t ep
Definition: uhc.h:48
 
struct k_fifo done
Definition: uhc.h:44
 
struct k_fifo queue
Definition: uhc.h:42
 
unsigned int queued
Definition: uhc.h:58
 
uint8_t attrib
Definition: uhc.h:50
 
sys_dnode_t node
Definition: uhc.h:40
 
static fdata_t data[2]
Definition: test_fifo_contexts.c:15
 
USB Chapter 9 structures and definitions.