MCPcopy Create free account
hub / github.com/apache/nuttx / usbdev_register

Function usbdev_register

arch/sim/src/sim/sim_usbdev.c:1112–1146  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1110 ****************************************************************************/
1111
1112int usbdev_register(struct usbdevclass_driver_s *driver)
1113{
1114 struct sim_usbdev_s *priv = &g_sim_usbdev;
1115 int ret;
1116
1117 usbtrace(TRACE_DEVREGISTER, 0);
1118
1119 /* First hook up the driver */
1120
1121 sim_usbdev_devinit(priv);
1122 priv->driver = driver;
1123
1124 /* Then bind the class driver */
1125
1126 ret = CLASS_BIND(driver, &priv->usbdev);
1127 if (ret)
1128 {
1129 usbtrace(TRACE_DEVERROR(SIM_TRACEERR_BINDFAILED), (uint16_t) - ret);
1130 }
1131 else
1132 {
1133 /* Setup the USB host controller */
1134
1135#ifdef CONFIG_USBDEV_DUALSPEED
1136 ret = host_usbdev_init(SIM_USB_SPEED);
1137#else
1138 ret = host_usbdev_init(USB_SPEED_FULL);
1139#endif
1140 }
1141
1142 work_queue_wq(g_work_queue, &priv->work, sim_usbdev_work, priv,
1143 SIM_USB_PERIOD);
1144
1145 return ret;
1146}
1147
1148/****************************************************************************
1149 * Name: usbdev_unregister

Callers

nothing calls this directly

Calls 4

usbtraceFunction · 0.85
sim_usbdev_devinitFunction · 0.85
host_usbdev_initFunction · 0.85
work_queue_wqFunction · 0.85

Tested by

no test coverage detected