[Patch V8 0/8] Tegra XUSB gadget driver support

Nagarjuna Kristam
2019-09-04T08:23:52Z

This is the seventh version of series "Tegra XUSB gadget driver support"

Patches 1-3 are phy driver changes to add support for device
mode.
Patches 4-7 are changes related to XUSB device mode
controller driver.
Patch 8 is to enable XUDC driver in defconfig

Test Steps(USB 2.0):
- Enable "USB Gadget precomposed configurations" in defconfig
- Build, flash and boot Jetson TX1
- Connect Jetson TX1 and Ubuntu device using USB A to Micro B
cable
- After boot on Jetson TX1 terminal usb0 network device should be
enumerated
- Assign static ip to usb0 on Jetson TX1 and corresponding net
device on ubuntu
- Run ping test and transfer test(used scp) to check data transfer
communication

SS mode is verified by enabling Type A port as peripheral

This patch series is dependent on [1] for functionality of hot plug
triggers to xudc driver.

[1] https://patchwork.kernel.org/cover/11120723/
---
v8:
* Patches 1,2,3,4,5,8 - No changes
* Patch 6 has update on compatible string as per change done in [1].
* Patch 7 has issue fix, where device mode didnot got enabled after resume
from suspend.
---
v7:
* Patches 1,2,3,4,5,6,8 - No changes
* Patch 7 - Comments from Balbi and Chunfun adrresed.
Added COMPILE_TEST in Kconfig and updated dependencies.
---
v6:
* Patches 1,2,3,7,8 - No changes
* Patch 4,5,6 - Comments from Rob addressed, updated usb connector driver
compatibility string.
---
v5:
* Patches 1-3 - Commit subject updated as per inputs from Thierry
* Patch 4 - Added reg-names used on Tegra210 in the bindings doc
* Enabled xudc driver as module instead of part of kernel in patch 8
* Patched 5-8 - No changes
---
v4:
* patch 1 - no changes
* corrected companion device search based on inputs from Thierry in patch 2
* removed unneeded dev variable and corrected value read in
tegra210_utmi_port_reset function in patch 3
* dt binding doc and dtb files are corrected for alignments.
Replaced extcon-usb-gpio with usb role switch.
* Added support for USB role switch instead of extcon-usb-gpio and other minor
comments as suggested by Chunfeng.
* Enabled xudc driver as module instead of part of kernel in patch 8
---
V3:
* Rebased patch 1 to top of tree.
* Fixed bug in patch 2, where xudc interrupts dont get generated if USB host
mode fails to probe. Moved fake port detection logic to generic xusb.c. fake
usb port data is updated based on soc flag need_fake_usb3_port.
* Added extra lines whereever necessary to make code more readable in patch 3
and 7.
* dt binding doc is corrected for typos and extcon references. Also added
details for clocks and removed xusb_ references to clock and power-domain
names and accordingly patch 5 is updated.
* removed avdd-pll-utmip-supply in patch 6, as its now part of padctl driver.
* Patch 8 has no changes.
---
V2:
* Patches 1-3 are new patches in this series, which splits unified features
patch to speprated features and removes need of port-fake entry in DT.
* Patch 4 is re-arragend dt-bindings patch which incorporates previous
patch comments to sort DT entries alphabetically, addresses name changes
and PM domain details added.
* Patch 5-6 are re-arranged DT patches with major changes - sort entries
alphabetically, and adds clock names.
* Patch 7 is UDC driver tegra XUSB device mode controller with major
changes - remove un-used module params, lockinng for device_mode flag,
moving un-needed info logs to debug level, making changes feature flag
dependent rather than SOC based macros and other error handling in probe.
* Patch 8 has no changes.

Nagarjuna Kristam (8):
phy: tegra: xusb: Add XUSB dual mode support on Tegra210
phy: tegra: xusb: Add usb3 port fake support on Tegra210
phy: tegra: xusb: Add vbus override support on Tegra210
dt-bindings: usb: Add NVIDIA Tegra XUSB device mode controller binding
arm64: tegra: Add xudc node for Tegra210
arm64: tegra: Enable xudc on Jetson TX1
usb: gadget: Add UDC driver for tegra XUSB device mode controller
arm64: defconfig: Enable tegra XUDC driver

.../devicetree/bindings/usb/nvidia,tegra-xudc.txt | 110 +
arch/arm64/boot/dts/nvidia/tegra210-p2597.dtsi | 31 +-
arch/arm64/boot/dts/nvidia/tegra210.dtsi | 19 +
arch/arm64/configs/defconfig | 1 +
drivers/phy/tegra/xusb-tegra210.c | 133 +-
drivers/phy/tegra/xusb.c | 87 +
drivers/phy/tegra/xusb.h | 4 +
drivers/usb/gadget/udc/Kconfig | 12 +
drivers/usb/gadget/udc/Makefile | 1 +
drivers/usb/gadget/udc/tegra-xudc.c | 3791 ++++++++++++++++++++
include/linux/phy/tegra/xusb.h | 4 +-
11 files changed, 4189 insertions(+), 4 deletions(-)
create mode 100644 Documentation/devicetree/bindings/usb/nvidia,tegra-xudc.txt
create mode 100644 drivers/usb/gadget/udc/tegra-xudc.c

--
2.7.4