Lines Matching refs:ftide

143 	struct ftide010 *ftide = ap->host->private_data;  in ftide010_set_dmamode()  local
161 clkreg = readb(ftide->base + FTIDE010_CLK_MOD); in ftide010_set_dmamode()
167 dev_dbg(ftide->dev, "set UDMA mode %02x, index %d\n", in ftide010_set_dmamode()
184 dev_dbg(ftide->dev, "UDMA write clkreg = %02x, timreg = %02x\n", in ftide010_set_dmamode()
187 writeb(clkreg, ftide->base + FTIDE010_CLK_MOD); in ftide010_set_dmamode()
188 writeb(timreg, ftide->base + FTIDE010_UDMA_TIMING0 + devno); in ftide010_set_dmamode()
191 dev_dbg(ftide->dev, "set MWDMA mode %02x, index %d\n", in ftide010_set_dmamode()
202 dev_dbg(ftide->dev, in ftide010_set_dmamode()
206 writeb(clkreg, ftide->base + FTIDE010_CLK_MOD); in ftide010_set_dmamode()
207 writeb(timreg, ftide->base + FTIDE010_MWDMA_TIMING); in ftide010_set_dmamode()
222 struct ftide010 *ftide = ap->host->private_data; in ftide010_set_piomode() local
225 dev_dbg(ftide->dev, "set PIO mode %02x, index %d\n", in ftide010_set_piomode()
228 ftide->base + FTIDE010_PIO_TIMING); in ftide010_set_piomode()
272 struct ftide010 *ftide = ap->host->private_data; in pata_ftide010_gemini_port_start() local
273 struct device *dev = ftide->dev; in pata_ftide010_gemini_port_start()
274 struct sata_gemini *sg = ftide->sg; in pata_ftide010_gemini_port_start()
282 if (ftide->master_to_sata0) { in pata_ftide010_gemini_port_start()
288 if (ftide->master_to_sata1) { in pata_ftide010_gemini_port_start()
295 if (ftide->slave_to_sata0 && !ftide->master_to_sata0) { in pata_ftide010_gemini_port_start()
302 if (ftide->slave_to_sata1 && !ftide->master_to_sata1) { in pata_ftide010_gemini_port_start()
315 struct ftide010 *ftide = ap->host->private_data; in pata_ftide010_gemini_port_stop() local
316 struct device *dev = ftide->dev; in pata_ftide010_gemini_port_stop()
317 struct sata_gemini *sg = ftide->sg; in pata_ftide010_gemini_port_stop()
319 if (ftide->master_to_sata0) { in pata_ftide010_gemini_port_stop()
323 if (ftide->master_to_sata1) { in pata_ftide010_gemini_port_stop()
328 if (ftide->slave_to_sata0 && !ftide->master_to_sata0) { in pata_ftide010_gemini_port_stop()
333 if (ftide->slave_to_sata1 && !ftide->master_to_sata1) { in pata_ftide010_gemini_port_stop()
341 struct ftide010 *ftide = ap->host->private_data; in pata_ftide010_gemini_cable_detect() local
347 return ftide->master_cbl; in pata_ftide010_gemini_cable_detect()
350 static int pata_ftide010_gemini_init(struct ftide010 *ftide, in pata_ftide010_gemini_init() argument
354 struct device *dev = ftide->dev; in pata_ftide010_gemini_init()
362 ftide->sg = sg; in pata_ftide010_gemini_init()
394 ftide->master_cbl = ATA_CBL_SATA; in pata_ftide010_gemini_init()
395 ftide->slave_cbl = ATA_CBL_PATA40; in pata_ftide010_gemini_init()
396 ftide->master_to_sata0 = true; in pata_ftide010_gemini_init()
399 ftide->master_cbl = ATA_CBL_SATA; in pata_ftide010_gemini_init()
400 ftide->slave_cbl = ATA_CBL_NONE; in pata_ftide010_gemini_init()
401 ftide->master_to_sata0 = true; in pata_ftide010_gemini_init()
404 ftide->master_cbl = ATA_CBL_PATA40; in pata_ftide010_gemini_init()
405 ftide->slave_cbl = ATA_CBL_PATA40; in pata_ftide010_gemini_init()
408 ftide->master_cbl = ATA_CBL_SATA; in pata_ftide010_gemini_init()
409 ftide->slave_cbl = ATA_CBL_SATA; in pata_ftide010_gemini_init()
410 ftide->master_to_sata0 = true; in pata_ftide010_gemini_init()
411 ftide->slave_to_sata1 = true; in pata_ftide010_gemini_init()
417 ftide->master_cbl = ATA_CBL_SATA; in pata_ftide010_gemini_init()
418 ftide->slave_cbl = ATA_CBL_NONE; in pata_ftide010_gemini_init()
419 ftide->master_to_sata1 = true; in pata_ftide010_gemini_init()
422 ftide->master_cbl = ATA_CBL_SATA; in pata_ftide010_gemini_init()
423 ftide->slave_cbl = ATA_CBL_PATA40; in pata_ftide010_gemini_init()
424 ftide->master_to_sata1 = true; in pata_ftide010_gemini_init()
427 ftide->master_cbl = ATA_CBL_SATA; in pata_ftide010_gemini_init()
428 ftide->slave_cbl = ATA_CBL_SATA; in pata_ftide010_gemini_init()
429 ftide->slave_to_sata0 = true; in pata_ftide010_gemini_init()
430 ftide->master_to_sata1 = true; in pata_ftide010_gemini_init()
433 ftide->master_cbl = ATA_CBL_PATA40; in pata_ftide010_gemini_init()
434 ftide->slave_cbl = ATA_CBL_PATA40; in pata_ftide010_gemini_init()
443 static int pata_ftide010_gemini_init(struct ftide010 *ftide, in pata_ftide010_gemini_init() argument
458 struct ftide010 *ftide; in pata_ftide010_probe() local
464 ftide = devm_kzalloc(dev, sizeof(*ftide), GFP_KERNEL); in pata_ftide010_probe()
465 if (!ftide) in pata_ftide010_probe()
467 ftide->dev = dev; in pata_ftide010_probe()
477 ftide->base = devm_ioremap_resource(dev, res); in pata_ftide010_probe()
478 if (IS_ERR(ftide->base)) in pata_ftide010_probe()
479 return PTR_ERR(ftide->base); in pata_ftide010_probe()
481 ftide->pclk = devm_clk_get(dev, "PCLK"); in pata_ftide010_probe()
482 if (!IS_ERR(ftide->pclk)) { in pata_ftide010_probe()
483 ret = clk_prepare_enable(ftide->pclk); in pata_ftide010_probe()
499 ret = pata_ftide010_gemini_init(ftide, in pata_ftide010_probe()
506 ftide->master_cbl = ATA_CBL_PATA40; in pata_ftide010_probe()
507 ftide->slave_cbl = ATA_CBL_PATA40; in pata_ftide010_probe()
510 ftide->host = ata_host_alloc_pinfo(dev, ppi, 1); in pata_ftide010_probe()
511 if (!ftide->host) { in pata_ftide010_probe()
515 ftide->host->private_data = ftide; in pata_ftide010_probe()
517 for (i = 0; i < ftide->host->n_ports; i++) { in pata_ftide010_probe()
518 struct ata_port *ap = ftide->host->ports[i]; in pata_ftide010_probe()
521 ioaddr->bmdma_addr = ftide->base + FTIDE010_DMA_REG; in pata_ftide010_probe()
522 ioaddr->cmd_addr = ftide->base + FTIDE010_CMD_DATA; in pata_ftide010_probe()
523 ioaddr->ctl_addr = ftide->base + FTIDE010_ALTSTAT_CTRL; in pata_ftide010_probe()
524 ioaddr->altstatus_addr = ftide->base + FTIDE010_ALTSTAT_CTRL; in pata_ftide010_probe()
529 readl(ftide->base + FTIDE010_IDE_DEVICE_ID), irq, res); in pata_ftide010_probe()
531 ret = ata_host_activate(ftide->host, irq, ata_bmdma_interrupt, in pata_ftide010_probe()
539 if (!IS_ERR(ftide->pclk)) in pata_ftide010_probe()
540 clk_disable_unprepare(ftide->pclk); in pata_ftide010_probe()
547 struct ftide010 *ftide = host->private_data; in pata_ftide010_remove() local
549 ata_host_detach(ftide->host); in pata_ftide010_remove()
550 if (!IS_ERR(ftide->pclk)) in pata_ftide010_remove()
551 clk_disable_unprepare(ftide->pclk); in pata_ftide010_remove()