Lines Matching refs:master
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()
381 ret = dmaengine_slave_config(master->dma_rx, &cfg); in pic32_spi_dma_config()
383 dev_err(&master->dev, "rx channel setup failed\n"); in pic32_spi_dma_config()
433 static int pic32_spi_prepare_hardware(struct spi_master *master) in pic32_spi_prepare_hardware() argument
435 struct pic32_spi *pic32s = spi_master_get_devdata(master); in pic32_spi_prepare_hardware()
442 static int pic32_spi_prepare_message(struct spi_master *master, in pic32_spi_prepare_message() argument
445 struct pic32_spi *pic32s = spi_master_get_devdata(master); in pic32_spi_prepare_message()
484 static bool pic32_spi_can_dma(struct spi_master *master, in pic32_spi_can_dma() argument
488 struct pic32_spi *pic32s = spi_master_get_devdata(master); in pic32_spi_can_dma()
495 static int pic32_spi_one_transfer(struct spi_master *master, in pic32_spi_one_transfer() argument
504 pic32s = spi_master_get_devdata(master); in pic32_spi_one_transfer()
552 dmaengine_terminate_all(master->dma_rx); in pic32_spi_one_transfer()
553 dmaengine_terminate_all(master->dma_tx); in pic32_spi_one_transfer()
563 static int pic32_spi_unprepare_message(struct spi_master *master, in pic32_spi_unprepare_message() argument
570 static int pic32_spi_unprepare_hardware(struct spi_master *master) in pic32_spi_unprepare_hardware() argument
572 struct pic32_spi *pic32s = spi_master_get_devdata(master); in pic32_spi_unprepare_hardware()
608 struct spi_master *master = pic32s->master; in pic32_spi_dma_prep() local
611 master->dma_rx = dma_request_chan(dev, "spi-rx"); in pic32_spi_dma_prep()
612 if (IS_ERR(master->dma_rx)) { in pic32_spi_dma_prep()
613 if (PTR_ERR(master->dma_rx) == -EPROBE_DEFER) in pic32_spi_dma_prep()
618 master->dma_rx = NULL; in pic32_spi_dma_prep()
622 master->dma_tx = dma_request_chan(dev, "spi-tx"); in pic32_spi_dma_prep()
623 if (IS_ERR(master->dma_tx)) { in pic32_spi_dma_prep()
624 if (PTR_ERR(master->dma_tx) == -EPROBE_DEFER) in pic32_spi_dma_prep()
629 master->dma_tx = NULL; in pic32_spi_dma_prep()
642 if (master->dma_rx) { in pic32_spi_dma_prep()
643 dma_release_channel(master->dma_rx); in pic32_spi_dma_prep()
644 master->dma_rx = NULL; in pic32_spi_dma_prep()
647 if (master->dma_tx) { in pic32_spi_dma_prep()
648 dma_release_channel(master->dma_tx); in pic32_spi_dma_prep()
649 master->dma_tx = NULL; in pic32_spi_dma_prep()
661 if (pic32s->master->dma_rx) in pic32_spi_dma_unprep()
662 dma_release_channel(pic32s->master->dma_rx); in pic32_spi_dma_unprep()
664 if (pic32s->master->dma_tx) in pic32_spi_dma_unprep()
665 dma_release_channel(pic32s->master->dma_tx); in pic32_spi_dma_unprep()
756 struct spi_master *master; in pic32_spi_probe() local
760 master = spi_alloc_master(&pdev->dev, sizeof(*pic32s)); in pic32_spi_probe()
761 if (!master) in pic32_spi_probe()
764 pic32s = spi_master_get_devdata(master); in pic32_spi_probe()
765 pic32s->master = master; in pic32_spi_probe()
771 master->dev.of_node = pdev->dev.of_node; in pic32_spi_probe()
772 master->mode_bits = SPI_MODE_3 | SPI_MODE_0 | SPI_CS_HIGH; in pic32_spi_probe()
773 master->num_chipselect = 1; /* single chip-select */ in pic32_spi_probe()
774 master->max_speed_hz = clk_get_rate(pic32s->clk); in pic32_spi_probe()
775 master->setup = pic32_spi_setup; in pic32_spi_probe()
776 master->cleanup = pic32_spi_cleanup; in pic32_spi_probe()
777 master->flags = SPI_MASTER_MUST_TX | SPI_MASTER_MUST_RX; in pic32_spi_probe()
778 master->bits_per_word_mask = SPI_BPW_MASK(8) | SPI_BPW_MASK(16) | in pic32_spi_probe()
780 master->transfer_one = pic32_spi_one_transfer; in pic32_spi_probe()
781 master->prepare_message = pic32_spi_prepare_message; in pic32_spi_probe()
782 master->unprepare_message = pic32_spi_unprepare_message; in pic32_spi_probe()
783 master->prepare_transfer_hardware = pic32_spi_prepare_hardware; in pic32_spi_probe()
784 master->unprepare_transfer_hardware = pic32_spi_unprepare_hardware; in pic32_spi_probe()
785 master->use_gpio_descriptors = true; in pic32_spi_probe()
793 master->can_dma = pic32_spi_can_dma; in pic32_spi_probe()
829 ret = devm_spi_register_master(&pdev->dev, master); in pic32_spi_probe()
831 dev_err(&master->dev, "failed registering spi master\n"); in pic32_spi_probe()
843 spi_master_put(master); in pic32_spi_probe()