Lines Matching full:fifo
39 struct mpc512x_psc_fifo __iomem *fifo; member
139 struct mpc512x_psc_fifo __iomem *fifo = mps->fifo; in mpc512x_psc_spi_transfer_rxtx() local
160 * depends on the fifo size. in mpc512x_psc_spi_transfer_rxtx()
162 fifosz = MPC512x_PSC_FIFO_SZ(in_be32(&fifo->txsz)); in mpc512x_psc_spi_transfer_rxtx()
168 setbits32(&fifo->txcmd, MPC512x_PSC_FIFO_EOF); in mpc512x_psc_spi_transfer_rxtx()
169 out_8(&fifo->txdata_8, data); in mpc512x_psc_spi_transfer_rxtx()
175 /* interrupt on tx fifo empty */ in mpc512x_psc_spi_transfer_rxtx()
176 out_be32(&fifo->txisr, MPC512x_PSC_FIFO_EMPTY); in mpc512x_psc_spi_transfer_rxtx()
177 out_be32(&fifo->tximr, MPC512x_PSC_FIFO_EMPTY); in mpc512x_psc_spi_transfer_rxtx()
187 /* rx fifo should have count bytes in it */ in mpc512x_psc_spi_transfer_rxtx()
188 rxcount = in_be32(&fifo->rxcnt); in mpc512x_psc_spi_transfer_rxtx()
192 rxcount = in_be32(&fifo->rxcnt); in mpc512x_psc_spi_transfer_rxtx()
194 dev_warn(&spi->dev, "expected %d bytes in rx fifo " in mpc512x_psc_spi_transfer_rxtx()
200 data = in_8(&fifo->rxdata_8); in mpc512x_psc_spi_transfer_rxtx()
204 while (in_be32(&fifo->rxcnt)) { in mpc512x_psc_spi_transfer_rxtx()
205 in_8(&fifo->rxdata_8); in mpc512x_psc_spi_transfer_rxtx()
211 /* disable transmiter/receiver and fifo interrupt */ in mpc512x_psc_spi_transfer_rxtx()
213 out_be32(&fifo->tximr, 0); in mpc512x_psc_spi_transfer_rxtx()
329 struct mpc512x_psc_fifo __iomem *fifo = mps->fifo; in mpc512x_psc_spi_port_config() local
348 /* Disable psc interrupts all useful interrupts are in fifo */ in mpc512x_psc_spi_port_config()
351 /* Disable fifo interrupts, will be enabled later */ in mpc512x_psc_spi_port_config()
352 out_be32(&fifo->tximr, 0); in mpc512x_psc_spi_port_config()
353 out_be32(&fifo->rximr, 0); in mpc512x_psc_spi_port_config()
355 /* Setup fifo slice address and size */ in mpc512x_psc_spi_port_config()
356 /*out_be32(&fifo->txsz, 0x0fe00004);*/ in mpc512x_psc_spi_port_config()
357 /*out_be32(&fifo->rxsz, 0x0ff00004);*/ in mpc512x_psc_spi_port_config()
378 out_be32(&fifo->rxalarm, 0xfff); in mpc512x_psc_spi_port_config()
379 out_be32(&fifo->txalarm, 0); in mpc512x_psc_spi_port_config()
381 /* Enable FIFO slices for Rx/Tx */ in mpc512x_psc_spi_port_config()
382 out_be32(&fifo->rxcmd, in mpc512x_psc_spi_port_config()
384 out_be32(&fifo->txcmd, in mpc512x_psc_spi_port_config()
395 struct mpc512x_psc_fifo __iomem *fifo = mps->fifo; in mpc512x_psc_spi_isr() local
398 if (in_be32(&fifo->txisr) & in mpc512x_psc_spi_isr()
399 in_be32(&fifo->tximr) & MPC512x_PSC_FIFO_EMPTY) { in mpc512x_psc_spi_isr()
400 out_be32(&fifo->txisr, MPC512x_PSC_FIFO_EMPTY); in mpc512x_psc_spi_isr()
401 out_be32(&fifo->tximr, 0); in mpc512x_psc_spi_isr()
453 mps->fifo = in mpc512x_psc_spi_do_probe()