Lines Matching refs:mps

42 #define psc_addr(mps, regname) ({					\  argument
44 switch (mps->type) { \
46 struct mpc52xx_psc __iomem *psc = mps->psc; \
51 struct mpc5125_psc __iomem *psc = mps->psc; \
99 struct mpc512x_psc_spi *mps = spi_master_get_devdata(spi->master); in mpc512x_psc_spi_activate_cs() local
105 sicr = in_be32(psc_addr(mps, sicr)); in mpc512x_psc_spi_activate_cs()
122 out_be32(psc_addr(mps, sicr), sicr); in mpc512x_psc_spi_activate_cs()
124 ccr = in_be32(psc_addr(mps, ccr)); in mpc512x_psc_spi_activate_cs()
129 bclkdiv = (mps->mclk_rate / speed) - 1; in mpc512x_psc_spi_activate_cs()
132 out_be32(psc_addr(mps, ccr), ccr); in mpc512x_psc_spi_activate_cs()
133 mps->bits_per_word = cs->bits_per_word; in mpc512x_psc_spi_activate_cs()
135 if (mps->cs_control && gpio_is_valid(spi->cs_gpio)) in mpc512x_psc_spi_activate_cs()
136 mps->cs_control(spi, (spi->mode & SPI_CS_HIGH) ? 1 : 0); in mpc512x_psc_spi_activate_cs()
141 struct mpc512x_psc_spi *mps = spi_master_get_devdata(spi->master); in mpc512x_psc_spi_deactivate_cs() local
143 if (mps->cs_control && gpio_is_valid(spi->cs_gpio)) in mpc512x_psc_spi_deactivate_cs()
144 mps->cs_control(spi, (spi->mode & SPI_CS_HIGH) ? 0 : 1); in mpc512x_psc_spi_deactivate_cs()
156 struct mpc512x_psc_spi *mps = spi_master_get_devdata(spi->master); in mpc512x_psc_spi_transfer_rxtx() local
157 struct mpc512x_psc_fifo __iomem *fifo = mps->fifo; in mpc512x_psc_spi_transfer_rxtx()
195 reinit_completion(&mps->txisrdone); in mpc512x_psc_spi_transfer_rxtx()
198 wait_for_completion(&mps->txisrdone); in mpc512x_psc_spi_transfer_rxtx()
340 struct mpc512x_psc_spi *mps = spi_master_get_devdata(master); in mpc512x_psc_spi_prep_xfer_hw() local
345 in_8(psc_addr(mps, mr2)); in mpc512x_psc_spi_prep_xfer_hw()
346 out_8(psc_addr(mps, mr2), 0x0); in mpc512x_psc_spi_prep_xfer_hw()
349 out_8(psc_addr(mps, command), MPC52xx_PSC_TX_ENABLE | MPC52xx_PSC_RX_ENABLE); in mpc512x_psc_spi_prep_xfer_hw()
356 struct mpc512x_psc_spi *mps = spi_master_get_devdata(master); in mpc512x_psc_spi_unprep_xfer_hw() local
357 struct mpc512x_psc_fifo __iomem *fifo = mps->fifo; in mpc512x_psc_spi_unprep_xfer_hw()
362 out_8(psc_addr(mps, command), MPC52xx_PSC_TX_DISABLE | MPC52xx_PSC_RX_DISABLE); in mpc512x_psc_spi_unprep_xfer_hw()
410 struct mpc512x_psc_spi *mps) in mpc512x_psc_spi_port_config() argument
412 struct mpc512x_psc_fifo __iomem *fifo = mps->fifo; in mpc512x_psc_spi_port_config()
419 out_8(psc_addr(mps, command), MPC52xx_PSC_RST_RX); in mpc512x_psc_spi_port_config()
420 out_8(psc_addr(mps, command), MPC52xx_PSC_RST_TX); in mpc512x_psc_spi_port_config()
421 out_8(psc_addr(mps, command), MPC52xx_PSC_TX_DISABLE | MPC52xx_PSC_RX_DISABLE); in mpc512x_psc_spi_port_config()
424 out_be16(psc_addr(mps, isr_imr.imr), 0); in mpc512x_psc_spi_port_config()
440 out_be32(psc_addr(mps, sicr), sicr); in mpc512x_psc_spi_port_config()
442 ccr = in_be32(psc_addr(mps, ccr)); in mpc512x_psc_spi_port_config()
445 bclkdiv = (mps->mclk_rate / speed) - 1; in mpc512x_psc_spi_port_config()
447 out_be32(psc_addr(mps, ccr), ccr); in mpc512x_psc_spi_port_config()
450 out_8(psc_addr(mps, ctur), 0x00); in mpc512x_psc_spi_port_config()
451 out_8(psc_addr(mps, ctlr), 0x82); in mpc512x_psc_spi_port_config()
463 mps->bits_per_word = 8; in mpc512x_psc_spi_port_config()
470 struct mpc512x_psc_spi *mps = (struct mpc512x_psc_spi *)dev_id; in mpc512x_psc_spi_isr() local
471 struct mpc512x_psc_fifo __iomem *fifo = mps->fifo; in mpc512x_psc_spi_isr()
478 complete(&mps->txisrdone); in mpc512x_psc_spi_isr()
493 struct mpc512x_psc_spi *mps; in mpc512x_psc_spi_do_probe() local
499 master = spi_alloc_master(dev, sizeof *mps); in mpc512x_psc_spi_do_probe()
504 mps = spi_master_get_devdata(master); in mpc512x_psc_spi_do_probe()
505 mps->type = (int)of_device_get_match_data(dev); in mpc512x_psc_spi_do_probe()
506 mps->irq = irq; in mpc512x_psc_spi_do_probe()
509 mps->cs_control = mpc512x_spi_cs_control; in mpc512x_psc_spi_do_probe()
511 mps->cs_control = pdata->cs_control; in mpc512x_psc_spi_do_probe()
530 mps->psc = tempp; in mpc512x_psc_spi_do_probe()
531 mps->fifo = in mpc512x_psc_spi_do_probe()
533 ret = devm_request_irq(dev, mps->irq, mpc512x_psc_spi_isr, IRQF_SHARED, in mpc512x_psc_spi_do_probe()
534 "mpc512x-psc-spi", mps); in mpc512x_psc_spi_do_probe()
537 init_completion(&mps->txisrdone); in mpc512x_psc_spi_do_probe()
547 mps->clk_mclk = clk; in mpc512x_psc_spi_do_probe()
548 mps->mclk_rate = clk_get_rate(clk); in mpc512x_psc_spi_do_probe()
558 mps->clk_ipg = clk; in mpc512x_psc_spi_do_probe()
560 ret = mpc512x_psc_spi_port_config(master, mps); in mpc512x_psc_spi_do_probe()
571 clk_disable_unprepare(mps->clk_ipg); in mpc512x_psc_spi_do_probe()
573 clk_disable_unprepare(mps->clk_mclk); in mpc512x_psc_spi_do_probe()
583 struct mpc512x_psc_spi *mps = spi_master_get_devdata(master); in mpc512x_psc_spi_do_remove() local
585 clk_disable_unprepare(mps->clk_mclk); in mpc512x_psc_spi_do_remove()
586 clk_disable_unprepare(mps->clk_ipg); in mpc512x_psc_spi_do_remove()