Lines Matching defs:master

107  * @master: SPI master
112 static int ep93xx_spi_calc_divisors(struct spi_master *master,
115 struct ep93xx_spi *espi = spi_master_get_devdata(master);
123 rate = clamp(rate, master->min_speed_hz, master->max_speed_hz);
146 static int ep93xx_spi_chip_setup(struct spi_master *master,
150 struct ep93xx_spi *espi = spi_master_get_devdata(master);
157 err = ep93xx_spi_calc_divisors(master, xfer->speed_hz,
169 dev_dbg(&master->dev, "setup: mode %d, cpsr %d, scr %d, dss %d\n",
171 dev_dbg(&master->dev, "setup: cr0 %#x\n", cr0);
179 static void ep93xx_do_write(struct spi_master *master)
181 struct ep93xx_spi *espi = spi_master_get_devdata(master);
182 struct spi_transfer *xfer = master->cur_msg->state;
197 static void ep93xx_do_read(struct spi_master *master)
199 struct ep93xx_spi *espi = spi_master_get_devdata(master);
200 struct spi_transfer *xfer = master->cur_msg->state;
217 * @master: SPI master
226 static int ep93xx_spi_read_write(struct spi_master *master)
228 struct ep93xx_spi *espi = spi_master_get_devdata(master);
229 struct spi_transfer *xfer = master->cur_msg->state;
233 ep93xx_do_read(master);
239 ep93xx_do_write(master);
264 * @master: SPI master
272 ep93xx_spi_dma_prepare(struct spi_master *master,
275 struct ep93xx_spi *espi = spi_master_get_devdata(master);
276 struct spi_transfer *xfer = master->cur_msg->state;
351 dev_warn(&master->dev, "len = %zu expected 0!\n", len);
370 * @master: SPI master
376 static void ep93xx_spi_dma_finish(struct spi_master *master,
379 struct ep93xx_spi *espi = spi_master_get_devdata(master);
396 struct spi_master *master = callback_param;
398 ep93xx_spi_dma_finish(master, DMA_TO_DEVICE);
399 ep93xx_spi_dma_finish(master, DMA_FROM_DEVICE);
401 spi_finalize_current_transfer(master);
404 static int ep93xx_spi_dma_transfer(struct spi_master *master)
406 struct ep93xx_spi *espi = spi_master_get_devdata(master);
409 rxd = ep93xx_spi_dma_prepare(master, DMA_FROM_DEVICE);
411 dev_err(&master->dev, "DMA RX failed: %ld\n", PTR_ERR(rxd));
415 txd = ep93xx_spi_dma_prepare(master, DMA_TO_DEVICE);
417 ep93xx_spi_dma_finish(master, DMA_FROM_DEVICE);
418 dev_err(&master->dev, "DMA TX failed: %ld\n", PTR_ERR(txd));
424 rxd->callback_param = master;
439 struct spi_master *master = dev_id;
440 struct ep93xx_spi *espi = spi_master_get_devdata(master);
450 dev_warn(&master->dev,
452 master->cur_msg->status = -EIO;
458 if (ep93xx_spi_read_write(master)) {
477 spi_finalize_current_transfer(master);
482 static int ep93xx_spi_transfer_one(struct spi_master *master,
486 struct ep93xx_spi *espi = spi_master_get_devdata(master);
490 ret = ep93xx_spi_chip_setup(master, spi, xfer);
492 dev_err(&master->dev, "failed to setup chip for transfer\n");
496 master->cur_msg->state = xfer;
506 return ep93xx_spi_dma_transfer(master);
509 ep93xx_spi_read_write(master);
519 static int ep93xx_spi_prepare_message(struct spi_master *master,
522 struct ep93xx_spi *espi = spi_master_get_devdata(master);
531 dev_warn(&master->dev,
547 static int ep93xx_spi_prepare_hardware(struct spi_master *master)
549 struct ep93xx_spi *espi = spi_master_get_devdata(master);
564 static int ep93xx_spi_unprepare_hardware(struct spi_master *master)
566 struct ep93xx_spi *espi = spi_master_get_devdata(master);
649 struct spi_master *master;
672 master = spi_alloc_master(&pdev->dev, sizeof(*espi));
673 if (!master)
676 master->use_gpio_descriptors = true;
677 master->prepare_transfer_hardware = ep93xx_spi_prepare_hardware;
678 master->unprepare_transfer_hardware = ep93xx_spi_unprepare_hardware;
679 master->prepare_message = ep93xx_spi_prepare_message;
680 master->transfer_one = ep93xx_spi_transfer_one;
681 master->bus_num = pdev->id;
682 master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH;
683 master->bits_per_word_mask = SPI_BPW_RANGE_MASK(4, 16);
688 master->num_chipselect = 0;
690 platform_set_drvdata(pdev, master);
692 espi = spi_master_get_devdata(master);
705 master->max_speed_hz = clk_get_rate(espi->clk) / 2;
706 master->min_speed_hz = clk_get_rate(espi->clk) / (254 * 256);
717 0, "ep93xx-spi", master);
729 error = devm_spi_register_master(&pdev->dev, master);
731 dev_err(&pdev->dev, "failed to register SPI master\n");
743 spi_master_put(master);
750 struct spi_master *master = platform_get_drvdata(pdev);
751 struct ep93xx_spi *espi = spi_master_get_devdata(master);