@ -565,6 +565,29 @@ static int init_apollo5x(const struct udc_ambiq_data *priv)
@@ -565,6 +565,29 @@ static int init_apollo5x(const struct udc_ambiq_data *priv)
}
# endif
# if CONFIG_UDC_AMBIQ_DEB_ENABLE
static void init_double_buffers ( const struct udc_ambiq_data * priv )
{
uint32_t mask ;
mask = CONFIG_UDC_AMBIQ_DEB_ENABLE & 0xFFFF ;
while ( mask ) {
uint32_t ep = find_lsb_set ( mask ) ;
am_hal_usb_enable_ep_double_buffer ( priv - > usb_handle , ep , AM_HAL_USB_OUT_DIR , true ) ;
mask & = ~ ( 1U < < ( ep - 1 ) ) ;
}
mask = ( CONFIG_UDC_AMBIQ_DEB_ENABLE > > 16 ) & 0xFFFF ;
while ( mask ) {
uint32_t ep = find_lsb_set ( mask ) ;
am_hal_usb_enable_ep_double_buffer ( priv - > usb_handle , ep , AM_HAL_USB_IN_DIR , true ) ;
mask & = ~ ( 1U < < ( ep - 1 ) ) ;
}
}
# endif
static int udc_ambiq_init ( const struct device * dev )
{
struct udc_ambiq_data * priv = udc_get_private ( dev ) ;
@ -599,6 +622,10 @@ static int udc_ambiq_init(const struct device *dev)
@@ -599,6 +622,10 @@ static int udc_ambiq_init(const struct device *dev)
}
# endif
# if CONFIG_UDC_AMBIQ_DEB_ENABLE
init_double_buffers ( priv ) ;
# endif
/* Set USB Speed */
am_hal_usb_set_dev_speed ( priv - > usb_handle , priv - > usb_speed ) ;
/* Enable USB interrupt */