Hi All, After checking the S3C OTG udc drivers in drivers/usb/gadget, i didn't find it can support isochronous endpoint. According to datasheet of S3C6410, EPtype field of DIEPCTLn and DOEPCTLn is read-only. Current S3C OTG udc driver list ep0~ep9, which are control endpoint and bulk/int endpoint according to the source codes: static struct s3c_udc memory = { .usb_address = 0, .gadget = { .ops = &s3c_udc_ops, .ep0 = &memory.ep[0].ep, .name = driver_name, .dev = { .bus_id = "gadget", .release = nop_release, }, }, /* control endpoint */ .ep[0] = { .ep = { .name = ep0name, .ops = &s3c_ep_ops, .maxpacket = EP0_FIFO_SIZE, }, .dev = &memory, .bEndpointAddress = 0, .bmAttributes = 0, .ep_type = ep_control, .fifo = (unsigned int) S3C_UDC_OTG_EP0_FIFO, }, /* first group of endpoints */ .ep[1] = { .ep = { .name = "ep1-bulk", .ops = &s3c_ep_ops, .maxpacket = EP_FIFO_SIZE, }, .dev = &memory, .bEndpointAddress = USB_DIR_OUT | 1, .bmAttributes = USB_ENDPOINT_XFER_BULK, .ep_type = ep_bulk_out, .fifo = (unsigned int) S3C_UDC_OTG_EP1_FIFO, }, .ep[2] = { .ep = { .name = "ep2-bulk", .ops = &s3c_ep_ops, .maxpacket = EP_FIFO_SIZE, }, .dev = &memory, .bEndpointAddress = USB_DIR_IN | 2, .bmAttributes = USB_ENDPOINT_XFER_BULK, .ep_type = ep_bulk_in, .fifo = (unsigned int) S3C_UDC_OTG_EP2_FIFO, }, .ep[3] = { .ep = { .name = "ep3-int", .ops = &s3c_ep_ops, .maxpacket = EP_FIFO_SIZE, }, .dev = &memory, .bEndpointAddress = USB_DIR_IN | 3, .bmAttributes = USB_ENDPOINT_XFER_INT, .ep_type = ep_interrupt, .fifo = (unsigned int) S3C_UDC_OTG_EP3_FIFO, }, .ep[4] = { .ep = { .name = "ep4-bulk", .ops = &s3c_ep_ops, .maxpacket = EP_FIFO_SIZE, }, .dev = &memory, .bEndpointAddress = USB_DIR_OUT | 4, .bmAttributes = USB_ENDPOINT_XFER_BULK, .ep_type = ep_bulk_out, .fifo = (unsigned int) S3C_UDC_OTG_EP4_FIFO, }, .ep[5] = { .ep = { .name = "ep5-bulk", .ops = &s3c_ep_ops, .maxpacket = EP_FIFO_SIZE, }, .dev = &memory, .bEndpointAddress = USB_DIR_IN | 5, .bmAttributes = USB_ENDPOINT_XFER_BULK, .ep_type = ep_bulk_in, .fifo = (unsigned int) S3C_UDC_OTG_EP5_FIFO, }, .ep[6] = { .ep = { .name = "ep6-int", .ops = &s3c_ep_ops, .maxpacket = EP_FIFO_SIZE, }, .dev = &memory, .bEndpointAddress = USB_DIR_IN | 6, .bmAttributes = USB_ENDPOINT_XFER_INT, .ep_type = ep_interrupt, .fifo = (unsigned int) S3C_UDC_OTG_EP6_FIFO, }, .ep[7] = { .ep = { .name = "ep7-bulk", .ops = &s3c_ep_ops, .maxpacket = EP_FIFO_SIZE, }, .dev = &memory, .bEndpointAddress = USB_DIR_OUT | 7, .bmAttributes = USB_ENDPOINT_XFER_BULK, .ep_type = ep_bulk_out, .fifo = (unsigned int) S3C_UDC_OTG_EP7_FIFO, }, .ep[8] = { .ep = { .name = "ep8-bulk", .ops = &s3c_ep_ops, .maxpacket = EP_FIFO_SIZE, }, .dev = &memory, .bEndpointAddress = USB_DIR_IN | 8, .bmAttributes = USB_ENDPOINT_XFER_BULK, .ep_type = ep_bulk_in, .fifo = (unsigned int) S3C_UDC_OTG_EP8_FIFO, }, .ep[9] = { .ep = { .name = "ep9-int", .ops = &s3c_ep_ops, .maxpacket = EP_FIFO_SIZE, }, .dev = &memory, .bEndpointAddress = USB_DIR_IN | 9, .bmAttributes = USB_ENDPOINT_XFER_INT, .ep_type = ep_interrupt, .fifo = (unsigned int) S3C_UDC_OTG_EP9_FIFO, }, }; ep10~ep14 are not in the list. So is it possible ep10~ep14 are iso endpoints? I guess only samsung engineers can answer this question. And has anybody improved the udc driver to support ISO mode? Here i want to use this mode to support g_webcam gadget. Thanks Barry -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html