misc: hisi_hikey_usb: Driver to support onboard USB gpio hub on Hikey960
authorYu Chen <chenyu56@huawei.com>
Thu, 10 Sep 2020 06:00:12 +0000 (08:00 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 10 Sep 2020 16:56:38 +0000 (18:56 +0200)
commit7a6ff4c4cbc3570a1ae483a833b3fb12b1a56a9d
treef7d6e3bd385d4239704230d7893ff2f62a39b302
parentd00451c8118f8f7ab8e057bc6ee2f8b7d70b6a1c
misc: hisi_hikey_usb: Driver to support onboard USB gpio hub on Hikey960

The HiKey960 has a fairly complex USB configuration due to it
needing to support a USB-C port for host/device mode and multiple
USB-A ports in host mode, all using a single USB controller.

See schematics here:
  https://github.com/96boards/documentation/raw/master/consumer/hikey/hikey960/hardware-docs/HiKey960_Schematics.pdf

This driver acts as a usb-role-switch intermediary, intercepting
the role switch notifications from the tcpm code, and passing
them on to the dwc3 core.

In doing so, it also controls the onboard hub and power gpios in
order to properly route the data lines between the USB-C port
and the onboard hub to the USB-A ports.

Signed-off-by: Yu Chen <chenyu56@huawei.com>
[jstultz: Major rework to make the driver a usb-role-switch
          intermediary]
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Link: https://lore.kernel.org/r/c263f72e1d803c18c45a69ce2c333e79a7ed89ff.1599717402.git.mchehab+huawei@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
MAINTAINERS
drivers/misc/Kconfig
drivers/misc/Makefile
drivers/misc/hisi_hikey_usb.c [new file with mode: 0644]