summaryrefslogtreecommitdiff
path: root/firmware/target
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target')
-rw-r--r--firmware/target/arm/gigabeat/meg-fx/wmcodec-meg-fx.c4
-rw-r--r--firmware/target/arm/wmcodec-pp.c4
-rw-r--r--firmware/target/coldfire/pcm-coldfire.c22
3 files changed, 12 insertions, 18 deletions
diff --git a/firmware/target/arm/gigabeat/meg-fx/wmcodec-meg-fx.c b/firmware/target/arm/gigabeat/meg-fx/wmcodec-meg-fx.c
index fd023e1be0..fe42b7527a 100644
--- a/firmware/target/arm/gigabeat/meg-fx/wmcodec-meg-fx.c
+++ b/firmware/target/arm/gigabeat/meg-fx/wmcodec-meg-fx.c
@@ -61,6 +61,10 @@ int audiohw_init(void) {
61 return 0; 61 return 0;
62} 62}
63 63
64void audiohw_postinit(void)
65{
66}
67
64void wmcodec_write(int reg, int data) 68void wmcodec_write(int reg, int data)
65{ 69{
66 i2c_send(0x34, (reg<<1) | ((data&0x100)>>8), data&0xff); 70 i2c_send(0x34, (reg<<1) | ((data&0x100)>>8), data&0xff);
diff --git a/firmware/target/arm/wmcodec-pp.c b/firmware/target/arm/wmcodec-pp.c
index e252cf0ac1..505a31deb4 100644
--- a/firmware/target/arm/wmcodec-pp.c
+++ b/firmware/target/arm/wmcodec-pp.c
@@ -92,6 +92,10 @@ int audiohw_init(void) {
92 return 0; 92 return 0;
93} 93}
94 94
95void audiohw_postinit(void)
96{
97}
98
95void wmcodec_write(int reg, int data) 99void wmcodec_write(int reg, int data)
96{ 100{
97 pp_i2c_send(I2C_AUDIO_ADDRESS, (reg<<1) | ((data&0x100)>>8),data&0xff); 101 pp_i2c_send(I2C_AUDIO_ADDRESS, (reg<<1) | ((data&0x100)>>8),data&0xff);
diff --git a/firmware/target/coldfire/pcm-coldfire.c b/firmware/target/coldfire/pcm-coldfire.c
index ef847004ce..720c77e434 100644
--- a/firmware/target/coldfire/pcm-coldfire.c
+++ b/firmware/target/coldfire/pcm-coldfire.c
@@ -255,6 +255,10 @@ void pcm_init(void)
255 pcm_play_dma_stop(); 255 pcm_play_dma_stop();
256 /* Call pcm_close_recording to put in closed state */ 256 /* Call pcm_close_recording to put in closed state */
257 pcm_close_recording(); 257 pcm_close_recording();
258
259 /* Initialize default register values. */
260 audiohw_init();
261
258 audio_set_output_source(AUDIO_SRC_PLAYBACK); 262 audio_set_output_source(AUDIO_SRC_PLAYBACK);
259 audio_set_source(AUDIO_SRC_PLAYBACK, SRCF_PLAYBACK); 263 audio_set_source(AUDIO_SRC_PLAYBACK, SRCF_PLAYBACK);
260 pcm_set_frequency(HW_FREQ_DEFAULT); 264 pcm_set_frequency(HW_FREQ_DEFAULT);
@@ -264,24 +268,6 @@ void pcm_init(void)
264#if defined(HAVE_SPDIF_IN) || defined(HAVE_SPDIF_OUT) 268#if defined(HAVE_SPDIF_IN) || defined(HAVE_SPDIF_OUT)
265 spdif_init(); 269 spdif_init();
266#endif 270#endif
267
268 /* Initialize default register values. */
269 audiohw_init();
270
271#if defined(HAVE_UDA1380)
272 /* Sleep a while so the power can stabilize (especially a long
273 delay is needed for the line out connector). */
274 sleep(HZ);
275 /* Power on FSDAC and HP amp. */
276 audiohw_enable_output(true);
277#elif defined(HAVE_TLV320)
278 sleep(HZ/4);
279#endif
280
281 /* UDA1380: Unmute the master channel
282 (DAC should be at zero point now). */
283 audiohw_mute(false);
284
285 /* Enable interrupt at level 6, priority 0 */ 271 /* Enable interrupt at level 6, priority 0 */
286 ICR6 = (6 << 2); 272 ICR6 = (6 << 2);
287 and_l(~(1 << 14), &IMR); /* bit 14 is DMA0 */ 273 and_l(~(1 << 14), &IMR); /* bit 14 is DMA0 */