summaryrefslogtreecommitdiff
path: root/firmware/target/arm/as3525/pcm-as3525.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/as3525/pcm-as3525.c')
-rw-r--r--firmware/target/arm/as3525/pcm-as3525.c9
1 files changed, 1 insertions, 8 deletions
diff --git a/firmware/target/arm/as3525/pcm-as3525.c b/firmware/target/arm/as3525/pcm-as3525.c
index f648908474..26e018c82f 100644
--- a/firmware/target/arm/as3525/pcm-as3525.c
+++ b/firmware/target/arm/as3525/pcm-as3525.c
@@ -61,9 +61,6 @@ static void play_start_pcm(void)
61 if(size > MAX_TRANSFER) 61 if(size > MAX_TRANSFER)
62 size = MAX_TRANSFER; 62 size = MAX_TRANSFER;
63 63
64 if((unsigned int)dma_start_addr & 3)
65 panicf("unaligned pointer!");
66
67 dma_size -= size; 64 dma_size -= size;
68 dma_start_addr += size; 65 dma_start_addr += size;
69 66
@@ -148,9 +145,8 @@ void pcm_dma_apply_settings(void)
148{ 145{
149 unsigned long frequency = pcm_sampr; 146 unsigned long frequency = pcm_sampr;
150 147
148 /* TODO : use a table ? */
151 const int divider = (((AS3525_PLLA_FREQ/128) + (frequency/2)) / frequency) - 1; 149 const int divider = (((AS3525_PLLA_FREQ/128) + (frequency/2)) / frequency) - 1;
152 if(divider < 0 || divider > 511)
153 panicf("unsupported frequency %ld", frequency);
154 150
155 int cgu_audio = CGU_AUDIO; /* read register */ 151 int cgu_audio = CGU_AUDIO; /* read register */
156 cgu_audio &= ~(511 << 2); /* clear i2sout divider */ 152 cgu_audio &= ~(511 << 2); /* clear i2sout divider */
@@ -266,9 +262,6 @@ void pcm_rec_dma_start(void *addr, size_t size)
266 rec_start_addr = addr; 262 rec_start_addr = addr;
267 rec_size = size; 263 rec_size = size;
268 264
269 if((unsigned int)addr & 3)
270 panicf("unaligned pointer!");
271
272 CGU_PERI |= CGU_I2SIN_APB_CLOCK_ENABLE|CGU_I2SOUT_APB_CLOCK_ENABLE; 265 CGU_PERI |= CGU_I2SIN_APB_CLOCK_ENABLE|CGU_I2SOUT_APB_CLOCK_ENABLE;
273 CGU_AUDIO |= ((1<<23)|(1<<11)); 266 CGU_AUDIO |= ((1<<23)|(1<<11));
274 267