Lines Matching defs:mdata

81 static void mtk_spi_slave_disable_dma(struct mtk_spi_slave *mdata)
85 reg_val = readl(mdata->base + SPIS_DMA_CFG_REG);
88 writel(reg_val, mdata->base + SPIS_DMA_CFG_REG);
91 static void mtk_spi_slave_disable_xfer(struct mtk_spi_slave *mdata)
95 reg_val = readl(mdata->base + SPIS_CFG_REG);
98 writel(reg_val, mdata->base + SPIS_CFG_REG);
101 static int mtk_spi_slave_wait_for_completion(struct mtk_spi_slave *mdata)
103 if (wait_for_completion_interruptible(&mdata->xfer_done) ||
104 mdata->slave_aborted) {
105 dev_err(mdata->dev, "interrupted\n");
115 struct mtk_spi_slave *mdata = spi_controller_get_devdata(ctlr);
123 reg_val = readl(mdata->base + SPIS_CFG_REG);
140 writel(reg_val, mdata->base + SPIS_CFG_REG);
149 struct mtk_spi_slave *mdata = spi_controller_get_devdata(ctlr);
152 writel(SPIS_SOFT_RST, mdata->base + SPIS_SOFT_RST_REG);
154 reg_val = readl(mdata->base + SPIS_CFG_REG);
159 writel(reg_val, mdata->base + SPIS_CFG_REG);
163 iowrite32_rep(mdata->base + SPIS_TX_DATA_REG,
170 writel(reg_val, mdata->base + SPIS_TX_DATA_REG);
173 ret = mtk_spi_slave_wait_for_completion(mdata);
175 mtk_spi_slave_disable_xfer(mdata);
176 writel(SPIS_SOFT_RST, mdata->base + SPIS_SOFT_RST_REG);
186 struct mtk_spi_slave *mdata = spi_controller_get_devdata(ctlr);
187 struct device *dev = mdata->dev;
190 writel(SPIS_SOFT_RST, mdata->base + SPIS_SOFT_RST_REG);
215 writel(xfer->tx_dma, mdata->base + SPIS_TX_SRC_REG);
216 writel(xfer->rx_dma, mdata->base + SPIS_RX_DST_REG);
218 writel(SPIS_DMA_ADDR_EN, mdata->base + SPIS_SOFT_RST_REG);
221 reg_val = readl(mdata->base + SPIS_CFG_REG);
226 writel(reg_val, mdata->base + SPIS_CFG_REG);
231 writel(reg_val, mdata->base + SPIS_DMA_CFG_REG);
233 reg_val = readl(mdata->base + SPIS_DMA_CFG_REG);
239 writel(reg_val, mdata->base + SPIS_DMA_CFG_REG);
241 ret = mtk_spi_slave_wait_for_completion(mdata);
258 mtk_spi_slave_disable_dma(mdata);
259 mtk_spi_slave_disable_xfer(mdata);
260 writel(SPIS_SOFT_RST, mdata->base + SPIS_SOFT_RST_REG);
269 struct mtk_spi_slave *mdata = spi_controller_get_devdata(ctlr);
271 reinit_completion(&mdata->xfer_done);
272 mdata->slave_aborted = false;
273 mdata->cur_transfer = xfer;
283 struct mtk_spi_slave *mdata = spi_controller_get_devdata(spi->master);
288 writel(reg_val, mdata->base + SPIS_IRQ_EN_REG);
292 writel(reg_val, mdata->base + SPIS_IRQ_MASK_REG);
294 mtk_spi_slave_disable_dma(mdata);
295 mtk_spi_slave_disable_xfer(mdata);
302 struct mtk_spi_slave *mdata = spi_controller_get_devdata(ctlr);
304 mdata->slave_aborted = true;
305 complete(&mdata->xfer_done);
313 struct mtk_spi_slave *mdata = spi_controller_get_devdata(ctlr);
314 struct spi_transfer *trans = mdata->cur_transfer;
317 int_status = readl(mdata->base + SPIS_IRQ_ST_REG);
318 writel(int_status, mdata->base + SPIS_IRQ_CLR_REG);
326 writel(SPIS_SOFT_RST, mdata->base + SPIS_SOFT_RST_REG);
329 dma_unmap_single(mdata->dev, trans->tx_dma,
332 dma_unmap_single(mdata->dev, trans->rx_dma,
335 mtk_spi_slave_disable_dma(mdata);
336 mtk_spi_slave_disable_xfer(mdata);
344 ioread32_rep(mdata->base + SPIS_RX_DATA_REG,
348 reg_val = readl(mdata->base + SPIS_RX_DATA_REG);
353 mtk_spi_slave_disable_xfer(mdata);
361 mdata->cur_transfer = NULL;
362 complete(&mdata->xfer_done);
370 struct mtk_spi_slave *mdata;
373 ctlr = spi_alloc_slave(&pdev->dev, sizeof(*mdata));
389 mdata = spi_controller_get_devdata(ctlr);
393 init_completion(&mdata->xfer_done);
394 mdata->dev = &pdev->dev;
395 mdata->base = devm_platform_ioremap_resource(pdev, 0);
396 if (IS_ERR(mdata->base)) {
397 ret = PTR_ERR(mdata->base);
414 mdata->spi_clk = devm_clk_get(&pdev->dev, "spi");
415 if (IS_ERR(mdata->spi_clk)) {
416 ret = PTR_ERR(mdata->spi_clk);
421 ret = clk_prepare_enable(mdata->spi_clk);
433 clk_disable_unprepare(mdata->spi_clk);
437 clk_disable_unprepare(mdata->spi_clk);
460 struct mtk_spi_slave *mdata = spi_controller_get_devdata(ctlr);
468 clk_disable_unprepare(mdata->spi_clk);
476 struct mtk_spi_slave *mdata = spi_controller_get_devdata(ctlr);
480 ret = clk_prepare_enable(mdata->spi_clk);
489 clk_disable_unprepare(mdata->spi_clk);
499 struct mtk_spi_slave *mdata = spi_controller_get_devdata(ctlr);
501 clk_disable_unprepare(mdata->spi_clk);
509 struct mtk_spi_slave *mdata = spi_controller_get_devdata(ctlr);
512 ret = clk_prepare_enable(mdata->spi_clk);