u-boot/drivers/usb/musb-new/Kconfig
Andre Przywara 1027f28bd4 usb: musb-new: Extend and move Allwinner quirk into Kconfig
All newer Allwinner SoCs (since about 2013) miss the CONFIGDATA register
in their MUSB implementation, so they need a quirk to hardcode this.

Currently this quirk depends on listing the SoCs affected in musb_reg.h,
which means that this list needs to grow with every new chip.

Move the quirk feature into Kconfig, next to PIO_ONLY, and change the
default to y (for Allwinner builds), while listing the early
implementations as exceptions.

This fixes USB peripheral operation on some newer SoCs, which were not
explicitly listed before.

Tested on H6, H616, R40 (which were broken before), and also on the H5
and A20, for regressions.

Signed-off-by: Andre Przywara <andre.przywara@arm.com>
2021-05-16 19:01:45 +02:00

101 lines
2.8 KiB
Text

#
# MUSB Controller Driver
#
comment "MUSB Controller Driver"
config USB_MUSB_HOST
bool "MUSB host mode support"
select SPL_SPRINTF if SPL
select TPL_SPRINTF if TPL
help
Enables the MUSB USB dual-role controller in host mode.
config USB_MUSB_GADGET
bool "MUSB gadget mode support"
select USB_GADGET_DUALSPEED
select SPL_SPRINTF if SPL
select TPL_SPRINTF if TPL
help
Enables the MUSB USB dual-role controller in gadget mode.
config USB_MUSB_DA8XX
bool "Enable DA8xx MUSB Controller"
depends on DM_USB
help
Say y here to enable support for the dual role high
speed USB controller based on the Mentor Graphics
silicon IP.
config USB_MUSB_TI
bool "Enable TI OTG USB controller"
depends on DM_USB
select USB_MUSB_DSPS
default n
help
Say y here to enable support for the dual role high
speed USB controller based on the Mentor Graphics
silicon IP.
config USB_MUSB_OMAP2PLUS
tristate "OMAP2430 and onwards"
depends on ARCH_OMAP2PLUS
config USB_MUSB_AM35X
bool "AM35x"
config USB_MUSB_DSPS
bool "TI DSPS platforms"
if USB_MUSB_HOST || USB_MUSB_GADGET
config USB_MUSB_MT85XX
bool "Enable Mediatek MT85XX DRC USB controller"
depends on DM_USB && ARCH_MEDIATEK
default n
help
Say y to enable Mediatek MT85XX USB DRC controller support
if it is available on your Mediatek MUSB IP based platform.
DMA controllers are ignored. This driver follow musb-new
driver and usb gadget framework.
config USB_MUSB_PIC32
bool "Enable Microchip PIC32 DRC USB controller"
depends on DM_USB && MACH_PIC32
help
Say y to enable PIC32 USB DRC controller support
if it is available on your Microchip PIC32 platform.
config USB_MUSB_SUNXI
bool "Enable sunxi OTG / DRC USB controller"
depends on ARCH_SUNXI
default y
---help---
Say y here to enable support for the sunxi OTG / DRC USB controller
used on almost all sunxi boards.
config USB_MUSB_DISABLE_BULK_COMBINE_SPLIT
bool "Disable MUSB bulk split/combine"
default y
help
On TI AM335x devices, MUSB has bulk split/combine feature enabled
in the ConfigData register, but the current MUSB driver does not
support it yet. Select this option to disable the feature until the
driver adds the support.
endif
config USB_MUSB_PIO_ONLY
bool "Disable DMA (always use PIO)"
default y if USB_MUSB_AM35X || USB_MUSB_PIC32 || USB_MUSB_OMAP2PLUS || USB_MUSB_DSPS || USB_MUSB_SUNXI || USB_MUSB_MT85XX
help
All data is copied between memory and FIFO by the CPU.
DMA controllers are ignored.
config USB_MUSB_FIXED_CONFIGDATA
bool "Hardcode MUSB CONFIGDATA register"
depends on USB_MUSB_SUNXI
default n if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN7I || MACH_SUN8I_A23
default y
help
Newer Allwinner SoCs do not implement the MUSB_CONFIGDATA register,
so it always reads 0. Select this option to override this and
return a hardcoded value instead.