[U-Boot] [PATCH v3 2/7] arm: usb: dra7xx: xHCI registers based on USB port index

Marek Vasut
2017-02-19T14:27:48Z

On 02/19/2017 02:27 PM, Uri Mashiach wrote:
> Modify the determination of the base address of xHCI registers of DRA7XX
> targets.
> Before the commit: by the target.
> After the commit: by the USB port index.
>
> Cc: Lokesh Vutla <lokeshvutla@ti.com>
> Cc: Marek Vasut <marex@denx.de>
> Signed-off-by: Uri Mashiach <uri.mashiach@compulab.co.il>
> ---
> V1 -> V2: Replace the commit "fix XHCI registers base address".
> V2 -> V3: Replace the commit "reintroduce the CONFIG_AM57XX symbol"
>
> configs/dra7xx_evm_defconfig | 1 +
> configs/dra7xx_hs_evm_defconfig | 1 +
> drivers/usb/host/Kconfig | 16 ++++++++++++++++
> include/linux/usb/xhci-omap.h | 6 ++++--
> 4 files changed, 22 insertions(+), 2 deletions(-)
>
> diff --git a/configs/dra7xx_evm_defconfig b/configs/dra7xx_evm_defconfig
> index 26b26cc..1f47f92 100644
> --- a/configs/dra7xx_evm_defconfig
> +++ b/configs/dra7xx_evm_defconfig
> @@ -86,6 +86,7 @@ CONFIG_OMAP_TIMER=y
> CONFIG_USB=y
> CONFIG_USB_XHCI_HCD=y
> CONFIG_USB_XHCI_DWC3=y
> +CONFIG_USB_XHCI_DRA7XX_INDEX1=y
> CONFIG_USB_DWC3=y
> CONFIG_USB_DWC3_GADGET=y
> CONFIG_USB_DWC3_OMAP=y
> diff --git a/configs/dra7xx_hs_evm_defconfig b/configs/dra7xx_hs_evm_defconfig
> index 244940c..5addd3e 100644
> --- a/configs/dra7xx_hs_evm_defconfig
> +++ b/configs/dra7xx_hs_evm_defconfig
> @@ -91,6 +91,7 @@ CONFIG_OMAP_TIMER=y
> CONFIG_USB=y
> CONFIG_USB_XHCI_HCD=y
> CONFIG_USB_XHCI_DWC3=y
> +CONFIG_USB_XHCI_DRA7XX_INDEX1=y
> CONFIG_USB_DWC3=y
> CONFIG_USB_DWC3_GADGET=y
> CONFIG_USB_DWC3_OMAP=y
> diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
> index 5129a57..440fbcf 100644
> --- a/drivers/usb/host/Kconfig
> +++ b/drivers/usb/host/Kconfig
> @@ -43,6 +43,22 @@ config USB_XHCI_ZYNQMP
> help
> Enables support for the on-chip xHCI controller on Xilinx ZynqMP SoCs.
>
> +choice
> + prompt "DRA7XX xHCI USB index select"
> + depends on DRA7XX
> +
> +config USB_XHCI_DRA7XX_INDEX0
> + bool "USB0"
> + help
> + DRA7XX xHCI USB0.
> +
> +config USB_XHCI_DRA7XX_INDEX1
> + bool "USB1"
> + help
> + DRA7XX xHCI USB1.

What is this all about ? Shouldn't this come from DT ? And what if I
want to use both XHCI ? This looks totally bogus ...

> +endchoice
> +
> endif # USB_XHCI_HCD
>
> config USB_EHCI_HCD
> diff --git a/include/linux/usb/xhci-omap.h b/include/linux/usb/xhci-omap.h
> index 9de80d7..3f65a76 100644
> --- a/include/linux/usb/xhci-omap.h
> +++ b/include/linux/usb/xhci-omap.h
> @@ -10,14 +10,16 @@
> #ifndef _ASM_ARCH_XHCI_OMAP_H_
> #define _ASM_ARCH_XHCI_OMAP_H_
>
> -#ifdef CONFIG_TARGET_DRA7XX_EVM
> +#ifdef CONFIG_DRA7XX
> +#ifdef CONFIG_USB_XHCI_DRA7XX_INDEX1
> #define OMAP_XHCI_BASE 0x488d0000
> #define OMAP_OCP1_SCP_BASE 0x4A081000
> #define OMAP_OTG_WRAPPER_BASE 0x488c0000
> -#elif defined CONFIG_TARGET_AM57XX_EVM
> +#elif defined CONFIG_USB_XHCI_DRA7XX_INDEX0
> #define OMAP_XHCI_BASE 0x48890000
> #define OMAP_OCP1_SCP_BASE 0x4A084c00
> #define OMAP_OTG_WRAPPER_BASE 0x48880000
> +#endif /* CONFIG_USB_XHCI_DRA7XX_INDEX1 */
> #elif defined CONFIG_AM43XX
> #define OMAP_XHCI_BASE 0x483d0000
> #define OMAP_OCP1_SCP_BASE 0x483E8000
>

--
Best regards,
Marek Vasut