Lines Matching full:master

192 static int mtk_spi_prepare_message(struct spi_master *master,  in mtk_spi_prepare_message()  argument
199 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_prepare_message()
265 struct mtk_spi *mdata = spi_master_get_devdata(spi->master); in mtk_spi_set_cs()
279 static void mtk_spi_prepare_transfer(struct spi_master *master, in mtk_spi_prepare_transfer() argument
283 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_prepare_transfer()
320 static void mtk_spi_setup_packet(struct spi_master *master) in mtk_spi_setup_packet() argument
323 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_setup_packet()
335 static void mtk_spi_enable_transfer(struct spi_master *master) in mtk_spi_enable_transfer() argument
338 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_enable_transfer()
360 static void mtk_spi_update_mdata_len(struct spi_master *master) in mtk_spi_update_mdata_len() argument
363 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_update_mdata_len()
388 static void mtk_spi_setup_dma_addr(struct spi_master *master, in mtk_spi_setup_dma_addr() argument
391 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_setup_dma_addr()
414 static int mtk_spi_fifo_transfer(struct spi_master *master, in mtk_spi_fifo_transfer() argument
420 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_fifo_transfer()
425 mtk_spi_prepare_transfer(master, xfer); in mtk_spi_fifo_transfer()
426 mtk_spi_setup_packet(master); in mtk_spi_fifo_transfer()
438 mtk_spi_enable_transfer(master); in mtk_spi_fifo_transfer()
443 static int mtk_spi_dma_transfer(struct spi_master *master, in mtk_spi_dma_transfer() argument
448 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_dma_transfer()
457 mtk_spi_prepare_transfer(master, xfer); in mtk_spi_dma_transfer()
480 mtk_spi_update_mdata_len(master); in mtk_spi_dma_transfer()
481 mtk_spi_setup_packet(master); in mtk_spi_dma_transfer()
482 mtk_spi_setup_dma_addr(master, xfer); in mtk_spi_dma_transfer()
483 mtk_spi_enable_transfer(master); in mtk_spi_dma_transfer()
488 static int mtk_spi_transfer_one(struct spi_master *master, in mtk_spi_transfer_one() argument
492 if (master->can_dma(master, spi, xfer)) in mtk_spi_transfer_one()
493 return mtk_spi_dma_transfer(master, spi, xfer); in mtk_spi_transfer_one()
495 return mtk_spi_fifo_transfer(master, spi, xfer); in mtk_spi_transfer_one()
498 static bool mtk_spi_can_dma(struct spi_master *master, in mtk_spi_can_dma() argument
510 struct mtk_spi *mdata = spi_master_get_devdata(spi->master); in mtk_spi_setup()
524 struct spi_master *master = dev_id; in mtk_spi_interrupt() local
525 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_interrupt()
534 if (!master->can_dma(master, master->cur_msg->spi, trans)) { in mtk_spi_interrupt()
552 spi_finalize_current_transfer(master); in mtk_spi_interrupt()
558 mtk_spi_setup_packet(master); in mtk_spi_interrupt()
573 mtk_spi_enable_transfer(master); in mtk_spi_interrupt()
605 spi_finalize_current_transfer(master); in mtk_spi_interrupt()
609 mtk_spi_update_mdata_len(master); in mtk_spi_interrupt()
610 mtk_spi_setup_packet(master); in mtk_spi_interrupt()
611 mtk_spi_setup_dma_addr(master, trans); in mtk_spi_interrupt()
612 mtk_spi_enable_transfer(master); in mtk_spi_interrupt()
619 struct spi_master *master; in mtk_spi_probe() local
625 master = spi_alloc_master(&pdev->dev, sizeof(*mdata)); in mtk_spi_probe()
626 if (!master) { in mtk_spi_probe()
627 dev_err(&pdev->dev, "failed to alloc spi master\n"); in mtk_spi_probe()
631 master->auto_runtime_pm = true; in mtk_spi_probe()
632 master->dev.of_node = pdev->dev.of_node; in mtk_spi_probe()
633 master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LSB_FIRST; in mtk_spi_probe()
635 master->set_cs = mtk_spi_set_cs; in mtk_spi_probe()
636 master->prepare_message = mtk_spi_prepare_message; in mtk_spi_probe()
637 master->transfer_one = mtk_spi_transfer_one; in mtk_spi_probe()
638 master->can_dma = mtk_spi_can_dma; in mtk_spi_probe()
639 master->setup = mtk_spi_setup; in mtk_spi_probe()
648 mdata = spi_master_get_devdata(master); in mtk_spi_probe()
651 master->flags = SPI_MASTER_MUST_TX; in mtk_spi_probe()
684 platform_set_drvdata(pdev, master); in mtk_spi_probe()
709 IRQF_TRIGGER_NONE, dev_name(&pdev->dev), master); in mtk_spi_probe()
753 ret = devm_spi_register_master(&pdev->dev, master); in mtk_spi_probe()
755 dev_err(&pdev->dev, "failed to register master (%d)\n", ret); in mtk_spi_probe()
760 if (mdata->pad_num != master->num_chipselect) { in mtk_spi_probe()
763 mdata->pad_num, master->num_chipselect); in mtk_spi_probe()
768 if (!master->cs_gpios && master->num_chipselect > 1) { in mtk_spi_probe()
775 if (master->cs_gpios) { in mtk_spi_probe()
776 for (i = 0; i < master->num_chipselect; i++) { in mtk_spi_probe()
778 master->cs_gpios[i], in mtk_spi_probe()
803 spi_master_put(master); in mtk_spi_probe()
810 struct spi_master *master = platform_get_drvdata(pdev); in mtk_spi_remove() local
811 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_remove()
824 struct spi_master *master = dev_get_drvdata(dev); in mtk_spi_suspend() local
825 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_suspend()
827 ret = spi_master_suspend(master); in mtk_spi_suspend()
840 struct spi_master *master = dev_get_drvdata(dev); in mtk_spi_resume() local
841 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_resume()
851 ret = spi_master_resume(master); in mtk_spi_resume()
862 struct spi_master *master = dev_get_drvdata(dev); in mtk_spi_runtime_suspend() local
863 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_runtime_suspend()
872 struct spi_master *master = dev_get_drvdata(dev); in mtk_spi_runtime_resume() local
873 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_runtime_resume()