Lines Matching refs:cf_port
127 struct octeon_cf_port *cf_port = ap->private_data; in octeon_cf_set_piomode() local
166 octeon_cf_set_boot_reg_cfg(cf_port->cs0, div); in octeon_cf_set_piomode()
167 if (cf_port->is_true_ide) in octeon_cf_set_piomode()
169 octeon_cf_set_boot_reg_cfg(cf_port->cs1, div); in octeon_cf_set_piomode()
174 reg_tim.u64 = cvmx_read_csr(CVMX_MIO_BOOT_REG_TIMX(cf_port->cs0)); in octeon_cf_set_piomode()
203 cvmx_write_csr(CVMX_MIO_BOOT_REG_TIMX(cf_port->cs0), reg_tim.u64); in octeon_cf_set_piomode()
204 if (cf_port->is_true_ide) in octeon_cf_set_piomode()
206 cvmx_write_csr(CVMX_MIO_BOOT_REG_TIMX(cf_port->cs1), in octeon_cf_set_piomode()
212 struct octeon_cf_port *cf_port = ap->private_data; in octeon_cf_set_dmamode() local
248 c = (cf_port->dma_base & 8) >> 3; in octeon_cf_set_dmamode()
278 cvmx_write_csr(cf_port->dma_base + DMA_TIM, dma_tim.u64); in octeon_cf_set_dmamode()
519 struct octeon_cf_port *cf_port; in octeon_cf_dma_setup() local
521 cf_port = ap->private_data; in octeon_cf_dma_setup()
524 cf_port->dma_finished = 0; in octeon_cf_dma_setup()
535 struct octeon_cf_port *cf_port = qc->ap->private_data; in octeon_cf_dma_start() local
549 cvmx_write_csr(cf_port->dma_base + DMA_INT, mio_boot_dma_int.u64); in octeon_cf_dma_start()
552 cvmx_write_csr(cf_port->dma_base + DMA_INT_EN, mio_boot_dma_int.u64); in octeon_cf_dma_start()
580 cvmx_write_csr(cf_port->dma_base + DMA_CFG, mio_boot_dma_cfg.u64); in octeon_cf_dma_start()
593 struct octeon_cf_port *cf_port = ap->private_data; in octeon_cf_dma_finished() local
603 dma_cfg.u64 = cvmx_read_csr(cf_port->dma_base + DMA_CFG); in octeon_cf_dma_finished()
613 cvmx_write_csr(cf_port->dma_base + DMA_CFG, dma_cfg.u64); in octeon_cf_dma_finished()
617 cvmx_write_csr(cf_port->dma_base + DMA_INT_EN, dma_int.u64); in octeon_cf_dma_finished()
621 cvmx_write_csr(cf_port->dma_base + DMA_INT, dma_int.u64); in octeon_cf_dma_finished()
640 struct octeon_cf_port *cf_port; in octeon_cf_interrupt() local
655 cf_port = ap->private_data; in octeon_cf_interrupt()
657 dma_int.u64 = cvmx_read_csr(cf_port->dma_base + DMA_INT); in octeon_cf_interrupt()
658 dma_cfg.u64 = cvmx_read_csr(cf_port->dma_base + DMA_CFG); in octeon_cf_interrupt()
673 cf_port->dma_finished = 1; in octeon_cf_interrupt()
676 if (!cf_port->dma_finished) in octeon_cf_interrupt()
689 cvmx_write_csr(cf_port->dma_base + DMA_INT, in octeon_cf_interrupt()
691 hrtimer_start_range_ns(&cf_port->delayed_finish, in octeon_cf_interrupt()
706 struct octeon_cf_port *cf_port = container_of(hrt, in octeon_cf_delayed_finish() local
709 struct ata_port *ap = cf_port->ap; in octeon_cf_delayed_finish()
723 if (ap->hsm_task_state != HSM_ST_LAST || !cf_port->dma_finished) in octeon_cf_delayed_finish()
818 struct octeon_cf_port *cf_port; in octeon_cf_probe() local
826 cf_port = devm_kzalloc(&pdev->dev, sizeof(*cf_port), GFP_KERNEL); in octeon_cf_probe()
827 if (!cf_port) in octeon_cf_probe()
830 cf_port->is_true_ide = of_property_read_bool(node, "cavium,true-ide"); in octeon_cf_probe()
845 cf_port->cs0 = be32_to_cpup(cs_num); in octeon_cf_probe()
847 if (cf_port->is_true_ide) { in octeon_cf_probe()
863 cf_port->dma_base = (u64)devm_ioremap(&pdev->dev, res_dma->start, in octeon_cf_probe()
865 if (!cf_port->dma_base) { in octeon_cf_probe()
893 cf_port->cs1 = be32_to_cpup(cs_num); in octeon_cf_probe()
911 ap->private_data = cf_port; in octeon_cf_probe()
912 pdev->dev.platform_data = cf_port; in octeon_cf_probe()
913 cf_port->ap = ap; in octeon_cf_probe()
926 } else if (cf_port->is_true_ide) { in octeon_cf_probe()
946 hrtimer_init(&cf_port->delayed_finish, CLOCK_MONOTONIC, in octeon_cf_probe()
948 cf_port->delayed_finish.function = octeon_cf_delayed_finish; in octeon_cf_probe()
965 cf_port->c0 = ap->ioaddr.ctl_addr; in octeon_cf_probe()
975 cf_port->is_true_ide ? ", True IDE" : ""); in octeon_cf_probe()
986 struct octeon_cf_port *cf_port = dev_get_platdata(dev); in octeon_cf_shutdown() local
988 if (cf_port->dma_base) { in octeon_cf_shutdown()
992 cvmx_write_csr(cf_port->dma_base + DMA_CFG, dma_cfg.u64); in octeon_cf_shutdown()
996 cvmx_write_csr(cf_port->dma_base + DMA_INT_EN, dma_int.u64); in octeon_cf_shutdown()
1000 cvmx_write_csr(cf_port->dma_base + DMA_INT, dma_int.u64); in octeon_cf_shutdown()
1002 __raw_writeb(0, cf_port->c0); in octeon_cf_shutdown()
1004 __raw_writeb(ATA_SRST, cf_port->c0); in octeon_cf_shutdown()
1006 __raw_writeb(0, cf_port->c0); in octeon_cf_shutdown()