Lines Matching refs:master
136 static int mtk_spi_prepare_message(struct spi_master *master, in mtk_spi_prepare_message() argument
143 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_prepare_message()
202 struct mtk_spi *mdata = spi_master_get_devdata(spi->master); in mtk_spi_set_cs()
216 static void mtk_spi_prepare_transfer(struct spi_master *master, in mtk_spi_prepare_transfer() argument
220 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_prepare_transfer()
243 static void mtk_spi_setup_packet(struct spi_master *master) in mtk_spi_setup_packet() argument
246 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_setup_packet()
258 static void mtk_spi_enable_transfer(struct spi_master *master) in mtk_spi_enable_transfer() argument
261 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_enable_transfer()
283 static void mtk_spi_update_mdata_len(struct spi_master *master) in mtk_spi_update_mdata_len() argument
286 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_update_mdata_len()
311 static void mtk_spi_setup_dma_addr(struct spi_master *master, in mtk_spi_setup_dma_addr() argument
314 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_setup_dma_addr()
322 static int mtk_spi_fifo_transfer(struct spi_master *master, in mtk_spi_fifo_transfer() argument
327 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_fifo_transfer()
331 mtk_spi_prepare_transfer(master, xfer); in mtk_spi_fifo_transfer()
332 mtk_spi_setup_packet(master); in mtk_spi_fifo_transfer()
340 mtk_spi_enable_transfer(master); in mtk_spi_fifo_transfer()
345 static int mtk_spi_dma_transfer(struct spi_master *master, in mtk_spi_dma_transfer() argument
350 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_dma_transfer()
358 mtk_spi_prepare_transfer(master, xfer); in mtk_spi_dma_transfer()
381 mtk_spi_update_mdata_len(master); in mtk_spi_dma_transfer()
382 mtk_spi_setup_packet(master); in mtk_spi_dma_transfer()
383 mtk_spi_setup_dma_addr(master, xfer); in mtk_spi_dma_transfer()
384 mtk_spi_enable_transfer(master); in mtk_spi_dma_transfer()
389 static int mtk_spi_transfer_one(struct spi_master *master, in mtk_spi_transfer_one() argument
393 if (master->can_dma(master, spi, xfer)) in mtk_spi_transfer_one()
394 return mtk_spi_dma_transfer(master, spi, xfer); in mtk_spi_transfer_one()
396 return mtk_spi_fifo_transfer(master, spi, xfer); in mtk_spi_transfer_one()
399 static bool mtk_spi_can_dma(struct spi_master *master, in mtk_spi_can_dma() argument
408 struct mtk_spi *mdata = spi_master_get_devdata(spi->master); in mtk_spi_setup()
422 struct spi_master *master = dev_id; in mtk_spi_interrupt() local
423 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_interrupt()
432 if (!master->can_dma(master, master->cur_msg->spi, trans)) { in mtk_spi_interrupt()
441 spi_finalize_current_transfer(master); in mtk_spi_interrupt()
472 spi_finalize_current_transfer(master); in mtk_spi_interrupt()
476 mtk_spi_update_mdata_len(master); in mtk_spi_interrupt()
477 mtk_spi_setup_packet(master); in mtk_spi_interrupt()
478 mtk_spi_setup_dma_addr(master, trans); in mtk_spi_interrupt()
479 mtk_spi_enable_transfer(master); in mtk_spi_interrupt()
486 struct spi_master *master; in mtk_spi_probe() local
492 master = spi_alloc_master(&pdev->dev, sizeof(*mdata)); in mtk_spi_probe()
493 if (!master) { in mtk_spi_probe()
498 master->auto_runtime_pm = true; in mtk_spi_probe()
499 master->dev.of_node = pdev->dev.of_node; in mtk_spi_probe()
500 master->mode_bits = SPI_CPOL | SPI_CPHA; in mtk_spi_probe()
502 master->set_cs = mtk_spi_set_cs; in mtk_spi_probe()
503 master->prepare_message = mtk_spi_prepare_message; in mtk_spi_probe()
504 master->transfer_one = mtk_spi_transfer_one; in mtk_spi_probe()
505 master->can_dma = mtk_spi_can_dma; in mtk_spi_probe()
506 master->setup = mtk_spi_setup; in mtk_spi_probe()
515 mdata = spi_master_get_devdata(master); in mtk_spi_probe()
518 master->flags = SPI_MASTER_MUST_TX; in mtk_spi_probe()
551 platform_set_drvdata(pdev, master); in mtk_spi_probe()
577 IRQF_TRIGGER_NONE, dev_name(&pdev->dev), master); in mtk_spi_probe()
620 ret = devm_spi_register_master(&pdev->dev, master); in mtk_spi_probe()
627 if (mdata->pad_num != master->num_chipselect) { in mtk_spi_probe()
630 mdata->pad_num, master->num_chipselect); in mtk_spi_probe()
635 if (!master->cs_gpios && master->num_chipselect > 1) { in mtk_spi_probe()
642 if (master->cs_gpios) { in mtk_spi_probe()
643 for (i = 0; i < master->num_chipselect; i++) { in mtk_spi_probe()
645 master->cs_gpios[i], in mtk_spi_probe()
661 spi_master_put(master); in mtk_spi_probe()
668 struct spi_master *master = platform_get_drvdata(pdev); in mtk_spi_remove() local
669 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_remove()
674 spi_master_put(master); in mtk_spi_remove()
683 struct spi_master *master = dev_get_drvdata(dev); in mtk_spi_suspend() local
684 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_suspend()
686 ret = spi_master_suspend(master); in mtk_spi_suspend()
699 struct spi_master *master = dev_get_drvdata(dev); in mtk_spi_resume() local
700 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_resume()
710 ret = spi_master_resume(master); in mtk_spi_resume()
721 struct spi_master *master = dev_get_drvdata(dev); in mtk_spi_runtime_suspend() local
722 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_runtime_suspend()
731 struct spi_master *master = dev_get_drvdata(dev); in mtk_spi_runtime_resume() local
732 struct mtk_spi *mdata = spi_master_get_devdata(master); in mtk_spi_runtime_resume()