Lines Matching +full:imx6q +full:- +full:ahci

1 /*-
39 #include <dev/ahci/ahci.h>
65 {"fsl,imx6q-ahci", true},
76 v = ATA_INL(sc->r_mem, SATA_P0PHYCR); in imx6_ahci_phy_ctrl()
82 ATA_OUTL(sc->r_mem, SATA_P0PHYCR, v); in imx6_ahci_phy_ctrl()
84 for (timeout = 5000; timeout > 0; --timeout) { in imx6_ahci_phy_ctrl()
85 v = ATA_INL(sc->r_mem, SATA_P0PHYSR); in imx6_ahci_phy_ctrl()
107 ATA_OUTL(sc->r_mem, SATA_P0PHYCR, addr); in imx6_ahci_phy_addr()
111 device_printf(sc->dev, in imx6_ahci_phy_addr()
119 device_printf(sc->dev, in imx6_ahci_phy_addr()
136 device_printf(sc->dev, "%s: error on imx6_ahci_phy_addr\n", in imx6_ahci_phy_write()
141 ATA_OUTL(sc->r_mem, SATA_P0PHYCR, data); in imx6_ahci_phy_write()
145 device_printf(sc->dev, in imx6_ahci_phy_write()
150 device_printf(sc->dev, in imx6_ahci_phy_write()
157 ATA_OUTL(sc->r_mem, SATA_P0PHYCR, in imx6_ahci_phy_write()
164 device_printf(sc->dev, "%s: error on SATA_P0PHYCR_CR_WRITE=1\n", in imx6_ahci_phy_write()
171 device_printf(sc->dev, "%s: error on SATA_P0PHYCR_CR_WRITE=0\n", in imx6_ahci_phy_write()
187 device_printf(sc->dev, "%s: error on imx6_ahci_phy_addr\n", in imx6_ahci_phy_read()
194 device_printf(sc->dev, "%s: error on SATA_P0PHYCR_CR_READ=1\n", in imx6_ahci_phy_read()
199 v = ATA_INL(sc->r_mem, SATA_P0PHYSR); in imx6_ahci_phy_read()
203 device_printf(sc->dev, "%s: error on SATA_P0PHYCR_CR_READ=0\n", in imx6_ahci_phy_read()
220 if (!ofw_bus_search_compatible(dev, compat_data)->ocd_data) { in imx6_ahci_probe()
223 device_set_desc(dev, "i.MX6 Integrated AHCI controller"); in imx6_ahci_probe()
245 ctlr->vendorid = 0; in imx6_ahci_attach()
246 ctlr->deviceid = 0; in imx6_ahci_attach()
247 ctlr->subvendorid = 0; in imx6_ahci_attach()
248 ctlr->subdeviceid = 0; in imx6_ahci_attach()
249 ctlr->numirqs = 1; in imx6_ahci_attach()
250 ctlr->r_rid = 0; in imx6_ahci_attach()
251 if ((ctlr->r_mem = bus_alloc_resource_any(dev, SYS_RES_MEMORY, in imx6_ahci_attach()
252 &ctlr->r_rid, RF_ACTIVE)) == NULL) { in imx6_ahci_attach()
288 for (timeout = 50; timeout > 0; --timeout) { in imx6_ahci_attach()
306 /* Support Staggered Spin-up */ in imx6_ahci_attach()
307 v = ATA_INL(ctlr->r_mem, AHCI_CAP); in imx6_ahci_attach()
308 ATA_OUTL(ctlr->r_mem, AHCI_CAP, v | AHCI_CAP_SSS); in imx6_ahci_attach()
311 v = ATA_INL(ctlr->r_mem, AHCI_PI); in imx6_ahci_attach()
312 ATA_OUTL(ctlr->r_mem, AHCI_PI, v | (1 << 0)); in imx6_ahci_attach()
314 /* set 1ms-timer = AHB clock / 1000 */ in imx6_ahci_attach()
315 ATA_OUTL(ctlr->r_mem, SATA_TIMER1MS, in imx6_ahci_attach()
319 * Note: ahci_attach will release ctlr->r_mem on errors automatically in imx6_ahci_attach()
324 bus_release_resource(dev, SYS_RES_MEMORY, ctlr->r_rid, ctlr->r_mem); in imx6_ahci_attach()
341 /* ahci bus methods */
353 "ahci",
359 MODULE_DEPEND(imx6_ahci, ahci, 1, 1, 1);