
This series enables USB on Qualcomm SDM845 platforms and lays the foundation for future SoCs as well.
It introduces two new high-speed PHY drivers, one for SDM845 and one for an upcoming platform. The SDM845 clock driver gains support for configuring the USB clocks, and the GPIO driver is updated to use .set_flags which fixes a strange bug where GPIOs would also be configured as input.
Support for super-speed USB modes is not currently available, however configuring the device to be high-speed only requires modifications to DT.
To improve compatibility with upstream DT, we switch Qualcomm platforms over to OF_LIVE and apply fixups to the tree to remove references to the super-speed phy, as well as configure the Qualcomm glue for high-speed only mode.
The db845c requires a vbus-supply to be hooked up for its usb type-A port. A U-Boot dtsi file is added to configure this.
With these patches, it is now also possible to run U-Boot on some SDM845 phones like the OnePlus 6 using a dtb from Linux, and access the U-Boot shell via the CDC ACM USB serial gadget.
This series depends on the ("Qualcomm generic board support") series [1] switching to upstream DT, as well as the ("Qualcomm DWC3 USB support") series [2]. A feature branch based on qcom-next with the necessary dependencies for testing the Dragonboard845c can be found at [3].
I think most of these can go through the Qualcomm tree, but I'm not exactly sure. I'd appreciate any suggestions on if/how to split this series up further.
[1]: https://lore.kernel.org/u-boot/20240130-b4-qcom-common-target-v3-0-e523cbf9e... [2]: https://lore.kernel.org/u-boot/20240131-b4-qcom-usb-v1-0-6438b2a2285e@linaro... [3]: https://git.codelinaro.org/linaro/qcomlt/u-boot/-/tree/b4/dwc3-qcom
--- Bhupesh Sharma (2): phy: qcom: add Qualcomm QUSB2 USB PHY driver phy: qcom: Add USB HS 7nm PHY driver
Caleb Connolly (11): mailmap: update Bhupesh's email address clk/qcom: use offsets for RCG registers clk/qcom: add gdsc_enable helper clk/qcom: sdm845: add USB clocks gpio: msm_gpio: add .set_flags op serial: msm-geni: support livetree mach-snapdragon: fixup USB nodes dts: sdm845-db845c: add u-boot fixups qcom_defconfig: regenerate with savedefconfig qcom_defconfig: enable livetree qcom_defconfig: enable USB
.mailmap | 1 + arch/arm/dts/sdm845-db845c-u-boot.dtsi | 8 + arch/arm/mach-snapdragon/board.c | 88 +++++++ configs/qcom_defconfig | 22 +- drivers/clk/qcom/clock-apq8016.c | 39 +-- drivers/clk/qcom/clock-apq8096.c | 28 +- drivers/clk/qcom/clock-qcom.c | 40 ++- drivers/clk/qcom/clock-qcom.h | 20 +- drivers/clk/qcom/clock-qcs404.c | 121 ++------- drivers/clk/qcom/clock-sdm845.c | 45 ++-- drivers/gpio/msm_gpio.c | 21 +- drivers/phy/qcom/Kconfig | 15 ++ drivers/phy/qcom/Makefile | 2 + drivers/phy/qcom/phy-qcom-qusb2.c | 468 +++++++++++++++++++++++++++++++++ drivers/phy/qcom/phy-qcom-usb-hs-7nm.c | 295 +++++++++++++++++++++ drivers/serial/serial_msm_geni.c | 13 + 16 files changed, 1017 insertions(+), 209 deletions(-) --- base-commit: b5195aca8b5b30071fda8e60bb56013032e06d18
// Caleb (they/them)