From b8e14b5b9d6776dd08d6ca3fc55f2d197f2f8e40 Mon Sep 17 00:00:00 2001 From: Tomasz Bursztyka Date: Wed, 18 Dec 2019 09:10:24 +0100 Subject: [PATCH] drivers/usb: Switching to DTS based configuration for DW driver And applying the changes to intel_s1000_crb board as well. Signed-off-by: Tomasz Bursztyka --- boards/xtensa/intel_s1000_crb/Kconfig.defconfig | 3 --- boards/xtensa/intel_s1000_crb/intel_s1000_crb.dts | 4 ++++ drivers/usb/device/Kconfig | 6 ------ drivers/usb/device/usb_dc_dw.c | 8 ++++---- drivers/usb/device/usb_dw_registers.h | 7 ++++--- 5 files changed, 12 insertions(+), 16 deletions(-) diff --git a/boards/xtensa/intel_s1000_crb/Kconfig.defconfig b/boards/xtensa/intel_s1000_crb/Kconfig.defconfig index 47d0b883215..c7c2bf71787 100644 --- a/boards/xtensa/intel_s1000_crb/Kconfig.defconfig +++ b/boards/xtensa/intel_s1000_crb/Kconfig.defconfig @@ -61,9 +61,6 @@ if USB config USB_DW default y -config USB_DW_IRQ_PRI - default 3 - config USB_DW_USB_2_0 default y diff --git a/boards/xtensa/intel_s1000_crb/intel_s1000_crb.dts b/boards/xtensa/intel_s1000_crb/intel_s1000_crb.dts index 16c0b305b46..dd5601ff2c2 100644 --- a/boards/xtensa/intel_s1000_crb/intel_s1000_crb.dts +++ b/boards/xtensa/intel_s1000_crb/intel_s1000_crb.dts @@ -95,3 +95,7 @@ }; }; }; + +&usb { + status = "okay"; +}; diff --git a/drivers/usb/device/Kconfig b/drivers/usb/device/Kconfig index 40e5a8f6956..e4c668e6f3c 100644 --- a/drivers/usb/device/Kconfig +++ b/drivers/usb/device/Kconfig @@ -14,12 +14,6 @@ config USB_DW help Designware USB Device Controller Driver. -config USB_DW_IRQ_PRI - int "DesignWare USB Driver Interrupt priority" - depends on USB_DW - help - USB interrupt priority. - config USB_DW_USB_2_0 bool "DesignWare Controller and PHY support for USB specification 2.0" depends on USB_DW diff --git a/drivers/usb/device/usb_dc_dw.c b/drivers/usb/device/usb_dc_dw.c index 36120f737ac..cbc8e5b1533 100644 --- a/drivers/usb/device/usb_dc_dw.c +++ b/drivers/usb/device/usb_dc_dw.c @@ -721,9 +721,9 @@ int usb_dc_attach(void) } /* Connect and enable USB interrupt */ - IRQ_CONNECT(USB_DW_IRQ, CONFIG_USB_DW_IRQ_PRI, - usb_dw_isr_handler, 0, IOAPIC_EDGE | IOAPIC_HIGH); - irq_enable(USB_DW_IRQ); + IRQ_CONNECT(DT_USB_DW_0_IRQ, DT_USB_DW_0_IRQ_PRI, + usb_dw_isr_handler, 0, DT_USB_DW_0_IRQ_FLAGS); + irq_enable(DT_USB_DW_0_IRQ); usb_dw_ctrl.attached = 1U; @@ -736,7 +736,7 @@ int usb_dc_detach(void) return 0; } - irq_disable(USB_DW_IRQ); + irq_disable(DT_USB_DW_0_IRQ); /* Enable soft disconnect */ USB_DW->dctl |= USB_DW_DCTL_SFT_DISCON; diff --git a/drivers/usb/device/usb_dw_registers.h b/drivers/usb/device/usb_dw_registers.h index 1a77da5158a..35143a39015 100644 --- a/drivers/usb/device/usb_dw_registers.h +++ b/drivers/usb/device/usb_dw_registers.h @@ -22,7 +22,7 @@ extern "C" { #endif /* Number of USB controllers */ -enum USB_DW { USB_DW_0 = 0, USB_DW_NUM }; +enum USB_DW_N { USB_DW_0 = 0, USB_DW_NUM }; /* USB IN EP index */ enum usb_dw_in_ep_idx { @@ -197,9 +197,10 @@ struct usb_dw_reg { #define USB_DW_CORE_RST_TIMEOUT_US 10000 #define USB_DW_PLL_TIMEOUT_US 100 -#define USB_DW_EP_FIFO(ep) (*(u32_t *)(USB_DW_BASE + 0x1000 * (ep + 1))) +#define USB_DW_EP_FIFO(ep) \ + (*(u32_t *)(DT_USB_DW_0_BASE_ADDRESS + 0x1000 * (ep + 1))) /* USB register block base address */ -#define USB_DW ((struct usb_dw_reg *)USB_DW_BASE) +#define USB_DW ((struct usb_dw_reg *)DT_USB_DW_0_BASE_ADDRESS) #define DW_USB_IN_EP_NUM (6) #define DW_USB_OUT_EP_NUM (4)