Lines Matching full:fifo
59 struct mpc512x_psc_fifo __iomem *fifo; member
163 struct mpc512x_psc_fifo __iomem *fifo = mps->fifo; in mpc512x_psc_spi_transfer_rxtx() local
183 fifosz = MPC512x_PSC_FIFO_SZ(in_be32(&fifo->txsz)); in mpc512x_psc_spi_transfer_rxtx()
185 fifosz = MPC512x_PSC_FIFO_SZ(in_be32(&fifo->rxsz)); in mpc512x_psc_spi_transfer_rxtx()
186 fifosz -= in_be32(&fifo->rxcnt) + 1; in mpc512x_psc_spi_transfer_rxtx()
190 /* fill the TX FIFO */ in mpc512x_psc_spi_transfer_rxtx()
194 setbits32(&fifo->txcmd, in mpc512x_psc_spi_transfer_rxtx()
196 out_8(&fifo->txdata_8, data); in mpc512x_psc_spi_transfer_rxtx()
200 /* have the ISR trigger when the TX FIFO is empty */ in mpc512x_psc_spi_transfer_rxtx()
202 out_be32(&fifo->txisr, MPC512x_PSC_FIFO_EMPTY); in mpc512x_psc_spi_transfer_rxtx()
203 out_be32(&fifo->tximr, MPC512x_PSC_FIFO_EMPTY); in mpc512x_psc_spi_transfer_rxtx()
208 * consume as much RX data as the FIFO holds, while we in mpc512x_psc_spi_transfer_rxtx()
220 * grab whatever was in the FIFO when we started in mpc512x_psc_spi_transfer_rxtx()
222 * the FIFO while we read from it -- we'll return in mpc512x_psc_spi_transfer_rxtx()
226 fifosz = in_be32(&fifo->rxcnt); in mpc512x_psc_spi_transfer_rxtx()
229 data = in_8(&fifo->rxdata_8); in mpc512x_psc_spi_transfer_rxtx()
279 rxcount = in_be32(&fifo->rxcnt); in mpc512x_psc_spi_transfer_rxtx()
281 "short xfer, missing %zd RX bytes, FIFO level %zd\n", in mpc512x_psc_spi_transfer_rxtx()
288 * into a NOP (except for the FIFO level fetch) in mpc512x_psc_spi_transfer_rxtx()
291 while (in_be32(&fifo->rxcnt)) in mpc512x_psc_spi_transfer_rxtx()
292 in_8(&fifo->rxdata_8); in mpc512x_psc_spi_transfer_rxtx()
362 struct mpc512x_psc_fifo __iomem *fifo = mps->fifo; in mpc512x_psc_spi_unprep_xfer_hw() local
366 /* disable transmitter/receiver and fifo interrupt */ in mpc512x_psc_spi_unprep_xfer_hw()
368 out_be32(&fifo->tximr, 0); in mpc512x_psc_spi_unprep_xfer_hw()
402 struct mpc512x_psc_fifo __iomem *fifo = mps->fifo; in mpc512x_psc_spi_port_config() local
413 /* Disable psc interrupts all useful interrupts are in fifo */ in mpc512x_psc_spi_port_config()
416 /* Disable fifo interrupts, will be enabled later */ in mpc512x_psc_spi_port_config()
417 out_be32(&fifo->tximr, 0); in mpc512x_psc_spi_port_config()
418 out_be32(&fifo->rximr, 0); in mpc512x_psc_spi_port_config()
420 /* Setup fifo slice address and size */ in mpc512x_psc_spi_port_config()
421 /*out_be32(&fifo->txsz, 0x0fe00004);*/ in mpc512x_psc_spi_port_config()
422 /*out_be32(&fifo->rxsz, 0x0ff00004);*/ in mpc512x_psc_spi_port_config()
444 out_be32(&fifo->rxalarm, 0xfff); in mpc512x_psc_spi_port_config()
445 out_be32(&fifo->txalarm, 0); in mpc512x_psc_spi_port_config()
447 /* Enable FIFO slices for Rx/Tx */ in mpc512x_psc_spi_port_config()
448 out_be32(&fifo->rxcmd, in mpc512x_psc_spi_port_config()
450 out_be32(&fifo->txcmd, in mpc512x_psc_spi_port_config()
461 struct mpc512x_psc_fifo __iomem *fifo = mps->fifo; in mpc512x_psc_spi_isr() local
464 if (in_be32(&fifo->txisr) & in mpc512x_psc_spi_isr()
465 in_be32(&fifo->tximr) & MPC512x_PSC_FIFO_EMPTY) { in mpc512x_psc_spi_isr()
466 out_be32(&fifo->txisr, MPC512x_PSC_FIFO_EMPTY); in mpc512x_psc_spi_isr()
467 out_be32(&fifo->tximr, 0); in mpc512x_psc_spi_isr()
515 mps->fifo = in mpc512x_psc_spi_do_probe()