Lines Matching refs:controller

93 	struct spi_controller *controller;
233 static bool spi_imx_can_dma(struct spi_controller *controller, struct spi_device *spi,
236 struct spi_imx_data *spi_imx = spi_controller_get_devdata(controller);
238 if (!use_dma || controller->fallback)
241 if (!controller->dma_rx)
524 return spi->controller->unused_native_cs;
1209 static int spi_imx_dma_configure(struct spi_controller *controller)
1214 struct spi_imx_data *spi_imx = spi_controller_get_devdata(controller);
1234 ret = dmaengine_slave_config(controller->dma_tx, &tx);
1244 ret = dmaengine_slave_config(controller->dma_rx, &rx);
1256 struct spi_imx_data *spi_imx = spi_controller_get_devdata(spi->controller);
1303 if (spi_imx_can_dma(spi_imx->controller, spi, t))
1309 || (t->tx_buf == spi->controller->dummy_tx));
1324 struct spi_controller *controller = spi_imx->controller;
1326 if (controller->dma_rx) {
1327 dma_release_channel(controller->dma_rx);
1328 controller->dma_rx = NULL;
1331 if (controller->dma_tx) {
1332 dma_release_channel(controller->dma_tx);
1333 controller->dma_tx = NULL;
1338 struct spi_controller *controller)
1345 controller->dma_tx = dma_request_chan(dev, "tx");
1346 if (IS_ERR(controller->dma_tx)) {
1347 ret = PTR_ERR(controller->dma_tx);
1349 controller->dma_tx = NULL;
1354 controller->dma_rx = dma_request_chan(dev, "rx");
1355 if (IS_ERR(controller->dma_rx)) {
1356 ret = PTR_ERR(controller->dma_rx);
1358 controller->dma_rx = NULL;
1364 controller->can_dma = spi_imx_can_dma;
1365 controller->max_dma_len = MAX_SDMA_BD_BYTES;
1366 spi_imx->controller->flags = SPI_CONTROLLER_MUST_RX |
1409 struct spi_controller *controller = spi_imx->controller;
1427 ret = spi_imx_dma_configure(controller);
1442 desc_rx = dmaengine_prep_slave_sg(controller->dma_rx,
1454 dma_async_issue_pending(controller->dma_rx);
1456 desc_tx = dmaengine_prep_slave_sg(controller->dma_tx,
1460 dmaengine_terminate_all(controller->dma_tx);
1461 dmaengine_terminate_all(controller->dma_rx);
1469 dma_async_issue_pending(controller->dma_tx);
1478 dmaengine_terminate_all(controller->dma_tx);
1479 dmaengine_terminate_all(controller->dma_rx);
1486 dev_err(&controller->dev, "I/O Error in DMA RX\n");
1488 dmaengine_terminate_all(controller->dma_rx);
1502 struct spi_imx_data *spi_imx = spi_controller_get_devdata(spi->controller);
1534 struct spi_imx_data *spi_imx = spi_controller_get_devdata(spi->controller);
1582 struct spi_imx_data *spi_imx = spi_controller_get_devdata(spi->controller);
1623 static int spi_imx_transfer_one(struct spi_controller *controller,
1627 struct spi_imx_data *spi_imx = spi_controller_get_devdata(spi->controller);
1674 spi_imx_prepare_message(struct spi_controller *controller, struct spi_message *msg)
1676 struct spi_imx_data *spi_imx = spi_controller_get_devdata(controller);
1695 spi_imx_unprepare_message(struct spi_controller *controller, struct spi_message *msg)
1697 struct spi_imx_data *spi_imx = spi_controller_get_devdata(controller);
1704 static int spi_imx_target_abort(struct spi_controller *controller)
1706 struct spi_imx_data *spi_imx = spi_controller_get_devdata(controller);
1717 struct spi_controller *controller;
1729 controller = spi_alloc_target(&pdev->dev,
1732 controller = spi_alloc_host(&pdev->dev,
1734 if (!controller)
1743 platform_set_drvdata(pdev, controller);
1745 controller->bits_per_word_mask = SPI_BPW_RANGE_MASK(1, 32);
1746 controller->bus_num = np ? -1 : pdev->id;
1747 controller->use_gpio_descriptors = true;
1749 spi_imx = spi_controller_get_devdata(controller);
1750 spi_imx->controller = controller;
1763 controller->num_chipselect = val;
1765 controller->num_chipselect = 3;
1767 controller->transfer_one = spi_imx_transfer_one;
1768 controller->setup = spi_imx_setup;
1769 controller->cleanup = spi_imx_cleanup;
1770 controller->prepare_message = spi_imx_prepare_message;
1771 controller->unprepare_message = spi_imx_unprepare_message;
1772 controller->target_abort = spi_imx_target_abort;
1773 controller->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH | SPI_NO_CS |
1778 controller->mode_bits |= SPI_LOOP | SPI_READY;
1781 controller->mode_bits |= SPI_RX_CPHA_FLIP;
1790 controller->mode_bits |= SPI_CS_WORD;
1793 controller->max_native_cs = 4;
1794 controller->flags |= SPI_CONTROLLER_GPIO_SS;
1853 ret = spi_imx_sdma_init(&pdev->dev, spi_imx, controller);
1866 controller->dev.of_node = pdev->dev.of_node;
1867 ret = spi_register_controller(controller);
1869 dev_err_probe(&pdev->dev, ret, "register controller failed\n");
1890 spi_controller_put(controller);
1897 struct spi_controller *controller = platform_get_drvdata(pdev);
1898 struct spi_imx_data *spi_imx = spi_controller_get_devdata(controller);
1901 spi_unregister_controller(controller);
1918 struct spi_controller *controller = dev_get_drvdata(dev);
1922 spi_imx = spi_controller_get_devdata(controller);
1939 struct spi_controller *controller = dev_get_drvdata(dev);
1942 spi_imx = spi_controller_get_devdata(controller);