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
374 ret = dmaengine_slave_config(master->dma_tx, &cfg); in pic32_spi_dma_config()
376 dev_err(&master->dev, "tx channel setup failed\n"); in pic32_spi_dma_config()
382 ret = dmaengine_slave_config(master->dma_rx, &cfg); in pic32_spi_dma_config()
384 dev_err(&master->dev, "rx channel setup failed\n"); in pic32_spi_dma_config()
434 static int pic32_spi_prepare_hardware(struct spi_master *master) in pic32_spi_prepare_hardware() argument
436 struct pic32_spi *pic32s = spi_master_get_devdata(master); in pic32_spi_prepare_hardware()
443 static int pic32_spi_prepare_message(struct spi_master *master, in pic32_spi_prepare_message() argument
446 struct pic32_spi *pic32s = spi_master_get_devdata(master); in pic32_spi_prepare_message()
485 static bool pic32_spi_can_dma(struct spi_master *master, in pic32_spi_can_dma() argument
489 struct pic32_spi *pic32s = spi_master_get_devdata(master); in pic32_spi_can_dma()
496 static int pic32_spi_one_transfer(struct spi_master *master, in pic32_spi_one_transfer() argument
505 pic32s = spi_master_get_devdata(master); in pic32_spi_one_transfer()
553 dmaengine_terminate_all(master->dma_rx); in pic32_spi_one_transfer()
554 dmaengine_terminate_all(master->dma_tx); in pic32_spi_one_transfer()
564 static int pic32_spi_unprepare_message(struct spi_master *master, in pic32_spi_unprepare_message() argument
571 static int pic32_spi_unprepare_hardware(struct spi_master *master) in pic32_spi_unprepare_hardware() argument
573 struct pic32_spi *pic32s = spi_master_get_devdata(master); in pic32_spi_unprepare_hardware()
611 struct spi_master *master = pic32s->master; in pic32_spi_dma_prep() local
614 master->dma_rx = dma_request_chan(dev, "spi-rx"); in pic32_spi_dma_prep()
615 if (IS_ERR(master->dma_rx)) { in pic32_spi_dma_prep()
616 if (PTR_ERR(master->dma_rx) == -EPROBE_DEFER) in pic32_spi_dma_prep()
621 master->dma_rx = NULL; in pic32_spi_dma_prep()
625 master->dma_tx = dma_request_chan(dev, "spi-tx"); in pic32_spi_dma_prep()
626 if (IS_ERR(master->dma_tx)) { in pic32_spi_dma_prep()
627 if (PTR_ERR(master->dma_tx) == -EPROBE_DEFER) in pic32_spi_dma_prep()
632 master->dma_tx = NULL; in pic32_spi_dma_prep()
645 if (master->dma_rx) { in pic32_spi_dma_prep()
646 dma_release_channel(master->dma_rx); in pic32_spi_dma_prep()
647 master->dma_rx = NULL; in pic32_spi_dma_prep()
650 if (master->dma_tx) { in pic32_spi_dma_prep()
651 dma_release_channel(master->dma_tx); in pic32_spi_dma_prep()
652 master->dma_tx = NULL; in pic32_spi_dma_prep()
664 if (pic32s->master->dma_rx) in pic32_spi_dma_unprep()
665 dma_release_channel(pic32s->master->dma_rx); in pic32_spi_dma_unprep()
667 if (pic32s->master->dma_tx) in pic32_spi_dma_unprep()
668 dma_release_channel(pic32s->master->dma_tx); in pic32_spi_dma_unprep()
686 /* enable master mode while disabled */ in pic32_spi_hw_init()
759 struct spi_master *master; in pic32_spi_probe() local
763 master = spi_alloc_master(&pdev->dev, sizeof(*pic32s)); in pic32_spi_probe()
764 if (!master) in pic32_spi_probe()
767 pic32s = spi_master_get_devdata(master); in pic32_spi_probe()
768 pic32s->master = master; in pic32_spi_probe()
774 master->dev.of_node = pdev->dev.of_node; in pic32_spi_probe()
775 master->mode_bits = SPI_MODE_3 | SPI_MODE_0 | SPI_CS_HIGH; in pic32_spi_probe()
776 master->num_chipselect = 1; /* single chip-select */ in pic32_spi_probe()
777 master->max_speed_hz = clk_get_rate(pic32s->clk); in pic32_spi_probe()
778 master->setup = pic32_spi_setup; in pic32_spi_probe()
779 master->cleanup = pic32_spi_cleanup; in pic32_spi_probe()
780 master->flags = SPI_MASTER_MUST_TX | SPI_MASTER_MUST_RX; in pic32_spi_probe()
781 master->bits_per_word_mask = SPI_BPW_MASK(8) | SPI_BPW_MASK(16) | in pic32_spi_probe()
783 master->transfer_one = pic32_spi_one_transfer; in pic32_spi_probe()
784 master->prepare_message = pic32_spi_prepare_message; in pic32_spi_probe()
785 master->unprepare_message = pic32_spi_unprepare_message; in pic32_spi_probe()
786 master->prepare_transfer_hardware = pic32_spi_prepare_hardware; in pic32_spi_probe()
787 master->unprepare_transfer_hardware = pic32_spi_unprepare_hardware; in pic32_spi_probe()
795 master->can_dma = pic32_spi_can_dma; in pic32_spi_probe()
830 /* register master */ in pic32_spi_probe()
831 ret = devm_spi_register_master(&pdev->dev, master); in pic32_spi_probe()
833 dev_err(&master->dev, "failed registering spi master\n"); in pic32_spi_probe()
844 spi_master_put(master); in pic32_spi_probe()