diff options
author | Tang Yuantian <Yuantian.Tang@freescale.com> | 2015-12-16 01:00:35 -0500 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2015-12-16 10:24:35 -0500 |
commit | dfcdc5fe0379d5650c9306ecc6fcc5cb6cb8982a (patch) | |
tree | b71d866db15f6013908b3668f2b699a98af1d0bd | |
parent | e3a6dadc6dca64f464238f8a36876c610400eef9 (diff) |
ahci: qoriq: Adjust the default register values on ls1021a
Updated the registers' values to enhance SATA performance and
reliability on ls1021a soc.
Signed-off-by: Tang Yuantian <Yuantian.Tang@freescale.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
-rw-r--r-- | drivers/ata/ahci_qoriq.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/drivers/ata/ahci_qoriq.c b/drivers/ata/ahci_qoriq.c index 256d9114a194..7bdee9bd8786 100644 --- a/drivers/ata/ahci_qoriq.c +++ b/drivers/ata/ahci_qoriq.c | |||
@@ -34,16 +34,20 @@ | |||
34 | 34 | ||
35 | /* port register default value */ | 35 | /* port register default value */ |
36 | #define AHCI_PORT_PHY_1_CFG 0xa003fffe | 36 | #define AHCI_PORT_PHY_1_CFG 0xa003fffe |
37 | #define AHCI_PORT_PHY_2_CFG 0x28183411 | ||
38 | #define AHCI_PORT_PHY_3_CFG 0x0e081004 | ||
39 | #define AHCI_PORT_PHY_4_CFG 0x00480811 | ||
40 | #define AHCI_PORT_PHY_5_CFG 0x192c96a4 | ||
41 | #define AHCI_PORT_TRANS_CFG 0x08000029 | 37 | #define AHCI_PORT_TRANS_CFG 0x08000029 |
42 | #define LS1043A_PORT_PHY2 0x28184d1f | 38 | |
43 | #define LS1043A_PORT_PHY3 0x0e081509 | 39 | /* for ls1021a */ |
40 | #define LS1021A_PORT_PHY2 0x28183414 | ||
41 | #define LS1021A_PORT_PHY3 0x0e080e06 | ||
42 | #define LS1021A_PORT_PHY4 0x064a080b | ||
43 | #define LS1021A_PORT_PHY5 0x2aa86470 | ||
44 | 44 | ||
45 | #define SATA_ECC_DISABLE 0x00020000 | 45 | #define SATA_ECC_DISABLE 0x00020000 |
46 | 46 | ||
47 | /* for ls1043a */ | ||
48 | #define LS1043A_PORT_PHY2 0x28184d1f | ||
49 | #define LS1043A_PORT_PHY3 0x0e081509 | ||
50 | |||
47 | enum ahci_qoriq_type { | 51 | enum ahci_qoriq_type { |
48 | AHCI_LS1021A, | 52 | AHCI_LS1021A, |
49 | AHCI_LS1043A, | 53 | AHCI_LS1043A, |
@@ -153,10 +157,10 @@ static int ahci_qoriq_phy_init(struct ahci_host_priv *hpriv) | |||
153 | case AHCI_LS1021A: | 157 | case AHCI_LS1021A: |
154 | writel(SATA_ECC_DISABLE, qpriv->ecc_addr); | 158 | writel(SATA_ECC_DISABLE, qpriv->ecc_addr); |
155 | writel(AHCI_PORT_PHY_1_CFG, reg_base + PORT_PHY1); | 159 | writel(AHCI_PORT_PHY_1_CFG, reg_base + PORT_PHY1); |
156 | writel(AHCI_PORT_PHY_2_CFG, reg_base + PORT_PHY2); | 160 | writel(LS1021A_PORT_PHY2, reg_base + PORT_PHY2); |
157 | writel(AHCI_PORT_PHY_3_CFG, reg_base + PORT_PHY3); | 161 | writel(LS1021A_PORT_PHY3, reg_base + PORT_PHY3); |
158 | writel(AHCI_PORT_PHY_4_CFG, reg_base + PORT_PHY4); | 162 | writel(LS1021A_PORT_PHY4, reg_base + PORT_PHY4); |
159 | writel(AHCI_PORT_PHY_5_CFG, reg_base + PORT_PHY5); | 163 | writel(LS1021A_PORT_PHY5, reg_base + PORT_PHY5); |
160 | writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS); | 164 | writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS); |
161 | break; | 165 | break; |
162 | 166 | ||