From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Date: Tue, 9 Feb 2021 01:42:57 +0000 Subject: [PATCH 0/6] Allwinner H6 USB3 support In-Reply-To: <20210208055724.58673-1-samuel@sholland.org> References: <20210208055724.58673-1-samuel@sholland.org> Message-ID: <20210209014257.2759701c@slackpad.fritz.box> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On Sun, 7 Feb 2021 23:57:18 -0600 Samuel Holland 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 at 4020000: 0, mmc at 4021000: 2, mmc at 4022000: 1 > Loading Environment from FAT... Unable to use mmc 1:0... In: serial at 5000000 > Out: serial at 5000000 > Err: serial at 5000000 > Net: No ethernet found. > starting USB... > Bus usb at 5101000: USB EHCI 1.00 > Bus usb at 5101400: USB OHCI 1.0 > Bus usb at 5200000: Register 2000140 NbrPorts 2 > Starting the controller > USB XHCI 1.00 > Bus usb at 5311000: USB EHCI 1.00 > Bus usb at 5311400: USB OHCI 1.0 > scanning bus usb at 5101000 for devices... 1 USB Device(s) found > scanning bus usb at 5101400 for devices... 1 USB Device(s) found > scanning bus usb at 5200000 for devices... 4 USB Device(s) found > scanning bus usb at 5311000 for devices... 1 USB Device(s) found > scanning bus usb at 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 >