summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Zhu <r65037@freescale.com>2012-04-20 14:37:56 +0800
committerFrank Li <Frank.Li@freescale.com>2012-04-20 17:51:11 +0800
commitd47e74ee8ff69a6a9298cff814658b27634cd1c9 (patch)
tree8dfaab1f8a72305c2294ff3c2ebb58cb32b57590
parent63d4420bf5f801b5e661be3849ea13cc2a5fd87a (diff)
ENGR00180412 MX6 SATA: Enable PHY in the SATA initilization
iENGR00179574: MX6- Add bus frequency scaling support disable SATA PHY defaultly Enable PHY in the SATA initilization, make sure the SATA work well. Signed-off-by: Richard Zhu <r65037@freescale.com>
-rw-r--r--arch/arm/plat-mxc/ahci_sata.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/arch/arm/plat-mxc/ahci_sata.c b/arch/arm/plat-mxc/ahci_sata.c
index 0d78a123a469..cee34b6f70d9 100644
--- a/arch/arm/plat-mxc/ahci_sata.c
+++ b/arch/arm/plat-mxc/ahci_sata.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved.
+ * Copyright (C) 2011-2012 Freescale Semiconductor, Inc. All Rights Reserved.
*/
/*
@@ -18,11 +18,13 @@
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
+#include <asm/errno.h>
#include <linux/io.h>
#include <linux/clk.h>
#include <linux/kernel.h>
#include <linux/delay.h>
-#include <asm/errno.h>
+
+#include <mach/hardware.h>
#include <mach/ahci_sata.h>
int write_phy_ctl_ack_polling(u32 data, void __iomem *mmio,
@@ -140,6 +142,13 @@ int sata_init(void __iomem *addr, unsigned long timer1ms)
u32 tmpdata;
int iterations = 20;
+ /*
+ * Make sure that SATA PHY is enabled
+ * The PDDQ mode is disabled.
+ */
+ tmpdata = readl(addr + PORT_PHY_CTL);
+ writel(tmpdata & (~PORT_PHY_CTL_PDDQ_LOC), addr + PORT_PHY_CTL);
+
/* Reset HBA */
writel(HOST_RESET, addr + HOST_CTL);