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
52 return 0xA0 + (ap->port_no << 4) + r; in sil680_selreg()
56 * sil680_seldev - return register base
68 return 0xA0 + (ap->port_no << 4) + r + (adev->devno << 1); in sil680_seldev()
73 * sil680_cable_detect - cable detection
82 struct pci_dev *pdev = to_pci_dev(ap->host->dev); in sil680_cable_detect()
94 * sil680_set_piomode - set PIO mode data
114 int addr_mask = 0x80 + 4 * ap->port_no; in sil680_set_piomode()
115 struct pci_dev *pdev = to_pci_dev(ap->host->dev); in sil680_set_piomode()
116 int pio = adev->pio_mode - XFER_PIO_0; in sil680_set_piomode()
118 int port_shift = 4 * adev->devno; in sil680_set_piomode()
124 if (pair != NULL && adev->pio_mode > pair->pio_mode) in sil680_set_piomode()
125 lowest_pio = pair->pio_mode - XFER_PIO_0; in sil680_set_piomode()
130 pci_read_config_word(pdev, tfaddr-2, &reg); in sil680_set_piomode()
140 pci_write_config_word(pdev, tfaddr-2, reg); in sil680_set_piomode()
145 * sil680_set_dmamode - set DMA mode data
163 struct pci_dev *pdev = to_pci_dev(ap->host->dev); in sil680_set_dmamode()
166 int addr_mask = 0x80 + 4 * ap->port_no; in sil680_set_dmamode()
167 int port_shift = adev->devno * 4; in sil680_set_dmamode()
169 u16 multi, ultra; in sil680_set_dmamode() local
174 pci_read_config_word(pdev, ua, &ultra); in sil680_set_dmamode()
177 ultra &= ~0x3F; in sil680_set_dmamode()
183 if (adev->dma_mode >= XFER_UDMA_0) { in sil680_set_dmamode()
185 ultra |= ultra_table[scsc][adev->dma_mode - XFER_UDMA_0]; in sil680_set_dmamode()
188 multi = dma_table[adev->dma_mode - XFER_MW_DMA_0]; in sil680_set_dmamode()
193 pci_write_config_word(pdev, ua, ultra); in sil680_set_dmamode()
197 * sil680_sff_exec_command - issue ATA command to host controller
211 iowrite8(tf->command, ap->ioaddr.command_addr); in sil680_sff_exec_command()
212 ioread8(ap->ioaddr.bmdma_addr + ATA_DMA_CMD); in sil680_sff_exec_command()
217 struct pci_dev *pdev = to_pci_dev(ap->host->dev); in sil680_sff_irq_check()
241 * sil680_init_chip - chip setup
256 pdev->revision ? 1 : 255); in sil680_init_chip()
263 dev_dbg(&pdev->dev, "sil680: BA5_EN = %d clock = %02X\n", in sil680_init_chip()
291 dev_dbg(&pdev->dev, "sil680: BA5_EN = %d clock = %02X\n", in sil680_init_chip()
307 dev_info(&pdev->dev, "sil680: 100MHz clock.\n"); in sil680_init_chip()
310 dev_info(&pdev->dev, "sil680: 133MHz clock.\n"); in sil680_init_chip()
313 dev_info(&pdev->dev, "sil680: Using PCI clock.\n"); in sil680_init_chip()
317 dev_err(&pdev->dev, "sil680: Clock disabled ?\n"); in sil680_init_chip()
343 ata_print_version_once(&pdev->dev, DRV_VERSION); in sil680_init_one()
354 return -ENODEV; in sil680_init_one()
368 host = ata_host_alloc_pinfo(&pdev->dev, ppi, 2); in sil680_init_one()
370 return -ENOMEM; in sil680_init_one()
371 host->iomap = pcim_iomap_table(pdev); in sil680_init_one()
374 rc = dma_set_mask_and_coherent(&pdev->dev, ATA_DMA_MASK); in sil680_init_one()
380 mmio_base = host->iomap[SIL680_MMIO_BAR]; in sil680_init_one()
381 host->ports[0]->ioaddr.bmdma_addr = mmio_base + 0x00; in sil680_init_one()
382 host->ports[0]->ioaddr.cmd_addr = mmio_base + 0x80; in sil680_init_one()
383 host->ports[0]->ioaddr.ctl_addr = mmio_base + 0x8a; in sil680_init_one()
384 host->ports[0]->ioaddr.altstatus_addr = mmio_base + 0x8a; in sil680_init_one()
385 ata_sff_std_ports(&host->ports[0]->ioaddr); in sil680_init_one()
386 host->ports[1]->ioaddr.bmdma_addr = mmio_base + 0x08; in sil680_init_one()
387 host->ports[1]->ioaddr.cmd_addr = mmio_base + 0xc0; in sil680_init_one()
388 host->ports[1]->ioaddr.ctl_addr = mmio_base + 0xca; in sil680_init_one()
389 host->ports[1]->ioaddr.altstatus_addr = mmio_base + 0xca; in sil680_init_one()
390 ata_sff_std_ports(&host->ports[1]->ioaddr); in sil680_init_one()
393 return ata_host_activate(host, pdev->irq, ata_bmdma_interrupt, in sil680_init_one()
435 MODULE_DESCRIPTION("low-level driver for SI680 PATA");