summaryrefslogtreecommitdiff
path: root/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c')
-rw-r--r--firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c b/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c
index 6014f4d3af..602083edb7 100644
--- a/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c
+++ b/firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c
@@ -89,12 +89,19 @@ void pcm_play_dma_init(void)
89{ 89{
90 pcm_set_frequency(SAMPR_44); 90 pcm_set_frequency(SAMPR_44);
91 91
92 /* slave */ 92 /* There seem to be problems when changing the IIS interface configuration
93 IISMOD |= (1<<8); 93 * when a clock is not present.
94 */
95 s3c_regset(&CLKCON, 1<<17);
96 /* slave, transmit mode, 16 bit samples - MCLK 384fs - use 16.9344Mhz -
97 BCLK 32fs */
98 IISMOD = (1<<9) | (1<<8) | (2<<6) | (1<<3) | (1<<2) | (1<<0);
94 99
95 /* RX,TX off,idle */ 100 /* RX,TX off,on */
96 IISCON |= (1<<3) | (1<<2); 101 IISCON |= (1<<3) | (1<<2);
97 102
103 s3c_regclr(&CLKCON, 1<<17);
104
98 audiohw_init(); 105 audiohw_init();
99 106
100 /* init GPIO */ 107 /* init GPIO */
@@ -183,10 +190,6 @@ void pcm_play_dma_start(const void *addr, size_t size)
183 /* stop any DMA in progress - idle IIS */ 190 /* stop any DMA in progress - idle IIS */
184 play_stop_pcm(); 191 play_stop_pcm();
185 192
186 /* slave, transmit mode, 16 bit samples - MCLK 384fs - use 16.9344Mhz -
187 BCLK 32fs */
188 IISMOD = (1<<9) | (1<<8) | (2<<6) | (1<<3) | (1<<2) | (1<<0);
189
190 /* connect DMA to the FIFO and enable the FIFO */ 193 /* connect DMA to the FIFO and enable the FIFO */
191 IISFCON = (1<<15) | (1<<13); 194 IISFCON = (1<<15) | (1<<13);
192 195