|
801 | 801 | #ifndef MICROPY_HW_ETH_DMA_ATTRIBUTE |
802 | 802 | #define MICROPY_HW_ETH_DMA_ATTRIBUTE __attribute__((aligned(16384))); |
803 | 803 | #endif |
| 804 | + |
| 805 | +// --------------------------------------------------------------------+ |
| 806 | +// TinyUSB USB PHY Configuration |
| 807 | +// --------------------------------------------------------------------+ |
| 808 | + |
| 809 | +#if MICROPY_HW_TINYUSB_STACK |
| 810 | + |
| 811 | +// Include TinyUSB option constants when TinyUSB stack is enabled |
| 812 | +#include "lib/tinyusb/src/tusb_option.h" |
| 813 | + |
| 814 | +// Map MICROPY_HW_USB_MAIN_DEV to TinyUSB RHPORT and mode configuration |
| 815 | +// Note: USB_PHY_*_ID constants are defined in usb.h as enum values 0 and 1 |
| 816 | +#if defined(MICROPY_HW_USB_MAIN_DEV) |
| 817 | + #if MICROPY_HW_USB_MAIN_DEV == (1) |
| 818 | +// Full Speed PHY selected |
| 819 | + #ifndef MICROPY_HW_TINYUSB_RHPORT |
| 820 | + #define MICROPY_HW_TINYUSB_RHPORT (0) |
| 821 | + #endif |
| 822 | + #ifndef MICROPY_HW_TINYUSB_RHPORT0_MODE |
| 823 | + #define MICROPY_HW_TINYUSB_RHPORT0_MODE (OPT_MODE_DEVICE | OPT_MODE_FULL_SPEED) |
| 824 | + #endif |
| 825 | + #elif MICROPY_HW_USB_MAIN_DEV == (USB_PHY_HS_ID) |
| 826 | +// High Speed PHY selected |
| 827 | + #if defined(STM32F4) || defined(STM32F7) || defined(STM32H7) |
| 828 | +// These families have separate HS and FS controllers |
| 829 | + #ifndef MICROPY_HW_TINYUSB_RHPORT |
| 830 | + #define MICROPY_HW_TINYUSB_RHPORT (1) |
| 831 | + #endif |
| 832 | +// Default to HS-in-FS mode (Full Speed on HS controller) |
| 833 | +// TinyUSB will automatically use true HS if external ULPI PHY is detected |
| 834 | + #ifndef MICROPY_HW_TINYUSB_RHPORT1_MODE |
| 835 | + #ifndef MICROPY_HW_USB_HS_ULPI |
| 836 | + #define MICROPY_HW_TINYUSB_RHPORT1_MODE (OPT_MODE_DEVICE | OPT_MODE_FULL_SPEED) |
| 837 | + #else |
| 838 | + #define MICROPY_HW_TINYUSB_RHPORT1_MODE (OPT_MODE_DEVICE | OPT_MODE_HIGH_SPEED) |
| 839 | + #endif |
| 840 | + #endif |
| 841 | + #else |
| 842 | +// Other families: HS PHY on same controller as FS |
| 843 | + #ifndef MICROPY_HW_TINYUSB_RHPORT |
| 844 | + #define MICROPY_HW_TINYUSB_RHPORT (0) |
| 845 | + #endif |
| 846 | + #ifndef MICROPY_HW_TINYUSB_RHPORT0_MODE |
| 847 | + #define MICROPY_HW_TINYUSB_RHPORT0_MODE (OPT_MODE_DEVICE | OPT_MODE_FULL_SPEED) |
| 848 | + #endif |
| 849 | + #endif |
| 850 | + #else |
| 851 | + #error "Unknown MICROPY_HW_USB_MAIN_DEV value" |
| 852 | + #endif |
| 853 | +#else |
| 854 | +// Auto-detection fallback: prefer HS if available, otherwise FS |
| 855 | + #if defined(MICROPY_HW_USB_HS) |
| 856 | + #if defined(STM32F4) || defined(STM32F7) || defined(STM32H7) |
| 857 | + #ifndef MICROPY_HW_TINYUSB_RHPORT |
| 858 | + #define MICROPY_HW_TINYUSB_RHPORT (1) |
| 859 | + #endif |
| 860 | +// Default to HS-in-FS mode unless board explicitly defines ULPI PHY |
| 861 | + #ifndef MICROPY_HW_TINYUSB_RHPORT1_MODE |
| 862 | + #ifndef MICROPY_HW_USB_HS_ULPI |
| 863 | + #define MICROPY_HW_TINYUSB_RHPORT1_MODE (OPT_MODE_DEVICE | OPT_MODE_FULL_SPEED) |
| 864 | + #else |
| 865 | + #define MICROPY_HW_TINYUSB_RHPORT1_MODE (OPT_MODE_DEVICE | OPT_MODE_HIGH_SPEED) |
| 866 | + #endif |
| 867 | + #endif |
| 868 | + #else |
| 869 | + #ifndef MICROPY_HW_TINYUSB_RHPORT |
| 870 | + #define MICROPY_HW_TINYUSB_RHPORT (0) |
| 871 | + #endif |
| 872 | + #ifndef MICROPY_HW_TINYUSB_RHPORT0_MODE |
| 873 | + #define MICROPY_HW_TINYUSB_RHPORT0_MODE (OPT_MODE_DEVICE | OPT_MODE_FULL_SPEED) |
| 874 | + #endif |
| 875 | + #endif |
| 876 | + #elif defined(MICROPY_HW_USB_FS) |
| 877 | + #ifndef MICROPY_HW_TINYUSB_RHPORT |
| 878 | + #define MICROPY_HW_TINYUSB_RHPORT (0) |
| 879 | + #endif |
| 880 | + #ifndef MICROPY_HW_TINYUSB_RHPORT0_MODE |
| 881 | + #define MICROPY_HW_TINYUSB_RHPORT0_MODE (OPT_MODE_DEVICE | OPT_MODE_FULL_SPEED) |
| 882 | + #endif |
| 883 | + #else |
| 884 | +// Default configuration for boards without explicit USB PHY definitions |
| 885 | + #ifndef MICROPY_HW_TINYUSB_RHPORT |
| 886 | + #define MICROPY_HW_TINYUSB_RHPORT (0) |
| 887 | + #endif |
| 888 | + #ifndef MICROPY_HW_TINYUSB_RHPORT0_MODE |
| 889 | + #define MICROPY_HW_TINYUSB_RHPORT0_MODE (OPT_MODE_DEVICE) |
| 890 | + #endif |
| 891 | + #endif |
| 892 | +#endif |
| 893 | + |
| 894 | +#endif // MICROPY_HW_TINYUSB_STACK |
0 commit comments