Lines Matching refs:xspi
46 static inline void xtfpga_spi_wait_busy(struct xtfpga_spi *xspi) in xtfpga_spi_wait_busy() argument
50 for (i = 0; xtfpga_spi_read32(xspi, XTFPGA_SPI_BUSY) && in xtfpga_spi_wait_busy()
59 struct xtfpga_spi *xspi = spi_master_get_devdata(spi->master); in xtfpga_spi_txrx_word() local
61 xspi->data = (xspi->data << bits) | (v & GENMASK(bits - 1, 0)); in xtfpga_spi_txrx_word()
62 xspi->data_sz += bits; in xtfpga_spi_txrx_word()
63 if (xspi->data_sz >= 16) { in xtfpga_spi_txrx_word()
64 xtfpga_spi_write32(xspi, XTFPGA_SPI_DATA, in xtfpga_spi_txrx_word()
65 xspi->data >> (xspi->data_sz - 16)); in xtfpga_spi_txrx_word()
66 xspi->data_sz -= 16; in xtfpga_spi_txrx_word()
67 xtfpga_spi_write32(xspi, XTFPGA_SPI_START, 1); in xtfpga_spi_txrx_word()
68 xtfpga_spi_wait_busy(xspi); in xtfpga_spi_txrx_word()
69 xtfpga_spi_write32(xspi, XTFPGA_SPI_START, 0); in xtfpga_spi_txrx_word()
77 struct xtfpga_spi *xspi = spi_master_get_devdata(spi->master); in xtfpga_spi_chipselect() local
79 WARN_ON(xspi->data_sz != 0); in xtfpga_spi_chipselect()
80 xspi->data_sz = 0; in xtfpga_spi_chipselect()
85 struct xtfpga_spi *xspi; in xtfpga_spi_probe() local
99 xspi = spi_master_get_devdata(master); in xtfpga_spi_probe()
100 xspi->bitbang.master = master; in xtfpga_spi_probe()
101 xspi->bitbang.chipselect = xtfpga_spi_chipselect; in xtfpga_spi_probe()
102 xspi->bitbang.txrx_word[SPI_MODE_0] = xtfpga_spi_txrx_word; in xtfpga_spi_probe()
110 xspi->regs = devm_ioremap_resource(&pdev->dev, mem); in xtfpga_spi_probe()
111 if (IS_ERR(xspi->regs)) { in xtfpga_spi_probe()
112 ret = PTR_ERR(xspi->regs); in xtfpga_spi_probe()
116 xtfpga_spi_write32(xspi, XTFPGA_SPI_START, 0); in xtfpga_spi_probe()
118 if (xtfpga_spi_read32(xspi, XTFPGA_SPI_BUSY)) { in xtfpga_spi_probe()
124 ret = spi_bitbang_start(&xspi->bitbang); in xtfpga_spi_probe()
140 struct xtfpga_spi *xspi = spi_master_get_devdata(master); in xtfpga_spi_remove() local
142 spi_bitbang_stop(&xspi->bitbang); in xtfpga_spi_remove()