summaryrefslogtreecommitdiff
path: root/firmware/target/arm/as3525
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/as3525')
-rw-r--r--firmware/target/arm/as3525/pcm-as3525.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/firmware/target/arm/as3525/pcm-as3525.c b/firmware/target/arm/as3525/pcm-as3525.c
index 0386cc3336..cf0333f24c 100644
--- a/firmware/target/arm/as3525/pcm-as3525.c
+++ b/firmware/target/arm/as3525/pcm-as3525.c
@@ -66,6 +66,9 @@ static void play_start_pcm(void)
66 dma_size -= size; 66 dma_size -= size;
67 dma_start_addr += size; 67 dma_start_addr += size;
68 68
69 CGU_PERI |= CGU_I2SOUT_APB_CLOCK_ENABLE;
70 CGU_AUDIO |= (1<<11);
71
69 dma_enable_channel(1, (void*)addr, (void*)I2SOUT_DATA, DMA_PERI_I2SOUT, 72 dma_enable_channel(1, (void*)addr, (void*)I2SOUT_DATA, DMA_PERI_I2SOUT,
70 DMAC_FLOWCTRL_DMAC_MEM_TO_PERI, true, false, size >> 2, DMA_S1, 73 DMAC_FLOWCTRL_DMAC_MEM_TO_PERI, true, false, size >> 2, DMA_S1,
71 dma_callback); 74 dma_callback);
@@ -98,6 +101,9 @@ void pcm_play_dma_stop(void)
98{ 101{
99 dma_disable_channel(1); 102 dma_disable_channel(1);
100 dma_size = 0; 103 dma_size = 0;
104
105 CGU_PERI &= ~CGU_I2SOUT_APB_CLOCK_ENABLE;
106 CGU_AUDIO &= ~(1<<11);
101} 107}
102 108
103void pcm_play_dma_pause(bool pause) 109void pcm_play_dma_pause(bool pause)
@@ -112,8 +118,8 @@ void pcm_play_dma_init(void)
112{ 118{
113 CGU_PERI |= CGU_I2SOUT_APB_CLOCK_ENABLE; 119 CGU_PERI |= CGU_I2SOUT_APB_CLOCK_ENABLE;
114 120
115 /* enable I2SO_MCLK, clock source PLLA, minimal frequency */ 121 /* clock source PLLA, minimal frequency */
116 CGU_AUDIO |= (1<<11) | (511<<2) | (1<<0); 122 CGU_AUDIO |= (511<<2) | (1<<0);
117 123
118 I2SOUT_CONTROL |= (1<<6) ; /* enable dma */ 124 I2SOUT_CONTROL |= (1<<6) ; /* enable dma */
119 I2SOUT_CONTROL |= (1<<3) ; /* stereo */ 125 I2SOUT_CONTROL |= (1<<3) ; /* stereo */