Lines Matching defs:host
103 struct spi_controller *host;
227 dev_err(&pic32s->host->dev, "%s\n", msg);
228 if (pic32s->host->cur_msg)
229 pic32s->host->cur_msg->status = -EIO;
253 if (!pic32s->host->cur_msg) {
303 struct spi_controller *host = pic32s->host;
309 if (!host->dma_rx || !host->dma_tx)
312 desc_rx = dmaengine_prep_slave_sg(host->dma_rx,
322 desc_tx = dmaengine_prep_slave_sg(host->dma_tx,
346 dma_async_issue_pending(host->dma_rx);
347 dma_async_issue_pending(host->dma_tx);
352 dmaengine_terminate_all(host->dma_rx);
360 struct spi_controller *host = pic32s->host;
374 ret = dmaengine_slave_config(host->dma_tx, &cfg);
376 dev_err(&host->dev, "tx channel setup failed\n");
381 ret = dmaengine_slave_config(host->dma_rx, &cfg);
383 dev_err(&host->dev, "rx channel setup failed\n");
433 static int pic32_spi_prepare_hardware(struct spi_controller *host)
435 struct pic32_spi *pic32s = spi_controller_get_devdata(host);
442 static int pic32_spi_prepare_message(struct spi_controller *host,
445 struct pic32_spi *pic32s = spi_controller_get_devdata(host);
484 static bool pic32_spi_can_dma(struct spi_controller *host,
488 struct pic32_spi *pic32s = spi_controller_get_devdata(host);
495 static int pic32_spi_one_transfer(struct spi_controller *host,
504 pic32s = spi_controller_get_devdata(host);
552 dmaengine_terminate_all(host->dma_rx);
553 dmaengine_terminate_all(host->dma_tx);
563 static int pic32_spi_unprepare_message(struct spi_controller *host,
570 static int pic32_spi_unprepare_hardware(struct spi_controller *host)
572 struct pic32_spi *pic32s = spi_controller_get_devdata(host);
608 struct spi_controller *host = pic32s->host;
611 host->dma_rx = dma_request_chan(dev, "spi-rx");
612 if (IS_ERR(host->dma_rx)) {
613 if (PTR_ERR(host->dma_rx) == -EPROBE_DEFER)
618 host->dma_rx = NULL;
622 host->dma_tx = dma_request_chan(dev, "spi-tx");
623 if (IS_ERR(host->dma_tx)) {
624 if (PTR_ERR(host->dma_tx) == -EPROBE_DEFER)
629 host->dma_tx = NULL;
642 if (host->dma_rx) {
643 dma_release_channel(host->dma_rx);
644 host->dma_rx = NULL;
647 if (host->dma_tx) {
648 dma_release_channel(host->dma_tx);
649 host->dma_tx = NULL;
661 if (pic32s->host->dma_rx)
662 dma_release_channel(pic32s->host->dma_rx);
664 if (pic32s->host->dma_tx)
665 dma_release_channel(pic32s->host->dma_tx);
683 /* enable host mode while disabled */
755 struct spi_controller *host;
759 host = spi_alloc_host(&pdev->dev, sizeof(*pic32s));
760 if (!host)
763 pic32s = spi_controller_get_devdata(host);
764 pic32s->host = host;
770 host->dev.of_node = pdev->dev.of_node;
771 host->mode_bits = SPI_MODE_3 | SPI_MODE_0 | SPI_CS_HIGH;
772 host->num_chipselect = 1; /* single chip-select */
773 host->max_speed_hz = clk_get_rate(pic32s->clk);
774 host->setup = pic32_spi_setup;
775 host->cleanup = pic32_spi_cleanup;
776 host->flags = SPI_CONTROLLER_MUST_TX | SPI_CONTROLLER_MUST_RX;
777 host->bits_per_word_mask = SPI_BPW_MASK(8) | SPI_BPW_MASK(16) |
779 host->transfer_one = pic32_spi_one_transfer;
780 host->prepare_message = pic32_spi_prepare_message;
781 host->unprepare_message = pic32_spi_unprepare_message;
782 host->prepare_transfer_hardware = pic32_spi_prepare_hardware;
783 host->unprepare_transfer_hardware = pic32_spi_unprepare_hardware;
784 host->use_gpio_descriptors = true;
792 host->can_dma = pic32_spi_can_dma;
827 /* register host */
828 ret = devm_spi_register_controller(&pdev->dev, host);
830 dev_err(&host->dev, "failed registering spi host\n");
842 spi_controller_put(host);