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()
617 dev_err(&rspi->ctlr->dev, "DMA timeout\n"); in rspi_dma_transfer()
621 dmaengine_terminate_sync(rspi->ctlr->dma_tx); in rspi_dma_transfer()
623 dmaengine_terminate_sync(rspi->ctlr->dma_rx); in rspi_dma_transfer()
637 dmaengine_terminate_sync(rspi->ctlr->dma_rx); in rspi_dma_transfer()
640 dev_warn_once(&rspi->ctlr->dev, in rspi_dma_transfer()
682 static bool rspi_can_dma(struct spi_controller *ctlr, struct spi_device *spi, in rspi_can_dma() argument
685 struct rspi_data *rspi = spi_controller_get_devdata(ctlr); in rspi_can_dma()
693 if (!rspi->ctlr->can_dma || !__rspi_can_dma(rspi, xfer)) in rspi_dma_check_then_transfer()
722 static int rspi_transfer_one(struct spi_controller *ctlr, in rspi_transfer_one() argument
725 struct rspi_data *rspi = spi_controller_get_devdata(ctlr); in rspi_transfer_one()
740 static int rspi_rz_transfer_one(struct spi_controller *ctlr, in rspi_rz_transfer_one() argument
744 struct rspi_data *rspi = spi_controller_get_devdata(ctlr); in rspi_rz_transfer_one()
762 dev_err(&rspi->ctlr->dev, "transmit timeout\n"); in qspi_trigger_transfer_out_in()
770 dev_err(&rspi->ctlr->dev, "receive timeout\n"); in qspi_trigger_transfer_out_in()
804 if (rspi->ctlr->can_dma && __rspi_can_dma(rspi, xfer)) { in qspi_transfer_out()
814 dev_err(&rspi->ctlr->dev, "transmit timeout\n"); in qspi_transfer_out()
836 if (rspi->ctlr->can_dma && __rspi_can_dma(rspi, xfer)) { in qspi_transfer_in()
846 dev_err(&rspi->ctlr->dev, "receive timeout\n"); in qspi_transfer_in()
858 static int qspi_transfer_one(struct spi_controller *ctlr, in qspi_transfer_one() argument
861 struct rspi_data *rspi = spi_controller_get_devdata(ctlr); in qspi_transfer_one()
966 static int rspi_prepare_message(struct spi_controller *ctlr, in rspi_prepare_message() argument
969 struct rspi_data *rspi = spi_controller_get_devdata(ctlr); in rspi_prepare_message()
999 rspi->spcmd |= SPCMD_SSLA(spi->cs_gpiod ? rspi->ctlr->unused_native_cs in rspi_prepare_message()
1022 static int rspi_unprepare_message(struct spi_controller *ctlr, in rspi_unprepare_message() argument
1025 struct rspi_data *rspi = spi_controller_get_devdata(ctlr); in rspi_unprepare_message()
1129 static int rspi_request_dma(struct device *dev, struct spi_controller *ctlr, in rspi_request_dma() argument
1147 ctlr->dma_tx = rspi_request_dma_chan(dev, DMA_MEM_TO_DEV, dma_tx_id, in rspi_request_dma()
1149 if (!ctlr->dma_tx) in rspi_request_dma()
1152 ctlr->dma_rx = rspi_request_dma_chan(dev, DMA_DEV_TO_MEM, dma_rx_id, in rspi_request_dma()
1154 if (!ctlr->dma_rx) { in rspi_request_dma()
1155 dma_release_channel(ctlr->dma_tx); in rspi_request_dma()
1156 ctlr->dma_tx = NULL; in rspi_request_dma()
1160 ctlr->can_dma = rspi_can_dma; in rspi_request_dma()
1165 static void rspi_release_dma(struct spi_controller *ctlr) in rspi_release_dma() argument
1167 if (ctlr->dma_tx) in rspi_release_dma()
1168 dma_release_channel(ctlr->dma_tx); in rspi_release_dma()
1169 if (ctlr->dma_rx) in rspi_release_dma()
1170 dma_release_channel(ctlr->dma_rx); in rspi_release_dma()
1177 rspi_release_dma(rspi->ctlr); in rspi_remove()
1228 static int rspi_parse_dt(struct device *dev, struct spi_controller *ctlr) in rspi_parse_dt() argument
1240 ctlr->num_chipselect = num_cs; in rspi_parse_dt()
1245 static inline int rspi_parse_dt(struct device *dev, struct spi_controller *ctlr) in rspi_parse_dt() argument
1266 struct spi_controller *ctlr; in rspi_probe() local
1273 ctlr = spi_alloc_master(&pdev->dev, sizeof(struct rspi_data)); in rspi_probe()
1274 if (ctlr == NULL) in rspi_probe()
1279 ret = rspi_parse_dt(&pdev->dev, ctlr); in rspi_probe()
1286 ctlr->num_chipselect = rspi_pd->num_chipselect; in rspi_probe()
1288 ctlr->num_chipselect = 2; /* default */ in rspi_probe()
1291 rspi = spi_controller_get_devdata(ctlr); in rspi_probe()
1294 rspi->ctlr = ctlr; in rspi_probe()
1316 ctlr->bus_num = pdev->id; in rspi_probe()
1317 ctlr->setup = rspi_setup; in rspi_probe()
1318 ctlr->auto_runtime_pm = true; in rspi_probe()
1319 ctlr->transfer_one = ops->transfer_one; in rspi_probe()
1320 ctlr->prepare_message = rspi_prepare_message; in rspi_probe()
1321 ctlr->unprepare_message = rspi_unprepare_message; in rspi_probe()
1322 ctlr->mode_bits = SPI_CPHA | SPI_CPOL | SPI_CS_HIGH | SPI_LSB_FIRST | in rspi_probe()
1325 ctlr->min_speed_hz = DIV_ROUND_UP(clksrc, ops->max_div); in rspi_probe()
1326 ctlr->max_speed_hz = DIV_ROUND_UP(clksrc, ops->min_div); in rspi_probe()
1327 ctlr->flags = ops->flags; in rspi_probe()
1328 ctlr->dev.of_node = pdev->dev.of_node; in rspi_probe()
1329 ctlr->use_gpio_descriptors = true; in rspi_probe()
1330 ctlr->max_native_cs = rspi->ops->num_hw_ss; in rspi_probe()
1363 ret = rspi_request_dma(&pdev->dev, ctlr, res); in rspi_probe()
1367 ret = devm_spi_register_controller(&pdev->dev, ctlr); in rspi_probe()
1378 rspi_release_dma(ctlr); in rspi_probe()
1382 spi_controller_put(ctlr); in rspi_probe()
1399 return spi_controller_suspend(rspi->ctlr); in rspi_suspend()
1406 return spi_controller_resume(rspi->ctlr); in rspi_resume()