/* function to generate fake receive request for ISO OUT EP. 
ISO OUT endpoint does not generate irq by itself and reading from ISO OUT ep is synchronized with SOF frame. For more details refer to Nordic usbd specification.  */
static void usbd_sof_trigger_iso_read(void)
/* function to generate fake receive request for ISO OUT EP. 
ISO OUT endpoint does not generate irq by itself and reading from ISO OUT ep is synchronized with SOF frame. For more details refer to Nordic usbd specification.  */
static void usbd_sof_trigger_iso_read(void)
{
	struct usbd_event *ev;
	struct nrf_usbd_ep_ctx *ep_ctx;
	ep_ctx = endpoint_ctx(NRF_USBD_COMMON_EPOUT8);
	if (!ep_ctx) {
		LOG_ERR("There is no ISO ep");
		return;
	}
	if (ep_ctx->cfg.en) {
		ep_ctx->read_pending = true;
		ep_ctx->read_complete = true;
		ev = usbd_evt_alloc();
		if (!ev) {
			LOG_ERR("Failed to alloc evt");
			return;
		}
		ev->evt_type = USBD_EVT_EP;
		ev->evt.ep_evt.evt_type = EP_EVT_RECV_REQ;
		ev->evt.ep_evt.ep = ep_ctx;
		usbd_evt_put(ev);
		usbd_work_schedule();
	} else {
		LOG_DBG("Endpoint is not enabled");
	}
}