From 48362df588b7c9783250726c6114447482b2426a Mon Sep 17 00:00:00 2001 From: Johann Fischer Date: Fri, 19 Nov 2021 11:51:48 +0100 Subject: [PATCH] drivers: usb_dc_sam_usbhs: default to full-speed Use DT_INST_ENUM_IDX_OR and always default to full-speed if CONFIG_USB_DC_HAS_HS_SUPPORT is not set or maximum-speed property is not defined. Remove low-speed setting since device stack does not support it. Signed-off-by: Johann Fischer --- drivers/usb/device/usb_dc_sam_usbhs.c | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/drivers/usb/device/usb_dc_sam_usbhs.c b/drivers/usb/device/usb_dc_sam_usbhs.c index 45e43e93c78..55e5377341a 100644 --- a/drivers/usb/device/usb_dc_sam_usbhs.c +++ b/drivers/usb/device/usb_dc_sam_usbhs.c @@ -46,11 +46,8 @@ LOG_MODULE_REGISTER(usb_dc_sam_usbhs); #endif #define NUM_OF_EP_MAX DT_INST_PROP(0, num_bidir_endpoints) -#if DT_INST_NODE_HAS_PROP(0, maximum_speed) -#define USB_MAXIMUM_SPEED DT_INST_ENUM_IDX(0, maximum_speed) -#else -#define USB_MAXIMUM_SPEED 2 /* Default to high-speed */ -#endif +#define USB_MAXIMUM_SPEED DT_INST_ENUM_IDX_OR(0, maximum_speed, 1) +BUILD_ASSERT(USB_MAXIMUM_SPEED, "low-speed is not supported"); struct usb_device_ep_data { uint16_t mps; @@ -312,18 +309,12 @@ int usb_dc_attach(void) /* Select the speed */ regval = USBHS_DEVCTRL_DETACH; -#if USB_MAXIMUM_SPEED == 0 - /* low-speed */ - regval |= USBHS_DEVCTRL_LS; - regval |= USBHS_DEVCTRL_SPDCONF_LOW_POWER; -#elif USB_MAXIMUM_SPEED == 1 - /* full-speed */ - regval |= USBHS_DEVCTRL_SPDCONF_LOW_POWER; -#elif USB_MAXIMUM_SPEED == 2 +#if (USB_MAXIMUM_SPEED == 2) && IS_ENABLED(CONFIG_USB_DC_HAS_HS_SUPPORT) /* high-speed */ regval |= USBHS_DEVCTRL_SPDCONF_NORMAL; #else -#error "Unsupported maximum speed defined in device tree." + /* full-speed */ + regval |= USBHS_DEVCTRL_SPDCONF_LOW_POWER; #endif USBHS->USBHS_DEVCTRL = regval;