Lines Matching full:fifo

55 	struct mpc512x_psc_fifo __iomem *fifo;  member
147 struct mpc512x_psc_fifo __iomem *fifo = mps->fifo; in mpc512x_psc_spi_transfer_rxtx() local
167 fifosz = MPC512x_PSC_FIFO_SZ(in_be32(&fifo->txsz)); in mpc512x_psc_spi_transfer_rxtx()
169 fifosz = MPC512x_PSC_FIFO_SZ(in_be32(&fifo->rxsz)); in mpc512x_psc_spi_transfer_rxtx()
170 fifosz -= in_be32(&fifo->rxcnt) + 1; in mpc512x_psc_spi_transfer_rxtx()
174 /* fill the TX FIFO */ in mpc512x_psc_spi_transfer_rxtx()
178 setbits32(&fifo->txcmd, in mpc512x_psc_spi_transfer_rxtx()
180 out_8(&fifo->txdata_8, data); in mpc512x_psc_spi_transfer_rxtx()
184 /* have the ISR trigger when the TX FIFO is empty */ in mpc512x_psc_spi_transfer_rxtx()
186 out_be32(&fifo->txisr, MPC512x_PSC_FIFO_EMPTY); in mpc512x_psc_spi_transfer_rxtx()
187 out_be32(&fifo->tximr, MPC512x_PSC_FIFO_EMPTY); in mpc512x_psc_spi_transfer_rxtx()
192 * consume as much RX data as the FIFO holds, while we in mpc512x_psc_spi_transfer_rxtx()
204 * grab whatever was in the FIFO when we started in mpc512x_psc_spi_transfer_rxtx()
206 * the FIFO while we read from it -- we'll return in mpc512x_psc_spi_transfer_rxtx()
210 fifosz = in_be32(&fifo->rxcnt); in mpc512x_psc_spi_transfer_rxtx()
213 data = in_8(&fifo->rxdata_8); in mpc512x_psc_spi_transfer_rxtx()
263 rxcount = in_be32(&fifo->rxcnt); in mpc512x_psc_spi_transfer_rxtx()
265 "short xfer, missing %zd RX bytes, FIFO level %zd\n", in mpc512x_psc_spi_transfer_rxtx()
272 * into a NOP (except for the FIFO level fetch) in mpc512x_psc_spi_transfer_rxtx()
275 while (in_be32(&fifo->rxcnt)) in mpc512x_psc_spi_transfer_rxtx()
276 in_8(&fifo->rxdata_8); in mpc512x_psc_spi_transfer_rxtx()
346 struct mpc512x_psc_fifo __iomem *fifo = mps->fifo; in mpc512x_psc_spi_unprep_xfer_hw() local
350 /* disable transmitter/receiver and fifo interrupt */ in mpc512x_psc_spi_unprep_xfer_hw()
352 out_be32(&fifo->tximr, 0); in mpc512x_psc_spi_unprep_xfer_hw()
386 struct mpc512x_psc_fifo __iomem *fifo = mps->fifo; in mpc512x_psc_spi_port_config() local
397 /* Disable psc interrupts all useful interrupts are in fifo */ in mpc512x_psc_spi_port_config()
400 /* Disable fifo interrupts, will be enabled later */ in mpc512x_psc_spi_port_config()
401 out_be32(&fifo->tximr, 0); in mpc512x_psc_spi_port_config()
402 out_be32(&fifo->rximr, 0); in mpc512x_psc_spi_port_config()
404 /* Setup fifo slice address and size */ in mpc512x_psc_spi_port_config()
405 /*out_be32(&fifo->txsz, 0x0fe00004);*/ in mpc512x_psc_spi_port_config()
406 /*out_be32(&fifo->rxsz, 0x0ff00004);*/ in mpc512x_psc_spi_port_config()
428 out_be32(&fifo->rxalarm, 0xfff); in mpc512x_psc_spi_port_config()
429 out_be32(&fifo->txalarm, 0); in mpc512x_psc_spi_port_config()
431 /* Enable FIFO slices for Rx/Tx */ in mpc512x_psc_spi_port_config()
432 out_be32(&fifo->rxcmd, in mpc512x_psc_spi_port_config()
434 out_be32(&fifo->txcmd, in mpc512x_psc_spi_port_config()
445 struct mpc512x_psc_fifo __iomem *fifo = mps->fifo; in mpc512x_psc_spi_isr() local
448 if (in_be32(&fifo->txisr) & in mpc512x_psc_spi_isr()
449 in_be32(&fifo->tximr) & MPC512x_PSC_FIFO_EMPTY) { in mpc512x_psc_spi_isr()
450 out_be32(&fifo->txisr, MPC512x_PSC_FIFO_EMPTY); in mpc512x_psc_spi_isr()
451 out_be32(&fifo->tximr, 0); in mpc512x_psc_spi_isr()
489 mps->fifo = in mpc512x_psc_spi_of_probe()