phy: ti-pipe3: Fix SATA across suspend/resume
authorRoger Quadros <rogerq@ti.com>
Tue, 13 Jan 2015 12:23:20 +0000 (14:23 +0200)
committerKishon Vijay Abraham I <kishon@ti.com>
Wed, 21 Jan 2015 09:53:06 +0000 (15:23 +0530)
commit7f33912d2978796662473f1f5e1fcfc387717e15
tree391f756c4429e462aeb2f82704a3d2dedeae2df0
parent6e7384320ffa28a3732513f51fc56119003edbd3
phy: ti-pipe3: Fix SATA across suspend/resume

Failed test case: Boot without SATA drive connected. Suspend/resume
the board and then connect SATA drive. It fails to enumerate.

Due to Errata i783 "SATA Lockup After SATA DPLL Unlock/Relock"
we can't allow SATA DPLL to be in the unlocked state.
The SATA refclk (sata_ref_clk) is the source of the SATA_DPLL.
This clock is being controlled only by the AHCI SATA driver and is
shut off during system suspend (if the SATA drive was not already attached)
causing the SATA DPLL to be unlocked and so causing errata i783.

To prevent sata_ref_clk from being disabled, we add the control of
this clock to the SATA PHY driver and prevent it from being disabled.

This also fixes the issue of SATA not working on OMAP5/DRA7 when
AHCI platform driver is built as a module.

NOTE: Device tree changes also required for OMAP5 & DRA7.

Signed-off-by: Roger Quadros <rogerq@ti.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
drivers/phy/phy-ti-pipe3.c