Lines Matching refs:master

361 		for (i = 0; i < spi->master->num_chipselect; i++) {
422 static bool atmel_spi_can_dma(struct spi_master *master,
426 struct atmel_spi *as = spi_master_get_devdata(master);
440 struct spi_master *master = platform_get_drvdata(as->pdev);
472 if (dmaengine_slave_config(master->dma_tx, slave_config)) {
479 * This driver configures the spi controller for master mode (MSTR bit
487 if (dmaengine_slave_config(master->dma_rx, slave_config)) {
496 static int atmel_spi_configure_dma(struct spi_master *master,
507 master->dma_tx = dma_request_chan(dev, "tx");
508 if (IS_ERR(master->dma_tx)) {
509 err = dev_err_probe(dev, PTR_ERR(master->dma_tx),
514 master->dma_rx = dma_request_chan(dev, "rx");
515 if (IS_ERR(master->dma_rx)) {
516 err = PTR_ERR(master->dma_rx);
531 dma_chan_name(master->dma_tx),
532 dma_chan_name(master->dma_rx));
536 if (!IS_ERR(master->dma_rx))
537 dma_release_channel(master->dma_rx);
538 if (!IS_ERR(master->dma_tx))
539 dma_release_channel(master->dma_tx);
541 master->dma_tx = master->dma_rx = NULL;
545 static void atmel_spi_stop_dma(struct spi_master *master)
547 if (master->dma_rx)
548 dmaengine_terminate_all(master->dma_rx);
549 if (master->dma_tx)
550 dmaengine_terminate_all(master->dma_tx);
553 static void atmel_spi_release_dma(struct spi_master *master)
555 if (master->dma_rx) {
556 dma_release_channel(master->dma_rx);
557 master->dma_rx = NULL;
559 if (master->dma_tx) {
560 dma_release_channel(master->dma_tx);
561 master->dma_tx = NULL;
568 struct spi_master *master = data;
569 struct atmel_spi *as = spi_master_get_devdata(master);
582 static void atmel_spi_next_xfer_single(struct spi_master *master,
585 struct atmel_spi *as = spi_master_get_devdata(master);
588 dev_vdbg(master->dev.parent, "atmel_spi_next_xfer_pio\n");
602 dev_dbg(master->dev.parent,
614 static void atmel_spi_next_xfer_fifo(struct spi_master *master,
617 struct atmel_spi *as = spi_master_get_devdata(master);
625 dev_vdbg(master->dev.parent, "atmel_spi_next_xfer_fifo\n");
669 dev_dbg(master->dev.parent,
684 static void atmel_spi_next_xfer_pio(struct spi_master *master,
687 struct atmel_spi *as = spi_master_get_devdata(master);
690 atmel_spi_next_xfer_fifo(master, xfer);
692 atmel_spi_next_xfer_single(master, xfer);
698 static int atmel_spi_next_xfer_dma_submit(struct spi_master *master,
703 struct atmel_spi *as = spi_master_get_devdata(master);
704 struct dma_chan *rxchan = master->dma_rx;
705 struct dma_chan *txchan = master->dma_tx;
711 dev_vdbg(master->dev.parent, "atmel_spi_next_xfer_dma_submit\n");
765 dev_dbg(master->dev.parent,
775 rxdesc->callback_param = master;
793 atmel_spi_stop_dma(master);
799 static void atmel_spi_next_xfer_data(struct spi_master *master,
807 if (*plen > master->max_dma_len)
808 *plen = master->max_dma_len;
863 static void atmel_spi_pdc_next_xfer(struct spi_master *master,
866 struct atmel_spi *as = spi_master_get_devdata(master);
873 atmel_spi_next_xfer_data(master, xfer, &tx_dma, &rx_dma, &len);
884 dev_dbg(&master->dev,
892 atmel_spi_next_xfer_data(master, xfer, &tx_dma, &rx_dma, &len);
903 dev_dbg(&master->dev,
963 static void atmel_spi_dma_unmap_xfer(struct spi_master *master,
967 dma_unmap_single(master->dev.parent, xfer->tx_dma,
970 dma_unmap_single(master->dev.parent, xfer->rx_dma,
1060 struct spi_master *master = dev_id;
1061 struct atmel_spi *as = spi_master_get_devdata(master);
1073 dev_warn(master->dev.parent, "overrun\n");
1118 struct spi_master *master = dev_id;
1119 struct atmel_spi *as = spi_master_get_devdata(master);
1173 struct spi_master *master = platform_get_drvdata(as->pdev);
1178 if (!master->cs_gpiods)
1191 if (master->cs_gpiods[i])
1207 as = spi_master_get_devdata(spi->master);
1275 struct atmel_spi *as = spi_master_get_devdata(spi->master);
1290 static int atmel_spi_one_transfer(struct spi_master *master,
1302 as = spi_master_get_devdata(master);
1318 if ((!master->cur_msg->is_dma_mapped)
1333 atmel_spi_pdc_next_xfer(master, xfer);
1336 ret = atmel_spi_next_xfer_dma_submit(master,
1349 atmel_spi_next_xfer_pio(master, xfer);
1368 dev_warn(master->dev.parent,
1384 dev_warn(master->dev.parent,
1393 atmel_spi_stop_dma(master);
1397 if (!master->cur_msg->is_dma_mapped
1399 atmel_spi_dma_unmap_xfer(master, xfer);
1464 struct spi_master *master;
1483 master = spi_alloc_master(&pdev->dev, sizeof(*as));
1484 if (!master)
1488 master->use_gpio_descriptors = true;
1489 master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH;
1490 master->bits_per_word_mask = SPI_BPW_RANGE_MASK(8, 16);
1491 master->dev.of_node = pdev->dev.of_node;
1492 master->bus_num = pdev->id;
1493 master->num_chipselect = 4;
1494 master->setup = atmel_spi_setup;
1495 master->flags = (SPI_MASTER_MUST_RX | SPI_MASTER_MUST_TX |
1497 master->transfer_one = atmel_spi_one_transfer;
1498 master->set_cs = atmel_spi_set_cs;
1499 master->cleanup = atmel_spi_cleanup;
1500 master->auto_runtime_pm = true;
1501 master->max_dma_len = SPI_MAX_DMA_XFER;
1502 master->can_dma = atmel_spi_can_dma;
1503 platform_set_drvdata(pdev, master);
1505 as = spi_master_get_devdata(master);
1526 ret = atmel_spi_configure_dma(master, as);
1556 dev_info(master->dev.parent,
1565 0, dev_name(&pdev->dev), master);
1568 0, dev_name(&pdev->dev), master);
1593 ret = devm_spi_register_master(&pdev->dev, master);
1609 atmel_spi_release_dma(master);
1616 spi_master_put(master);
1622 struct spi_master *master = platform_get_drvdata(pdev);
1623 struct atmel_spi *as = spi_master_get_devdata(master);
1629 atmel_spi_stop_dma(master);
1630 atmel_spi_release_dma(master);
1658 struct spi_master *master = dev_get_drvdata(dev);
1659 struct atmel_spi *as = spi_master_get_devdata(master);
1669 struct spi_master *master = dev_get_drvdata(dev);
1670 struct atmel_spi *as = spi_master_get_devdata(master);
1680 struct spi_master *master = dev_get_drvdata(dev);
1684 ret = spi_master_suspend(master);
1696 struct spi_master *master = dev_get_drvdata(dev);
1697 struct atmel_spi *as = spi_master_get_devdata(master);
1715 return spi_master_resume(master);