diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/target/arm/s3c2440/gigabeat-fx/pcm-meg-fx.c | 17 |
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 | ||