Lines Matching full:master
89 struct spi_master *master; member
224 static int img_spfi_start_pio(struct spi_master *master, in img_spfi_start_pio() argument
228 struct img_spfi *spfi = spi_master_get_devdata(spi->master); in img_spfi_start_pio()
288 spi_finalize_current_transfer(spfi->master); in img_spfi_dma_rx_cb()
302 spi_finalize_current_transfer(spfi->master); in img_spfi_dma_tx_cb()
306 static int img_spfi_start_dma(struct spi_master *master, in img_spfi_start_dma() argument
310 struct img_spfi *spfi = spi_master_get_devdata(spi->master); in img_spfi_start_dma()
387 static void img_spfi_handle_err(struct spi_master *master, in img_spfi_handle_err() argument
390 struct img_spfi *spfi = spi_master_get_devdata(master); in img_spfi_handle_err()
408 static int img_spfi_prepare(struct spi_master *master, struct spi_message *msg) in img_spfi_prepare() argument
410 struct img_spfi *spfi = spi_master_get_devdata(master); in img_spfi_prepare()
430 static int img_spfi_unprepare(struct spi_master *master, in img_spfi_unprepare() argument
433 struct img_spfi *spfi = spi_master_get_devdata(master); in img_spfi_unprepare()
440 static void img_spfi_config(struct spi_master *master, struct spi_device *spi, in img_spfi_config() argument
443 struct img_spfi *spfi = spi_master_get_devdata(spi->master); in img_spfi_config()
479 static int img_spfi_transfer_one(struct spi_master *master, in img_spfi_transfer_one() argument
483 struct img_spfi *spfi = spi_master_get_devdata(spi->master); in img_spfi_transfer_one()
493 img_spfi_config(master, spi, xfer); in img_spfi_transfer_one()
494 if (master->can_dma && master->can_dma(master, spi, xfer)) in img_spfi_transfer_one()
495 ret = img_spfi_start_dma(master, spi, xfer); in img_spfi_transfer_one()
497 ret = img_spfi_start_pio(master, spi, xfer); in img_spfi_transfer_one()
502 static bool img_spfi_can_dma(struct spi_master *master, struct spi_device *spi, in img_spfi_can_dma() argument
527 struct spi_master *master; in img_spfi_probe() local
533 master = spi_alloc_master(&pdev->dev, sizeof(*spfi)); in img_spfi_probe()
534 if (!master) in img_spfi_probe()
536 platform_set_drvdata(pdev, master); in img_spfi_probe()
538 spfi = spi_master_get_devdata(master); in img_spfi_probe()
540 spfi->master = master; in img_spfi_probe()
586 master->auto_runtime_pm = true; in img_spfi_probe()
587 master->bus_num = pdev->id; in img_spfi_probe()
588 master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_TX_DUAL | SPI_RX_DUAL; in img_spfi_probe()
590 master->mode_bits |= SPI_TX_QUAD | SPI_RX_QUAD; in img_spfi_probe()
591 master->dev.of_node = pdev->dev.of_node; in img_spfi_probe()
592 master->bits_per_word_mask = SPI_BPW_MASK(32) | SPI_BPW_MASK(8); in img_spfi_probe()
593 master->max_speed_hz = clk_get_rate(spfi->spfi_clk) / 4; in img_spfi_probe()
594 master->min_speed_hz = clk_get_rate(spfi->spfi_clk) / 512; in img_spfi_probe()
605 if (master->max_speed_hz > max_speed_hz) in img_spfi_probe()
606 master->max_speed_hz = max_speed_hz; in img_spfi_probe()
609 master->transfer_one = img_spfi_transfer_one; in img_spfi_probe()
610 master->prepare_message = img_spfi_prepare; in img_spfi_probe()
611 master->unprepare_message = img_spfi_unprepare; in img_spfi_probe()
612 master->handle_err = img_spfi_handle_err; in img_spfi_probe()
613 master->use_gpio_descriptors = true; in img_spfi_probe()
640 master->dma_tx = spfi->tx_ch; in img_spfi_probe()
641 master->dma_rx = spfi->rx_ch; in img_spfi_probe()
642 master->can_dma = img_spfi_can_dma; in img_spfi_probe()
648 ret = devm_spi_register_master(spfi->dev, master); in img_spfi_probe()
664 spi_master_put(master); in img_spfi_probe()
671 struct spi_master *master = platform_get_drvdata(pdev); in img_spfi_remove() local
672 struct img_spfi *spfi = spi_master_get_devdata(master); in img_spfi_remove()
691 struct spi_master *master = dev_get_drvdata(dev); in img_spfi_runtime_suspend() local
692 struct img_spfi *spfi = spi_master_get_devdata(master); in img_spfi_runtime_suspend()
702 struct spi_master *master = dev_get_drvdata(dev); in img_spfi_runtime_resume() local
703 struct img_spfi *spfi = spi_master_get_devdata(master); in img_spfi_runtime_resume()
722 struct spi_master *master = dev_get_drvdata(dev); in img_spfi_suspend() local
724 return spi_master_suspend(master); in img_spfi_suspend()
729 struct spi_master *master = dev_get_drvdata(dev); in img_spfi_resume() local
730 struct img_spfi *spfi = spi_master_get_devdata(master); in img_spfi_resume()
739 return spi_master_resume(master); in img_spfi_resume()