summaryrefslogtreecommitdiff
path: root/drivers/usb/host
AgeCommit message (Collapse)Author
2022-10-10usb: ehci: Remove unused ehci_{setup,shutdown}_phy() helpersPatrice Chotard
Remove unused ehci_{setup,shutdown}_phy() helpers now replaced by generic_{setup,shutdown}_phy(). Signed-off-by: Patrice Chotard <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Simon Glass <[email protected]>
2022-10-10usb: ehci: Make usage of generic_{setup,shutdown}_phy() helpersPatrice Chotard
Replace ehci_setup_phy() and ehci_shutdown_phy () by respectively generic_setup_phy() and generic_shutdown_phy(). Signed-off-by: Patrice Chotard <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Simon Glass <[email protected]>
2022-10-10usb: ohci: Make usage of generic_{setup,shutdown}_phy() helpersPatrice Chotard
Replace ohci_setup_phy() and ohci_shutdown_phy () by respectively generic_setup_phy() and generic_shutdown_phy(). Signed-off-by: Patrice Chotard <[email protected]> Cc: Marek Vasut <[email protected]> Cc: Simon Glass <[email protected]>
2022-10-03Merge branch 'next'Tom Rini
2022-09-26usb: host: nuvoton: Add nuvoton NPCM7xx ehci/ohci driverJim Liu
Add nuvoton BMC NPCM750 ehci/ohci driver Signed-off-by: Jim Liu <[email protected]>
2022-09-18cyclic: Use schedule() instead of WATCHDOG_RESET()Stefan Roese
Globally replace all occurances of WATCHDOG_RESET() with schedule(), which handles the HW_WATCHDOG functionality and the cyclic infrastructure. Signed-off-by: Stefan Roese <[email protected]> Reviewed-by: Simon Glass <[email protected]> Tested-by: Tom Rini <[email protected]> [am335x_evm, mx6cuboxi, rpi_3,dra7xx_evm, pine64_plus, am65x_evm, j721e_evm]
2022-08-12Convert CONFIG_SYS_FSL_QMAN_V3 et al to KconfigTom Rini
This converts the following to Kconfig: CONFIG_FSL_NGPIXIS CONFIG_SYS_FSL_QMAN_V3 CONFIG_SYS_FSL_RAID_ENGINE CONFIG_SYS_FSL_RMU CONFIG_SYS_FSL_SINGLE_SOURCE_CLK CONFIG_SYS_FSL_SRIO_LIODN CONFIG_SYS_FSL_TBCLK_DIV CONFIG_SYS_FSL_USB1_PHY_ENABLE CONFIG_SYS_FSL_USB2_PHY_ENABLE CONFIG_SYS_FSL_USB_DUAL_PHY_ENABLE CONFIG_SYS_FSL_USB_INTERNAL_UTMI_PHY Signed-off-by: Tom Rini <[email protected]>
2022-07-25usb: ehci-mx6: Remove MX6Q_ARM2 related ifdeferyFabio Estevam
The imx6q arm2 board support has been removed from U-Boot as it did not get converted to DM. Remove the MX6Q_ARM2 related ifdefery in the driver. Signed-off-by: Fabio Estevam <[email protected]>
2022-07-14Merge https://source.denx.de/u-boot/custodians/u-boot-usbTom Rini
2022-07-13usb: xhci-mtk: add support for MediaTek MT7621 SoCWeijie Gao
This patch makes xhci-mtk driver available for MediaTek MT7621 SoC Signed-off-by: Weijie Gao <[email protected]>
2022-07-12usb: common: move urb code to commonRui Miguel Silva
Move urb code from musb only use to a more common scope, so other drivers in the future can use the handling of urb in usb. Signed-off-by: Rui Miguel Silva <[email protected]>
2022-07-11Merge branch 'next'Tom Rini
2022-07-07usb: ohci-hcd: Remove some unused legacy codeTom Rini
At this point, the only user of ohci-hcd that also uses PCI is using DM, so we can drop CONFIG_PCI_OHCI* usage. No platforms set either of CONFIG_SYS_USB_OHCI_BOARD_INIT or CONFIG_SYS_USB_OHCI_CPU_INIT so those hooks can be removed as well. Signed-off-by: Tom Rini <[email protected]>
2022-07-07Convert CONFIG_USB_OHCI_NEW et al to KconfigTom Rini
This converts the following to Kconfig: CONFIG_SYS_OHCI_SWAP_REG_ACCESS CONFIG_SYS_USB_OHCI_CPU_INIT CONFIG_SYS_USB_OHCI_MAX_ROOT_PORTS CONFIG_SYS_USB_OHCI_SLOT_NAME CONFIG_USB_ATMEL CONFIG_USB_ATMEL_CLK_SEL_PLLB CONFIG_USB_ATMEL_CLK_SEL_UPLL CONFIG_USB_OHCI_LPC32XX CONFIG_USB_OHCI_NEW Signed-off-by: Tom Rini <[email protected]>
2022-07-07Convert CONFIG_USB_XHCI_EXYNOS et al to KconfigTom Rini
This converts the following to Kconfig: CONFIG_USB_XHCI_EXYNOS CONFIG_USB_EHCI_EXYNOS Signed-off-by: Tom Rini <[email protected]>
2022-07-04usb: host: ehci-generic: Fix error checkAndre Przywara
Commit 81755b8c20fe ("usb: host: ehci-generic: Make resets and clocks optional") improved the error check to cover the reset property being optional. However this was using the wrong error variable for the check, so would now never fail. Use the correct error variable for checking the result of reset_get_bulk(), to actually report genuine errors. Fixes: 81755b8c20fe ("usb: host: ehci-generic: Make resets and clocks optional") Signed-off-by: Andre Przywara <[email protected]>
2022-06-28Convert CONFIG_USB_MAX_CONTROLLER_COUNT to KconfigTom Rini
This converts the following to Kconfig: CONFIG_USB_MAX_CONTROLLER_COUNT Signed-off-by: Tom Rini <[email protected]>
2022-06-28usb: Remove non-DM code in ehci-fsl and xhciTom Rini
The DM_USB migration deadline has passed and this is not used in SPL. Remove this now unused code. Signed-off-by: Tom Rini <[email protected]>
2022-06-28usb: ehci-mx5: Remove non-DM codeTom Rini
The deadline for DM_USB migration has passed and all users have been migrated. Remove now unused code. Signed-off-by: Tom Rini <[email protected]>
2022-06-28usb: ehci-mxc: RemoveTom Rini
There are no platforms enabling this driver, remove. Signed-off-by: Tom Rini <[email protected]>
2022-06-28usb: xhci-fsl: Remove non-DM codeTom Rini
The deadline for DM_USB migration has passed and all users have been migrated. Remove now unused code. Signed-off-by: Tom Rini <[email protected]>
2022-06-28Convert CONFIG_USB_EHCI_TXFIFO_THRESH to KconfigTom Rini
This converts the following to Kconfig: CONFIG_USB_EHCI_TXFIFO_THRESH Signed-off-by: Tom Rini <[email protected]>
2022-06-28usb: ehci-fsl: Remove non-DM codeTom Rini
The deadline for DM_USB migration has passed and all users have been migrated. Remove now unused code. Signed-off-by: Tom Rini <[email protected]>
2022-06-28Convert CONFIG_EHCI_HCD_INIT_AFTER_RESET to KconfigTom Rini
This converts the following to Kconfig: CONFIG_EHCI_HCD_INIT_AFTER_RESET Signed-off-by: Tom Rini <[email protected]>
2022-06-28Convert CONFIG_EHCI_DESC_BIG_ENDIAN et al to KconfigTom Rini
This converts the following to Kconfig: CONFIG_EHCI_DESC_BIG_ENDIAN CONFIG_EHCI_MMIO_BIG_ENDIAN Signed-off-by: Tom Rini <[email protected]>
2022-06-28ehci-mxs: Remove non-DM codeTom Rini
This code is not enabled anywhere, drop it. Signed-off-by: Tom Rini <[email protected]>
2022-06-16usb: host: ehci-generic: Make resets and clocks optionalAndre Przywara
The generic EHCI binding does not *require* resets and clocks properties, and indeed for instance the Allwinner A20 SoCs does not need or define any resets in its DT. Don't easily give up if clk_get_bulk() or reset_get_bulk() return an error, but check if that is due to the DT simply having no entries for either of them. This fixes USB operation on all boards with an Allwinner A10 or A20 SoC, which were reporting an error after commit ba96176ab70e2999: ======================= Bus usb@1c14000: ehci_generic usb@1c14000: Failed to get resets (err=-2) probe failed, error -2 ======================= Signed-off-by: Andre Przywara <[email protected]> Reviewed-by: Patrice Chotard <[email protected]>
2022-06-07usb: xhci-mtk: disable all ports when disable host controllerChunfeng Yun
This is used to avoid the ports status of IPPC being brought in kernel stage, it may cause ports error especially when the xhci controller is a component of dual-role controller. Reported-by: Yun-Chien Yu <[email protected]> Signed-off-by: Chunfeng Yun <[email protected]>
2022-05-20usb: xhci-dwc3: Support role switch default roleMark Kettenis
When the device tree indicates support for role switching through the "usb-role-switch" property, take the "role-switch-default-mode" property into account when deciding which role to put the controller into. This makes USB devices work on Apple M1 systems where the device tree may include a "dr_mode" property that is set to "otg", but where we need to put the controller into "host" mode to see devices connected to the type-C ports. Signed-off-by: Mark Kettenis <[email protected]>
2022-05-06usb: host: ehci-generic: Remove DM_REGULATOR flagPatrice Chotard
Since commit 16cc5ad0b439 ("power: regulator: add dummy helper") regulator dummy helper are always available even if DM_REGULATOR is not set. DM_REGULATOR flag is no more needed to protect no DM core, remove it. Signed-off-by: Patrice Chotard <[email protected]>
2022-05-06usb: host: ehci-generic: Make usage of clock/reset bulk() APIPatrice Chotard
Make usage of clock and reset bulk API in order to simplify the code Signed-off-by: Patrice Chotard <[email protected]>
2022-05-03pci: Add mask parameter to dm_pci_map_bar()Andrew Scull
Add a mask parameter to control the lookup of the PCI region from which the mapping can be made. Signed-off-by: Andrew Scull <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2022-05-03pci: Map bars with offset and lengthAndrew Scull
Evolve dm_pci_map_bar() to include an offset and length parameter. These allow a portion of the memory to be mapped and range checks to be applied. Passing both the offset and length as zero results in the previous behaviour and this is used to migrate the previous callers. Signed-off-by: Andrew Scull <[email protected]> Reviewed-by: Bin Meng <[email protected]>
2022-04-25bootstd: usb: Add a bootdev driverSimon Glass
Add a bootdev driver for USB host. It can use the distro boot mechanism to locate a file, or any other available bootmeth. Signed-off-by: Simon Glass <[email protected]>
2022-04-08arm: Remove unused ep93xx codeTom Rini
There are no platforms for this architecture anymore, remove unused code. Signed-off-by: Tom Rini <[email protected]>
2022-02-23usb: ehci-omap: Remove OMAP_EHCI_PHYx_RESET_GPIO from KconfigAdam Ford
With the omap-ehci driver now using the phy subsystem to enable and disable reset, the driver no longer needs to know which GPIO's are used, and they can be removed from Kconfig. Signed-off-by: Adam Ford <[email protected]>
2022-02-23usb: ehci-omap: Use PHY system to manage phy resetsAdam Ford
There are a few boards that use hard-coded GPIO definitions in their respective defconfig files. If the GPIO's are listed in their device trees, the nop-phy can toggle the GPIO's, so the EHCI driver does not need to know anything about the GPIO's. Add functions for getting the phys and remove the GPIO toggles since the phy will now do that. Signed-off-by: Adam Ford <[email protected]>
2022-02-23usb: ehci-omap: Make Kconfig select PHY if USB_EHCI_OMAPAdam Ford
The USB_EHCI_OMAP driver currently has a series of Kconfig options which let users specify a GPIO for the reset pin. Some devices may have only one reset, while others might have more. Since there is a nop phy driver, let's selct enable the PHY system, and imply the nop phy driver. The nop phy driver can now toggle the reset pins when putting the phy in and out of reset. If the gpio is listed under the phy, it will get toggled and the hard-coded config options specifying the GPIO numbers can eventually go away. Signed-off-by: Adam Ford <[email protected]>
2022-02-23usb: ehci-omap: Move omap_ehci_hcd_init to omap_ehci_probeAdam Ford
The OMAP3 hierarchy has the ehci node as a sub-node of the usbhshost. The usbhshost node contains an ohci and an ehci subnode. The configuration of the ehci belongs in the EHCI node and not its parent. Move it to the proper probe. usb start starting USB... Bus ehci@48064800: USB EHCI 1.00 Bus usb_otg_hs@480ab000: Port not available. scanning bus ehci@48064800 for devices... 3 USB Device(s) found scanning usb for storage devices... 1 Storage Device(s) found Signed-off-by: Adam Ford <[email protected]>
2022-02-23usb: ehci-omap: Drop dead codeAdam Ford
omap_ehci_hcd_stop appears to be dead code, and omap_ehci_hcd_init is only called by the probe function, so it can be static to that function. Remove both from the header along with some additional checking for DM_USB. Signed-off-by: Adam Ford <[email protected]>
2022-02-17Merge https://source.denx.de/u-boot/custodians/u-boot-marvellTom Rini
- a37xx: pci: Cleanup and minor fix for root port check (Pali) - pci: mvebu: Ensure that root port is always on root zero bus (Pali) - kwbimage: Fix dumping DATA registers for v0 images (Pali) - kwbimage: Support for parsing extended v0 format (Pali) - a37xx: Fix code and update DTS files to upstream version (Pali) - a37xx: Fix and extend building memory map (Pali) - ddr: marvell: a38x: fix BYTE_HOMOGENEOUS_SPLIT_OUT decision (Marek) - mvebu: Optionally reset board on DDR training failure (Marek)
2022-02-17usb: ehci: ehci-marvell: Update compatible string to official DT bindingsPali Rohár
Official DT bindings use compatible string marvell,armada-3700-ehci. Update drivers and DTS files. Signed-off-by: Pali Rohár <[email protected]> Reviewed-by: Stefan Roese <[email protected]>
2022-02-16usb: xhci: reset endpoint on USB stallStefan Agner
There are devices which cause a USB stall when trying to read strings. Specifically Arduino Mega R3 stalls when trying to read the product string. The stall currently remains unhandled, and subsequent retries submit new transfers on a stopped endpoint which ultimately cause a crash in abort_td(): WARN halted endpoint, queueing URB anyway. XHCI control transfer timed out, aborting... Unexpected XHCI event TRB, skipping... (3affe040 00000000 13000000 02008401) BUG at drivers/usb/host/xhci-ring.c:505/abort_td()! BUG! resetting ... Linux seems to be able to recover from the stall by issuing a TRB_RESET_EP command. Introduce reset_ep() which issues a TRB_RESET_EP followed by setting the transfer ring dequeue pointer via TRB_SET_DEQ. This allows to properly recover from a USB stall error and continue communicating with the USB device. Signed-off-by: Stefan Agner <[email protected]>
2022-02-11usb: ehci-mx6: Enable OTG detection on imx8mm and imx8mnAdam Ford
The imx8mm and imx8mn appear compatible with imx7d-usb flags in the OTG driver. If the dr_mode is defined as host or peripheral, the device appears to operate correctly, however the auto host/peripheral detection results in an error. The solution isn't just adding checks for imx8mm and imx8mn to the check for imx7, because the USB clock needs to be running to read from the USBNC_PHY_STATUS_OFFSET register or it will hang. Marek requested that I not enable the clocks in ehci_usb_of_to_plat, so I modified that function to return an unknown state if the device tree does not explicitly state whether it is a host or a peripheral. When the driver probes, it looks to see if it's in the unknown state, and only then will it read the register to auto-detect. Signed-off-by: Adam Ford <[email protected]> Tested-by: Tim Harvey <[email protected]>
2022-01-27Merge tag 'dm-pull-26jan22' of ↵Tom Rini
https://source.denx.de/u-boot/custodians/u-boot-dm acpi refactoring to allow non-x86 use binman support for bintools (binary tools) minor tools improvements in preparation for FDT signing various minor fixes and improvements
2022-01-26usb: ehci: dm: Convert i.MX28 ehci code to driver modelLukasz Majewski
This commit converts i.MX28's EHCI USB host driver to driver model (DM_USB). It is a straightforward conversion (to reuse as much code as possible), based on ehci-mx5.c code. Signed-off-by: Lukasz Majewski <[email protected]>
2022-01-26usb: ehci: Move common mxs code to separate functions (ehci_hcd_{stop|start})Lukasz Majewski
Those functions will be re-used when the ehci MXS driver (for imx28) will be converted to also support CONFIG_DM_USB. No functional changes introduced - only cosmetic changes (u32 type) and alignment to pass checkpatch. Signed-off-by: Lukasz Majewski <[email protected]>
2022-01-26usb: ehci: Refactor the ehci_mxs_toggle_clock function to be reused with DMLukasz Majewski
This function is going to be reused with the CONFIG_DM_USB enabled in the imx28 mxs USB ehci driver. No functional changes introduced. Signed-off-by: Lukasz Majewski <[email protected]>
2022-01-26usb: Modify Kconfig of the USB_EHCI_MXS to use this driver with imx28Lukasz Majewski
The ehci-mxs driver can be also used with imx28 SoC, not only imx23. Signed-off-by: Lukasz Majewski <[email protected]>
2022-01-25usb: Use the first available device for ehci_gadgetSean Anderson
For whatever reason, usb_setup_ehci_gadget removes and probes USB device 0. However, not all systems have a device 0. Use the first device instead. The device probed should probably have something to do with the controller (as specified by e.g. ums <controller> or fastboot <controller>). In fact, I find it odd that we probe the USB device in the first place, because this is just to set up the gadget itself. Presumably, the controller should be probed by usb_gadget_initialize somehow. Signed-off-by: Sean Anderson <[email protected]> Reviewed-by: Simon Glass <[email protected]>