aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/layerscape/patches-4.14/801-sata-support-layerscape.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/layerscape/patches-4.14/801-sata-support-layerscape.patch')
-rw-r--r--target/linux/layerscape/patches-4.14/801-sata-support-layerscape.patch68
1 files changed, 68 insertions, 0 deletions
diff --git a/target/linux/layerscape/patches-4.14/801-sata-support-layerscape.patch b/target/linux/layerscape/patches-4.14/801-sata-support-layerscape.patch
new file mode 100644
index 0000000000..aaf677b564
--- /dev/null
+++ b/target/linux/layerscape/patches-4.14/801-sata-support-layerscape.patch
@@ -0,0 +1,68 @@
+From 918f966af1f0e42ff8ac298e1d7d02e67afcfab4 Mon Sep 17 00:00:00 2001
+From: Biwen Li <biwen.li@nxp.com>
+Date: Tue, 30 Oct 2018 18:27:42 +0800
+Subject: [PATCH 18/40] sata: support layerscape
+This is an integrated patch of sata for layerscape
+
+Signed-off-by: Tang Yuantian <andy.tang@nxp.com>
+Signed-off-by: Biwen Li <biwen.li@nxp.com>
+---
+ drivers/ata/ahci_qoriq.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+--- a/drivers/ata/ahci_qoriq.c
++++ b/drivers/ata/ahci_qoriq.c
+@@ -35,6 +35,8 @@
+
+ /* port register default value */
+ #define AHCI_PORT_PHY_1_CFG 0xa003fffe
++#define AHCI_PORT_PHY2_CFG 0x28184d1f
++#define AHCI_PORT_PHY3_CFG 0x0e081509
+ #define AHCI_PORT_TRANS_CFG 0x08000029
+ #define AHCI_PORT_AXICC_CFG 0x3fffffff
+
+@@ -183,6 +185,8 @@ static int ahci_qoriq_phy_init(struct ah
+ writel(readl(qpriv->ecc_addr) | ECC_DIS_ARMV8_CH2,
+ qpriv->ecc_addr);
+ writel(AHCI_PORT_PHY_1_CFG, reg_base + PORT_PHY1);
++ writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
++ writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
+ writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
+ if (qpriv->is_dmacoherent)
+ writel(AHCI_PORT_AXICC_CFG, reg_base + PORT_AXICC);
+@@ -190,6 +194,8 @@ static int ahci_qoriq_phy_init(struct ah
+
+ case AHCI_LS2080A:
+ writel(AHCI_PORT_PHY_1_CFG, reg_base + PORT_PHY1);
++ writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
++ writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
+ writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
+ if (qpriv->is_dmacoherent)
+ writel(AHCI_PORT_AXICC_CFG, reg_base + PORT_AXICC);
+@@ -201,6 +207,8 @@ static int ahci_qoriq_phy_init(struct ah
+ writel(readl(qpriv->ecc_addr) | ECC_DIS_ARMV8_CH2,
+ qpriv->ecc_addr);
+ writel(AHCI_PORT_PHY_1_CFG, reg_base + PORT_PHY1);
++ writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
++ writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
+ writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
+ if (qpriv->is_dmacoherent)
+ writel(AHCI_PORT_AXICC_CFG, reg_base + PORT_AXICC);
+@@ -212,6 +220,8 @@ static int ahci_qoriq_phy_init(struct ah
+ writel(readl(qpriv->ecc_addr) | ECC_DIS_LS1088A,
+ qpriv->ecc_addr);
+ writel(AHCI_PORT_PHY_1_CFG, reg_base + PORT_PHY1);
++ writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
++ writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
+ writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
+ if (qpriv->is_dmacoherent)
+ writel(AHCI_PORT_AXICC_CFG, reg_base + PORT_AXICC);
+@@ -219,6 +229,8 @@ static int ahci_qoriq_phy_init(struct ah
+
+ case AHCI_LS2088A:
+ writel(AHCI_PORT_PHY_1_CFG, reg_base + PORT_PHY1);
++ writel(AHCI_PORT_PHY2_CFG, reg_base + PORT_PHY2);
++ writel(AHCI_PORT_PHY3_CFG, reg_base + PORT_PHY3);
+ writel(AHCI_PORT_TRANS_CFG, reg_base + PORT_TRANS);
+ if (qpriv->is_dmacoherent)
+ writel(AHCI_PORT_AXICC_CFG, reg_base + PORT_AXICC);