Lines Matching refs:ctlr
184 struct spi_controller *ctlr; member
243 int (*transfer_one)(struct spi_controller *ctlr,
489 dev_err(&rspi->ctlr->dev, "transmit timeout\n"); in rspi_data_out()
503 dev_err(&rspi->ctlr->dev, "receive timeout\n"); in rspi_data_in()
549 desc_rx = dmaengine_prep_slave_sg(rspi->ctlr->dma_rx, rx->sgl, in rspi_dma_transfer()
569 desc_tx = dmaengine_prep_slave_sg(rspi->ctlr->dma_tx, tx->sgl, in rspi_dma_transfer()
607 dma_async_issue_pending(rspi->ctlr->dma_rx); in rspi_dma_transfer()
609 dma_async_issue_pending(rspi->ctlr->dma_tx); in rspi_dma_transfer()
616 dmaengine_synchronize(rspi->ctlr->dma_tx); in rspi_dma_transfer()
618 dmaengine_synchronize(rspi->ctlr->dma_rx); in rspi_dma_transfer()
621 dev_err(&rspi->ctlr->dev, "DMA timeout\n"); in rspi_dma_transfer()
625 dmaengine_terminate_sync(rspi->ctlr->dma_tx); in rspi_dma_transfer()
627 dmaengine_terminate_sync(rspi->ctlr->dma_rx); in rspi_dma_transfer()
641 dmaengine_terminate_sync(rspi->ctlr->dma_rx); in rspi_dma_transfer()
644 dev_warn_once(&rspi->ctlr->dev, in rspi_dma_transfer()
686 static bool rspi_can_dma(struct spi_controller *ctlr, struct spi_device *spi, in rspi_can_dma() argument
689 struct rspi_data *rspi = spi_controller_get_devdata(ctlr); in rspi_can_dma()
697 if (!rspi->ctlr->can_dma || !__rspi_can_dma(rspi, xfer)) in rspi_dma_check_then_transfer()
726 static int rspi_transfer_one(struct spi_controller *ctlr, in rspi_transfer_one() argument
729 struct rspi_data *rspi = spi_controller_get_devdata(ctlr); in rspi_transfer_one()
744 static int rspi_rz_transfer_one(struct spi_controller *ctlr, in rspi_rz_transfer_one() argument
748 struct rspi_data *rspi = spi_controller_get_devdata(ctlr); in rspi_rz_transfer_one()
766 dev_err(&rspi->ctlr->dev, "transmit timeout\n"); in qspi_trigger_transfer_out_in()
774 dev_err(&rspi->ctlr->dev, "receive timeout\n"); in qspi_trigger_transfer_out_in()
808 if (rspi->ctlr->can_dma && __rspi_can_dma(rspi, xfer)) { in qspi_transfer_out()
818 dev_err(&rspi->ctlr->dev, "transmit timeout\n"); in qspi_transfer_out()
840 if (rspi->ctlr->can_dma && __rspi_can_dma(rspi, xfer)) { in qspi_transfer_in()
850 dev_err(&rspi->ctlr->dev, "receive timeout\n"); in qspi_transfer_in()
862 static int qspi_transfer_one(struct spi_controller *ctlr, in qspi_transfer_one() argument
865 struct rspi_data *rspi = spi_controller_get_devdata(ctlr); in qspi_transfer_one()
970 static int rspi_prepare_message(struct spi_controller *ctlr, in rspi_prepare_message() argument
973 struct rspi_data *rspi = spi_controller_get_devdata(ctlr); in rspi_prepare_message()
1003 rspi->spcmd |= SPCMD_SSLA(spi->cs_gpiod ? rspi->ctlr->unused_native_cs in rspi_prepare_message()
1026 static int rspi_unprepare_message(struct spi_controller *ctlr, in rspi_unprepare_message() argument
1029 struct rspi_data *rspi = spi_controller_get_devdata(ctlr); in rspi_unprepare_message()
1130 static int rspi_request_dma(struct device *dev, struct spi_controller *ctlr, in rspi_request_dma() argument
1148 ctlr->dma_tx = rspi_request_dma_chan(dev, DMA_MEM_TO_DEV, dma_tx_id, in rspi_request_dma()
1150 if (!ctlr->dma_tx) in rspi_request_dma()
1153 ctlr->dma_rx = rspi_request_dma_chan(dev, DMA_DEV_TO_MEM, dma_rx_id, in rspi_request_dma()
1155 if (!ctlr->dma_rx) { in rspi_request_dma()
1156 dma_release_channel(ctlr->dma_tx); in rspi_request_dma()
1157 ctlr->dma_tx = NULL; in rspi_request_dma()
1161 ctlr->can_dma = rspi_can_dma; in rspi_request_dma()
1166 static void rspi_release_dma(struct spi_controller *ctlr) in rspi_release_dma() argument
1168 if (ctlr->dma_tx) in rspi_release_dma()
1169 dma_release_channel(ctlr->dma_tx); in rspi_release_dma()
1170 if (ctlr->dma_rx) in rspi_release_dma()
1171 dma_release_channel(ctlr->dma_rx); in rspi_release_dma()
1178 rspi_release_dma(rspi->ctlr); in rspi_remove()
1229 static int rspi_parse_dt(struct device *dev, struct spi_controller *ctlr) in rspi_parse_dt() argument
1241 ctlr->num_chipselect = num_cs; in rspi_parse_dt()
1246 static inline int rspi_parse_dt(struct device *dev, struct spi_controller *ctlr) in rspi_parse_dt() argument
1267 struct spi_controller *ctlr; in rspi_probe() local
1274 ctlr = spi_alloc_master(&pdev->dev, sizeof(struct rspi_data)); in rspi_probe()
1275 if (ctlr == NULL) in rspi_probe()
1280 ret = rspi_parse_dt(&pdev->dev, ctlr); in rspi_probe()
1287 ctlr->num_chipselect = rspi_pd->num_chipselect; in rspi_probe()
1289 ctlr->num_chipselect = 2; /* default */ in rspi_probe()
1292 rspi = spi_controller_get_devdata(ctlr); in rspi_probe()
1295 rspi->ctlr = ctlr; in rspi_probe()
1317 ctlr->bus_num = pdev->id; in rspi_probe()
1318 ctlr->setup = rspi_setup; in rspi_probe()
1319 ctlr->auto_runtime_pm = true; in rspi_probe()
1320 ctlr->transfer_one = ops->transfer_one; in rspi_probe()
1321 ctlr->prepare_message = rspi_prepare_message; in rspi_probe()
1322 ctlr->unprepare_message = rspi_unprepare_message; in rspi_probe()
1323 ctlr->mode_bits = SPI_CPHA | SPI_CPOL | SPI_CS_HIGH | SPI_LSB_FIRST | in rspi_probe()
1326 ctlr->min_speed_hz = DIV_ROUND_UP(clksrc, ops->max_div); in rspi_probe()
1327 ctlr->max_speed_hz = DIV_ROUND_UP(clksrc, ops->min_div); in rspi_probe()
1328 ctlr->flags = ops->flags; in rspi_probe()
1329 ctlr->dev.of_node = pdev->dev.of_node; in rspi_probe()
1330 ctlr->use_gpio_descriptors = true; in rspi_probe()
1331 ctlr->max_native_cs = rspi->ops->num_hw_ss; in rspi_probe()
1364 ret = rspi_request_dma(&pdev->dev, ctlr, res); in rspi_probe()
1368 ret = devm_spi_register_controller(&pdev->dev, ctlr); in rspi_probe()
1379 rspi_release_dma(ctlr); in rspi_probe()
1383 spi_controller_put(ctlr); in rspi_probe()
1400 return spi_controller_suspend(rspi->ctlr); in rspi_suspend()
1407 return spi_controller_resume(rspi->ctlr); in rspi_resume()