[PATCH 4/6] ata: sata_mv: enable Generation 2 speed support
Steffen Trumtrar
s.trumtrar at pengutronix.de
Tue Jan 18 06:04:51 PST 2022
The ARMADA-XP core supports the Gen2 speed.
Signed-off-by: Steffen Trumtrar <s.trumtrar at pengutronix.de>
---
drivers/ata/sata_mv.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c
index b8d21525a7..dd326428f4 100644
--- a/drivers/ata/sata_mv.c
+++ b/drivers/ata/sata_mv.c
@@ -40,6 +40,9 @@ static void ata_ioports_init(struct ata_ioports *io,
#define EDMA_EN (1 << 0) /* enable EDMA */
#define EDMA_DS (1 << 1) /* disable EDMA; self-negated */
#define REG_EDMA_COMMAND__EATARST 0x00000004
+#define REG_EDMA_IORDY_TMOUT(n) ((n) * 0x2000 + 0x2034)
+#define REG_SATA_IFCFG(n) ((n) * 0x2000 + 0x2050)
+#define REG_SATA_IFCFG_GEN2EN (1 << 7)
#define REG_ATA_BASE 0x2100
#define REG_SSTATUS(n) ((n) * 0x2000 + 0x2300)
@@ -124,6 +127,13 @@ static int mv_sata_probe(struct device_d *dev)
return ret;
}
+ /* increase IORdy signal timeout */
+ writel(0x800, base + REG_EDMA_IORDY_TMOUT(0));
+ /* set GEN2i Speed */
+ tmp = readl(base + REG_SATA_IFCFG(0));
+ tmp |= REG_SATA_IFCFG_GEN2EN;
+ writel(tmp, base + REG_SATA_IFCFG(0));
+
mv_soc_65n_phy_errata(base);
writel(REG_EDMA_COMMAND__EATARST, base + REG_EDMA_COMMAND(0));
--
2.30.2
More information about the barebox
mailing list