Lines Matching +full:ahci +full:- +full:port
1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * DaVinci DM816 AHCI SATA platform driver
16 #include "ahci.h"
18 #define AHCI_DM816_DRV_NAME "ahci-dm816"
55 * We should have divided evenly - if not, return an invalid in ahci_dm816_get_mpy_bits()
58 return -1; in ahci_dm816_get_mpy_bits()
69 * keep-alive clock and the external reference clock. We need the in ahci_dm816_phy_init()
72 if (hpriv->n_clks < 2) { in ahci_dm816_phy_init()
74 return -EINVAL; in ahci_dm816_phy_init()
77 refclk_rate = clk_get_rate(hpriv->clks[1].clk); in ahci_dm816_phy_init()
80 return -EINVAL; in ahci_dm816_phy_init()
86 return -EINVAL; in ahci_dm816_phy_init()
89 /* Enable the PHY and configure the first HBA port. */ in ahci_dm816_phy_init()
93 writel(val, hpriv->mmio + AHCI_DM816_P0PHYCR_REG); in ahci_dm816_phy_init()
95 /* Configure the second HBA port. */ in ahci_dm816_phy_init()
98 writel(val, hpriv->mmio + AHCI_DM816_P1PHYCR_REG); in ahci_dm816_phy_init()
112 * enable Port Multiplier support, but the drive is connected directly in ahci_dm816_softreset()
118 if (pmp && ret == -EBUSY) in ahci_dm816_softreset()
143 struct device *dev = &pdev->dev; in ahci_dm816_probe()
178 { .compatible = "ti,dm816-ahci", },
194 MODULE_DESCRIPTION("DaVinci DM816 AHCI SATA platform driver");