summaryrefslogtreecommitdiffstats
path: root/drivers/ata
diff options
context:
space:
mode:
authorTang Yuantian <Yuantian.Tang@nxp.com>2017-01-20 01:59:36 -0500
committerTejun Heo <tj@kernel.org>2017-01-20 08:31:14 -0500
commitce8f45370e118fb6d5fe820b97558b9e2e2fece5 (patch)
tree540c60abaf63548f4b51a88b0c262fe2bd64c060 /drivers/ata
parent01f2901a264d954d3985e8bce1bf637ae52d4918 (diff)
ahci: qoriq: added ls2088a platforms support
Ls2088a is new introduced arm-based soc with sata support with following features: 1. Complies with the serial ATA 3.0 specification and the AHCI 1.3.1 specification 2. Contains a high-speed descriptor-based DMA controller 3. Supports the following: a. Speeds of 1.5 Gb/s (first-generation SATA), 3 Gb/s (second-generation SATA), and 6 Gb/s (third-generation SATA) b. FIS-based switching c. Native command queuing (NCQ) commands d. Port multiplier operation e. Asynchronous notification f. SATA BIST mode Signed-off-by: Tang Yuantian <yuantian.tang@nxp.com> Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'drivers/ata')
-rw-r--r--drivers/ata/ahci_qoriq.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/ata/ahci_qoriq.c b/drivers/ata/ahci_qoriq.c
index 137b1c76f259..85d833289f28 100644
--- a/drivers/ata/ahci_qoriq.c
+++ b/drivers/ata/ahci_qoriq.c
@@ -53,6 +53,7 @@ enum ahci_qoriq_type {
53 AHCI_LS1043A, 53 AHCI_LS1043A,
54 AHCI_LS2080A, 54 AHCI_LS2080A,
55 AHCI_LS1046A, 55 AHCI_LS1046A,
56 AHCI_LS2088A,
56}; 57};
57 58
58struct ahci_qoriq_priv { 59struct ahci_qoriq_priv {
@@ -67,6 +68,7 @@ static const struct of_device_id ahci_qoriq_of_match[] = {
67 { .compatible = "fsl,ls1043a-ahci", .data = (void *)AHCI_LS1043A}, 68 { .compatible = "fsl,ls1043a-ahci", .data = (void *)AHCI_LS1043A},
68 { .compatible = "fsl,ls2080a-ahci", .data = (void *)AHCI_LS2080A}, 69 { .compatible = "fsl,ls2080a-ahci", .data = (void *)AHCI_LS2080A},
69 { .compatible = "fsl,ls1046a-ahci", .data = (void *)AHCI_LS1046A}, 70 { .compatible = "fsl,ls1046a-ahci", .data = (void *)AHCI_LS1046A},
71 { .compatible = "fsl,ls2088a-ahci", .data = (void *)AHCI_LS2088A},
70 {}, 72 {},
71}; 73};
72MODULE_DEVICE_TABLE(of, ahci_qoriq_of_match); 74MODULE_DEVICE_TABLE(of, ahci_qoriq_of_match);
@@ -198,6 +200,13 @@ static int ahci_qoriq_phy_init(struct ahci_host_priv *hpriv)
198 if (qpriv->is_dmacoherent) 200 if (qpriv->is_dmacoherent)
199 writel(AHCI_PORT_AXICC_CFG, reg_base + PORT_AXICC); 201 writel(AHCI_PORT_AXICC_CFG, reg_base + PORT_AXICC);
200 break; 202 break;
203
204 case AHCI_LS2088A:
205 writel(AHCI_PORT_PHY_1_CFG, reg_base + PORT_PHY1);
206 writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
207 if (qpriv->is_dmacoherent)
208 writel(AHCI_PORT_AXICC_CFG, reg_base + PORT_AXICC);
209 break;
201 } 210 }
202 211
203 return 0; 212 return 0;