summaryrefslogtreecommitdiffstats
path: root/drivers/dma/apbh_dma.c
diff options
context:
space:
mode:
authorTom Rini <trini@ti.com>2013-08-12 18:06:30 -0400
committerTom Rini <trini@ti.com>2013-08-12 18:06:30 -0400
commitc15438eaea8b854d89455ebf7a1c7c4f06fa92f5 (patch)
tree1b9f2cddd85c061fb0377681d1fee0a2904d738d /drivers/dma/apbh_dma.c
parentd62a89bd5b5033649a90fa5bfe0f5b32013ca8f8 (diff)
parent1dc793dd2b8fb97dddf437547d86bd5bcfdb8b29 (diff)
downloadtalos-obmc-uboot-c15438eaea8b854d89455ebf7a1c7c4f06fa92f5.tar.gz
talos-obmc-uboot-c15438eaea8b854d89455ebf7a1c7c4f06fa92f5.zip
Merge branch 'master' of git://www.denx.de/git/u-boot-video
Diffstat (limited to 'drivers/dma/apbh_dma.c')
-rw-r--r--drivers/dma/apbh_dma.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/dma/apbh_dma.c b/drivers/dma/apbh_dma.c
index 96d4c9bb19..22defcd7d9 100644
--- a/drivers/dma/apbh_dma.c
+++ b/drivers/dma/apbh_dma.c
@@ -545,6 +545,28 @@ int mxs_dma_go(int chan)
}
/*
+ * Execute a continuously running circular DMA descriptor.
+ * NOTE: This is not intended for general use, but rather
+ * for the LCD driver in Smart-LCD mode. It allows
+ * continuous triggering of the RUN bit there.
+ */
+void mxs_dma_circ_start(int chan, struct mxs_dma_desc *pdesc)
+{
+ struct mxs_apbh_regs *apbh_regs =
+ (struct mxs_apbh_regs *)MXS_APBH_BASE;
+
+ mxs_dma_flush_desc(pdesc);
+
+ mxs_dma_enable_irq(chan, 1);
+
+ writel(mxs_dma_cmd_address(pdesc),
+ &apbh_regs->ch[chan].hw_apbh_ch_nxtcmdar);
+ writel(1, &apbh_regs->ch[chan].hw_apbh_ch_sema);
+ writel(1 << (chan + APBH_CTRL0_CLKGATE_CHANNEL_OFFSET),
+ &apbh_regs->hw_apbh_ctrl0_clr);
+}
+
+/*
* Initialize the DMA hardware
*/
void mxs_dma_init(void)
OpenPOWER on IntegriCloud