|
30 | 30 | /* Size in words, byte size divided by 2 */
|
31 | 31 | #define PMA_EP0_OUT_ADDR (8 * 4)
|
32 | 32 | #define PMA_EP0_IN_ADDR (PMA_EP0_OUT_ADDR + USB_MAX_EP0_SIZE)
|
| 33 | +#ifdef USBD_USE_CDC |
33 | 34 | #define PMA_CDC_OUT_BASE (PMA_EP0_IN_ADDR + USB_MAX_EP0_SIZE)
|
34 | 35 | #define PMA_CDC_OUT_ADDR ((PMA_CDC_OUT_BASE + USB_FS_MAX_PACKET_SIZE) | \
|
35 | 36 | (PMA_CDC_OUT_BASE << 16U))
|
36 | 37 | #define PMA_CDC_IN_ADDR (PMA_CDC_OUT_BASE + USB_FS_MAX_PACKET_SIZE * 2)
|
37 | 38 | #define PMA_CDC_CMD_ADDR (PMA_CDC_IN_ADDR + USB_FS_MAX_PACKET_SIZE)
|
| 39 | +#elif USBD_USE_HID_COMPOSITE |
| 40 | +#define PMA_HID_MOUSE_IN_ADDR (PMA_EP0_IN_ADDR + 4) |
| 41 | +#define PMA_HID_KBD_IN_ADDR (PMA_EP0_IN_ADDR + 8) |
| 42 | +#endif |
38 | 43 | /* Private macro -------------------------------------------------------------*/
|
39 | 44 | /* Private variables ---------------------------------------------------------*/
|
40 | 45 | PCD_HandleTypeDef g_hpcd;
|
@@ -516,19 +521,30 @@ USBD_StatusTypeDef USBD_LL_Init(USBD_HandleTypeDef *pdev)
|
516 | 521 | HAL_PCDEx_SetTxFiFo(&g_hpcd, 0, 0x80);
|
517 | 522 | HAL_PCDEx_SetTxFiFo(&g_hpcd, 1, 0x40);
|
518 | 523 | HAL_PCDEx_SetTxFiFo(&g_hpcd, 2, 0x160);
|
| 524 | +#ifdef USBD_USE_CDC |
| 525 | + HAL_PCDEx_SetTxFiFo(&g_hpcd, 3, 0x40); |
| 526 | +#endif |
519 | 527 | #else /* USE_USB_FS */
|
520 | 528 | #ifdef USB_OTG_FS
|
521 | 529 | /* configure EPs FIFOs */
|
522 | 530 | HAL_PCDEx_SetRxFiFo(&g_hpcd, 0x80);
|
523 | 531 | HAL_PCDEx_SetTxFiFo(&g_hpcd, 0, 0x40);
|
524 | 532 | HAL_PCDEx_SetTxFiFo(&g_hpcd, 1, 0x40);
|
525 | 533 | HAL_PCDEx_SetTxFiFo(&g_hpcd, 2, 0x40);
|
| 534 | +#ifdef USBD_USE_CDC |
| 535 | + HAL_PCDEx_SetTxFiFo(&g_hpcd, 3, 0x40); |
| 536 | +#endif |
526 | 537 | #else
|
527 | 538 | HAL_PCDEx_PMAConfig(&g_hpcd, 0x00, PCD_SNG_BUF, PMA_EP0_OUT_ADDR);
|
528 | 539 | HAL_PCDEx_PMAConfig(&g_hpcd, 0x80, PCD_SNG_BUF, PMA_EP0_IN_ADDR);
|
| 540 | +#ifdef USBD_USE_CDC |
529 | 541 | HAL_PCDEx_PMAConfig(&g_hpcd, 0x01, PCD_DBL_BUF, PMA_CDC_OUT_ADDR);
|
530 | 542 | HAL_PCDEx_PMAConfig(&g_hpcd, 0x82, PCD_SNG_BUF, PMA_CDC_IN_ADDR);
|
531 | 543 | HAL_PCDEx_PMAConfig(&g_hpcd, 0x83, PCD_SNG_BUF, PMA_CDC_CMD_ADDR);
|
| 544 | +#elif USBD_USE_HID_COMPOSITE |
| 545 | + HAL_PCDEx_PMAConfig(&g_hpcd, 0x81, PCD_SNG_BUF, PMA_HID_MOUSE_IN_ADDR); |
| 546 | + HAL_PCDEx_PMAConfig(&g_hpcd, 0x81, PCD_SNG_BUF, PMA_HID_KBD_IN_ADDR); |
| 547 | +#endif |
532 | 548 | #endif
|
533 | 549 | #endif /* USE_USB_HS */
|
534 | 550 | return USBD_OK;
|
|
0 commit comments