u8 *rx_ptr; /* pointer in the Tx buffer */
const u8 *tx_ptr; /* pointer in the Rx buffer */
int remaining_words; /* the number of words left to transfer */
- u8 bits_per_word;
+ u8 bytes_per_word;
int buffer_size; /* buffer size in words */
u32 cs_inactive; /* Level of the CS pins when inactive*/
unsigned int (*read_fn)(void __iomem *);
return;
}
xspi->write_fn(*(u32 *)(xspi->tx_ptr), xspi->regs + XSPI_TXD_OFFSET);
- xspi->tx_ptr += xspi->bits_per_word / 8;
+ xspi->tx_ptr += xspi->bytes_per_word;
}
static void xilinx_spi_rx(struct xilinx_spi *xspi)
if (!xspi->rx_ptr)
return;
- switch (xspi->bits_per_word) {
- case 8:
+ switch (xspi->bytes_per_word) {
+ case 1:
*(u8 *)(xspi->rx_ptr) = data;
break;
- case 16:
+ case 2:
*(u16 *)(xspi->rx_ptr) = data;
break;
- case 32:
+ case 4:
*(u32 *)(xspi->rx_ptr) = data;
break;
}
- xspi->rx_ptr += xspi->bits_per_word / 8;
+ xspi->rx_ptr += xspi->bytes_per_word;
}
static void xspi_init_hw(struct xilinx_spi *xspi)
xspi->tx_ptr = t->tx_buf;
xspi->rx_ptr = t->rx_buf;
- xspi->remaining_words = (t->len * 8) / xspi->bits_per_word;
+ xspi->remaining_words = t->len / xspi->bytes_per_word;
reinit_completion(&xspi->done);
while (xspi->remaining_words) {
}
master->bits_per_word_mask = SPI_BPW_MASK(bits_per_word);
- xspi->bits_per_word = bits_per_word;
+ xspi->bytes_per_word = bits_per_word / 8;
xspi->buffer_size = xilinx_spi_find_buffer_size(xspi);
xspi->irq = platform_get_irq(pdev, 0);