Lines Matching defs:xfer
288 struct spi_transfer *xfer)
294 if (xfer->speed_hz < spi_clk_hz / 2)
295 div = DIV_ROUND_UP(spi_clk_hz, xfer->speed_hz);
397 struct spi_transfer *xfer)
402 writel((u32)(xfer->tx_dma & MTK_SPI_32BITS_MASK),
406 writel((u32)(xfer->tx_dma >> 32),
412 writel((u32)(xfer->rx_dma & MTK_SPI_32BITS_MASK),
416 writel((u32)(xfer->rx_dma >> 32),
424 struct spi_transfer *xfer)
430 mdata->cur_transfer = xfer;
431 mdata->xfer_len = min(MTK_SPI_MAX_FIFO_SIZE, xfer->len);
433 mtk_spi_prepare_transfer(master, xfer);
436 if (xfer->tx_buf) {
437 cnt = xfer->len / 4;
438 iowrite32_rep(mdata->base + SPI_TX_DATA_REG, xfer->tx_buf, cnt);
439 remainder = xfer->len % 4;
442 memcpy(®_val, xfer->tx_buf + (cnt * 4), remainder);
454 struct spi_transfer *xfer)
463 mdata->cur_transfer = xfer;
466 mtk_spi_prepare_transfer(master, xfer);
469 if (xfer->tx_buf)
471 if (xfer->rx_buf)
475 if (xfer->tx_buf)
476 mdata->tx_sgl = xfer->tx_sg.sgl;
477 if (xfer->rx_buf)
478 mdata->rx_sgl = xfer->rx_sg.sgl;
481 xfer->tx_dma = sg_dma_address(mdata->tx_sgl);
485 xfer->rx_dma = sg_dma_address(mdata->rx_sgl);
491 mtk_spi_setup_dma_addr(master, xfer);
499 struct spi_transfer *xfer)
501 if (master->can_dma(master, spi, xfer))
502 return mtk_spi_dma_transfer(master, spi, xfer);
504 return mtk_spi_fifo_transfer(master, spi, xfer);
509 struct spi_transfer *xfer)
512 return (xfer->len > MTK_SPI_MAX_FIFO_SIZE &&
513 (unsigned long)xfer->tx_buf % 4 == 0 &&
514 (unsigned long)xfer->rx_buf % 4 == 0);