Lines Matching full:fifo
60 struct mpc512x_psc_fifo __iomem *fifo; member
153 struct mpc512x_psc_fifo __iomem *fifo = mps->fifo; in mpc512x_psc_spi_transfer_rxtx() local
173 fifosz = MPC512x_PSC_FIFO_SZ(in_be32(&fifo->txsz)); in mpc512x_psc_spi_transfer_rxtx()
175 fifosz = MPC512x_PSC_FIFO_SZ(in_be32(&fifo->rxsz)); in mpc512x_psc_spi_transfer_rxtx()
176 fifosz -= in_be32(&fifo->rxcnt) + 1; in mpc512x_psc_spi_transfer_rxtx()
180 /* fill the TX FIFO */ in mpc512x_psc_spi_transfer_rxtx()
184 setbits32(&fifo->txcmd, in mpc512x_psc_spi_transfer_rxtx()
186 out_8(&fifo->txdata_8, data); in mpc512x_psc_spi_transfer_rxtx()
190 /* have the ISR trigger when the TX FIFO is empty */ in mpc512x_psc_spi_transfer_rxtx()
192 out_be32(&fifo->txisr, MPC512x_PSC_FIFO_EMPTY); in mpc512x_psc_spi_transfer_rxtx()
193 out_be32(&fifo->tximr, MPC512x_PSC_FIFO_EMPTY); in mpc512x_psc_spi_transfer_rxtx()
198 * consume as much RX data as the FIFO holds, while we in mpc512x_psc_spi_transfer_rxtx()
210 * grab whatever was in the FIFO when we started in mpc512x_psc_spi_transfer_rxtx()
212 * the FIFO while we read from it -- we'll return in mpc512x_psc_spi_transfer_rxtx()
216 fifosz = in_be32(&fifo->rxcnt); in mpc512x_psc_spi_transfer_rxtx()
219 data = in_8(&fifo->rxdata_8); in mpc512x_psc_spi_transfer_rxtx()
269 rxcount = in_be32(&fifo->rxcnt); in mpc512x_psc_spi_transfer_rxtx()
271 "short xfer, missing %zd RX bytes, FIFO level %zd\n", in mpc512x_psc_spi_transfer_rxtx()
278 * into a NOP (except for the FIFO level fetch) in mpc512x_psc_spi_transfer_rxtx()
281 while (in_be32(&fifo->rxcnt)) in mpc512x_psc_spi_transfer_rxtx()
282 in_8(&fifo->rxdata_8); in mpc512x_psc_spi_transfer_rxtx()
352 struct mpc512x_psc_fifo __iomem *fifo = mps->fifo; in mpc512x_psc_spi_unprep_xfer_hw() local
356 /* disable transmitter/receiver and fifo interrupt */ in mpc512x_psc_spi_unprep_xfer_hw()
358 out_be32(&fifo->tximr, 0); in mpc512x_psc_spi_unprep_xfer_hw()
407 struct mpc512x_psc_fifo __iomem *fifo = mps->fifo; in mpc512x_psc_spi_port_config() local
418 /* Disable psc interrupts all useful interrupts are in fifo */ in mpc512x_psc_spi_port_config()
421 /* Disable fifo interrupts, will be enabled later */ in mpc512x_psc_spi_port_config()
422 out_be32(&fifo->tximr, 0); in mpc512x_psc_spi_port_config()
423 out_be32(&fifo->rximr, 0); in mpc512x_psc_spi_port_config()
425 /* Setup fifo slice address and size */ in mpc512x_psc_spi_port_config()
426 /*out_be32(&fifo->txsz, 0x0fe00004);*/ in mpc512x_psc_spi_port_config()
427 /*out_be32(&fifo->rxsz, 0x0ff00004);*/ in mpc512x_psc_spi_port_config()
449 out_be32(&fifo->rxalarm, 0xfff); in mpc512x_psc_spi_port_config()
450 out_be32(&fifo->txalarm, 0); in mpc512x_psc_spi_port_config()
452 /* Enable FIFO slices for Rx/Tx */ in mpc512x_psc_spi_port_config()
453 out_be32(&fifo->rxcmd, in mpc512x_psc_spi_port_config()
455 out_be32(&fifo->txcmd, in mpc512x_psc_spi_port_config()
466 struct mpc512x_psc_fifo __iomem *fifo = mps->fifo; in mpc512x_psc_spi_isr() local
469 if (in_be32(&fifo->txisr) & in mpc512x_psc_spi_isr()
470 in_be32(&fifo->tximr) & MPC512x_PSC_FIFO_EMPTY) { in mpc512x_psc_spi_isr()
471 out_be32(&fifo->txisr, MPC512x_PSC_FIFO_EMPTY); in mpc512x_psc_spi_isr()
472 out_be32(&fifo->tximr, 0); in mpc512x_psc_spi_isr()
526 mps->fifo = in mpc512x_psc_spi_do_probe()