Lines Matching +full:ultra +full:- +full:low

2  * pata_sil680.c 	- SIL680 PATA for new ATA layer
9 * Copyright (C) 2001-2002 Andre Hedrick <andre@linux-ide.org>
39 * sil680_selreg - return register base
53 base += (ap->port_no << 4); in sil680_selreg()
58 * sil680_seldev - return register base
71 base += (ap->port_no << 4); in sil680_seldev()
72 base |= adev->devno ? 2 : 0; in sil680_seldev()
78 * sil680_cable_detect - cable detection
87 struct pci_dev *pdev = to_pci_dev(ap->host->dev); in sil680_cable_detect()
98 * sil680_set_piomode - set PIO mode data
118 unsigned long addr_mask = 0x80 + 4 * ap->port_no; in sil680_set_piomode()
119 struct pci_dev *pdev = to_pci_dev(ap->host->dev); in sil680_set_piomode()
120 int pio = adev->pio_mode - XFER_PIO_0; in sil680_set_piomode()
122 int port_shift = 4 * adev->devno; in sil680_set_piomode()
128 if (pair != NULL && adev->pio_mode > pair->pio_mode) in sil680_set_piomode()
129 lowest_pio = pair->pio_mode - XFER_PIO_0; in sil680_set_piomode()
134 pci_read_config_word(pdev, tfaddr-2, &reg); in sil680_set_piomode()
144 pci_write_config_word(pdev, tfaddr-2, reg); in sil680_set_piomode()
149 * sil680_set_dmamode - set DMA mode data
167 struct pci_dev *pdev = to_pci_dev(ap->host->dev); in sil680_set_dmamode()
170 unsigned long addr_mask = 0x80 + 4 * ap->port_no; in sil680_set_dmamode()
171 int port_shift = adev->devno * 4; in sil680_set_dmamode()
173 u16 multi, ultra; in sil680_set_dmamode() local
178 pci_read_config_word(pdev, ua, &ultra); in sil680_set_dmamode()
181 ultra &= ~0x3F; in sil680_set_dmamode()
187 if (adev->dma_mode >= XFER_UDMA_0) { in sil680_set_dmamode()
189 ultra |= ultra_table[scsc][adev->dma_mode - XFER_UDMA_0]; in sil680_set_dmamode()
192 multi = dma_table[adev->dma_mode - XFER_MW_DMA_0]; in sil680_set_dmamode()
197 pci_write_config_word(pdev, ua, ultra); in sil680_set_dmamode()
201 * sil680_sff_exec_command - issue ATA command to host controller
215 DPRINTK("ata%u: cmd 0x%X\n", ap->print_id, tf->command); in sil680_sff_exec_command()
216 iowrite8(tf->command, ap->ioaddr.command_addr); in sil680_sff_exec_command()
217 ioread8(ap->ioaddr.bmdma_addr + ATA_DMA_CMD); in sil680_sff_exec_command()
222 struct pci_dev *pdev = to_pci_dev(ap->host->dev); in sil680_sff_irq_check()
246 * sil680_init_chip - chip setup
261 pdev->revision ? 1 : 255); in sil680_init_chip()
268 dev_dbg(&pdev->dev, "sil680: BA5_EN = %d clock = %02X\n", in sil680_init_chip()
296 dev_dbg(&pdev->dev, "sil680: BA5_EN = %d clock = %02X\n", in sil680_init_chip()
348 ata_print_version_once(&pdev->dev, DRV_VERSION); in sil680_init_one()
359 return -ENODEV; in sil680_init_one()
373 host = ata_host_alloc_pinfo(&pdev->dev, ppi, 2); in sil680_init_one()
375 return -ENOMEM; in sil680_init_one()
376 host->iomap = pcim_iomap_table(pdev); in sil680_init_one()
379 rc = dma_set_mask_and_coherent(&pdev->dev, ATA_DMA_MASK); in sil680_init_one()
385 mmio_base = host->iomap[SIL680_MMIO_BAR]; in sil680_init_one()
386 host->ports[0]->ioaddr.bmdma_addr = mmio_base + 0x00; in sil680_init_one()
387 host->ports[0]->ioaddr.cmd_addr = mmio_base + 0x80; in sil680_init_one()
388 host->ports[0]->ioaddr.ctl_addr = mmio_base + 0x8a; in sil680_init_one()
389 host->ports[0]->ioaddr.altstatus_addr = mmio_base + 0x8a; in sil680_init_one()
390 ata_sff_std_ports(&host->ports[0]->ioaddr); in sil680_init_one()
391 host->ports[1]->ioaddr.bmdma_addr = mmio_base + 0x08; in sil680_init_one()
392 host->ports[1]->ioaddr.cmd_addr = mmio_base + 0xc0; in sil680_init_one()
393 host->ports[1]->ioaddr.ctl_addr = mmio_base + 0xca; in sil680_init_one()
394 host->ports[1]->ioaddr.altstatus_addr = mmio_base + 0xca; in sil680_init_one()
395 ata_sff_std_ports(&host->ports[1]->ioaddr); in sil680_init_one()
398 return ata_host_activate(host, pdev->irq, ata_bmdma_interrupt, in sil680_init_one()
440 MODULE_DESCRIPTION("low-level driver for SI680 PATA");