|
707 | 707 | #define AS_BYTES_PER_SAMPLE(node) \ |
708 | 708 | DT_PROP(node, subslot_size) |
709 | 709 |
|
| 710 | +#define AS_FS_DATA_EP_BINTERVAL(node) \ |
| 711 | + USB_FS_ISO_EP_INTERVAL(DT_PROP_OR(node, polling_period_us, 1000)) |
| 712 | + |
| 713 | +#define AS_HS_DATA_EP_BINTERVAL(node) \ |
| 714 | + USB_HS_ISO_EP_INTERVAL(DT_PROP_OR(node, polling_period_us, 125)) |
| 715 | + |
710 | 716 | /* Asynchronous endpoints needs space for 1 extra sample */ |
711 | 717 | #define AS_SAMPLES_PER_FRAME(node) \ |
712 | | - ((ROUND_UP(AS_CLK_MAX_FREQUENCY(node), 1000) / 1000) + \ |
713 | | - UTIL_NOT(AS_IS_SOF_SYNCHRONIZED(node))) |
| 718 | + (((ROUND_UP(AS_CLK_MAX_FREQUENCY(node), 1000) / 1000) \ |
| 719 | + << (AS_FS_DATA_EP_BINTERVAL(node) - 1)) + \ |
| 720 | + UTIL_NOT(AS_IS_SOF_SYNCHRONIZED(node))) |
714 | 721 |
|
715 | 722 | #define AS_SAMPLES_PER_MICROFRAME(node) \ |
716 | | - ((ROUND_UP(AS_CLK_MAX_FREQUENCY(node), 8000) / 8000) + \ |
717 | | - UTIL_NOT(AS_IS_SOF_SYNCHRONIZED(node))) |
| 723 | + (((ROUND_UP(AS_CLK_MAX_FREQUENCY(node), 8000) / 8000) \ |
| 724 | + << (AS_HS_DATA_EP_BINTERVAL(node) - 1)) + \ |
| 725 | + UTIL_NOT(AS_IS_SOF_SYNCHRONIZED(node))) |
718 | 726 |
|
719 | 727 | #define AS_DATA_EP_SYNC_TYPE(node) \ |
720 | 728 | COND_CODE_1(AS_IS_SOF_SYNCHRONIZED(node), (0x3 << 2), (0x1 << 2)) |
|
745 | 753 | AS_DATA_EP_ADDR(node), /* bEndpointAddress */ \ |
746 | 754 | AS_DATA_EP_ATTR(node), /* bmAttributes */ \ |
747 | 755 | U16_LE(AS_FS_DATA_EP_MAX_PACKET_SIZE(node)), /* wMaxPacketSize */ \ |
748 | | - 0x01, /* bInterval */ |
| 756 | + AS_FS_DATA_EP_BINTERVAL(node), /* bInterval */ |
749 | 757 |
|
750 | 758 | #define AS_ISOCHRONOUS_DATA_ENDPOINT_FS_DESCRIPTORS_ARRAYS(node) \ |
751 | 759 | static uint8_t DESCRIPTOR_NAME(fs_std_data_ep, node)[] = { \ |
|
758 | 766 | AS_DATA_EP_ADDR(node), /* bEndpointAddress */ \ |
759 | 767 | AS_DATA_EP_ATTR(node), /* bmAttributes */ \ |
760 | 768 | U16_LE(AS_HS_DATA_EP_MAX_PACKET_SIZE(node)), /* wMaxPacketSize */ \ |
761 | | - 0x01, /* bInterval */ |
| 769 | + AS_HS_DATA_EP_BINTERVAL(node), /* bInterval */ |
762 | 770 |
|
763 | 771 | #define AS_ISOCHRONOUS_DATA_ENDPOINT_HS_DESCRIPTORS_ARRAYS(node) \ |
764 | 772 | static uint8_t DESCRIPTOR_NAME(hs_std_data_ep, node)[] = { \ |
|
0 commit comments