Lines Matching full:master
58 #define CTRL_MSTEN BIT(5) /* enable master mode */
103 struct spi_master *master; member
227 dev_err(&pic32s->master->dev, "%s\n", msg); in pic32_err_stop()
228 if (pic32s->master->cur_msg) in pic32_err_stop()
229 pic32s->master->cur_msg->status = -EIO; in pic32_err_stop()
253 if (!pic32s->master->cur_msg) { in pic32_spi_fault_irq()
303 struct spi_master *master = pic32s->master; in pic32_spi_dma_transfer() local
309 if (!master->dma_rx || !master->dma_tx) in pic32_spi_dma_transfer()
312 desc_rx = dmaengine_prep_slave_sg(master->dma_rx, in pic32_spi_dma_transfer()
322 desc_tx = dmaengine_prep_slave_sg(master->dma_tx, in pic32_spi_dma_transfer()
346 dma_async_issue_pending(master->dma_rx); in pic32_spi_dma_transfer()
347 dma_async_issue_pending(master->dma_tx); in pic32_spi_dma_transfer()
352 dmaengine_terminate_all(master->dma_rx); in pic32_spi_dma_transfer()
360 struct spi_master *master = pic32s->master; in pic32_spi_dma_config() local
375 ret = dmaengine_slave_config(master->dma_tx, &cfg); in pic32_spi_dma_config()
377 dev_err(&master->dev, "tx channel setup failed\n"); in pic32_spi_dma_config()
383 ret = dmaengine_slave_config(master->dma_rx, &cfg); in pic32_spi_dma_config()
385 dev_err(&master->dev, "rx channel setup failed\n"); in pic32_spi_dma_config()
435 static int pic32_spi_prepare_hardware(struct spi_master *master) in pic32_spi_prepare_hardware() argument
437 struct pic32_spi *pic32s = spi_master_get_devdata(master); in pic32_spi_prepare_hardware()
444 static int pic32_spi_prepare_message(struct spi_master *master, in pic32_spi_prepare_message() argument
447 struct pic32_spi *pic32s = spi_master_get_devdata(master); in pic32_spi_prepare_message()
486 static bool pic32_spi_can_dma(struct spi_master *master, in pic32_spi_can_dma() argument
490 struct pic32_spi *pic32s = spi_master_get_devdata(master); in pic32_spi_can_dma()
497 static int pic32_spi_one_transfer(struct spi_master *master, in pic32_spi_one_transfer() argument
506 pic32s = spi_master_get_devdata(master); in pic32_spi_one_transfer()
554 dmaengine_terminate_all(master->dma_rx); in pic32_spi_one_transfer()
555 dmaengine_terminate_all(master->dma_tx); in pic32_spi_one_transfer()
565 static int pic32_spi_unprepare_message(struct spi_master *master, in pic32_spi_unprepare_message() argument
572 static int pic32_spi_unprepare_hardware(struct spi_master *master) in pic32_spi_unprepare_hardware() argument
574 struct pic32_spi *pic32s = spi_master_get_devdata(master); in pic32_spi_unprepare_hardware()
612 struct spi_master *master = pic32s->master; in pic32_spi_dma_prep() local
615 master->dma_rx = dma_request_chan(dev, "spi-rx"); in pic32_spi_dma_prep()
616 if (IS_ERR(master->dma_rx)) { in pic32_spi_dma_prep()
617 if (PTR_ERR(master->dma_rx) == -EPROBE_DEFER) in pic32_spi_dma_prep()
622 master->dma_rx = NULL; in pic32_spi_dma_prep()
626 master->dma_tx = dma_request_chan(dev, "spi-tx"); in pic32_spi_dma_prep()
627 if (IS_ERR(master->dma_tx)) { in pic32_spi_dma_prep()
628 if (PTR_ERR(master->dma_tx) == -EPROBE_DEFER) in pic32_spi_dma_prep()
633 master->dma_tx = NULL; in pic32_spi_dma_prep()
646 if (master->dma_rx) { in pic32_spi_dma_prep()
647 dma_release_channel(master->dma_rx); in pic32_spi_dma_prep()
648 master->dma_rx = NULL; in pic32_spi_dma_prep()
651 if (master->dma_tx) { in pic32_spi_dma_prep()
652 dma_release_channel(master->dma_tx); in pic32_spi_dma_prep()
653 master->dma_tx = NULL; in pic32_spi_dma_prep()
665 if (pic32s->master->dma_rx) in pic32_spi_dma_unprep()
666 dma_release_channel(pic32s->master->dma_rx); in pic32_spi_dma_unprep()
668 if (pic32s->master->dma_tx) in pic32_spi_dma_unprep()
669 dma_release_channel(pic32s->master->dma_tx); in pic32_spi_dma_unprep()
687 /* enable master mode while disabled */ in pic32_spi_hw_init()
760 struct spi_master *master; in pic32_spi_probe() local
764 master = spi_alloc_master(&pdev->dev, sizeof(*pic32s)); in pic32_spi_probe()
765 if (!master) in pic32_spi_probe()
768 pic32s = spi_master_get_devdata(master); in pic32_spi_probe()
769 pic32s->master = master; in pic32_spi_probe()
775 master->dev.of_node = pdev->dev.of_node; in pic32_spi_probe()
776 master->mode_bits = SPI_MODE_3 | SPI_MODE_0 | SPI_CS_HIGH; in pic32_spi_probe()
777 master->num_chipselect = 1; /* single chip-select */ in pic32_spi_probe()
778 master->max_speed_hz = clk_get_rate(pic32s->clk); in pic32_spi_probe()
779 master->setup = pic32_spi_setup; in pic32_spi_probe()
780 master->cleanup = pic32_spi_cleanup; in pic32_spi_probe()
781 master->flags = SPI_MASTER_MUST_TX | SPI_MASTER_MUST_RX; in pic32_spi_probe()
782 master->bits_per_word_mask = SPI_BPW_MASK(8) | SPI_BPW_MASK(16) | in pic32_spi_probe()
784 master->transfer_one = pic32_spi_one_transfer; in pic32_spi_probe()
785 master->prepare_message = pic32_spi_prepare_message; in pic32_spi_probe()
786 master->unprepare_message = pic32_spi_unprepare_message; in pic32_spi_probe()
787 master->prepare_transfer_hardware = pic32_spi_prepare_hardware; in pic32_spi_probe()
788 master->unprepare_transfer_hardware = pic32_spi_unprepare_hardware; in pic32_spi_probe()
796 master->can_dma = pic32_spi_can_dma; in pic32_spi_probe()
831 /* register master */ in pic32_spi_probe()
832 ret = devm_spi_register_master(&pdev->dev, master); in pic32_spi_probe()
834 dev_err(&master->dev, "failed registering spi master\n"); in pic32_spi_probe()
846 spi_master_put(master); in pic32_spi_probe()