forked from Minki/linux
0d34dfbf30
Full-speed and low-speed USB devices do not work with Tegra210
platforms because of incorrect PLLU/PLLU_OUT1 clock settings.
When full-speed device is connected:
[ 14.059886] usb 1-3: new full-speed USB device number 2 using tegra-xusb
[ 14.196295] usb 1-3: device descriptor read/64, error -71
[ 14.436311] usb 1-3: device descriptor read/64, error -71
[ 14.675749] usb 1-3: new full-speed USB device number 3 using tegra-xusb
[ 14.812335] usb 1-3: device descriptor read/64, error -71
[ 15.052316] usb 1-3: device descriptor read/64, error -71
[ 15.164799] usb usb1-port3: attempt power cycle
When low-speed device is connected:
[ 37.610949] usb usb1-port3: Cannot enable. Maybe the USB cable is bad?
[ 38.557376] usb usb1-port3: Cannot enable. Maybe the USB cable is bad?
[ 38.564977] usb usb1-port3: attempt power cycle
This commit fixes the issue by:
1. initializing PLLU_OUT1 before initializing XUSB_FS_SRC clock
because PLLU_OUT1 is parent of XUSB_FS_SRC.
2. changing PLLU post-divider to /2 (DIVP=1) according to Technical
Reference Manual.
Fixes:
|
||
---|---|---|
.. | ||
clk-audio-sync.c | ||
clk-bpmp.c | ||
clk-dfll.c | ||
clk-dfll.h | ||
clk-divider.c | ||
clk-emc.c | ||
clk-id.h | ||
clk-periph-fixed.c | ||
clk-periph-gate.c | ||
clk-periph.c | ||
clk-pll-out.c | ||
clk-pll.c | ||
clk-sdmmc-mux.c | ||
clk-super.c | ||
clk-tegra20.c | ||
clk-tegra30.c | ||
clk-tegra114.c | ||
clk-tegra124-dfll-fcpu.c | ||
clk-tegra124.c | ||
clk-tegra210.c | ||
clk-tegra-audio.c | ||
clk-tegra-fixed.c | ||
clk-tegra-periph.c | ||
clk-tegra-pmc.c | ||
clk-tegra-super-gen4.c | ||
clk-utils.c | ||
clk.c | ||
clk.h | ||
cvb.c | ||
cvb.h | ||
Kconfig | ||
Makefile |