@@ -67,10 +67,6 @@ LOG_MODULE_REGISTER(usb_dc_stm32);
67
67
68
68
static const struct stm32_pclken pclken [] = STM32_DT_INST_CLOCKS (0 );
69
69
70
- #if DT_INST_NODE_HAS_PROP (0 , maximum_speed )
71
- #define USB_MAXIMUM_SPEED DT_INST_PROP(0, maximum_speed)
72
- #endif
73
-
74
70
PINCTRL_DT_INST_DEFINE (0 );
75
71
static const struct pinctrl_dev_config * usb_pcfg =
76
72
PINCTRL_DT_INST_DEV_CONFIG_GET (0 );
@@ -89,6 +85,18 @@ static const struct gpio_dt_spec ulpi_reset =
89
85
GPIO_DT_SPEC_GET_OR (DT_PHANDLE (DT_INST (0 , st_stm32_otghs ), phys ), reset_gpios , {0 });
90
86
#endif
91
87
88
+ /**
89
+ * The following defines are used to map the value of the "maxiumum-speed"
90
+ * DT property to the corresponding definition used by the STM32 HAL.
91
+ */
92
+ #if defined(CONFIG_SOC_SERIES_STM32H7X ) || defined(USB_OTG_HS_EMB_PHYC ) || \
93
+ defined(USB_OTG_HS_EMB_PHY )
94
+ #define HIGH_SPEED USB_OTG_SPEED_HIGH_IN_FULL
95
+ #else
96
+ #define HIGH_SPEED USB_OTG_SPEED_HIGH
97
+ #endif
98
+
99
+ #define FULL_SPEED USB_OTG_SPEED_FULL
92
100
/*
93
101
* USB, USB_OTG_FS and USB_DRD_FS are defined in STM32Cube HAL and allows to
94
102
* distinguish between two kind of USB DC. STM32 F0, F3, L0 and G4 series
@@ -432,54 +440,19 @@ static int usb_dc_stm32_clock_disable(void)
432
440
return 0 ;
433
441
}
434
442
435
- #if defined(USB_OTG_FS ) || defined(USB_OTG_HS )
436
- static uint32_t usb_dc_stm32_get_maximum_speed (void )
437
- {
438
- /*
439
- * If max-speed is not passed via DT, set it to USB controller's
440
- * maximum hardware capability.
441
- */
442
- #if USB_OTG_HS_EMB_PHYC || USB_OTG_HS_EMB_PHY || USB_OTG_HS_ULPI_PHY
443
- uint32_t speed = USB_OTG_SPEED_HIGH ;
444
- #else
445
- uint32_t speed = USB_OTG_SPEED_FULL ;
446
- #endif
447
-
448
- #ifdef USB_MAXIMUM_SPEED
449
-
450
- if (!strncmp (USB_MAXIMUM_SPEED , "high-speed" , 10 )) {
451
- speed = USB_OTG_SPEED_HIGH ;
452
- } else if (!strncmp (USB_MAXIMUM_SPEED , "full-speed" , 10 )) {
453
- #if defined(CONFIG_SOC_SERIES_STM32H7X ) || defined(USB_OTG_HS_EMB_PHYC ) || \
454
- defined(USB_OTG_HS_EMB_PHY )
455
- speed = USB_OTG_SPEED_HIGH_IN_FULL ;
456
- #else
457
- speed = USB_OTG_SPEED_FULL ;
458
- #endif
459
- } else {
460
- LOG_DBG ("Unsupported maximum speed defined in device tree. "
461
- "USB controller will default to its maximum HW "
462
- "capability" );
463
- }
464
- #endif
465
-
466
- return speed ;
467
- }
468
- #endif /* USB_OTG_FS || USB_OTG_HS */
469
-
470
443
static int usb_dc_stm32_init (void )
471
444
{
472
445
HAL_StatusTypeDef status ;
473
446
int ret ;
474
447
unsigned int i ;
475
448
449
+ usb_dc_stm32_state .pcd .Init .speed = DT_INST_STRING_UPPER_TOKEN (0 , maximum_speed );
476
450
#if defined(USB ) || defined(USB_DRD_FS )
477
451
#ifdef USB
478
452
usb_dc_stm32_state .pcd .Instance = USB ;
479
453
#else
480
454
usb_dc_stm32_state .pcd .Instance = USB_DRD_FS ;
481
455
#endif
482
- usb_dc_stm32_state .pcd .Init .speed = PCD_SPEED_FULL ;
483
456
usb_dc_stm32_state .pcd .Init .dev_endpoints = USB_NUM_BIDIR_ENDPOINTS ;
484
457
usb_dc_stm32_state .pcd .Init .phy_itface = PCD_PHY_EMBEDDED ;
485
458
usb_dc_stm32_state .pcd .Init .ep0_mps = PCD_EP0MPS_64 ;
@@ -491,7 +464,6 @@ static int usb_dc_stm32_init(void)
491
464
usb_dc_stm32_state .pcd .Instance = USB_OTG_FS ;
492
465
#endif
493
466
usb_dc_stm32_state .pcd .Init .dev_endpoints = USB_NUM_BIDIR_ENDPOINTS ;
494
- usb_dc_stm32_state .pcd .Init .speed = usb_dc_stm32_get_maximum_speed ();
495
467
#if USB_OTG_HS_EMB_PHYC || USB_OTG_HS_EMB_PHY
496
468
usb_dc_stm32_state .pcd .Init .phy_itface = USB_OTG_HS_EMBEDDED_PHY ;
497
469
#elif USB_OTG_HS_ULPI_PHY
0 commit comments