Lines Matching +full:ati +full:- +full:target
1 /*-
2 * SPDX-License-Identifier: BSD-2-Clause
4 * Copyright (c) 1998 - 2008 Søren Schmidt <sos@FreeBSD.org>
48 #include <dev/ata/ata-all.h>
49 #include <dev/ata/ata-pci.h>
56 static int ata_ati_setmode(device_t dev, int target, int mode);
67 * ATI chipset support functions
89 { ATA_AMD_HUDSON2, 0x00, ATI_PATA, 0, ATA_UDMA6, "Hudson-2" }, in ata_ati_probe()
90 { ATA_AMD_HUDSON2_S1, 0x00, ATI_AHCI, 0, ATA_SA300, "Hudson-2" }, in ata_ati_probe()
91 { ATA_AMD_HUDSON2_S2, 0x00, ATI_AHCI, 0, ATA_SA300, "Hudson-2" }, in ata_ati_probe()
92 { ATA_AMD_HUDSON2_S3, 0x00, ATI_AHCI, 0, ATA_SA300, "Hudson-2" }, in ata_ati_probe()
93 { ATA_AMD_HUDSON2_S4, 0x00, ATI_AHCI, 0, ATA_SA300, "Hudson-2" }, in ata_ati_probe()
94 { ATA_AMD_HUDSON2_S5, 0x00, ATI_AHCI, 0, ATA_SA300, "Hudson-2" }, in ata_ati_probe()
100 if (!(ctlr->chip = ata_match_chip(dev, ids))) in ata_ati_probe()
103 switch (ctlr->chip->cfg1) { in ata_ati_probe()
105 ctlr->chipinit = ata_ati_chipinit; in ata_ati_probe()
109 * the ATI SATA controller is actually a SiI 3112 controller in ata_ati_probe()
111 ctlr->chipinit = ata_sii_chipinit; in ata_ati_probe()
116 ctlr->chipinit = ata_ati_chipinit; in ata_ati_probe()
134 if (ctlr->chip->cfg1 == ATI_AHCI) { in ata_ati_chipinit()
135 ctlr->ch_attach = ata_ati_dumb_ch_attach; in ata_ati_chipinit()
136 ctlr->setmode = ata_sata_setmode; in ata_ati_chipinit()
139 switch (ctlr->chip->chipid) { in ata_ati_chipinit()
142 ctlr->channels = 1; in ata_ati_chipinit()
158 ctlr->chipset_data = (void *)(uintptr_t)satacfg; in ata_ati_chipinit()
161 * we have only one PATA channel. Ignore a non-existent channel. in ata_ati_chipinit()
164 ctlr->ichannels &= ~(1 << ((satacfg & 0x10) >> 4)); in ata_ati_chipinit()
166 ctlr->ch_attach = ata_ati_ixp700_ch_attach; in ata_ati_chipinit()
172 ctlr->setmode = ata_ati_setmode; in ata_ati_chipinit()
183 ch->flags |= ATA_SATA; in ata_ati_dumb_ch_attach()
192 uint8_t satacfg = (uint8_t)(uintptr_t)ctlr->chipset_data; in ata_ati_ixp700_ch_attach()
199 if (ch->unit == ((satacfg & 0x10) >> 4)) in ata_ati_ixp700_ch_attach()
200 ch->flags |= ATA_SATA; in ata_ati_ixp700_ch_attach()
205 ata_ati_setmode(device_t dev, int target, int mode) in ata_ati_setmode() argument
210 int devno = (ch->unit << 1) + target; in ata_ati_setmode()
216 mode = min(mode, ctlr->chip->max_dma); in ata_ati_setmode()
253 ((piomode - ATA_PIO0) << (devno<<2)),2); in ata_ati_setmode()