dspi              135 drivers/spi/spi-davinci.c static void davinci_spi_rx_buf_u8(u32 data, struct davinci_spi *dspi)
dspi              137 drivers/spi/spi-davinci.c 	if (dspi->rx) {
dspi              138 drivers/spi/spi-davinci.c 		u8 *rx = dspi->rx;
dspi              140 drivers/spi/spi-davinci.c 		dspi->rx = rx;
dspi              144 drivers/spi/spi-davinci.c static void davinci_spi_rx_buf_u16(u32 data, struct davinci_spi *dspi)
dspi              146 drivers/spi/spi-davinci.c 	if (dspi->rx) {
dspi              147 drivers/spi/spi-davinci.c 		u16 *rx = dspi->rx;
dspi              149 drivers/spi/spi-davinci.c 		dspi->rx = rx;
dspi              153 drivers/spi/spi-davinci.c static u32 davinci_spi_tx_buf_u8(struct davinci_spi *dspi)
dspi              157 drivers/spi/spi-davinci.c 	if (dspi->tx) {
dspi              158 drivers/spi/spi-davinci.c 		const u8 *tx = dspi->tx;
dspi              161 drivers/spi/spi-davinci.c 		dspi->tx = tx;
dspi              166 drivers/spi/spi-davinci.c static u32 davinci_spi_tx_buf_u16(struct davinci_spi *dspi)
dspi              170 drivers/spi/spi-davinci.c 	if (dspi->tx) {
dspi              171 drivers/spi/spi-davinci.c 		const u16 *tx = dspi->tx;
dspi              174 drivers/spi/spi-davinci.c 		dspi->tx = tx;
dspi              200 drivers/spi/spi-davinci.c 	struct davinci_spi *dspi;
dspi              205 drivers/spi/spi-davinci.c 	dspi = spi_master_get_devdata(spi->master);
dspi              234 drivers/spi/spi-davinci.c 	iowrite16(spidat1, dspi->base + SPIDAT1 + 2);
dspi              247 drivers/spi/spi-davinci.c static inline int davinci_spi_get_prescale(struct davinci_spi *dspi,
dspi              253 drivers/spi/spi-davinci.c 	ret = DIV_ROUND_UP(clk_get_rate(dspi->clk), max_speed_hz) - 1;
dspi              255 drivers/spi/spi-davinci.c 	if (ret < dspi->prescaler_limit || ret > 255)
dspi              274 drivers/spi/spi-davinci.c 	struct davinci_spi *dspi;
dspi              280 drivers/spi/spi-davinci.c 	dspi = spi_master_get_devdata(spi->master);
dspi              299 drivers/spi/spi-davinci.c 		dspi->get_rx = davinci_spi_rx_buf_u8;
dspi              300 drivers/spi/spi-davinci.c 		dspi->get_tx = davinci_spi_tx_buf_u8;
dspi              301 drivers/spi/spi-davinci.c 		dspi->bytes_per_word[spi->chip_select] = 1;
dspi              303 drivers/spi/spi-davinci.c 		dspi->get_rx = davinci_spi_rx_buf_u16;
dspi              304 drivers/spi/spi-davinci.c 		dspi->get_tx = davinci_spi_tx_buf_u16;
dspi              305 drivers/spi/spi-davinci.c 		dspi->bytes_per_word[spi->chip_select] = 2;
dspi              313 drivers/spi/spi-davinci.c 	prescale = davinci_spi_get_prescale(dspi, hz);
dspi              349 drivers/spi/spi-davinci.c 	if (dspi->version == SPI_VERSION_2) {
dspi              376 drivers/spi/spi-davinci.c 		iowrite32(delay, dspi->base + SPIDELAY);
dspi              379 drivers/spi/spi-davinci.c 	iowrite32(spifmt, dspi->base + SPIFMT0);
dspi              388 drivers/spi/spi-davinci.c 	struct davinci_spi *dspi = spi_master_get_devdata(spi->master);
dspi              401 drivers/spi/spi-davinci.c 		if (dspi->dma_rx && dspi->dma_tx)
dspi              416 drivers/spi/spi-davinci.c 	struct davinci_spi *dspi;
dspi              420 drivers/spi/spi-davinci.c 	dspi = spi_master_get_devdata(spi->master);
dspi              427 drivers/spi/spi-davinci.c 			set_io_bits(dspi->base + SPIPC0, 1 << spi->chip_select);
dspi              431 drivers/spi/spi-davinci.c 		set_io_bits(dspi->base + SPIPC0, SPIPC0_SPIENA_MASK);
dspi              434 drivers/spi/spi-davinci.c 		set_io_bits(dspi->base + SPIGCR1, SPIGCR1_LOOPBACK_MASK);
dspi              436 drivers/spi/spi-davinci.c 		clear_io_bits(dspi->base + SPIGCR1, SPIGCR1_LOOPBACK_MASK);
dspi              466 drivers/spi/spi-davinci.c static int davinci_spi_check_error(struct davinci_spi *dspi, int int_status)
dspi              468 drivers/spi/spi-davinci.c 	struct device *sdev = dspi->bitbang.master->dev.parent;
dspi              483 drivers/spi/spi-davinci.c 	if (dspi->version == SPI_VERSION_2) {
dspi              512 drivers/spi/spi-davinci.c static int davinci_spi_process_events(struct davinci_spi *dspi)
dspi              516 drivers/spi/spi-davinci.c 	buf = ioread32(dspi->base + SPIBUF);
dspi              518 drivers/spi/spi-davinci.c 	if (dspi->rcount > 0 && !(buf & SPIBUF_RXEMPTY_MASK)) {
dspi              519 drivers/spi/spi-davinci.c 		dspi->get_rx(buf & 0xFFFF, dspi);
dspi              520 drivers/spi/spi-davinci.c 		dspi->rcount--;
dspi              523 drivers/spi/spi-davinci.c 	status = ioread32(dspi->base + SPIFLG);
dspi              530 drivers/spi/spi-davinci.c 	if (dspi->wcount > 0 && !(buf & SPIBUF_TXFULL_MASK)) {
dspi              531 drivers/spi/spi-davinci.c 		spidat1 = ioread32(dspi->base + SPIDAT1);
dspi              532 drivers/spi/spi-davinci.c 		dspi->wcount--;
dspi              534 drivers/spi/spi-davinci.c 		spidat1 |= 0xFFFF & dspi->get_tx(dspi);
dspi              535 drivers/spi/spi-davinci.c 		iowrite32(spidat1, dspi->base + SPIDAT1);
dspi              544 drivers/spi/spi-davinci.c 	struct davinci_spi *dspi = (struct davinci_spi *)data;
dspi              546 drivers/spi/spi-davinci.c 	dspi->rcount = 0;
dspi              548 drivers/spi/spi-davinci.c 	if (!dspi->wcount && !dspi->rcount)
dspi              549 drivers/spi/spi-davinci.c 		complete(&dspi->done);
dspi              554 drivers/spi/spi-davinci.c 	struct davinci_spi *dspi = (struct davinci_spi *)data;
dspi              556 drivers/spi/spi-davinci.c 	dspi->wcount = 0;
dspi              558 drivers/spi/spi-davinci.c 	if (!dspi->wcount && !dspi->rcount)
dspi              559 drivers/spi/spi-davinci.c 		complete(&dspi->done);
dspi              573 drivers/spi/spi-davinci.c 	struct davinci_spi *dspi;
dspi              581 drivers/spi/spi-davinci.c 	dspi = spi_master_get_devdata(spi->master);
dspi              582 drivers/spi/spi-davinci.c 	pdata = &dspi->pdata;
dspi              588 drivers/spi/spi-davinci.c 	data_type = dspi->bytes_per_word[spi->chip_select];
dspi              590 drivers/spi/spi-davinci.c 	dspi->tx = t->tx_buf;
dspi              591 drivers/spi/spi-davinci.c 	dspi->rx = t->rx_buf;
dspi              592 drivers/spi/spi-davinci.c 	dspi->wcount = t->len / data_type;
dspi              593 drivers/spi/spi-davinci.c 	dspi->rcount = dspi->wcount;
dspi              595 drivers/spi/spi-davinci.c 	spidat1 = ioread32(dspi->base + SPIDAT1);
dspi              597 drivers/spi/spi-davinci.c 	clear_io_bits(dspi->base + SPIGCR1, SPIGCR1_POWERDOWN_MASK);
dspi              598 drivers/spi/spi-davinci.c 	set_io_bits(dspi->base + SPIGCR1, SPIGCR1_SPIENA_MASK);
dspi              600 drivers/spi/spi-davinci.c 	reinit_completion(&dspi->done);
dspi              604 drivers/spi/spi-davinci.c 			set_io_bits(dspi->base + SPIINT, SPIINT_MASKINT);
dspi              606 drivers/spi/spi-davinci.c 		dspi->wcount--;
dspi              607 drivers/spi/spi-davinci.c 		tx_data = dspi->get_tx(dspi);
dspi              610 drivers/spi/spi-davinci.c 		iowrite32(spidat1, dspi->base + SPIDAT1);
dspi              614 drivers/spi/spi-davinci.c 			.src_addr = (unsigned long)dspi->pbase + SPIBUF,
dspi              620 drivers/spi/spi-davinci.c 			.dst_addr = (unsigned long)dspi->pbase + SPIDAT1,
dspi              627 drivers/spi/spi-davinci.c 		dmaengine_slave_config(dspi->dma_rx, &dma_rx_conf);
dspi              628 drivers/spi/spi-davinci.c 		dmaengine_slave_config(dspi->dma_tx, &dma_tx_conf);
dspi              630 drivers/spi/spi-davinci.c 		rxdesc = dmaengine_prep_slave_sg(dspi->dma_rx,
dspi              646 drivers/spi/spi-davinci.c 		txdesc = dmaengine_prep_slave_sg(dspi->dma_tx,
dspi              653 drivers/spi/spi-davinci.c 		rxdesc->callback_param = (void *)dspi;
dspi              655 drivers/spi/spi-davinci.c 		txdesc->callback_param = (void *)dspi;
dspi              658 drivers/spi/spi-davinci.c 			iowrite16(spidat1 >> 16, dspi->base + SPIDAT1 + 2);
dspi              663 drivers/spi/spi-davinci.c 		dma_async_issue_pending(dspi->dma_rx);
dspi              664 drivers/spi/spi-davinci.c 		dma_async_issue_pending(dspi->dma_tx);
dspi              666 drivers/spi/spi-davinci.c 		set_io_bits(dspi->base + SPIINT, SPIINT_DMA_REQ_EN);
dspi              671 drivers/spi/spi-davinci.c 		if (wait_for_completion_timeout(&dspi->done, HZ) == 0)
dspi              674 drivers/spi/spi-davinci.c 		while (dspi->rcount > 0 || dspi->wcount > 0) {
dspi              675 drivers/spi/spi-davinci.c 			errors = davinci_spi_process_events(dspi);
dspi              682 drivers/spi/spi-davinci.c 	clear_io_bits(dspi->base + SPIINT, SPIINT_MASKALL);
dspi              684 drivers/spi/spi-davinci.c 		clear_io_bits(dspi->base + SPIINT, SPIINT_DMA_REQ_EN);
dspi              686 drivers/spi/spi-davinci.c 	clear_io_bits(dspi->base + SPIGCR1, SPIGCR1_SPIENA_MASK);
dspi              687 drivers/spi/spi-davinci.c 	set_io_bits(dspi->base + SPIGCR1, SPIGCR1_POWERDOWN_MASK);
dspi              694 drivers/spi/spi-davinci.c 		ret = davinci_spi_check_error(dspi, errors);
dspi              700 drivers/spi/spi-davinci.c 	if (dspi->rcount != 0 || dspi->wcount != 0) {
dspi              737 drivers/spi/spi-davinci.c 	struct davinci_spi *dspi = data;
dspi              740 drivers/spi/spi-davinci.c 	status = davinci_spi_process_events(dspi);
dspi              742 drivers/spi/spi-davinci.c 		clear_io_bits(dspi->base + SPIINT, SPIINT_MASKINT);
dspi              744 drivers/spi/spi-davinci.c 	if ((!dspi->rcount && !dspi->wcount) || status)
dspi              745 drivers/spi/spi-davinci.c 		complete(&dspi->done);
dspi              750 drivers/spi/spi-davinci.c static int davinci_spi_request_dma(struct davinci_spi *dspi)
dspi              752 drivers/spi/spi-davinci.c 	struct device *sdev = dspi->bitbang.master->dev.parent;
dspi              754 drivers/spi/spi-davinci.c 	dspi->dma_rx = dma_request_chan(sdev, "rx");
dspi              755 drivers/spi/spi-davinci.c 	if (IS_ERR(dspi->dma_rx))
dspi              756 drivers/spi/spi-davinci.c 		return PTR_ERR(dspi->dma_rx);
dspi              758 drivers/spi/spi-davinci.c 	dspi->dma_tx = dma_request_chan(sdev, "tx");
dspi              759 drivers/spi/spi-davinci.c 	if (IS_ERR(dspi->dma_tx)) {
dspi              760 drivers/spi/spi-davinci.c 		dma_release_channel(dspi->dma_rx);
dspi              761 drivers/spi/spi-davinci.c 		return PTR_ERR(dspi->dma_tx);
dspi              817 drivers/spi/spi-davinci.c 			struct davinci_spi *dspi)
dspi              825 drivers/spi/spi-davinci.c 	pdata = &dspi->pdata;
dspi              851 drivers/spi/spi-davinci.c 			struct davinci_spi *dspi)
dspi              871 drivers/spi/spi-davinci.c 	struct davinci_spi *dspi;
dspi              885 drivers/spi/spi-davinci.c 	dspi = spi_master_get_devdata(master);
dspi              889 drivers/spi/spi-davinci.c 		dspi->pdata = *pdata;
dspi              892 drivers/spi/spi-davinci.c 		ret = spi_davinci_get_pdata(pdev, dspi);
dspi              898 drivers/spi/spi-davinci.c 	pdata = &dspi->pdata;
dspi              900 drivers/spi/spi-davinci.c 	dspi->bytes_per_word = devm_kcalloc(&pdev->dev,
dspi              902 drivers/spi/spi-davinci.c 					    sizeof(*dspi->bytes_per_word),
dspi              904 drivers/spi/spi-davinci.c 	if (dspi->bytes_per_word == NULL) {
dspi              915 drivers/spi/spi-davinci.c 	dspi->pbase = r->start;
dspi              917 drivers/spi/spi-davinci.c 	dspi->base = devm_ioremap_resource(&pdev->dev, r);
dspi              918 drivers/spi/spi-davinci.c 	if (IS_ERR(dspi->base)) {
dspi              919 drivers/spi/spi-davinci.c 		ret = PTR_ERR(dspi->base);
dspi              923 drivers/spi/spi-davinci.c 	init_completion(&dspi->done);
dspi              930 drivers/spi/spi-davinci.c 	dspi->irq = ret;
dspi              932 drivers/spi/spi-davinci.c 	ret = devm_request_threaded_irq(&pdev->dev, dspi->irq, davinci_spi_irq,
dspi              933 drivers/spi/spi-davinci.c 				dummy_thread_fn, 0, dev_name(&pdev->dev), dspi);
dspi              937 drivers/spi/spi-davinci.c 	dspi->bitbang.master = master;
dspi              939 drivers/spi/spi-davinci.c 	dspi->clk = devm_clk_get(&pdev->dev, NULL);
dspi              940 drivers/spi/spi-davinci.c 	if (IS_ERR(dspi->clk)) {
dspi              944 drivers/spi/spi-davinci.c 	ret = clk_prepare_enable(dspi->clk);
dspi              958 drivers/spi/spi-davinci.c 	dspi->bitbang.chipselect = davinci_spi_chipselect;
dspi              959 drivers/spi/spi-davinci.c 	dspi->bitbang.setup_transfer = davinci_spi_setup_transfer;
dspi              960 drivers/spi/spi-davinci.c 	dspi->prescaler_limit = pdata->prescaler_limit;
dspi              961 drivers/spi/spi-davinci.c 	dspi->version = pdata->version;
dspi              963 drivers/spi/spi-davinci.c 	dspi->bitbang.flags = SPI_NO_CS | SPI_LSB_FIRST | SPI_LOOP | SPI_CS_WORD;
dspi              964 drivers/spi/spi-davinci.c 	if (dspi->version == SPI_VERSION_2)
dspi              965 drivers/spi/spi-davinci.c 		dspi->bitbang.flags |= SPI_READY;
dspi              967 drivers/spi/spi-davinci.c 	dspi->bitbang.txrx_bufs = davinci_spi_bufs;
dspi              969 drivers/spi/spi-davinci.c 	ret = davinci_spi_request_dma(dspi);
dspi              974 drivers/spi/spi-davinci.c 		dspi->dma_rx = NULL;
dspi              975 drivers/spi/spi-davinci.c 		dspi->dma_tx = NULL;
dspi              978 drivers/spi/spi-davinci.c 	dspi->get_rx = davinci_spi_rx_buf_u8;
dspi              979 drivers/spi/spi-davinci.c 	dspi->get_tx = davinci_spi_tx_buf_u8;
dspi              982 drivers/spi/spi-davinci.c 	iowrite32(0, dspi->base + SPIGCR0);
dspi              984 drivers/spi/spi-davinci.c 	iowrite32(1, dspi->base + SPIGCR0);
dspi              988 drivers/spi/spi-davinci.c 	iowrite32(spipc0, dspi->base + SPIPC0);
dspi              991 drivers/spi/spi-davinci.c 		iowrite32(SPI_INTLVL_1, dspi->base + SPILVL);
dspi              993 drivers/spi/spi-davinci.c 		iowrite32(SPI_INTLVL_0, dspi->base + SPILVL);
dspi              995 drivers/spi/spi-davinci.c 	iowrite32(CS_DEFAULT, dspi->base + SPIDEF);
dspi              998 drivers/spi/spi-davinci.c 	set_io_bits(dspi->base + SPIGCR1, SPIGCR1_CLKMOD_MASK);
dspi              999 drivers/spi/spi-davinci.c 	set_io_bits(dspi->base + SPIGCR1, SPIGCR1_MASTER_MASK);
dspi             1000 drivers/spi/spi-davinci.c 	set_io_bits(dspi->base + SPIGCR1, SPIGCR1_POWERDOWN_MASK);
dspi             1002 drivers/spi/spi-davinci.c 	ret = spi_bitbang_start(&dspi->bitbang);
dspi             1006 drivers/spi/spi-davinci.c 	dev_info(&pdev->dev, "Controller at 0x%p\n", dspi->base);
dspi             1011 drivers/spi/spi-davinci.c 	if (dspi->dma_rx) {
dspi             1012 drivers/spi/spi-davinci.c 		dma_release_channel(dspi->dma_rx);
dspi             1013 drivers/spi/spi-davinci.c 		dma_release_channel(dspi->dma_tx);
dspi             1016 drivers/spi/spi-davinci.c 	clk_disable_unprepare(dspi->clk);
dspi             1034 drivers/spi/spi-davinci.c 	struct davinci_spi *dspi;
dspi             1038 drivers/spi/spi-davinci.c 	dspi = spi_master_get_devdata(master);
dspi             1040 drivers/spi/spi-davinci.c 	spi_bitbang_stop(&dspi->bitbang);
dspi             1042 drivers/spi/spi-davinci.c 	clk_disable_unprepare(dspi->clk);
dspi             1045 drivers/spi/spi-davinci.c 	if (dspi->dma_rx) {
dspi             1046 drivers/spi/spi-davinci.c 		dma_release_channel(dspi->dma_rx);
dspi             1047 drivers/spi/spi-davinci.c 		dma_release_channel(dspi->dma_tx);
dspi              200 drivers/spi/spi-fsl-dspi.c static u32 dspi_pop_tx(struct fsl_dspi *dspi)
dspi              204 drivers/spi/spi-fsl-dspi.c 	if (dspi->tx) {
dspi              205 drivers/spi/spi-fsl-dspi.c 		if (dspi->bytes_per_word == 1)
dspi              206 drivers/spi/spi-fsl-dspi.c 			txdata = *(u8 *)dspi->tx;
dspi              207 drivers/spi/spi-fsl-dspi.c 		else if (dspi->bytes_per_word == 2)
dspi              208 drivers/spi/spi-fsl-dspi.c 			txdata = *(u16 *)dspi->tx;
dspi              210 drivers/spi/spi-fsl-dspi.c 			txdata = *(u32 *)dspi->tx;
dspi              211 drivers/spi/spi-fsl-dspi.c 		dspi->tx += dspi->bytes_per_word;
dspi              213 drivers/spi/spi-fsl-dspi.c 	dspi->len -= dspi->bytes_per_word;
dspi              217 drivers/spi/spi-fsl-dspi.c static u32 dspi_pop_tx_pushr(struct fsl_dspi *dspi)
dspi              219 drivers/spi/spi-fsl-dspi.c 	u16 cmd = dspi->tx_cmd, data = dspi_pop_tx(dspi);
dspi              221 drivers/spi/spi-fsl-dspi.c 	if (spi_controller_is_slave(dspi->ctlr))
dspi              224 drivers/spi/spi-fsl-dspi.c 	if (dspi->len > 0)
dspi              229 drivers/spi/spi-fsl-dspi.c static void dspi_push_rx(struct fsl_dspi *dspi, u32 rxdata)
dspi              231 drivers/spi/spi-fsl-dspi.c 	if (!dspi->rx)
dspi              235 drivers/spi/spi-fsl-dspi.c 	rxdata &= (1 << dspi->bits_per_word) - 1;
dspi              237 drivers/spi/spi-fsl-dspi.c 	if (dspi->bytes_per_word == 1)
dspi              238 drivers/spi/spi-fsl-dspi.c 		*(u8 *)dspi->rx = rxdata;
dspi              239 drivers/spi/spi-fsl-dspi.c 	else if (dspi->bytes_per_word == 2)
dspi              240 drivers/spi/spi-fsl-dspi.c 		*(u16 *)dspi->rx = rxdata;
dspi              242 drivers/spi/spi-fsl-dspi.c 		*(u32 *)dspi->rx = rxdata;
dspi              243 drivers/spi/spi-fsl-dspi.c 	dspi->rx += dspi->bytes_per_word;
dspi              248 drivers/spi/spi-fsl-dspi.c 	struct fsl_dspi *dspi = arg;
dspi              249 drivers/spi/spi-fsl-dspi.c 	struct fsl_dspi_dma *dma = dspi->dma;
dspi              256 drivers/spi/spi-fsl-dspi.c 	struct fsl_dspi *dspi = arg;
dspi              257 drivers/spi/spi-fsl-dspi.c 	struct fsl_dspi_dma *dma = dspi->dma;
dspi              260 drivers/spi/spi-fsl-dspi.c 	if (dspi->rx) {
dspi              262 drivers/spi/spi-fsl-dspi.c 			dspi_push_rx(dspi, dspi->dma->rx_dma_buf[i]);
dspi              268 drivers/spi/spi-fsl-dspi.c static int dspi_next_xfer_dma_submit(struct fsl_dspi *dspi)
dspi              270 drivers/spi/spi-fsl-dspi.c 	struct device *dev = &dspi->pdev->dev;
dspi              271 drivers/spi/spi-fsl-dspi.c 	struct fsl_dspi_dma *dma = dspi->dma;
dspi              276 drivers/spi/spi-fsl-dspi.c 		dspi->dma->tx_dma_buf[i] = dspi_pop_tx_pushr(dspi);
dspi              290 drivers/spi/spi-fsl-dspi.c 	dma->tx_desc->callback_param = dspi;
dspi              308 drivers/spi/spi-fsl-dspi.c 	dma->rx_desc->callback_param = dspi;
dspi              314 drivers/spi/spi-fsl-dspi.c 	reinit_completion(&dspi->dma->cmd_rx_complete);
dspi              315 drivers/spi/spi-fsl-dspi.c 	reinit_completion(&dspi->dma->cmd_tx_complete);
dspi              320 drivers/spi/spi-fsl-dspi.c 	if (spi_controller_is_slave(dspi->ctlr)) {
dspi              321 drivers/spi/spi-fsl-dspi.c 		wait_for_completion_interruptible(&dspi->dma->cmd_rx_complete);
dspi              325 drivers/spi/spi-fsl-dspi.c 	time_left = wait_for_completion_timeout(&dspi->dma->cmd_tx_complete,
dspi              334 drivers/spi/spi-fsl-dspi.c 	time_left = wait_for_completion_timeout(&dspi->dma->cmd_rx_complete,
dspi              346 drivers/spi/spi-fsl-dspi.c static int dspi_dma_xfer(struct fsl_dspi *dspi)
dspi              348 drivers/spi/spi-fsl-dspi.c 	struct spi_message *message = dspi->cur_msg;
dspi              349 drivers/spi/spi-fsl-dspi.c 	struct device *dev = &dspi->pdev->dev;
dspi              350 drivers/spi/spi-fsl-dspi.c 	struct fsl_dspi_dma *dma = dspi->dma;
dspi              355 drivers/spi/spi-fsl-dspi.c 	curr_remaining_bytes = dspi->len;
dspi              360 drivers/spi/spi-fsl-dspi.c 			/ dspi->bytes_per_word;
dspi              364 drivers/spi/spi-fsl-dspi.c 		ret = dspi_next_xfer_dma_submit(dspi);
dspi              371 drivers/spi/spi-fsl-dspi.c 				dma->curr_xfer_len * dspi->bytes_per_word;
dspi              383 drivers/spi/spi-fsl-dspi.c static int dspi_request_dma(struct fsl_dspi *dspi, phys_addr_t phy_addr)
dspi              385 drivers/spi/spi-fsl-dspi.c 	struct device *dev = &dspi->pdev->dev;
dspi              445 drivers/spi/spi-fsl-dspi.c 	dspi->dma = dma;
dspi              463 drivers/spi/spi-fsl-dspi.c 	dspi->dma = NULL;
dspi              468 drivers/spi/spi-fsl-dspi.c static void dspi_release_dma(struct fsl_dspi *dspi)
dspi              470 drivers/spi/spi-fsl-dspi.c 	struct fsl_dspi_dma *dma = dspi->dma;
dspi              471 drivers/spi/spi-fsl-dspi.c 	struct device *dev = &dspi->pdev->dev;
dspi              560 drivers/spi/spi-fsl-dspi.c static void fifo_write(struct fsl_dspi *dspi)
dspi              562 drivers/spi/spi-fsl-dspi.c 	regmap_write(dspi->regmap, SPI_PUSHR, dspi_pop_tx_pushr(dspi));
dspi              565 drivers/spi/spi-fsl-dspi.c static void cmd_fifo_write(struct fsl_dspi *dspi)
dspi              567 drivers/spi/spi-fsl-dspi.c 	u16 cmd = dspi->tx_cmd;
dspi              569 drivers/spi/spi-fsl-dspi.c 	if (dspi->len > 0)
dspi              571 drivers/spi/spi-fsl-dspi.c 	regmap_write(dspi->regmap_pushr, PUSHR_CMD, cmd);
dspi              574 drivers/spi/spi-fsl-dspi.c static void tx_fifo_write(struct fsl_dspi *dspi, u16 txdata)
dspi              576 drivers/spi/spi-fsl-dspi.c 	regmap_write(dspi->regmap_pushr, PUSHR_TX, txdata);
dspi              579 drivers/spi/spi-fsl-dspi.c static void dspi_tcfq_write(struct fsl_dspi *dspi)
dspi              582 drivers/spi/spi-fsl-dspi.c 	dspi->tx_cmd |= SPI_PUSHR_CMD_CTCNT;
dspi              584 drivers/spi/spi-fsl-dspi.c 	if (dspi->devtype_data->xspi_mode && dspi->bits_per_word > 16) {
dspi              588 drivers/spi/spi-fsl-dspi.c 		u32 data = dspi_pop_tx(dspi);
dspi              590 drivers/spi/spi-fsl-dspi.c 		cmd_fifo_write(dspi);
dspi              591 drivers/spi/spi-fsl-dspi.c 		tx_fifo_write(dspi, data & 0xFFFF);
dspi              592 drivers/spi/spi-fsl-dspi.c 		tx_fifo_write(dspi, data >> 16);
dspi              597 drivers/spi/spi-fsl-dspi.c 		fifo_write(dspi);
dspi              601 drivers/spi/spi-fsl-dspi.c static u32 fifo_read(struct fsl_dspi *dspi)
dspi              605 drivers/spi/spi-fsl-dspi.c 	regmap_read(dspi->regmap, SPI_POPR, &rxdata);
dspi              609 drivers/spi/spi-fsl-dspi.c static void dspi_tcfq_read(struct fsl_dspi *dspi)
dspi              611 drivers/spi/spi-fsl-dspi.c 	dspi_push_rx(dspi, fifo_read(dspi));
dspi              614 drivers/spi/spi-fsl-dspi.c static void dspi_eoq_write(struct fsl_dspi *dspi)
dspi              617 drivers/spi/spi-fsl-dspi.c 	u16 xfer_cmd = dspi->tx_cmd;
dspi              620 drivers/spi/spi-fsl-dspi.c 	while (dspi->len && fifo_size--) {
dspi              621 drivers/spi/spi-fsl-dspi.c 		dspi->tx_cmd = xfer_cmd;
dspi              623 drivers/spi/spi-fsl-dspi.c 		if (dspi->len == dspi->bytes_per_word || fifo_size == 0)
dspi              624 drivers/spi/spi-fsl-dspi.c 			dspi->tx_cmd |= SPI_PUSHR_CMD_EOQ;
dspi              627 drivers/spi/spi-fsl-dspi.c 			dspi->tx_cmd |= SPI_PUSHR_CMD_CTCNT;
dspi              629 drivers/spi/spi-fsl-dspi.c 		fifo_write(dspi);
dspi              633 drivers/spi/spi-fsl-dspi.c static void dspi_eoq_read(struct fsl_dspi *dspi)
dspi              638 drivers/spi/spi-fsl-dspi.c 	while ((dspi->rx < dspi->rx_end) && fifo_size--)
dspi              639 drivers/spi/spi-fsl-dspi.c 		dspi_push_rx(dspi, fifo_read(dspi));
dspi              642 drivers/spi/spi-fsl-dspi.c static int dspi_rxtx(struct fsl_dspi *dspi)
dspi              644 drivers/spi/spi-fsl-dspi.c 	struct spi_message *msg = dspi->cur_msg;
dspi              652 drivers/spi/spi-fsl-dspi.c 	regmap_read(dspi->regmap, SPI_TCR, &spi_tcr);
dspi              655 drivers/spi/spi-fsl-dspi.c 	msg->actual_length += spi_tcnt * dspi->bytes_per_word;
dspi              657 drivers/spi/spi-fsl-dspi.c 	trans_mode = dspi->devtype_data->trans_mode;
dspi              659 drivers/spi/spi-fsl-dspi.c 		dspi_eoq_read(dspi);
dspi              661 drivers/spi/spi-fsl-dspi.c 		dspi_tcfq_read(dspi);
dspi              663 drivers/spi/spi-fsl-dspi.c 	if (!dspi->len)
dspi              668 drivers/spi/spi-fsl-dspi.c 		dspi_eoq_write(dspi);
dspi              670 drivers/spi/spi-fsl-dspi.c 		dspi_tcfq_write(dspi);
dspi              675 drivers/spi/spi-fsl-dspi.c static int dspi_poll(struct fsl_dspi *dspi)
dspi              681 drivers/spi/spi-fsl-dspi.c 		regmap_read(dspi->regmap, SPI_SR, &spi_sr);
dspi              682 drivers/spi/spi-fsl-dspi.c 		regmap_write(dspi->regmap, SPI_SR, spi_sr);
dspi              691 drivers/spi/spi-fsl-dspi.c 	return dspi_rxtx(dspi);
dspi              696 drivers/spi/spi-fsl-dspi.c 	struct fsl_dspi *dspi = (struct fsl_dspi *)dev_id;
dspi              699 drivers/spi/spi-fsl-dspi.c 	regmap_read(dspi->regmap, SPI_SR, &spi_sr);
dspi              700 drivers/spi/spi-fsl-dspi.c 	regmap_write(dspi->regmap, SPI_SR, spi_sr);
dspi              705 drivers/spi/spi-fsl-dspi.c 	if (dspi_rxtx(dspi) == 0)
dspi              706 drivers/spi/spi-fsl-dspi.c 		complete(&dspi->xfer_done);
dspi              714 drivers/spi/spi-fsl-dspi.c 	struct fsl_dspi *dspi = spi_controller_get_devdata(ctlr);
dspi              723 drivers/spi/spi-fsl-dspi.c 		dspi->cur_transfer = transfer;
dspi              724 drivers/spi/spi-fsl-dspi.c 		dspi->cur_msg = message;
dspi              725 drivers/spi/spi-fsl-dspi.c 		dspi->cur_chip = spi_get_ctldata(spi);
dspi              727 drivers/spi/spi-fsl-dspi.c 		dspi->tx_cmd = SPI_PUSHR_CMD_CTAS(0) |
dspi              729 drivers/spi/spi-fsl-dspi.c 		if (list_is_last(&dspi->cur_transfer->transfer_list,
dspi              730 drivers/spi/spi-fsl-dspi.c 				 &dspi->cur_msg->transfers)) {
dspi              735 drivers/spi/spi-fsl-dspi.c 				dspi->tx_cmd |= SPI_PUSHR_CMD_CONT;
dspi              743 drivers/spi/spi-fsl-dspi.c 				dspi->tx_cmd |= SPI_PUSHR_CMD_CONT;
dspi              746 drivers/spi/spi-fsl-dspi.c 		dspi->void_write_data = dspi->cur_chip->void_write_data;
dspi              748 drivers/spi/spi-fsl-dspi.c 		dspi->tx = transfer->tx_buf;
dspi              749 drivers/spi/spi-fsl-dspi.c 		dspi->rx = transfer->rx_buf;
dspi              750 drivers/spi/spi-fsl-dspi.c 		dspi->rx_end = dspi->rx + transfer->len;
dspi              751 drivers/spi/spi-fsl-dspi.c 		dspi->len = transfer->len;
dspi              753 drivers/spi/spi-fsl-dspi.c 		dspi->bits_per_word = transfer->bits_per_word;
dspi              755 drivers/spi/spi-fsl-dspi.c 			dspi->bytes_per_word = 1;
dspi              757 drivers/spi/spi-fsl-dspi.c 			dspi->bytes_per_word = 2;
dspi              759 drivers/spi/spi-fsl-dspi.c 			dspi->bytes_per_word = 4;
dspi              761 drivers/spi/spi-fsl-dspi.c 		regmap_update_bits(dspi->regmap, SPI_MCR,
dspi              764 drivers/spi/spi-fsl-dspi.c 		regmap_write(dspi->regmap, SPI_CTAR(0),
dspi              765 drivers/spi/spi-fsl-dspi.c 			     dspi->cur_chip->ctar_val |
dspi              767 drivers/spi/spi-fsl-dspi.c 		if (dspi->devtype_data->xspi_mode)
dspi              768 drivers/spi/spi-fsl-dspi.c 			regmap_write(dspi->regmap, SPI_CTARE(0),
dspi              772 drivers/spi/spi-fsl-dspi.c 		trans_mode = dspi->devtype_data->trans_mode;
dspi              775 drivers/spi/spi-fsl-dspi.c 			regmap_write(dspi->regmap, SPI_RSER, SPI_RSER_EOQFE);
dspi              776 drivers/spi/spi-fsl-dspi.c 			dspi_eoq_write(dspi);
dspi              779 drivers/spi/spi-fsl-dspi.c 			regmap_write(dspi->regmap, SPI_RSER, SPI_RSER_TCFQE);
dspi              780 drivers/spi/spi-fsl-dspi.c 			dspi_tcfq_write(dspi);
dspi              783 drivers/spi/spi-fsl-dspi.c 			regmap_write(dspi->regmap, SPI_RSER,
dspi              786 drivers/spi/spi-fsl-dspi.c 			status = dspi_dma_xfer(dspi);
dspi              789 drivers/spi/spi-fsl-dspi.c 			dev_err(&dspi->pdev->dev, "unsupported trans_mode %u\n",
dspi              795 drivers/spi/spi-fsl-dspi.c 		if (!dspi->irq) {
dspi              797 drivers/spi/spi-fsl-dspi.c 				status = dspi_poll(dspi);
dspi              800 drivers/spi/spi-fsl-dspi.c 			wait_for_completion(&dspi->xfer_done);
dspi              801 drivers/spi/spi-fsl-dspi.c 			reinit_completion(&dspi->xfer_done);
dspi              817 drivers/spi/spi-fsl-dspi.c 	struct fsl_dspi *dspi = spi_controller_get_devdata(spi->controller);
dspi              833 drivers/spi/spi-fsl-dspi.c 	pdata = dev_get_platdata(&dspi->pdev->dev);
dspi              848 drivers/spi/spi-fsl-dspi.c 	clkrate = clk_get_rate(dspi->clk);
dspi              863 drivers/spi/spi-fsl-dspi.c 	if (!spi_controller_is_slave(dspi->ctlr)) {
dspi              902 drivers/spi/spi-fsl-dspi.c 	struct fsl_dspi *dspi = spi_controller_get_devdata(ctlr);
dspi              905 drivers/spi/spi-fsl-dspi.c 	clk_disable_unprepare(dspi->clk);
dspi              915 drivers/spi/spi-fsl-dspi.c 	struct fsl_dspi *dspi = spi_controller_get_devdata(ctlr);
dspi              920 drivers/spi/spi-fsl-dspi.c 	ret = clk_prepare_enable(dspi->clk);
dspi              979 drivers/spi/spi-fsl-dspi.c static void dspi_init(struct fsl_dspi *dspi)
dspi              983 drivers/spi/spi-fsl-dspi.c 	if (dspi->devtype_data->xspi_mode)
dspi              985 drivers/spi/spi-fsl-dspi.c 	if (!spi_controller_is_slave(dspi->ctlr))
dspi              988 drivers/spi/spi-fsl-dspi.c 	regmap_write(dspi->regmap, SPI_MCR, mcr);
dspi              989 drivers/spi/spi-fsl-dspi.c 	regmap_write(dspi->regmap, SPI_SR, SPI_SR_CLEAR);
dspi              990 drivers/spi/spi-fsl-dspi.c 	if (dspi->devtype_data->xspi_mode)
dspi              991 drivers/spi/spi-fsl-dspi.c 		regmap_write(dspi->regmap, SPI_CTARE(0),
dspi             1002 drivers/spi/spi-fsl-dspi.c 	struct fsl_dspi *dspi;
dspi             1010 drivers/spi/spi-fsl-dspi.c 	dspi = spi_controller_get_devdata(ctlr);
dspi             1011 drivers/spi/spi-fsl-dspi.c 	dspi->pdev = pdev;
dspi             1012 drivers/spi/spi-fsl-dspi.c 	dspi->ctlr = ctlr;
dspi             1026 drivers/spi/spi-fsl-dspi.c 		dspi->devtype_data = &coldfire_data;
dspi             1046 drivers/spi/spi-fsl-dspi.c 		dspi->devtype_data = of_device_get_match_data(&pdev->dev);
dspi             1047 drivers/spi/spi-fsl-dspi.c 		if (!dspi->devtype_data) {
dspi             1054 drivers/spi/spi-fsl-dspi.c 	if (dspi->devtype_data->xspi_mode)
dspi             1066 drivers/spi/spi-fsl-dspi.c 	if (dspi->devtype_data->xspi_mode)
dspi             1070 drivers/spi/spi-fsl-dspi.c 	dspi->regmap = devm_regmap_init_mmio(&pdev->dev, base, regmap_config);
dspi             1071 drivers/spi/spi-fsl-dspi.c 	if (IS_ERR(dspi->regmap)) {
dspi             1073 drivers/spi/spi-fsl-dspi.c 				PTR_ERR(dspi->regmap));
dspi             1074 drivers/spi/spi-fsl-dspi.c 		ret = PTR_ERR(dspi->regmap);
dspi             1078 drivers/spi/spi-fsl-dspi.c 	if (dspi->devtype_data->xspi_mode) {
dspi             1079 drivers/spi/spi-fsl-dspi.c 		dspi->regmap_pushr = devm_regmap_init_mmio(
dspi             1082 drivers/spi/spi-fsl-dspi.c 		if (IS_ERR(dspi->regmap_pushr)) {
dspi             1085 drivers/spi/spi-fsl-dspi.c 				PTR_ERR(dspi->regmap_pushr));
dspi             1086 drivers/spi/spi-fsl-dspi.c 			ret = PTR_ERR(dspi->regmap_pushr);
dspi             1091 drivers/spi/spi-fsl-dspi.c 	dspi->clk = devm_clk_get(&pdev->dev, "dspi");
dspi             1092 drivers/spi/spi-fsl-dspi.c 	if (IS_ERR(dspi->clk)) {
dspi             1093 drivers/spi/spi-fsl-dspi.c 		ret = PTR_ERR(dspi->clk);
dspi             1097 drivers/spi/spi-fsl-dspi.c 	ret = clk_prepare_enable(dspi->clk);
dspi             1101 drivers/spi/spi-fsl-dspi.c 	dspi_init(dspi);
dspi             1103 drivers/spi/spi-fsl-dspi.c 	dspi->irq = platform_get_irq(pdev, 0);
dspi             1104 drivers/spi/spi-fsl-dspi.c 	if (dspi->irq <= 0) {
dspi             1107 drivers/spi/spi-fsl-dspi.c 		dspi->irq = 0;
dspi             1111 drivers/spi/spi-fsl-dspi.c 	ret = devm_request_irq(&pdev->dev, dspi->irq, dspi_interrupt,
dspi             1112 drivers/spi/spi-fsl-dspi.c 			       IRQF_SHARED, pdev->name, dspi);
dspi             1118 drivers/spi/spi-fsl-dspi.c 	init_completion(&dspi->xfer_done);
dspi             1121 drivers/spi/spi-fsl-dspi.c 	if (dspi->devtype_data->trans_mode == DSPI_DMA_MODE) {
dspi             1122 drivers/spi/spi-fsl-dspi.c 		ret = dspi_request_dma(dspi, res->start);
dspi             1130 drivers/spi/spi-fsl-dspi.c 		clk_get_rate(dspi->clk) / dspi->devtype_data->max_clock_factor;
dspi             1143 drivers/spi/spi-fsl-dspi.c 	clk_disable_unprepare(dspi->clk);
dspi             1153 drivers/spi/spi-fsl-dspi.c 	struct fsl_dspi *dspi = spi_controller_get_devdata(ctlr);
dspi             1156 drivers/spi/spi-fsl-dspi.c 	dspi_release_dma(dspi);
dspi             1157 drivers/spi/spi-fsl-dspi.c 	clk_disable_unprepare(dspi->clk);
dspi             1158 drivers/spi/spi-fsl-dspi.c 	spi_unregister_controller(dspi->ctlr);