linux-stable/drivers/clk
JC Kuo d0144ce7c0 clk: tegra210: fix PLLU and PLLU_OUT1
[ Upstream commit 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: e745f992cf ("clk: tegra: Rework pll_u")
Signed-off-by: JC Kuo <jckuo@nvidia.com>
Acked-By: Peter De Schrijver <pdeschrijver@nvidia.com>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-08-06 19:05:21 +02:00
..
at91 clk: at91: Fix division by zero in PLL recalc_rate() 2018-11-21 09:24:07 +01:00
axis
axs10x clk: axs10x: introduce AXS10X pll driver 2017-07-17 11:50:59 -07:00
bcm clk: bcm2835: De-assert/assert PLL reset signal when appropriate 2018-04-24 09:36:34 +02:00
berlin clk: Convert to using %pOF instead of full_name 2017-07-21 15:49:54 -07:00
h8300 License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
hisilicon clk: hi3660: Mark clk_gate_ufs_subsys as critical 2019-05-25 18:25:20 +02:00
imgtec clk: boston: fix possible memory leak in clk_boston_setup() 2019-02-12 19:45:57 +01:00
imx clk: imx6sl: ensure MMDC CH0 handshake is bypassed 2019-02-12 19:46:03 +01:00
ingenic clk: ingenic: Fix doc of ingenic_cgu_div_info 2019-03-23 14:35:23 +01:00
keystone clk: keystone: sci-clk: Fix sci_clk_get 2017-08-02 18:37:26 -07:00
loongson1
mediatek clk: mediatek: fix PWM clock source by adding a fixed-factor clock 2018-04-24 09:36:33 +02:00
meson clk: meson: mpll: use 64-bit maths in params_from_rate 2018-04-12 12:32:11 +02:00
microchip
mmp clk: mmp: Off by one in mmp_clk_add() 2018-12-21 14:13:14 +01:00
mvebu clk: mvebu: Off by one bugs in cp110_of_clk_get() 2018-12-21 14:13:14 +01:00
mxs
nxp clk: divider: fix incorrect usage of container_of 2018-04-12 12:32:13 +02:00
pistachio
pxa
qcom clk: divider: fix incorrect usage of container_of 2018-04-12 12:32:13 +02:00
renesas clk: renesas: cpg-mssr: Stop using printk format %pCr 2018-07-03 11:24:48 +02:00
rockchip clk: rockchip: Turn on "aclk_dmac1" for suspend on rk3288 2019-06-15 11:54:55 +02:00
samsung clk: samsung: exynos5250: Add missing clocks for FIMC LITE SYSMMU devices 2018-12-01 09:42:58 +01:00
sirf License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
socfpga License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
spear License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
st License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sunxi clk: sunxi: sun9i-mmc: Implement reset callback for reset controls 2017-12-29 17:53:48 +01:00
sunxi-ng clk: sunxi: A31: Fix wrong AHB gate number 2019-03-23 14:35:13 +01:00
tegra clk: tegra210: fix PLLU and PLLU_OUT1 2019-08-06 19:05:21 +02:00
ti clk: ti: clkctrl: Fix returning uninitialized data 2019-07-21 09:04:37 +02:00
uniphier clk: uniphier: Fix update register for CPU-gear 2019-03-23 14:35:23 +01:00
ux500 License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
versatile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
x86 clk: x86: Add system specific quirk to mark clocks as critical 2019-05-08 07:20:53 +02:00
zte clk: zte: constify clk_div_table 2017-08-30 22:30:30 -07:00
zynq
clk-asm9260.c clk: Convert to using %pOF instead of full_name 2017-07-21 15:49:54 -07:00
clk-axi-clkgen.c clk: axi-clkgen: Correctly handle nocount bit in recalc_rate() 2018-03-24 11:01:28 +01:00
clk-axm5516.c
clk-bulk.c clk: Export clk_bulk_prepare() 2017-09-29 14:17:17 -07:00
clk-cdce706.c
clk-cdce925.c
clk-clps711x.c
clk-composite.c
clk-conf.c clk: Convert to using %pOF instead of full_name 2017-07-21 15:49:54 -07:00
clk-cs2000-cp.c clk: cs2000: Add cs2000_set_saved_rate 2017-08-31 11:32:32 -07:00
clk-devres.c clk: add managed version of clk_bulk_get 2017-06-02 15:37:49 -07:00
clk-divider.c clk: divider: fix incorrect usage of container_of 2018-04-12 12:32:13 +02:00
clk-efm32gg.c
clk-fixed-factor.c clk: fixed-factor: fix of_node_get-put imbalance 2018-11-27 16:10:48 +01:00
clk-fixed-rate.c clk: fixed-rate: fix of_node_get-put imbalance 2018-11-27 16:10:47 +01:00
clk-fractional-divider.c clk: fractional-divider: check parent rate only if flag is set 2019-04-05 22:31:31 +02:00
clk-gate.c clk: gate: expose clk_gate_ops::is_enabled 2017-08-31 18:35:45 -07:00
clk-gemini.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
clk-gpio.c
clk-hi655x.c clk: hi6220: Add the hi655x's pmic clock 2017-04-21 19:18:53 -07:00
clk-highbank.c
clk-hsdk-pll.c ARC: clk: introduce HSDK pll driver 2017-08-30 22:36:05 -07:00
clk-max77686.c
clk-moxart.c clk: Convert to using %pOF instead of full_name 2017-07-21 15:49:54 -07:00
clk-multiplier.c
clk-mux.c clk: honor CLK_MUX_ROUND_CLOSEST in generic clk mux 2018-06-21 04:02:42 +09:00
clk-nomadik.c clk: nomadik: Delete error messages for a failed memory allocation in two functions 2017-04-21 19:47:14 -07:00
clk-nspire.c
clk-oxnas.c
clk-palmas.c clk: palmas: undo preparation of a clock source. 2017-06-02 10:51:34 -07:00
clk-pwm.c
clk-qoriq.c clk: Convert to using %pOF instead of full_name 2017-07-21 15:49:54 -07:00
clk-rk808.c
clk-s2mps11.c clk: s2mps11: Fix matching when built as module and DT node contains compatible 2018-11-21 09:24:06 +01:00
clk-scpi.c clk: scpi: error when clock fails to register 2017-06-29 18:47:35 -07:00
clk-si514.c
clk-si570.c
clk-si5351.c clk: si5351: Rename internal plls to avoid name collisions 2018-03-24 11:01:28 +01:00
clk-si5351.h
clk-stm32f4.c clk: Convert to using %pOF instead of full_name 2017-07-21 15:49:54 -07:00
clk-stm32h7.c clk: stm32h7: fix test of clock config 2017-12-14 09:53:11 +01:00
clk-tango4.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
clk-twl6040.c clk: clk-twl6040: Fix imprecise external abort for pdmclk 2019-03-23 14:35:23 +01:00
clk-u300.c
clk-versaclock5.c clk: vc5: Abort clock configuration without upstream clock 2019-03-05 17:57:58 +01:00
clk-vt8500.c
clk-wm831x.c
clk-xgene.c clk: Convert to using %pOF instead of full_name 2017-07-21 15:49:54 -07:00
clk.c clk: core: Potentially free connection id 2018-09-26 08:37:59 +02:00
clk.h
clkdev.c clk: Convert to using %pOF instead of full_name 2017-07-21 15:49:54 -07:00
Kconfig clk: Kconfig: Name RK805 in Kconfig for COMMON_CLK_RK808 2017-08-31 16:20:12 -07:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00