summaryrefslogtreecommitdiff
path: root/drivers/usb/Kconfig
AgeCommit message (Collapse)Author
2025-11-12usb: musb: drop musb legacy driversPeter Robinson
The last of the users of the legacy musb drivers have been migrated so now remove the old musb stack, all users should now be using the new musb stack if they need this functionality. Signed-off-by: Peter Robinson <[email protected]> [trini: Remove a Makefile reference that was missed in v1] Signed-off-by: Tom Rini <[email protected]>
2025-07-30usb: onboard-hub: Use devm API do automatically free the reset GPIOLukasz Czechowski
The reset GPIO is obtained during driver probing by the function devm_gpiod_get_optional, which means the GPIO will be automatically freed when the device is removed. Because of this, explicit call to free the reset GPIO in hub remove function is not needed. To support the Managed device resources, the DEVRES config must be enabled, otherwise the devres functions fall back to non-managed variants. Set the necessary dependency to DEVRES in Kconfig. Reviewed-by: Quentin Schulz <[email protected]> Signed-off-by: Lukasz Czechowski <[email protected]>
2025-01-20blk: Make block subsystems select BLKTom Rini
The BLK symbol has a few meanings, one of which is that it controls the driver model portion of a "block device". Rather than having this hidden symbol be "default y if ..." it should be select'd by the various block subsystems. Symbols such as PVBLOCK which already select'd BLK are unchanged". Reviewed-by: Peter Robinson <[email protected]> Reviewed-by: Quentin Schulz <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2024-10-17usb: tcpm: add core frameworkSebastian Reichel
This adds TCPM framework in preparation for fusb302 support, which can handle USB power delivery messages. This is needed to solve issues with devices, that are running from a USB-C port supporting USB-PD, but not having a battery. Such a device currently boots to the kernel without interacting with the power-supply at all. If there are no USB-PD message replies within 5 seconds, the power-supply assumes the peripheral is not capable of USB-PD. It usually takes more than 5 seconds for the system to reach the kernel and probe the I2C based fusb302 chip driver. Thus the system always runs into this state. The power-supply's solution to fix this error state is a hard reset, which involves removing the power from VBUS. Boards without a battery (or huge capacitors) will reset at this point resulting in a boot loop. This imports the TCPM framework from the kernel. The porting has originally been done by Rockchip using hardware timers and the Linux kernel's TCPM code from some years ago. I had a look at upgrading to the latest TCPM kernel code, but that beast became a lot more complex due to adding more USB-C features. I believe these features are not needed in U-Boot and with multiple kthreads and hrtimers being involved it is non-trivial to port them. Instead I worked on stripping down features from the Rockchip port to an even more basic level. Also the TCPM code has been reworked to avoid complete use of any timers (Rockchip used SoC specific hardware timers + IRQ to implement delayed work mechanism). Instead the delayed state changes are handled directly from the poll loop. Note, that (in contrast to the original Rockchip port) the state machine has the same hard reset quirk, that the kernel has - i.e. it avoids disabling the CC pin resistors for devices that are not self-powered. Without that quirk, the Radxa Rock 5B will not just end up doing a machine reset when a hard reset is triggered, but will not even recover, because the CPU will loose power and the FUSB302 will keep this state because of leak voltage arriving through the RX serial pin (assuming a serial adapter is connected). This also includes a 'tcpm' command, which can be used to get information about the current state and the negotiated voltage and current. Co-developed-by: Wang Jie <[email protected]> Signed-off-by: Wang Jie <[email protected]> Tested-by: Soeren Moch <[email protected]> Tested-by: Anand Moon <[email protected]> Reviewed-by: Jonas Karlman <[email protected]> Signed-off-by: Sebastian Reichel <[email protected]>
2024-09-18usb: Drop old non-DM codeSimon Glass
The driver model deadline for USB was in 2019, so drop the old USB keyboard code, to avoid needing to deal with the extra code path. Drop the unnecessary #ifdef around USB_KBD_BOOT_REPORT_SIZE while we are here. Signed-off-by: Simon Glass <[email protected]>
2023-05-17usb: Move SPL_USB_STORAGE Kconfig symbol to drivers/usb/Marek Vasut
To avoid piling up all the various Kconfig symbols in one place, i.e. common/spl/Kconfig, move the USB Kconfig symbols into drivers/usb/ . This commit moves SPL_USB_STORAGE and matching SYS_USB_FAT_BOOT_PARTITION . Signed-off-by: Marek Vasut <[email protected]> Reviewed-by: Tom Rini <[email protected]>
2023-03-10usb: move CONFIG_USB_HUB_DEBOUNCE_TIMEOUT to USBHeinrich Schuchardt
This configuration setting is only relevant if the board supports USB. It should not be in the main menu but in the USB menu. The setting is only relevant in USB host mode. Fixes: 5454dea3137d ("usb: hub: allow to increase HUB_DEBOUNCE_TIMEOUT") Signed-off-by: Heinrich Schuchardt <[email protected]> Reviewed-by: Marek Vasut <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2023-01-12usb: onboard-hub: add driver to manage onboard hub suppliesFabrice Gasnier
The main issue the driver addresses is that a USB hub needs to be powered before it can be discovered. This is often solved by using "regulator-always-on". This driver is inspired by the Linux v6.1 driver. It only enables (or disables) the hub vdd (3v3) supply, so it can be enumerated. Scanning of the device tree is done in a similar manner to the sandbox, by the usb-uclass. DT part looks like: &usbh_ehci { ... #address-cells = <1>; #size-cells = <0>; hub@1 { compatible = "usb424,2514"; reg = <1>; vdd-supply = <&v3v3>; }; }; When the bus gets probed, the driver is automatically probed/removed from the bus tree, as an example on stm32: STM32MP> usb start starting USB... STM32MP> dm tree Class Index Probed Driver Name ----------------------------------------------------------- usb 0 [ + ] ehci_generic | |-- usb@5800d000 usb_hub 0 [ + ] usb_onboard_hub | | `-- hub@1 usb_hub 1 [ + ] usb_hub | | `-- usb_hub STM32MP> usb tree USB device tree: 1 Hub (480 Mb/s, 0mA) | u-boot EHCI Host Controller | +-2 Hub (480 Mb/s, 2mA) Signed-off-by: Fabrice Gasnier <[email protected]> Reviewed-by: Patrice Chotard <[email protected]> Reviewed-by: Patrick Delaunay <[email protected]>
2022-12-21usb: Update USB_STORAGE dependenciesTom Rini
As it's no longer possible to have !DM_USB set, we can remove these dependencies. Signed-off-by: Tom Rini <[email protected]> Reviewed-by: Simon Glass <[email protected]>
2022-09-19usb: Kconfig: Fix typo in SPL_DM_USB textFabio Estevam
Change a typo in "USB host mode". Signed-off-by: Fabio Estevam <[email protected]>
2022-07-21arch: mvebu: Disable by default unused peripherals in SPLPali Rohár
SPL on mvebu loads proper U-Boot from custom Marvell kwbimage format and therefore support for other binary formats is not required to be present in SPL. Boot source of proper U-Boot is defined by compile time options and therefore it is not required to enable all possible and unused peripherals in SPL by default. This change decrease size of SPL binaries. Signed-off-by: Pali Rohár <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2022-07-12usb: add isp1760 family driverRui Miguel Silva
ISP1760/61/63 are a family of usb controllers, here the main goal is to support the ISP1763 hcd part found in the MPS3 FPGA board form Arm. This is based on the kernel driver and ported to u-boot. Signed-off-by: Rui Miguel Silva <[email protected]>
2021-07-18usb: Enforce DM_USB migration for USB_HOST devices.Tom Rini
As the deadline for migration to DM_USB, when using a USB host controller has now gone two years past the deadline, enforce migration. This is done by: - Ensuring that all host controller options (other than the very legacy old MUSB ones) now select USB_HOST. USB_HOST now enforces DM_USB and OF_CONTROL. - Remove other parts of Kconfig logic that had platforms pick DM_USB. - To keep Kconfig happy, have some select statements test for USB_HOST as well. - Re-order some Kconfig entries and menus so that we can cleanly pick host or gadget roles. For the various HCD options that have platform glue options, group them together and update dependencies in some cases. - As SPL_DM_USB is not required, on platforms that had not yet enabled it, disable it. Cc: Marek Vasut <[email protected]> Cc: Icenowy Zheng <[email protected]> Cc: Samuel Holland <[email protected]> Cc: FUKAUMI Naoki <[email protected]> Cc: Andre Przywara <[email protected]> Cc: Jagan Teki <[email protected]> Signed-off-by: Tom Rini <[email protected]>
2021-03-03usb: USB keyboard requires DM_KEYBOARDHeinrich Schuchardt
If CONFIG_DM_USB=y, the USB keyboard only works if CONFIG_DM_KEYBOARD=y. Signed-off-by: Heinrich Schuchardt <[email protected]>
2021-01-04cosmetic: fix typo in drivers/usb/KconfigMarc Ferland
This commit fixes a simple typo: sPL --> SPL. Signed-off-by: Marc Ferland <[email protected]>
2020-10-20usb: add MediaTek USB3 DRD driverChunfeng Yun
This patch adds support for the MediaTek USB3 DRD controller, its host side is based on xHCI, this driver supports device mode and host mode. Signed-off-by: Chunfeng Yun <[email protected]> Acked-by: Bin Meng <[email protected]>
2020-08-27drivers: usb: Fix config indentationRuben Di Battista
The indentation was messing up with the scripts/build-whitelist.sh that was marking SYS_USB_EVENT_POLL_VIA_INT_QUEUE (and probably also the other indented options) erroneously as ad-hoc configure option with the following error: ``` Error: You must add new CONFIG options using Kconfig The following new ad-hoc CONFIG options were detected: CONFIG_SYS_USB_EVENT_POLL_VIA_INT_QUEUE ```
2020-06-02kconfig: fix typo for OHCI host and add to DM listMarcin Juszkiewicz
Description said that OHCI is not supported for driver model while it was converted too. Signed-off-by: Marcin Juszkiewicz <[email protected]>
2020-03-18sunxi: Move common defconfig options to KconfigAndre Przywara
Some config symbols are found in *almost* every _defconfig file for Allwinner boards, because those options are actually a platform choice, and not a per-board decision. Some of these options are older, some have recently been added. Move those options to be set for all Allwinner boards in their respective Kconfig files. The rationales are as follows: - NR_DRAM_BANKS: All Allwinner SoC map DRAM at one contiguous region of address space only, starting at 1 GB. So it's always one bank. - SPL_{DOS,EFI}_PARTITION: The Allwinner SPL does only support raw MMC accesses, we don't care about filesystems or partitions in there, so there is no need to define those symbols at all. - USE_PREBOOT: We start USB early when a keyboard is configured, using the preboot env variable, so we need to set this variable. - SYS_RELOC_GD_ENV_ADDR: We don't specify any ENV_ADDR, so need this symbol to be set (according to 8d8ee47e03e). - SYS_USB_EVENT_POLL_VIA_INT_QUEUE: According to commit eab9433aa55428, specifying this reduces the latency of the USB keyboard handling, so this was formerly enabled in config headers for all Allwinner boards. Signed-off-by: Andre Przywara <[email protected]> Acked-by: Maxime Ripard <[email protected]> Tested-by: Jagan Teki <[email protected]> # Amarula A64-Relic Reviewed-by: Jagan Teki <[email protected]>
2019-11-25usb: kbd: implement special keysHeinrich Schuchardt
Provide support for F1-F12, Insert, Delete, Home, End, Page Up, Page Down. As this leads to a size increase provide a customizing setting CONFIG_USB_KEYBOARD_FN_KEYS. Signed-off-by: Heinrich Schuchardt <[email protected]>
2019-11-07usb: Add Cadence USB3 host and gadget driverVignesh Raghavendra
Add support for USB3 host and gadget driver. This is a direct sync of Linux kernel Cadence USB stack that from v5.4-rc1 release. Driver has been modified so that it compiles without errors against U-Boot code base. Features not required for U-Boot such as scatter-gather DMA and OTG interrupt handling has been dropped. Signed-off-by: Jean-Jacques Hiblot <[email protected]> [[email protected]: Add PHY support] Signed-off-by: Vignesh Raghavendra <[email protected]>
2018-12-14usb: Don't enable CONFIG_SPL_DM_USB for non-DM SPLMartyn Welch
When CONFIG_SPL_DM_USB was added, it was added defaulted on without protection to ensure it didn't get set for non-DM SPL builds. This leads to unexpected and confusing failures when building a DM based U-Boot but with a non-DM SPL, as the defconfig is unlikely to have CONFIG_SPL_DM_USB actively disabled. Tweak the Kconfig to not enable this setting unless CONFIG_SPL_DM is set. Signed-off-by: Martyn Welch <[email protected]>
2018-12-07usb: introduce a separate config option for DM USB deviceJean-Jacques Hiblot
Using CONFIG_DM_USB for this purpose prevents using DM_USB for host and not for device. Signed-off-by: Jean-Jacques Hiblot <[email protected]> Reviewed-by: Lukasz Majewski <[email protected]>
2018-12-02usb: Do not compile USB_STORAGE with BLK && !DM_USBAlexander Graf
The USB storage driver does not compile when CONFIG_BLK is set, but DM_USB is not set, as we're missing the DM device links for CONFIG_BLK enabled code paths. So far it looks like nobody fell into this trap, because no board enabled CONFIG_BLK and CONFIG_USB_STORAGE while not enabling CONFIG_DM_USB, but we should still reflect that dependency properly in Kconfig so that implicit enabling of CONFIG_USB_STORAGE works. Signed-off-by: Alexander Graf <[email protected]>
2018-11-26usb: Introduce CONFIG_SPL_DM_USBSven Schwermer
This allows building the SPL without driver model for USB. Since CONFIG_SPL_DM_USB is enabled if and only if CONFIG_DM_USB was enabled before, this patch does not change the build behaviour. Signed-off-by: Sven Schwermer <[email protected]>
2018-02-21usb: kbd: select SYS_STDIO_DEREGISTERHeinrich Schuchardt
If SYS_STDIO_DEREGISTER is not selected and USB_KEYBOARD is selected U-Boot cannot be built due to missing function stdio_deregister_dev. So USB_KEYBOARD should select SYS_STDIO_DEREGISTER. Signed-off-by: Heinrich Schuchardt <[email protected]>
2018-01-22Convert CONFIG_TWL4030_USB to KconfigAdam Ford
This converts the following to Kconfig: CONFIG_TWL4030_USB Signed-off-by: Adam Ford <[email protected]>
2018-01-22Convert CONFIG_USB_MUSB_HCD et al to KconfigAdam Ford
This converts the following to Kconfig: CONFIG_USB_MUSB_HCD CONFIG_USB_MUSB_UDC CONFIG_USB_DAVINCI CONFIG_USB_OMAP3 CONFIG_USB_DA8XX CONFIG_USB_AM35X Signed-off-by: Adam Ford <[email protected]>
2017-09-27usb: kbd: Set a default polling mechanism for USB keyboardBin Meng
The choice of "USB keyboard polling" cannot be optional as without one mechanism being set, it just doesn't work. Set the default one to CONFIG_SYS_USB_EVENT_POLL. Fixes: ecad7051 ("configs: Migrate all of the existing USB symbols, except fastboot") Signed-off-by: Bin Meng <[email protected]>
2017-08-14usb: net: Add support for Microchip LAN75xx and LAN78xxYuiko Oshino
Add support for Microchip LAN7500, LAN7800 and LAN7850, USB to 10/100/1000 Ethernet Controllers. Signed-off-by: Yuiko Oshino <[email protected]> Acked-by: Joe Hershberger <[email protected]>
2016-04-20usb: gadget: Move CONFIG_USB_GADGET_DUALSPEED to KconfigSam Protsenko
Move CONFIG_USB_GADGET_DUALSPEED option to Kconfig and make all UDC controllers select USB_GADGET_DUALSPEED: - add next options to Kconfig selecting USB_GADGET_DUALSPEED: - USB_GADGET_ATMEL_USBA - USB_GADGET_DWC2_OTG - USB_DWC3 - CI_UDC - make USB_MUSB_GADGET select USB_GADGET_DUALSPEED While at it, make some related fixes: - remove DUALSPEED from configs that don't enable gadget support: - kwb.h - tseries.h - add missing USB_GADGET option to next configs: - novena_defconfig - pcm051_rev*_defconfig - xfi3_defconfig Signed-off-by: Sam Protsenko <[email protected]>
2016-04-01usb: ulpi: Add Kconfig options for ULPIMateusz Kulikowski
The following options can be now enabled via defconfig: - CONFIG_USB_ULPI - CONFIG_USB_ULPI_VIEWPORT - CONFIG_USB_ULPI_VIEWPORT_OMAP Signed-off-by: Mateusz Kulikowski <[email protected]> Reviewed-by: Simon Glass <[email protected]> Acked-by: Marek Vasut <[email protected]>
2016-03-25usb: gadget: Move CONFIG_USB_GADGET to KconfigSam Protsenko
The description was borrowed from kernel. "tristate" type was changed to "bool" (I believe we don't support modules for u-boot yet, right?). CONFIG_USB_GADGET requires CONFIG_USB to be defined too, so add it along as well. Definitions were added to defconfig files in a way that "make savedefconfig" generates exactly the same file as used defconfig. Signed-off-by: Sam Protsenko <[email protected]> [trini: Add zynq_zc702 conversion] Signed-off-by: Tom Rini <[email protected]>
2015-08-05usb: musb-new: Kconfig support for USB_MUSB_HOST and USB_MUSB_GADGETPaul Kocialkowski
Having MUSB_HOST and MUSB_GADGET in Kconfig allows more flexibility with regard to what Kconfig options to enable, such as USB_STORAGE or USB_KEYBOARD. Signed-off-by: Paul Kocialkowski <[email protected]>
2015-08-05usb: Generic USB Kconfig option, that fits both host and gadget and commentsPaul Kocialkowski
There is no particular reason why the USB Kconfig option should be specific to host mode. In prevision of adding MUSB host and gadget to Kconfig, this moves the title and help message of the USB Kconfig option to a more generic format. Adding comments to the usb Kconfig allows for a better separation and more readability in generated configs and in menuconfig. Signed-off-by: Paul Kocialkowski <[email protected]>
2015-08-05usb: USB_ARCH_HAS_HCD Kconfig option removalPaul Kocialkowski
The USB_ARCH_HAS_HCD currently serves no purpose and adds some confusion to the required Kconfig options that are required to have USB support. Dropping it makes things easier and doesn't break anything, since it was unused anyways. Signed-off-by: Paul Kocialkowski <[email protected]>
2015-08-02Merge branch 'master' of git://www.denx.de/git/u-boot-imxTom Rini
2015-08-02usb: kconfig: create a menu for usbNikita Kiryanov
With recent additions to USB Kconfig the number of USB options had grown large enough to warrant a separate menu for USB. Add a Kconfig menu for USB. Cc: Marek Vasut <[email protected]> Signed-off-by: Nikita Kiryanov <[email protected]>
2015-08-02usb: kconfig: usb keyboard kconfigNikita Kiryanov
Add Kconfig options for USB keyboard and use them for cm-fx6. Cc: Marek Vasut <[email protected]> Cc: Stefano Babic <[email protected]> Cc: Igor Grinberg <[email protected]> Signed-off-by: Nikita Kiryanov <[email protected]> Acked-by: Igor Grinberg <[email protected]>
2015-07-21dm: usb: Adjust the USB_DEVICE() macro namingSimon Glass
In Linux USB_DEVICE() is used to declare a USB device by vendor/device ID. We should follow the same convention in U-Boot. Rename the existing USB_DEVICE() macro to U_BOOT_USB_DEVICE() and bring in the USB_DEVICE() macro from Linux for use in U-Boot. Signed-off-by: Simon Glass <[email protected]>
2015-04-18dm: usb: sandbox: Add a uclass for USB device emulationSimon Glass
With sandbox we want to be able to emulate USB devices so that we can test the USB stack. Add a uclass to support this. It implements the same operations as a normal USB device driver, but in this case passes them on to an emulation driver. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2015-04-18dm: usb: Add a uclass for USB controllersSimon Glass
Add a uclass that can represent a USB controller. For now we do not create devices for things attached to the controller. This will be added later. Signed-off-by: Simon Glass <[email protected]> Reviewed-by: Marek Vasut <[email protected]>
2014-11-12usb: add basic USB configs in KconfigMasahiro Yamada
Signed-off-by: Masahiro Yamada <[email protected]> Acked-by: Marek Vasut <[email protected]>
2014-09-24kconfig: add blank Kconfig filesMasahiro Yamada
This would be useful to start moving various config options. Signed-off-by: Masahiro Yamada <[email protected]> Acked-by: Simon Glass <[email protected]> Tested-by: Simon Glass <[email protected]>