Lines Matching refs:ctlr

227 	struct spi_controller *ctlr = spi->controller;
228 struct rockchip_spi *rs = spi_controller_get_devdata(ctlr);
252 static void rockchip_spi_handle_err(struct spi_controller *ctlr,
255 struct rockchip_spi *rs = spi_controller_get_devdata(ctlr);
266 dmaengine_terminate_async(ctlr->dma_tx);
269 dmaengine_terminate_async(ctlr->dma_rx);
327 struct spi_controller *ctlr = dev_id;
328 struct rockchip_spi *rs = spi_controller_get_devdata(ctlr);
337 spi_finalize_current_transfer(ctlr);
363 struct spi_controller *ctlr = data;
364 struct rockchip_spi *rs = spi_controller_get_devdata(ctlr);
371 spi_finalize_current_transfer(ctlr);
376 struct spi_controller *ctlr = data;
377 struct rockchip_spi *rs = spi_controller_get_devdata(ctlr);
387 spi_finalize_current_transfer(ctlr);
404 struct spi_controller *ctlr, struct spi_transfer *xfer)
420 dmaengine_slave_config(ctlr->dma_rx, &rxconf);
423 ctlr->dma_rx,
430 rxdesc->callback_param = ctlr;
442 dmaengine_slave_config(ctlr->dma_tx, &txconf);
445 ctlr->dma_tx,
450 dmaengine_terminate_sync(ctlr->dma_rx);
455 txdesc->callback_param = ctlr;
462 dma_async_issue_pending(ctlr->dma_rx);
470 dma_async_issue_pending(ctlr->dma_tx);
519 * ctlr->bits_per_word_mask, so this shouldn't
566 static int rockchip_spi_slave_abort(struct spi_controller *ctlr)
568 struct rockchip_spi *rs = spi_controller_get_devdata(ctlr);
571 dmaengine_terminate_sync(ctlr->dma_rx);
573 dmaengine_terminate_sync(ctlr->dma_tx);
577 complete(&ctlr->xfer_completion);
583 struct spi_controller *ctlr,
587 struct rockchip_spi *rs = spi_controller_get_devdata(ctlr);
593 spi_finalize_current_transfer(ctlr);
612 use_dma = ctlr->can_dma ? ctlr->can_dma(ctlr, spi, xfer) : false;
614 ret = rockchip_spi_config(rs, spi, xfer, use_dma, ctlr->slave);
619 return rockchip_spi_prepare_dma(rs, ctlr, xfer);
624 static bool rockchip_spi_can_dma(struct spi_controller *ctlr,
628 struct rockchip_spi *rs = spi_controller_get_devdata(ctlr);
642 struct spi_controller *ctlr;
651 ctlr = spi_alloc_slave(&pdev->dev,
654 ctlr = spi_alloc_master(&pdev->dev,
657 if (!ctlr)
660 platform_set_drvdata(pdev, ctlr);
662 rs = spi_controller_get_devdata(ctlr);
663 ctlr->slave = slave_mode;
706 IRQF_ONESHOT, dev_name(&pdev->dev), ctlr);
740 ctlr->auto_runtime_pm = true;
741 ctlr->bus_num = pdev->id;
742 ctlr->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LOOP | SPI_LSB_FIRST;
744 ctlr->mode_bits |= SPI_NO_CS;
745 ctlr->slave_abort = rockchip_spi_slave_abort;
747 ctlr->flags = SPI_MASTER_GPIO_SS;
748 ctlr->max_native_cs = ROCKCHIP_SPI_MAX_CS_NUM;
755 ctlr->num_chipselect = num_cs;
756 ctlr->use_gpio_descriptors = true;
758 ctlr->dev.of_node = pdev->dev.of_node;
759 ctlr->bits_per_word_mask = SPI_BPW_MASK(16) | SPI_BPW_MASK(8) | SPI_BPW_MASK(4);
760 ctlr->min_speed_hz = rs->freq / BAUDR_SCKDV_MAX;
761 ctlr->max_speed_hz = min(rs->freq / BAUDR_SCKDV_MIN, MAX_SCLK_OUT);
763 ctlr->set_cs = rockchip_spi_set_cs;
764 ctlr->transfer_one = rockchip_spi_transfer_one;
765 ctlr->max_transfer_size = rockchip_spi_max_transfer_size;
766 ctlr->handle_err = rockchip_spi_handle_err;
768 ctlr->dma_tx = dma_request_chan(rs->dev, "tx");
769 if (IS_ERR(ctlr->dma_tx)) {
771 if (PTR_ERR(ctlr->dma_tx) == -EPROBE_DEFER) {
776 ctlr->dma_tx = NULL;
779 ctlr->dma_rx = dma_request_chan(rs->dev, "rx");
780 if (IS_ERR(ctlr->dma_rx)) {
781 if (PTR_ERR(ctlr->dma_rx) == -EPROBE_DEFER) {
786 ctlr->dma_rx = NULL;
789 if (ctlr->dma_tx && ctlr->dma_rx) {
792 ctlr->can_dma = rockchip_spi_can_dma;
795 ret = devm_spi_register_controller(&pdev->dev, ctlr);
804 if (ctlr->dma_rx)
805 dma_release_channel(ctlr->dma_rx);
807 if (ctlr->dma_tx)
808 dma_release_channel(ctlr->dma_tx);
816 spi_controller_put(ctlr);
823 struct spi_controller *ctlr = spi_controller_get(platform_get_drvdata(pdev));
824 struct rockchip_spi *rs = spi_controller_get_devdata(ctlr);
835 if (ctlr->dma_tx)
836 dma_release_channel(ctlr->dma_tx);
837 if (ctlr->dma_rx)
838 dma_release_channel(ctlr->dma_rx);
840 spi_controller_put(ctlr);
849 struct spi_controller *ctlr = dev_get_drvdata(dev);
851 ret = spi_controller_suspend(ctlr);
867 struct spi_controller *ctlr = dev_get_drvdata(dev);
868 struct rockchip_spi *rs = spi_controller_get_devdata(ctlr);
876 ret = spi_controller_resume(ctlr);
889 struct spi_controller *ctlr = dev_get_drvdata(dev);
890 struct rockchip_spi *rs = spi_controller_get_devdata(ctlr);
901 struct spi_controller *ctlr = dev_get_drvdata(dev);
902 struct rockchip_spi *rs = spi_controller_get_devdata(ctlr);