Lines Matching refs:master

195 static int mtk_spi_prepare_message(struct spi_master *master,
202 struct mtk_spi *mdata = spi_master_get_devdata(master);
270 struct mtk_spi *mdata = spi_master_get_devdata(spi->master);
287 static void mtk_spi_prepare_transfer(struct spi_master *master,
291 struct mtk_spi *mdata = spi_master_get_devdata(master);
328 static void mtk_spi_setup_packet(struct spi_master *master)
331 struct mtk_spi *mdata = spi_master_get_devdata(master);
343 static void mtk_spi_enable_transfer(struct spi_master *master)
346 struct mtk_spi *mdata = spi_master_get_devdata(master);
368 static void mtk_spi_update_mdata_len(struct spi_master *master)
371 struct mtk_spi *mdata = spi_master_get_devdata(master);
396 static void mtk_spi_setup_dma_addr(struct spi_master *master,
399 struct mtk_spi *mdata = spi_master_get_devdata(master);
422 static int mtk_spi_fifo_transfer(struct spi_master *master,
428 struct mtk_spi *mdata = spi_master_get_devdata(master);
433 mtk_spi_prepare_transfer(master, xfer);
434 mtk_spi_setup_packet(master);
447 mtk_spi_enable_transfer(master);
452 static int mtk_spi_dma_transfer(struct spi_master *master,
457 struct mtk_spi *mdata = spi_master_get_devdata(master);
466 mtk_spi_prepare_transfer(master, xfer);
489 mtk_spi_update_mdata_len(master);
490 mtk_spi_setup_packet(master);
491 mtk_spi_setup_dma_addr(master, xfer);
492 mtk_spi_enable_transfer(master);
497 static int mtk_spi_transfer_one(struct spi_master *master,
501 if (master->can_dma(master, spi, xfer))
502 return mtk_spi_dma_transfer(master, spi, xfer);
504 return mtk_spi_fifo_transfer(master, spi, xfer);
507 static bool mtk_spi_can_dma(struct spi_master *master,
519 struct mtk_spi *mdata = spi_master_get_devdata(spi->master);
533 struct spi_master *master = dev_id;
534 struct mtk_spi *mdata = spi_master_get_devdata(master);
543 if (!master->can_dma(master, NULL, trans)) {
561 spi_finalize_current_transfer(master);
567 mtk_spi_setup_packet(master);
582 mtk_spi_enable_transfer(master);
614 spi_finalize_current_transfer(master);
618 mtk_spi_update_mdata_len(master);
619 mtk_spi_setup_packet(master);
620 mtk_spi_setup_dma_addr(master, trans);
621 mtk_spi_enable_transfer(master);
628 struct spi_master *master;
633 master = spi_alloc_master(&pdev->dev, sizeof(*mdata));
634 if (!master) {
635 dev_err(&pdev->dev, "failed to alloc spi master\n");
639 master->auto_runtime_pm = true;
640 master->dev.of_node = pdev->dev.of_node;
641 master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LSB_FIRST;
643 master->set_cs = mtk_spi_set_cs;
644 master->prepare_message = mtk_spi_prepare_message;
645 master->transfer_one = mtk_spi_transfer_one;
646 master->can_dma = mtk_spi_can_dma;
647 master->setup = mtk_spi_setup;
656 mdata = spi_master_get_devdata(master);
660 master->mode_bits |= SPI_CS_HIGH;
663 master->flags = SPI_MASTER_MUST_TX;
696 platform_set_drvdata(pdev, master);
713 IRQF_TRIGGER_NONE, dev_name(&pdev->dev), master);
757 ret = devm_spi_register_master(&pdev->dev, master);
759 dev_err(&pdev->dev, "failed to register master (%d)\n", ret);
764 if (mdata->pad_num != master->num_chipselect) {
767 mdata->pad_num, master->num_chipselect);
772 if (!master->cs_gpios && master->num_chipselect > 1) {
779 if (master->cs_gpios) {
780 for (i = 0; i < master->num_chipselect; i++) {
782 master->cs_gpios[i],
807 spi_master_put(master);
814 struct spi_master *master = platform_get_drvdata(pdev);
815 struct mtk_spi *mdata = spi_master_get_devdata(master);
828 struct spi_master *master = dev_get_drvdata(dev);
829 struct mtk_spi *mdata = spi_master_get_devdata(master);
831 ret = spi_master_suspend(master);
844 struct spi_master *master = dev_get_drvdata(dev);
845 struct mtk_spi *mdata = spi_master_get_devdata(master);
855 ret = spi_master_resume(master);
866 struct spi_master *master = dev_get_drvdata(dev);
867 struct mtk_spi *mdata = spi_master_get_devdata(master);
876 struct spi_master *master = dev_get_drvdata(dev);
877 struct mtk_spi *mdata = spi_master_get_devdata(master);