On Sun, 7 Feb 2021 23:57:18 -0600 Samuel Holland <sam...@sholland.org> wrote:
Hi Samuel, > This series adds clock, PHY, and XHCI driver support for the USB3 > controller found in the Allwinner H6 SoC. Below is a log showing it > functioning on the Orange Pi 3. Many thanks for sharing this! The lack of USB 3.0 support annoyed me for a while (not so much for SuperSpeed, but more for another usable USB port). I had some patches myself, but stopped with some hacks after I realised the resets properties blunder. So many thanks for finding a much better solution for this! There might be still some discussion around this, but at least we have something in a working and non-hackish state. I commented on the individual patches! Cheers, Andre > U-Boot 2021.04-rc1-00068-g6b8f4e0d060 (Jan 01 1970 - 00:00:00 +0000) > Allwinner Technology > > CPU: Allwinner H6 (SUN50I) > Model: OrangePi 3 > DRAM: 2 GiB > MMC: mmc@4020000: 0, mmc@4021000: 2, mmc@4022000: 1 > Loading Environment from FAT... Unable to use mmc 1:0... In: serial@5000000 > Out: serial@5000000 > Err: serial@5000000 > Net: No ethernet found. > starting USB... > Bus usb@5101000: USB EHCI 1.00 > Bus usb@5101400: USB OHCI 1.0 > Bus usb@5200000: Register 2000140 NbrPorts 2 > Starting the controller > USB XHCI 1.00 > Bus usb@5311000: USB EHCI 1.00 > Bus usb@5311400: USB OHCI 1.0 > scanning bus usb@5101000 for devices... 1 USB Device(s) found > scanning bus usb@5101400 for devices... 1 USB Device(s) found > scanning bus usb@5200000 for devices... 4 USB Device(s) found > scanning bus usb@5311000 for devices... 1 USB Device(s) found > scanning bus usb@5311400 for devices... 1 USB Device(s) found > scanning usb for storage devices... 1 Storage Device(s) found > Hit any key to stop autoboot: 0 > => usb tree > USB device tree: > 1 Hub (480 Mb/s, 0mA) > u-boot EHCI Host Controller > > 1 Hub (12 Mb/s, 0mA) > U-Boot Root Hub > > 1 Hub (5 Gb/s, 0mA) > | U-Boot XHCI Host Controller > | > +-2 Hub (5 Gb/s, 0mA) > | | GenesysLogic USB3.1 Hub > | | > | +-4 Mass Storage (5 Gb/s, 224mA) > | 071044991D8D6A81 > | > +-3 Hub (480 Mb/s, 100mA) > GenesysLogic USB2.1 Hub > > 1 Hub (480 Mb/s, 0mA) > u-boot EHCI Host Controller > > 1 Hub (12 Mb/s, 0mA) > U-Boot Root Hub > > Samuel Holland (6): > clk: sunxi: Add a dummy clock driver for the RTC > clk: sunxi: h6: Add XHCI clocks > phy: sun50i-usb3: Add a driver for the H6 USB3 PHY > usb: xhci-pci: Move reset logic out of XHCI core > usb: xhci-dwc3: Add support for clocks/resets > configs: Enable USB3 on Allwinner H6 boards > > configs/orangepi_3_defconfig | 5 + > configs/pine_h64_defconfig | 5 + > drivers/clk/sunxi/Makefile | 2 + > drivers/clk/sunxi/clk_h6.c | 2 + > drivers/clk/sunxi/clk_sun6i_rtc.c | 35 +++++ > drivers/phy/allwinner/Kconfig | 8 ++ > drivers/phy/allwinner/Makefile | 1 + > drivers/phy/allwinner/phy-sun50i-usb3.c | 171 ++++++++++++++++++++++++ > drivers/usb/host/xhci-dwc3.c | 56 ++++++++ > drivers/usb/host/xhci-mem.c | 2 - > drivers/usb/host/xhci-pci.c | 38 +++++- > drivers/usb/host/xhci.c | 35 ----- > include/usb/xhci.h | 2 - > 13 files changed, 321 insertions(+), 41 deletions(-) > create mode 100644 drivers/clk/sunxi/clk_sun6i_rtc.c > create mode 100644 drivers/phy/allwinner/phy-sun50i-usb3.c >