diff options
author | Marcin Bukat <marcin.bukat@gmail.com> | 2010-10-31 21:09:34 +0000 |
---|---|---|
committer | Marcin Bukat <marcin.bukat@gmail.com> | 2010-10-31 21:09:34 +0000 |
commit | 56c4e9fa600557242d8b78f5fd8e32c2245b76fc (patch) | |
tree | f8558778a302f89c3e819e66e86577a5e37c3660 | |
parent | 40ed5f57d9be61f1200026e9b0f944a9718111c1 (diff) | |
download | rockbox-56c4e9fa600557242d8b78f5fd8e32c2245b76fc.tar.gz rockbox-56c4e9fa600557242d8b78f5fd8e32c2245b76fc.zip |
Separate mas35xx lowlevel stuff. Move SH specific bits to target tree. FS#11189 by me.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@28425 a1c6a512-1295-4272-9138-f99709370657
23 files changed, 450 insertions, 362 deletions
diff --git a/apps/codecs.c b/apps/codecs.c index 3fa05be59a..88478e8566 100644 --- a/apps/codecs.c +++ b/apps/codecs.c | |||
@@ -36,7 +36,6 @@ | |||
36 | #include "kernel.h" | 36 | #include "kernel.h" |
37 | #include "screens.h" | 37 | #include "screens.h" |
38 | #include "misc.h" | 38 | #include "misc.h" |
39 | #include "mas.h" | ||
40 | #include "codecs.h" | 39 | #include "codecs.h" |
41 | #include "lang.h" | 40 | #include "lang.h" |
42 | #include "keyboard.h" | 41 | #include "keyboard.h" |
diff --git a/apps/debug_menu.c b/apps/debug_menu.c index 2497b17826..bedc98ae10 100644 --- a/apps/debug_menu.c +++ b/apps/debug_menu.c | |||
@@ -61,7 +61,6 @@ | |||
61 | #include "rtc.h" | 61 | #include "rtc.h" |
62 | #include "storage.h" | 62 | #include "storage.h" |
63 | #include "fat.h" | 63 | #include "fat.h" |
64 | #include "mas.h" | ||
65 | #include "eeprom_24cxx.h" | 64 | #include "eeprom_24cxx.h" |
66 | #if (CONFIG_STORAGE & STORAGE_MMC) || (CONFIG_STORAGE & STORAGE_SD) | 65 | #if (CONFIG_STORAGE & STORAGE_MMC) || (CONFIG_STORAGE & STORAGE_SD) |
67 | #include "sdmmc.h" | 66 | #include "sdmmc.h" |
diff --git a/apps/menus/recording_menu.c b/apps/menus/recording_menu.c index 6a1c1d31e8..8eaeab699c 100644 --- a/apps/menus/recording_menu.c +++ b/apps/menus/recording_menu.c | |||
@@ -49,7 +49,6 @@ | |||
49 | #endif | 49 | #endif |
50 | #ifdef HAVE_RECORDING | 50 | #ifdef HAVE_RECORDING |
51 | #include "peakmeter.h" | 51 | #include "peakmeter.h" |
52 | #include "mas.h" | ||
53 | #endif | 52 | #endif |
54 | #include "splash.h" | 53 | #include "splash.h" |
55 | #if CONFIG_CODEC == SWCODEC | 54 | #if CONFIG_CODEC == SWCODEC |
diff --git a/apps/mpeg.c b/apps/mpeg.c index 62fda5e3cb..583e4e2122 100644 --- a/apps/mpeg.c +++ b/apps/mpeg.c | |||
@@ -45,7 +45,7 @@ | |||
45 | #include "settings.h" | 45 | #include "settings.h" |
46 | #ifndef SIMULATOR | 46 | #ifndef SIMULATOR |
47 | #include "i2c.h" | 47 | #include "i2c.h" |
48 | #include "mas.h" | 48 | #include "mas35xx.h" |
49 | #include "system.h" | 49 | #include "system.h" |
50 | #include "usb.h" | 50 | #include "usb.h" |
51 | #include "file.h" | 51 | #include "file.h" |
@@ -53,7 +53,7 @@ | |||
53 | #endif /* !SIMULATOR */ | 53 | #endif /* !SIMULATOR */ |
54 | #ifdef HAVE_LCD_BITMAP | 54 | #ifdef HAVE_LCD_BITMAP |
55 | #include "lcd.h" | 55 | #include "lcd.h" |
56 | #endif | 56 | #endif /* CONFIG_CODEC != SWCODEC */ |
57 | 57 | ||
58 | #define MPEG_SWAP_CHUNKSIZE 0x2000 | 58 | #define MPEG_SWAP_CHUNKSIZE 0x2000 |
59 | #define MPEG_HIGH_WATER 2 /* We leave 2 bytes empty because otherwise we | 59 | #define MPEG_HIGH_WATER 2 /* We leave 2 bytes empty because otherwise we |
diff --git a/apps/plugin.h b/apps/plugin.h index 56e0bfcd04..0503980c1e 100644 --- a/apps/plugin.h +++ b/apps/plugin.h | |||
@@ -77,7 +77,7 @@ void* plugin_get_buffer(size_t *buffer_size); | |||
77 | #include "recording.h" | 77 | #include "recording.h" |
78 | #endif | 78 | #endif |
79 | #else | 79 | #else |
80 | #include "mas.h" | 80 | #include "mas35xx.h" |
81 | #endif /* CONFIG_CODEC == SWCODEC */ | 81 | #endif /* CONFIG_CODEC == SWCODEC */ |
82 | #include "settings.h" | 82 | #include "settings.h" |
83 | #include "timer.h" | 83 | #include "timer.h" |
diff --git a/apps/radio/radio.c b/apps/radio/radio.c index 6f1903d79c..5fe1fabef0 100644 --- a/apps/radio/radio.c +++ b/apps/radio/radio.c | |||
@@ -23,7 +23,6 @@ | |||
23 | #include <stdio.h> | 23 | #include <stdio.h> |
24 | #include <stdbool.h> | 24 | #include <stdbool.h> |
25 | #include <stdlib.h> | 25 | #include <stdlib.h> |
26 | #include "mas.h" | ||
27 | #include "settings.h" | 26 | #include "settings.h" |
28 | #include "button.h" | 27 | #include "button.h" |
29 | #include "status.h" | 28 | #include "status.h" |
diff --git a/apps/recorder/peakmeter.c b/apps/recorder/peakmeter.c index 2450559b8d..aacfc23cee 100644 --- a/apps/recorder/peakmeter.c +++ b/apps/recorder/peakmeter.c | |||
@@ -22,7 +22,6 @@ | |||
22 | #if defined(SIMULATOR) && (CONFIG_CODEC != SWCODEC) | 22 | #if defined(SIMULATOR) && (CONFIG_CODEC != SWCODEC) |
23 | #include <stdlib.h> /* sim uses rand for peakmeter simulation */ | 23 | #include <stdlib.h> /* sim uses rand for peakmeter simulation */ |
24 | #endif | 24 | #endif |
25 | #include "mas.h" | ||
26 | #include "thread.h" | 25 | #include "thread.h" |
27 | #include "kernel.h" | 26 | #include "kernel.h" |
28 | #include "settings.h" | 27 | #include "settings.h" |
diff --git a/apps/recorder/peakmeter.h b/apps/recorder/peakmeter.h index 308e5fb916..4abcc154f3 100644 --- a/apps/recorder/peakmeter.h +++ b/apps/recorder/peakmeter.h | |||
@@ -22,6 +22,7 @@ | |||
22 | #define __PEAKMETER_H__ | 22 | #define __PEAKMETER_H__ |
23 | 23 | ||
24 | #define PEAK_METER_FPS 20 | 24 | #define PEAK_METER_FPS 20 |
25 | #define MAX_PEAK 0x8000 | ||
25 | 26 | ||
26 | /*#define PM_DEBUG */ | 27 | /*#define PM_DEBUG */ |
27 | #ifdef PM_DEBUG | 28 | #ifdef PM_DEBUG |
diff --git a/apps/recorder/recording.c b/apps/recorder/recording.c index 9adb3c1839..fdeae03f9b 100644 --- a/apps/recorder/recording.c +++ b/apps/recorder/recording.c | |||
@@ -42,7 +42,6 @@ | |||
42 | #include "pcm_record.h" | 42 | #include "pcm_record.h" |
43 | #include "recording.h" | 43 | #include "recording.h" |
44 | #include "mp3_playback.h" | 44 | #include "mp3_playback.h" |
45 | #include "mas.h" | ||
46 | #include "button.h" | 45 | #include "button.h" |
47 | #include "kernel.h" | 46 | #include "kernel.h" |
48 | #include "settings.h" | 47 | #include "settings.h" |
diff --git a/firmware/SOURCES b/firmware/SOURCES index f118f6a396..5b7a582604 100644 --- a/firmware/SOURCES +++ b/firmware/SOURCES | |||
@@ -175,7 +175,7 @@ drivers/led.c | |||
175 | drivers/button.c | 175 | drivers/button.c |
176 | #if (CONFIG_PLATFORM & PLATFORM_NATIVE) | 176 | #if (CONFIG_PLATFORM & PLATFORM_NATIVE) |
177 | #ifdef HAVE_DAC3550A | 177 | #ifdef HAVE_DAC3550A |
178 | drivers/dac.c | 178 | drivers/audio/dac3550a.c |
179 | #endif | 179 | #endif |
180 | #ifdef HAVE_SERIAL | 180 | #ifdef HAVE_SERIAL |
181 | drivers/serial.c | 181 | drivers/serial.c |
@@ -289,9 +289,6 @@ drivers/tuner/rda5802.c | |||
289 | #endif /* BOOTLOADER */ | 289 | #endif /* BOOTLOADER */ |
290 | 290 | ||
291 | /* Sound */ | 291 | /* Sound */ |
292 | #if CONFIG_CODEC != SWCODEC | ||
293 | mp3_playback.c | ||
294 | #endif /* CONFIG_CODEC != SWCODEC */ | ||
295 | sound.c | 292 | sound.c |
296 | 293 | ||
297 | #if CONFIG_CODEC == SWCODEC | 294 | #if CONFIG_CODEC == SWCODEC |
@@ -303,15 +300,6 @@ pcm.c | |||
303 | enc_base.c | 300 | enc_base.c |
304 | #endif /* HAVE_RECORDING */ | 301 | #endif /* HAVE_RECORDING */ |
305 | #endif /* BOOTLOADER */ | 302 | #endif /* BOOTLOADER */ |
306 | |||
307 | #else /* !SWCODEC */ | ||
308 | |||
309 | #ifndef BOOTLOADER | ||
310 | #ifndef SIMULATOR | ||
311 | drivers/mas.c | ||
312 | #endif /* SIMULATOR */ | ||
313 | #endif /* BOOTLOADER */ | ||
314 | |||
315 | #endif /* SWCODEC */ | 303 | #endif /* SWCODEC */ |
316 | 304 | ||
317 | /* Audio codec */ | 305 | /* Audio codec */ |
@@ -574,6 +562,8 @@ target/sh/archos/player/lcd-player.c | |||
574 | target/sh/archos/player/power-player.c | 562 | target/sh/archos/player/power-player.c |
575 | target/sh/archos/player/powermgmt-player.c | 563 | target/sh/archos/player/powermgmt-player.c |
576 | target/sh/archos/player/usb-player.c | 564 | target/sh/archos/player/usb-player.c |
565 | target/sh/archos/mascodec-archos.c | ||
566 | target/sh/archos/audio-archos.c | ||
577 | #endif /* SIMULATOR */ | 567 | #endif /* SIMULATOR */ |
578 | #endif /* ARCHOS_PLAYER */ | 568 | #endif /* ARCHOS_PLAYER */ |
579 | 569 | ||
@@ -588,6 +578,8 @@ target/sh/archos/recorder/button-recorder.c | |||
588 | target/sh/archos/recorder/power-recorder.c | 578 | target/sh/archos/recorder/power-recorder.c |
589 | target/sh/archos/recorder/powermgmt-recorder.c | 579 | target/sh/archos/recorder/powermgmt-recorder.c |
590 | target/sh/archos/recorder/usb-recorder.c | 580 | target/sh/archos/recorder/usb-recorder.c |
581 | target/sh/archos/mascodec-archos.c | ||
582 | target/sh/archos/audio-archos.c | ||
591 | #endif /* SIMULATOR */ | 583 | #endif /* SIMULATOR */ |
592 | #endif /* ARCHOS_RECORDER */ | 584 | #endif /* ARCHOS_RECORDER */ |
593 | 585 | ||
@@ -602,6 +594,8 @@ target/sh/archos/fm_v2/button-fm_v2.c | |||
602 | target/sh/archos/fm_v2/power-fm_v2.c | 594 | target/sh/archos/fm_v2/power-fm_v2.c |
603 | target/sh/archos/fm_v2/powermgmt-fm_v2.c | 595 | target/sh/archos/fm_v2/powermgmt-fm_v2.c |
604 | target/sh/archos/fm_v2/usb-fm_v2.c | 596 | target/sh/archos/fm_v2/usb-fm_v2.c |
597 | target/sh/archos/mascodec-archos.c | ||
598 | target/sh/archos/audio-archos.c | ||
605 | #endif /* SIMULATOR */ | 599 | #endif /* SIMULATOR */ |
606 | #endif /* ARCHOS_FMRECORDER || ARCHOS_RECORDERV2 */ | 600 | #endif /* ARCHOS_FMRECORDER || ARCHOS_RECORDERV2 */ |
607 | 601 | ||
@@ -614,6 +608,8 @@ target/sh/archos/ondio/button-ondio.c | |||
614 | target/sh/archos/ondio/power-ondio.c | 608 | target/sh/archos/ondio/power-ondio.c |
615 | target/sh/archos/ondio/powermgmt-ondio.c | 609 | target/sh/archos/ondio/powermgmt-ondio.c |
616 | target/sh/archos/ondio/usb-ondio.c | 610 | target/sh/archos/ondio/usb-ondio.c |
611 | target/sh/archos/mascodec-archos.c | ||
612 | target/sh/archos/audio-archos.c | ||
617 | #if (CONFIG_TUNER & TEA5767) | 613 | #if (CONFIG_TUNER & TEA5767) |
618 | target/sh/archos/ondio/fmradio_i2c-ondio.c | 614 | target/sh/archos/ondio/fmradio_i2c-ondio.c |
619 | #endif | 615 | #endif |
diff --git a/firmware/drivers/dac.c b/firmware/drivers/audio/dac3550a.c index f21ef9a802..e13602e481 100644 --- a/firmware/drivers/dac.c +++ b/firmware/drivers/audio/dac3550a.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | 5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < |
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | 6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ |
7 | * \/ \/ \/ \/ \/ | 7 | * \/ \/ \/ \/ \/ |
8 | * $Id$ | 8 | * $Id: dac.c 17847 2008-06-28 18:10:04Z bagder $ |
9 | * | 9 | * |
10 | * Copyright (C) 2002 by Linus Nielsen Feltzing | 10 | * Copyright (C) 2002 by Linus Nielsen Feltzing |
11 | * | 11 | * |
@@ -22,13 +22,19 @@ | |||
22 | #include "stdbool.h" | 22 | #include "stdbool.h" |
23 | #include "i2c.h" | 23 | #include "i2c.h" |
24 | #include "debug.h" | 24 | #include "debug.h" |
25 | #include "dac.h" | 25 | #include "dac3550a.h" |
26 | |||
27 | #ifdef HAVE_DAC3550A | ||
28 | 26 | ||
29 | static bool line_in_enabled = false; | 27 | static bool line_in_enabled = false; |
30 | static bool dac_enabled = false; | 28 | static bool dac_enabled = false; |
31 | 29 | ||
30 | /* convert tenth of dB volume (-780..+180) to dac3550 register value */ | ||
31 | int tenthdb2reg(int db) | ||
32 | { | ||
33 | if (db < -540) /* 3 dB steps */ | ||
34 | return (db + 780) / 30; | ||
35 | else /* 1.5 dB steps */ | ||
36 | return (db + 660) / 15; | ||
37 | } | ||
32 | 38 | ||
33 | int dac_volume(unsigned int left, unsigned int right, bool deemph) | 39 | int dac_volume(unsigned int left, unsigned int right, bool deemph) |
34 | { | 40 | { |
@@ -116,4 +122,3 @@ void dac_init(void) | |||
116 | i2c_end(); | 122 | i2c_end(); |
117 | } | 123 | } |
118 | 124 | ||
119 | #endif | ||
diff --git a/firmware/drivers/audio/mas35xx.c b/firmware/drivers/audio/mas35xx.c index 342d8a3c2e..e6cc665109 100644 --- a/firmware/drivers/audio/mas35xx.c +++ b/firmware/drivers/audio/mas35xx.c | |||
@@ -23,8 +23,8 @@ | |||
23 | ****************************************************************************/ | 23 | ****************************************************************************/ |
24 | 24 | ||
25 | #include "config.h" | 25 | #include "config.h" |
26 | #include "system.h" /* MAX MIN macros */ | ||
26 | #include "audiohw.h" | 27 | #include "audiohw.h" |
27 | #include "mas.h" | ||
28 | 28 | ||
29 | const struct sound_settings_info audiohw_settings[] = { | 29 | const struct sound_settings_info audiohw_settings[] = { |
30 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) | 30 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) |
@@ -56,10 +56,15 @@ const struct sound_settings_info audiohw_settings[] = { | |||
56 | #endif | 56 | #endif |
57 | }; | 57 | }; |
58 | 58 | ||
59 | |||
60 | int channel_configuration = SOUND_CHAN_STEREO; | 59 | int channel_configuration = SOUND_CHAN_STEREO; |
61 | int stereo_width = 100; | 60 | int stereo_width = 100; |
62 | 61 | ||
62 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) | ||
63 | unsigned long mdb_shape_shadow = 0; | ||
64 | unsigned long loudness_shadow = 0; | ||
65 | unsigned long shadow_io_control_main; | ||
66 | #endif | ||
67 | |||
63 | 68 | ||
64 | static void set_channel_config(void) | 69 | static void set_channel_config(void) |
65 | { | 70 | { |
@@ -181,13 +186,97 @@ void audiohw_set_treble(int val) | |||
181 | } | 186 | } |
182 | 187 | ||
183 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) | 188 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) |
184 | void audiohw_set_volume(int val) { | 189 | void audiohw_set_volume(int val) |
190 | { | ||
185 | unsigned tmp = ((unsigned)(val + 115) & 0xff) << 8; | 191 | unsigned tmp = ((unsigned)(val + 115) & 0xff) << 8; |
186 | mas_codec_writereg(MAS_REG_VOLUME_CONTROL, tmp); | 192 | mas_codec_writereg(MAS_REG_VOLUME_CONTROL, tmp); |
187 | } | 193 | } |
188 | 194 | ||
189 | void audiohw_set_balance(int val) { | 195 | void audiohw_set_loudness(int value) |
196 | { | ||
197 | loudness_shadow = (loudness_shadow & 0x04) | | ||
198 | (MAX(MIN(value * 4, 0x44), 0) << 8); | ||
199 | mas_codec_writereg(MAS_REG_KLOUDNESS, loudness_shadow); | ||
200 | } | ||
201 | |||
202 | void audiohw_set_avc(int value) | ||
203 | { | ||
204 | int tmp; | ||
205 | |||
206 | static const uint16_t avc_vals[] = | ||
207 | { | ||
208 | (0x1 << 8) | (0x8 << 12), /* 20ms */ | ||
209 | (0x2 << 8) | (0x8 << 12), /* 2s */ | ||
210 | (0x4 << 8) | (0x8 << 12), /* 4s */ | ||
211 | (0x8 << 8) | (0x8 << 12), /* 8s */ | ||
212 | }; | ||
213 | switch (value) { | ||
214 | case 1: | ||
215 | case 2: | ||
216 | case 3: | ||
217 | case 4: | ||
218 | tmp = avc_vals[value -1]; | ||
219 | break; | ||
220 | case -1: /* turn off and then turn on again to decay quickly */ | ||
221 | tmp = mas_codec_readreg(MAS_REG_KAVC); | ||
222 | mas_codec_writereg(MAS_REG_KAVC, 0); | ||
223 | break; | ||
224 | default: /* off */ | ||
225 | tmp = 0; | ||
226 | break; | ||
227 | } | ||
228 | mas_codec_writereg(MAS_REG_KAVC, tmp); | ||
229 | } | ||
230 | |||
231 | void audiohw_set_mdb_strength(int value) | ||
232 | { | ||
233 | mas_codec_writereg(MAS_REG_KMDB_STR, (value & 0x7f) << 8); | ||
234 | } | ||
235 | |||
236 | void audiohw_set_mdb_harmonics(int value) | ||
237 | { | ||
238 | int tmp = value * 127 / 100; | ||
239 | mas_codec_writereg(MAS_REG_KMDB_HAR, (tmp & 0x7f) << 8); | ||
240 | } | ||
241 | |||
242 | void audiohw_set_mdb_center(int value) | ||
243 | { | ||
244 | mas_codec_writereg(MAS_REG_KMDB_FC, (value/10) << 8); | ||
245 | } | ||
246 | |||
247 | void audiohw_set_mdb_shape(int value) | ||
248 | { | ||
249 | mdb_shape_shadow = (mdb_shape_shadow & 0x02) | ((value/10) << 8); | ||
250 | mas_codec_writereg(MAS_REG_KMDB_SWITCH, mdb_shape_shadow); | ||
251 | } | ||
252 | |||
253 | void audiohw_set_mdb_enable(int value) | ||
254 | { | ||
255 | mdb_shape_shadow = (mdb_shape_shadow & ~0x02) | (value?2:0); | ||
256 | mas_codec_writereg(MAS_REG_KMDB_SWITCH, mdb_shape_shadow); | ||
257 | } | ||
258 | |||
259 | void audiohw_set_superbass(int value) | ||
260 | { | ||
261 | loudness_shadow = (loudness_shadow & ~0x04) | (value?4:0); | ||
262 | mas_codec_writereg(MAS_REG_KLOUDNESS, loudness_shadow); | ||
263 | } | ||
264 | |||
265 | void audiohw_set_balance(int val) | ||
266 | { | ||
190 | unsigned tmp = ((unsigned)(val * 127 / 100) & 0xff) << 8; | 267 | unsigned tmp = ((unsigned)(val * 127 / 100) & 0xff) << 8; |
191 | mas_codec_writereg(MAS_REG_BALANCE, tmp); | 268 | mas_codec_writereg(MAS_REG_BALANCE, tmp); |
192 | } | 269 | } |
193 | #endif | 270 | |
271 | void audiohw_set_pitch(unsigned long val) | ||
272 | { | ||
273 | mas_writemem(MAS_BANK_D0, MAS_D0_OFREQ_CONTROL, &val, 1); | ||
274 | |||
275 | /* We must tell the MAS that the frequency has changed. | ||
276 | * This will unfortunately cause a short silence. */ | ||
277 | |||
278 | mas_writemem(MAS_BANK_D0, MAS_D0_IO_CONTROL_MAIN, &shadow_io_control_main, 1); | ||
279 | } | ||
280 | |||
281 | #endif /* CONFIG_CODEC == MAS3587F || CONFIG_CODEC == MAS3539F */ | ||
282 | |||
diff --git a/firmware/drivers/tuner/s1a0903x01.c b/firmware/drivers/tuner/s1a0903x01.c index 3a417d73af..2c93ebdaad 100644 --- a/firmware/drivers/tuner/s1a0903x01.c +++ b/firmware/drivers/tuner/s1a0903x01.c | |||
@@ -27,7 +27,7 @@ | |||
27 | #include "tuner.h" /* tuner abstraction interface */ | 27 | #include "tuner.h" /* tuner abstraction interface */ |
28 | #include "fmradio.h" /* physical interface driver */ | 28 | #include "fmradio.h" /* physical interface driver */ |
29 | #include "sound.h" | 29 | #include "sound.h" |
30 | #include "mas.h" | 30 | #include "mas35xx.h" |
31 | #include "power.h" | 31 | #include "power.h" |
32 | 32 | ||
33 | #define DEFAULT_IN1 0x100003 /* Mute */ | 33 | #define DEFAULT_IN1 0x100003 /* Mute */ |
diff --git a/firmware/export/audiohw.h b/firmware/export/audiohw.h index 56f4d3dbea..930c671c20 100644 --- a/firmware/export/audiohw.h +++ b/firmware/export/audiohw.h | |||
@@ -59,6 +59,9 @@ | |||
59 | #include "as3514.h" | 59 | #include "as3514.h" |
60 | #elif defined(HAVE_MAS35XX) | 60 | #elif defined(HAVE_MAS35XX) |
61 | #include "mas35xx.h" | 61 | #include "mas35xx.h" |
62 | #if defined(HAVE_DAC3550A) | ||
63 | #include "dac3550a.h" | ||
64 | #endif /* HAVE_DAC3550A */ | ||
62 | #elif defined(HAVE_TSC2100) | 65 | #elif defined(HAVE_TSC2100) |
63 | #include "tsc2100.h" | 66 | #include "tsc2100.h" |
64 | #elif defined(HAVE_JZ4740_CODEC) | 67 | #elif defined(HAVE_JZ4740_CODEC) |
diff --git a/firmware/drivers/dac.h b/firmware/export/dac3550a.h index 121ce74e9d..3744b221ed 100644 --- a/firmware/drivers/dac.h +++ b/firmware/export/dac3550a.h | |||
@@ -5,7 +5,7 @@ | |||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | 5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < |
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | 6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ |
7 | * \/ \/ \/ \/ \/ | 7 | * \/ \/ \/ \/ \/ |
8 | * $Id$ | 8 | * $Id: dac.h 24158 2010-01-03 11:31:14Z Buschel $ |
9 | * | 9 | * |
10 | * Copyright (C) 2002 by Linus Nielsen Feltzing | 10 | * Copyright (C) 2002 by Linus Nielsen Feltzing |
11 | * | 11 | * |
@@ -18,13 +18,11 @@ | |||
18 | * KIND, either express or implied. | 18 | * KIND, either express or implied. |
19 | * | 19 | * |
20 | ****************************************************************************/ | 20 | ****************************************************************************/ |
21 | #ifndef _DAC_H_ | 21 | #ifndef _DAC3550A_H_ |
22 | #define _DAC_H_ | 22 | #define _DAC3550A_H_ |
23 | 23 | ||
24 | #include "config.h" | 24 | #include "config.h" |
25 | 25 | ||
26 | #ifdef HAVE_DAC3550A | ||
27 | |||
28 | /* | 26 | /* |
29 | DAC I2C defs | 27 | DAC I2C defs |
30 | */ | 28 | */ |
@@ -38,11 +36,12 @@ | |||
38 | #define DAC_AVOL 2 | 36 | #define DAC_AVOL 2 |
39 | #define DAC_GCFG 3 | 37 | #define DAC_GCFG 3 |
40 | 38 | ||
39 | /* function prototypes */ | ||
40 | extern int tenthdb2reg(int db); | ||
41 | extern int dac_volume(unsigned int left, unsigned int right, bool deemph); | 41 | extern int dac_volume(unsigned int left, unsigned int right, bool deemph); |
42 | extern void dac_enable(bool enable); | 42 | extern void dac_enable(bool enable); |
43 | extern void dac_line_in(bool enable); | 43 | extern void dac_line_in(bool enable); |
44 | extern void dac_init(void); | 44 | extern void dac_init(void); |
45 | 45 | ||
46 | #endif | 46 | #endif /* _DAC3550A_H_ */ |
47 | 47 | ||
48 | #endif | ||
diff --git a/firmware/export/mas.h b/firmware/export/mas.h deleted file mode 100644 index 9cbe970b94..0000000000 --- a/firmware/export/mas.h +++ /dev/null | |||
@@ -1,184 +0,0 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id$ | ||
9 | * | ||
10 | * Copyright (C) 2002 by Linus Nielsen Feltzing | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | #ifndef _MAS_H_ | ||
22 | #define _MAS_H_ | ||
23 | |||
24 | #define MAS_BANK_D0 0 | ||
25 | #define MAS_BANK_D1 1 | ||
26 | |||
27 | #define MAX_PEAK 0x8000 | ||
28 | |||
29 | /* | ||
30 | MAS I2C defs | ||
31 | */ | ||
32 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) | ||
33 | #define MAS_ADR 0x3c | ||
34 | #define MAS_DEV_WRITE (MAS_ADR | 0x00) | ||
35 | #define MAS_DEV_READ (MAS_ADR | 0x01) | ||
36 | |||
37 | #elif CONFIG_CODEC == MAS3507D | ||
38 | #define MAS_ADR 0x3a | ||
39 | #define MAS_DEV_WRITE (MAS_ADR | 0x00) | ||
40 | #define MAS_DEV_READ (MAS_ADR | 0x01) | ||
41 | #endif | ||
42 | |||
43 | /* registers..*/ | ||
44 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) | ||
45 | #define MAS_DATA_WRITE 0x68 | ||
46 | #define MAS_DATA_READ 0x69 | ||
47 | #define MAS_CODEC_WRITE 0x6c | ||
48 | #define MAS_CODEC_READ 0x6d | ||
49 | #define MAS_CONTROL 0x6a | ||
50 | #define MAS_DCCF 0x76 | ||
51 | #define MAS_DCFR 0x77 | ||
52 | |||
53 | #elif CONFIG_CODEC == MAS3507D | ||
54 | #define MAS_DATA_WRITE 0x68 | ||
55 | #define MAS_DATA_READ 0x69 | ||
56 | #define MAS_CONTROL 0x6a | ||
57 | #endif | ||
58 | |||
59 | /* | ||
60 | * MAS register | ||
61 | */ | ||
62 | #define MAS_REG_DCCF 0x8e | ||
63 | #define MAS_REG_MUTE 0xaa | ||
64 | #define MAS_REG_PIODATA 0xc8 | ||
65 | #define MAS_REG_StartUpConfig 0xe6 | ||
66 | #define MAS_REG_KPRESCALE 0xe7 | ||
67 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) | ||
68 | #define MAS_REG_KMDB_SWITCH 0x21 | ||
69 | #define MAS_REG_KMDB_STR 0x22 | ||
70 | #define MAS_REG_KMDB_HAR 0x23 | ||
71 | #define MAS_REG_KMDB_FC 0x24 | ||
72 | #define MAS_REG_KLOUDNESS 0x1e | ||
73 | #define MAS_REG_QPEAK_L 0x0a | ||
74 | #define MAS_REG_QPEAK_R 0x0b | ||
75 | #define MAS_REG_DQPEAK_L 0x0c | ||
76 | #define MAS_REG_DQPEAK_R 0x0d | ||
77 | #define MAS_REG_VOLUME_CONTROL 0x10 | ||
78 | #define MAS_REG_BALANCE 0x11 | ||
79 | #define MAS_REG_KAVC 0x12 | ||
80 | #define MAS_REG_KBASS 0x14 | ||
81 | #define MAS_REG_KTREBLE 0x15 | ||
82 | |||
83 | #elif CONFIG_CODEC == MAS3507D | ||
84 | #define MAS_REG_KBASS 0x6b | ||
85 | #define MAS_REG_KTREBLE 0x6f | ||
86 | #endif | ||
87 | |||
88 | /* | ||
89 | * MAS commands | ||
90 | */ | ||
91 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) | ||
92 | #define MAS_CMD_READ_ANCILLARY 0x50 | ||
93 | #define MAS_CMD_FAST_PRG_DL 0x60 | ||
94 | #define MAS_CMD_READ_IC_VER 0x70 | ||
95 | #define MAS_CMD_READ_REG 0xa0 | ||
96 | #define MAS_CMD_WRITE_REG 0xb0 | ||
97 | #define MAS_CMD_READ_D0_MEM 0xc0 | ||
98 | #define MAS_CMD_READ_D1_MEM 0xd0 | ||
99 | #define MAS_CMD_WRITE_D0_MEM 0xe0 | ||
100 | #define MAS_CMD_WRITE_D1_MEM 0xf0 | ||
101 | |||
102 | #elif CONFIG_CODEC == MAS3507D | ||
103 | #define MAS_CMD_READ_ANCILLARY 0x30 | ||
104 | #define MAS_CMD_WRITE_REG 0x90 | ||
105 | #define MAS_CMD_WRITE_D0_MEM 0xa0 | ||
106 | #define MAS_CMD_WRITE_D1_MEM 0xb0 | ||
107 | #define MAS_CMD_READ_REG 0xd0 | ||
108 | #define MAS_CMD_READ_D0_MEM 0xe0 | ||
109 | #define MAS_CMD_READ_D1_MEM 0xf0 | ||
110 | #endif | ||
111 | |||
112 | /* | ||
113 | * MAS D0 memory cells (MAS3587F / MAS3539F) | ||
114 | */ | ||
115 | #if CONFIG_CODEC == MAS3587F | ||
116 | #define MAS_D0_APP_SELECT 0x7f6 | ||
117 | #define MAS_D0_APP_RUNNING 0x7f7 | ||
118 | #define MAS_D0_ENCODER_CONTROL 0x7f0 | ||
119 | #define MAS_D0_IO_CONTROL_MAIN 0x7f1 | ||
120 | #define MAS_D0_INTERFACE_CONTROL 0x7f2 | ||
121 | #define MAS_D0_OFREQ_CONTROL 0x7f3 | ||
122 | #define MAS_D0_OUT_CLK_CONFIG 0x7f4 | ||
123 | #define MAS_D0_SPD_OUT_BITS 0x7f8 | ||
124 | #define MAS_D0_SOFT_MUTE 0x7f9 | ||
125 | #define MAS_D0_OUT_LL 0x7fc | ||
126 | #define MAS_D0_OUT_LR 0x7fd | ||
127 | #define MAS_D0_OUT_RL 0x7fe | ||
128 | #define MAS_D0_OUT_RR 0x7ff | ||
129 | #define MAS_D0_MPEG_FRAME_COUNT 0xfd0 | ||
130 | #define MAS_D0_MPEG_STATUS_1 0xfd1 | ||
131 | #define MAS_D0_MPEG_STATUS_2 0xfd2 | ||
132 | #define MAS_D0_CRC_ERROR_COUNT 0xfd3 | ||
133 | |||
134 | #elif CONFIG_CODEC == MAS3539F | ||
135 | #define MAS_D0_APP_SELECT 0x34b | ||
136 | #define MAS_D0_APP_RUNNING 0x34c | ||
137 | /* no encoder :( */ | ||
138 | #define MAS_D0_IO_CONTROL_MAIN 0x346 | ||
139 | #define MAS_D0_INTERFACE_CONTROL 0x347 | ||
140 | #define MAS_D0_OFREQ_CONTROL 0x348 | ||
141 | #define MAS_D0_OUT_CLK_CONFIG 0x349 | ||
142 | #define MAS_D0_SPD_OUT_BITS 0x351 | ||
143 | #define MAS_D0_SOFT_MUTE 0x350 | ||
144 | #define MAS_D0_OUT_LL 0x354 | ||
145 | #define MAS_D0_OUT_LR 0x355 | ||
146 | #define MAS_D0_OUT_RL 0x356 | ||
147 | #define MAS_D0_OUT_RR 0x357 | ||
148 | #define MAS_D0_MPEG_FRAME_COUNT 0xfd0 | ||
149 | #define MAS_D0_MPEG_STATUS_1 0xfd1 | ||
150 | #define MAS_D0_MPEG_STATUS_2 0xfd2 | ||
151 | #define MAS_D0_CRC_ERROR_COUNT 0xfd3 | ||
152 | |||
153 | #elif CONFIG_CODEC == MAS3507D | ||
154 | #define MAS_D0_MPEG_FRAME_COUNT 0x300 | ||
155 | #define MAS_D0_MPEG_STATUS_1 0x301 | ||
156 | #define MAS_D0_MPEG_STATUS_2 0x302 | ||
157 | #define MAS_D0_CRC_ERROR_COUNT 0x303 | ||
158 | #define MAS_D0_OUT_LL 0x7f8 | ||
159 | #define MAS_D0_OUT_LR 0x7f9 | ||
160 | #define MAS_D0_OUT_RL 0x7fa | ||
161 | #define MAS_D0_OUT_RR 0x7fb | ||
162 | |||
163 | #endif | ||
164 | |||
165 | int mas_default_read(unsigned short *buf); | ||
166 | int mas_run(unsigned short address); | ||
167 | int mas_readmem(int bank, int addr, unsigned long* dest, int len); | ||
168 | int mas_writemem(int bank, int addr, const unsigned long* src, int len); | ||
169 | int mas_readreg(int reg); | ||
170 | int mas_writereg(int reg, unsigned int val); | ||
171 | void mas_reset(void); | ||
172 | int mas_direct_config_read(unsigned char reg); | ||
173 | int mas_direct_config_write(unsigned char reg, unsigned int val); | ||
174 | int mas_codec_writereg(int reg, unsigned int val); | ||
175 | int mas_codec_readreg(int reg); | ||
176 | unsigned long mas_readver(void); | ||
177 | |||
178 | #endif | ||
179 | |||
180 | #if CONFIG_TUNER & S1A0903X01 | ||
181 | void mas_store_pllfreq(int freq); | ||
182 | int mas_get_pllfreq(void); | ||
183 | #endif | ||
184 | |||
diff --git a/firmware/export/mas35xx.h b/firmware/export/mas35xx.h index 1c50b7f02b..f75658fce1 100644 --- a/firmware/export/mas35xx.h +++ b/firmware/export/mas35xx.h | |||
@@ -25,27 +25,55 @@ | |||
25 | #define _MAS35XX_H | 25 | #define _MAS35XX_H |
26 | 26 | ||
27 | #include "config.h" | 27 | #include "config.h" |
28 | #include "mascodec.h" | ||
28 | 29 | ||
29 | #if CONFIG_CODEC == MAS3507D | 30 | #define MAS_BANK_D0 0 |
31 | #define MAS_BANK_D1 1 | ||
30 | 32 | ||
31 | #define VOLUME_MIN -780 | 33 | /* registers common to all MAS35xx */ |
32 | #define VOLUME_MAX 180 | 34 | #define MAS_REG_DCCF 0x8e |
33 | #define AUDIOHW_CAPS (BASS_CAP | TREBLE_CAP | PRESCALER_CAP) | 35 | #define MAS_REG_MUTE 0xaa |
36 | #define MAS_REG_PIODATA 0xc8 | ||
37 | #define MAS_REG_StartUpConfig 0xe6 | ||
38 | #define MAS_REG_KPRESCALE 0xe7 | ||
34 | 39 | ||
35 | #else /* CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F */ | 40 | #if CONFIG_CODEC == MAS3507D |
36 | 41 | ||
37 | /* MAS3587F and MAS3539F handle clipping prevention internally so we do not need | 42 | /* I2C defines */ |
38 | * the prescaler -> CLIPPING_CAP | 43 | #define MAS_ADR 0x3a |
39 | */ | 44 | #define MAS_DEV_WRITE (MAS_ADR | 0x00) |
45 | #define MAS_DEV_READ (MAS_ADR | 0x01) | ||
40 | 46 | ||
41 | #define VOLUME_MIN -400 | 47 | /* MAS3507D registers */ |
42 | #define VOLUME_MAX 600 | 48 | #define MAS_DATA_WRITE 0x68 |
43 | #define AUDIOHW_CAPS (BASS_CAP | TREBLE_CAP | BALANCE_CAP | CLIPPING_CAP) | 49 | #define MAS_DATA_READ 0x69 |
50 | #define MAS_CONTROL 0x6a | ||
44 | 51 | ||
45 | #endif | 52 | #define MAS_REG_KBASS 0x6b |
53 | #define MAS_REG_KTREBLE 0x6f | ||
46 | 54 | ||
55 | /* MAS3507D commands */ | ||
56 | #define MAS_CMD_READ_ANCILLARY 0x30 | ||
57 | #define MAS_CMD_WRITE_REG 0x90 | ||
58 | #define MAS_CMD_WRITE_D0_MEM 0xa0 | ||
59 | #define MAS_CMD_WRITE_D1_MEM 0xb0 | ||
60 | #define MAS_CMD_READ_REG 0xd0 | ||
61 | #define MAS_CMD_READ_D0_MEM 0xe0 | ||
62 | #define MAS_CMD_READ_D1_MEM 0xf0 | ||
47 | 63 | ||
48 | #if CONFIG_CODEC == MAS3507D | 64 | /* MAS3507D D0 memmory cells */ |
65 | #define MAS_D0_MPEG_FRAME_COUNT 0x300 | ||
66 | #define MAS_D0_MPEG_STATUS_1 0x301 | ||
67 | #define MAS_D0_MPEG_STATUS_2 0x302 | ||
68 | #define MAS_D0_CRC_ERROR_COUNT 0x303 | ||
69 | #define MAS_D0_OUT_LL 0x7f8 | ||
70 | #define MAS_D0_OUT_LR 0x7f9 | ||
71 | #define MAS_D0_OUT_RL 0x7fa | ||
72 | #define MAS_D0_OUT_RR 0x7fb | ||
73 | |||
74 | #define VOLUME_MIN -780 | ||
75 | #define VOLUME_MAX 180 | ||
76 | #define AUDIOHW_CAPS (BASS_CAP | TREBLE_CAP | PRESCALER_CAP) | ||
49 | 77 | ||
50 | static const unsigned int bass_table[] = | 78 | static const unsigned int bass_table[] = |
51 | { | 79 | { |
@@ -136,6 +164,112 @@ static const unsigned int prescale_table[] = | |||
136 | 0xe6800, /* 14dB */ | 164 | 0xe6800, /* 14dB */ |
137 | 0xe9400 /* 15dB */ | 165 | 0xe9400 /* 15dB */ |
138 | }; | 166 | }; |
139 | #endif /*CONFIG_CODEC == MAS3507D*/ | 167 | |
168 | #else /* CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F */ | ||
169 | |||
170 | /* I2C defines */ | ||
171 | #define MAS_ADR 0x3c | ||
172 | #define MAS_DEV_WRITE (MAS_ADR | 0x00) | ||
173 | #define MAS_DEV_READ (MAS_ADR | 0x01) | ||
174 | |||
175 | /* MAS3587F/MAS3539F registers */ | ||
176 | #define MAS_DATA_WRITE 0x68 | ||
177 | #define MAS_DATA_READ 0x69 | ||
178 | #define MAS_CODEC_WRITE 0x6c | ||
179 | #define MAS_CODEC_READ 0x6d | ||
180 | #define MAS_CONTROL 0x6a | ||
181 | #define MAS_DCCF 0x76 | ||
182 | #define MAS_DCFR 0x77 | ||
183 | |||
184 | #define MAS_REG_KMDB_SWITCH 0x21 | ||
185 | #define MAS_REG_KMDB_STR 0x22 | ||
186 | #define MAS_REG_KMDB_HAR 0x23 | ||
187 | #define MAS_REG_KMDB_FC 0x24 | ||
188 | #define MAS_REG_KLOUDNESS 0x1e | ||
189 | #define MAS_REG_QPEAK_L 0x0a | ||
190 | #define MAS_REG_QPEAK_R 0x0b | ||
191 | #define MAS_REG_DQPEAK_L 0x0c | ||
192 | #define MAS_REG_DQPEAK_R 0x0d | ||
193 | #define MAS_REG_VOLUME_CONTROL 0x10 | ||
194 | #define MAS_REG_BALANCE 0x11 | ||
195 | #define MAS_REG_KAVC 0x12 | ||
196 | #define MAS_REG_KBASS 0x14 | ||
197 | #define MAS_REG_KTREBLE 0x15 | ||
198 | |||
199 | /* MAS3587F/MAS3539F commands */ | ||
200 | #define MAS_CMD_READ_ANCILLARY 0x50 | ||
201 | #define MAS_CMD_FAST_PRG_DL 0x60 | ||
202 | #define MAS_CMD_READ_IC_VER 0x70 | ||
203 | #define MAS_CMD_READ_REG 0xa0 | ||
204 | #define MAS_CMD_WRITE_REG 0xb0 | ||
205 | #define MAS_CMD_READ_D0_MEM 0xc0 | ||
206 | #define MAS_CMD_READ_D1_MEM 0xd0 | ||
207 | #define MAS_CMD_WRITE_D0_MEM 0xe0 | ||
208 | #define MAS_CMD_WRITE_D1_MEM 0xf0 | ||
209 | |||
210 | /* MAS3587F D0 memory cells */ | ||
211 | #if CONFIG_CODEC == MAS3587F | ||
212 | #define MAS_D0_APP_SELECT 0x7f6 | ||
213 | #define MAS_D0_APP_RUNNING 0x7f7 | ||
214 | #define MAS_D0_ENCODER_CONTROL 0x7f0 | ||
215 | #define MAS_D0_IO_CONTROL_MAIN 0x7f1 | ||
216 | #define MAS_D0_INTERFACE_CONTROL 0x7f2 | ||
217 | #define MAS_D0_OFREQ_CONTROL 0x7f3 | ||
218 | #define MAS_D0_OUT_CLK_CONFIG 0x7f4 | ||
219 | #define MAS_D0_SPD_OUT_BITS 0x7f8 | ||
220 | #define MAS_D0_SOFT_MUTE 0x7f9 | ||
221 | #define MAS_D0_OUT_LL 0x7fc | ||
222 | #define MAS_D0_OUT_LR 0x7fd | ||
223 | #define MAS_D0_OUT_RL 0x7fe | ||
224 | #define MAS_D0_OUT_RR 0x7ff | ||
225 | #define MAS_D0_MPEG_FRAME_COUNT 0xfd0 | ||
226 | #define MAS_D0_MPEG_STATUS_1 0xfd1 | ||
227 | #define MAS_D0_MPEG_STATUS_2 0xfd2 | ||
228 | #define MAS_D0_CRC_ERROR_COUNT 0xfd3 | ||
229 | |||
230 | /* MAS3539F D0 memory cells */ | ||
231 | #elif CONFIG_CODEC == MAS3539F | ||
232 | #define MAS_D0_APP_SELECT 0x34b | ||
233 | #define MAS_D0_APP_RUNNING 0x34c | ||
234 | /* no encoder :( */ | ||
235 | #define MAS_D0_IO_CONTROL_MAIN 0x346 | ||
236 | #define MAS_D0_INTERFACE_CONTROL 0x347 | ||
237 | #define MAS_D0_OFREQ_CONTROL 0x348 | ||
238 | #define MAS_D0_OUT_CLK_CONFIG 0x349 | ||
239 | #define MAS_D0_SPD_OUT_BITS 0x351 | ||
240 | #define MAS_D0_SOFT_MUTE 0x350 | ||
241 | #define MAS_D0_OUT_LL 0x354 | ||
242 | #define MAS_D0_OUT_LR 0x355 | ||
243 | #define MAS_D0_OUT_RL 0x356 | ||
244 | #define MAS_D0_OUT_RR 0x357 | ||
245 | #define MAS_D0_MPEG_FRAME_COUNT 0xfd0 | ||
246 | #define MAS_D0_MPEG_STATUS_1 0xfd1 | ||
247 | #define MAS_D0_MPEG_STATUS_2 0xfd2 | ||
248 | #define MAS_D0_CRC_ERROR_COUNT 0xfd3 | ||
249 | #endif | ||
250 | |||
251 | /* MAS3587F and MAS3539F handle clipping prevention internally so we do not need | ||
252 | * the prescaler -> CLIPPING_CAP | ||
253 | */ | ||
254 | |||
255 | #define VOLUME_MIN -400 | ||
256 | #define VOLUME_MAX 600 | ||
257 | #define AUDIOHW_CAPS (BASS_CAP | TREBLE_CAP | BALANCE_CAP | CLIPPING_CAP) | ||
258 | |||
259 | #endif /* CONFIG_CODEC */ | ||
260 | |||
261 | /* Function prototypes */ | ||
262 | #if CONFIG_CODEC == MAS3587F || CONFIG_CODEC == MAS3539F | ||
263 | extern void audiohw_set_loudness(int value); | ||
264 | extern void audiohw_set_avc(int value); | ||
265 | extern void audiohw_set_mdb_strength(int value); | ||
266 | extern void audiohw_set_mdb_harmonics(int value); | ||
267 | extern void audiohw_set_mdb_center(int value); | ||
268 | extern void audiohw_set_mdb_shape(int value); | ||
269 | extern void audiohw_set_mdb_enable(int value); | ||
270 | extern void audiohw_set_superbass(int value); | ||
271 | extern void audiohw_set_balance(int val); | ||
272 | extern void audiohw_set_pitch(unsigned long val); | ||
273 | #endif | ||
140 | 274 | ||
141 | #endif /* _MAS35XX_H */ | 275 | #endif /* _MAS35XX_H */ |
diff --git a/firmware/export/mascodec.h b/firmware/export/mascodec.h new file mode 100644 index 0000000000..82a71e30c8 --- /dev/null +++ b/firmware/export/mascodec.h | |||
@@ -0,0 +1,43 @@ | |||
1 | /*************************************************************************** | ||
2 | * __________ __ ___. | ||
3 | * Open \______ \ ____ ____ | | _\_ |__ _______ ___ | ||
4 | * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / | ||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | ||
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | ||
7 | * \/ \/ \/ \/ \/ | ||
8 | * $Id: mas.h 24154 2010-01-03 10:27:43Z Buschel $ | ||
9 | * | ||
10 | * Copyright (C) 2002 by Linus Nielsen Feltzing | ||
11 | * | ||
12 | * This program is free software; you can redistribute it and/or | ||
13 | * modify it under the terms of the GNU General Public License | ||
14 | * as published by the Free Software Foundation; either version 2 | ||
15 | * of the License, or (at your option) any later version. | ||
16 | * | ||
17 | * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY | ||
18 | * KIND, either express or implied. | ||
19 | * | ||
20 | ****************************************************************************/ | ||
21 | #ifndef _MASCODEC_H_ | ||
22 | #define _MASCODEC_H_ | ||
23 | |||
24 | int mas_default_read(unsigned short *buf); | ||
25 | int mas_run(unsigned short address); | ||
26 | int mas_readmem(int bank, int addr, unsigned long* dest, int len); | ||
27 | int mas_writemem(int bank, int addr, const unsigned long* src, int len); | ||
28 | int mas_readreg(int reg); | ||
29 | int mas_writereg(int reg, unsigned int val); | ||
30 | void mas_reset(void); | ||
31 | int mas_direct_config_read(unsigned char reg); | ||
32 | int mas_direct_config_write(unsigned char reg, unsigned int val); | ||
33 | int mas_codec_writereg(int reg, unsigned int val); | ||
34 | int mas_codec_readreg(int reg); | ||
35 | unsigned long mas_readver(void); | ||
36 | |||
37 | #endif | ||
38 | |||
39 | #if CONFIG_TUNER & S1A0903X01 | ||
40 | void mas_store_pllfreq(int freq); | ||
41 | int mas_get_pllfreq(void); | ||
42 | #endif | ||
43 | |||
diff --git a/firmware/sound.c b/firmware/sound.c index bede18615a..82d5cdf47d 100644 --- a/firmware/sound.c +++ b/firmware/sound.c | |||
@@ -26,16 +26,17 @@ | |||
26 | #include "logf.h" | 26 | #include "logf.h" |
27 | #include "system.h" | 27 | #include "system.h" |
28 | #include "i2c.h" | 28 | #include "i2c.h" |
29 | #include "mas.h" | ||
30 | #if (CONFIG_PLATFORM & PLATFORM_NATIVE) | 29 | #if (CONFIG_PLATFORM & PLATFORM_NATIVE) |
31 | #if CONFIG_CPU == PNX0101 | 30 | #if CONFIG_CPU == PNX0101 |
32 | #include "pnx0101.h" | 31 | #include "pnx0101.h" |
33 | #endif | 32 | #endif /* CONFIG_CPU == PNX101 */ |
34 | #include "dac.h" | ||
35 | #if CONFIG_CODEC == SWCODEC | 33 | #if CONFIG_CODEC == SWCODEC |
36 | #include "pcm.h" | 34 | #include "pcm.h" |
35 | #else /* !CONFIG_CODEC == HWCODEC */ | ||
36 | #include "mas35xx.h" | ||
37 | #include "dac3550a.h" | ||
37 | #endif | 38 | #endif |
38 | #endif | 39 | #endif /* !SIMULATOR */ |
39 | 40 | ||
40 | /* TODO | 41 | /* TODO |
41 | * find a nice way to handle 1.5db steps -> see wm8751 ifdef in sound_set_bass/treble | 42 | * find a nice way to handle 1.5db steps -> see wm8751 ifdef in sound_set_bass/treble |
@@ -162,18 +163,6 @@ void sound_set_dsp_callback(int (*func)(int, intptr_t)) | |||
162 | } | 163 | } |
163 | #endif | 164 | #endif |
164 | 165 | ||
165 | #if (CONFIG_CODEC == MAS3507D) && !defined(SIMULATOR) | ||
166 | /* convert tenth of dB volume (-780..+180) to dac3550 register value */ | ||
167 | static int tenthdb2reg(int db) | ||
168 | { | ||
169 | if (db < -540) /* 3 dB steps */ | ||
170 | return (db + 780) / 30; | ||
171 | else /* 1.5 dB steps */ | ||
172 | return (db + 660) / 15; | ||
173 | } | ||
174 | #endif | ||
175 | |||
176 | |||
177 | #if !defined(AUDIOHW_HAVE_CLIPPING) | 166 | #if !defined(AUDIOHW_HAVE_CLIPPING) |
178 | /* | 167 | /* |
179 | * The prescaler compensates for any kind of boosts, to prevent clipping. | 168 | * The prescaler compensates for any kind of boosts, to prevent clipping. |
@@ -282,12 +271,6 @@ static void set_prescaled_volume(void) | |||
282 | } | 271 | } |
283 | #endif /* (CONFIG_CODEC == MAS3507D) || defined HAVE_UDA1380 */ | 272 | #endif /* (CONFIG_CODEC == MAS3507D) || defined HAVE_UDA1380 */ |
284 | 273 | ||
285 | |||
286 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) | ||
287 | static unsigned long mdb_shape_shadow = 0; | ||
288 | static unsigned long loudness_shadow = 0; | ||
289 | #endif | ||
290 | |||
291 | void sound_set_volume(int value) | 274 | void sound_set_volume(int value) |
292 | { | 275 | { |
293 | if(!audio_is_initialized) | 276 | if(!audio_is_initialized) |
@@ -620,86 +603,64 @@ void sound_set_loudness(int value) | |||
620 | { | 603 | { |
621 | if(!audio_is_initialized) | 604 | if(!audio_is_initialized) |
622 | return; | 605 | return; |
623 | loudness_shadow = (loudness_shadow & 0x04) | | 606 | |
624 | (MAX(MIN(value * 4, 0x44), 0) << 8); | 607 | audiohw_set_loudness(value); |
625 | mas_codec_writereg(MAS_REG_KLOUDNESS, loudness_shadow); | ||
626 | } | 608 | } |
627 | 609 | ||
628 | void sound_set_avc(int value) | 610 | void sound_set_avc(int value) |
629 | { | 611 | { |
630 | if(!audio_is_initialized) | 612 | if(!audio_is_initialized) |
631 | return; | 613 | return; |
632 | int tmp; | ||
633 | 614 | ||
634 | static const uint16_t avc_vals[] = | 615 | audiohw_set_avc(value); |
635 | { | ||
636 | (0x1 << 8) | (0x8 << 12), /* 20ms */ | ||
637 | (0x2 << 8) | (0x8 << 12), /* 2s */ | ||
638 | (0x4 << 8) | (0x8 << 12), /* 4s */ | ||
639 | (0x8 << 8) | (0x8 << 12), /* 8s */ | ||
640 | }; | ||
641 | switch (value) { | ||
642 | case 1: | ||
643 | case 2: | ||
644 | case 3: | ||
645 | case 4: | ||
646 | tmp = avc_vals[value -1]; | ||
647 | break; | ||
648 | case -1: /* turn off and then turn on again to decay quickly */ | ||
649 | tmp = mas_codec_readreg(MAS_REG_KAVC); | ||
650 | mas_codec_writereg(MAS_REG_KAVC, 0); | ||
651 | break; | ||
652 | default: /* off */ | ||
653 | tmp = 0; | ||
654 | break; | ||
655 | } | ||
656 | mas_codec_writereg(MAS_REG_KAVC, tmp); | ||
657 | } | 616 | } |
658 | 617 | ||
659 | void sound_set_mdb_strength(int value) | 618 | void sound_set_mdb_strength(int value) |
660 | { | 619 | { |
661 | if(!audio_is_initialized) | 620 | if(!audio_is_initialized) |
662 | return; | 621 | return; |
663 | mas_codec_writereg(MAS_REG_KMDB_STR, (value & 0x7f) << 8); | 622 | |
623 | audiohw_set_mdb_strength(value); | ||
664 | } | 624 | } |
665 | 625 | ||
666 | void sound_set_mdb_harmonics(int value) | 626 | void sound_set_mdb_harmonics(int value) |
667 | { | 627 | { |
668 | if(!audio_is_initialized) | 628 | if(!audio_is_initialized) |
669 | return; | 629 | return; |
670 | int tmp = value * 127 / 100; | 630 | |
671 | mas_codec_writereg(MAS_REG_KMDB_HAR, (tmp & 0x7f) << 8); | 631 | audiohw_set_mdb_harmonics(value); |
672 | } | 632 | } |
673 | 633 | ||
674 | void sound_set_mdb_center(int value) | 634 | void sound_set_mdb_center(int value) |
675 | { | 635 | { |
676 | if(!audio_is_initialized) | 636 | if(!audio_is_initialized) |
677 | return; | 637 | return; |
678 | mas_codec_writereg(MAS_REG_KMDB_FC, (value/10) << 8); | 638 | |
639 | audiohw_set_mdb_center(value); | ||
679 | } | 640 | } |
680 | 641 | ||
681 | void sound_set_mdb_shape(int value) | 642 | void sound_set_mdb_shape(int value) |
682 | { | 643 | { |
683 | if(!audio_is_initialized) | 644 | if(!audio_is_initialized) |
684 | return; | 645 | return; |
685 | mdb_shape_shadow = (mdb_shape_shadow & 0x02) | ((value/10) << 8); | 646 | |
686 | mas_codec_writereg(MAS_REG_KMDB_SWITCH, mdb_shape_shadow); | 647 | audiohw_set_mdb_shape(value); |
687 | } | 648 | } |
688 | 649 | ||
689 | void sound_set_mdb_enable(int value) | 650 | void sound_set_mdb_enable(int value) |
690 | { | 651 | { |
691 | if(!audio_is_initialized) | 652 | if(!audio_is_initialized) |
692 | return; | 653 | return; |
693 | mdb_shape_shadow = (mdb_shape_shadow & ~0x02) | (value?2:0); | 654 | |
694 | mas_codec_writereg(MAS_REG_KMDB_SWITCH, mdb_shape_shadow); | 655 | audiohw_set_mdb_enable(value); |
695 | } | 656 | } |
696 | 657 | ||
697 | void sound_set_superbass(int value) | 658 | void sound_set_superbass(int value) |
698 | { | 659 | { |
699 | if(!audio_is_initialized) | 660 | if(!audio_is_initialized) |
700 | return; | 661 | return; |
701 | loudness_shadow = (loudness_shadow & ~0x04) | (value?4:0); | 662 | |
702 | mas_codec_writereg(MAS_REG_KLOUDNESS, loudness_shadow); | 663 | audiohw_set_superbass(value); |
703 | } | 664 | } |
704 | #endif /* (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) */ | 665 | #endif /* (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) */ |
705 | 666 | ||
@@ -847,11 +808,7 @@ void sound_set_pitch(int32_t pitch) | |||
847 | /* Calculate the new (bogus) frequency */ | 808 | /* Calculate the new (bogus) frequency */ |
848 | val = 18432 * PITCH_SPEED_100 / pitch; | 809 | val = 18432 * PITCH_SPEED_100 / pitch; |
849 | 810 | ||
850 | mas_writemem(MAS_BANK_D0, MAS_D0_OFREQ_CONTROL, &val, 1); | 811 | audiohw_set_pitch(val); |
851 | |||
852 | /* We must tell the MAS that the frequency has changed. | ||
853 | * This will unfortunately cause a short silence. */ | ||
854 | mas_writemem(MAS_BANK_D0, MAS_D0_IO_CONTROL_MAIN, &shadow_io_control_main, 1); | ||
855 | 812 | ||
856 | last_pitch = pitch; | 813 | last_pitch = pitch; |
857 | } | 814 | } |
diff --git a/firmware/mp3_playback.c b/firmware/target/sh/archos/audio-archos.c index 8e19829f56..e2d8b6f157 100644 --- a/firmware/mp3_playback.c +++ b/firmware/target/sh/archos/audio-archos.c | |||
@@ -28,12 +28,8 @@ | |||
28 | #include <kernel.h> | 28 | #include <kernel.h> |
29 | #include "mp3_playback.h" | 29 | #include "mp3_playback.h" |
30 | #include "sound.h" | 30 | #include "sound.h" |
31 | #ifndef SIMULATOR | ||
32 | #include "i2c.h" | 31 | #include "i2c.h" |
33 | #include "mas.h" | ||
34 | #include "dac.h" | ||
35 | #include "system.h" | 32 | #include "system.h" |
36 | #endif | ||
37 | #include "audiohw.h" | 33 | #include "audiohw.h" |
38 | 34 | ||
39 | /* hacking into mpeg.c, recording is still there */ | 35 | /* hacking into mpeg.c, recording is still there */ |
@@ -56,14 +52,12 @@ extern unsigned shadow_codec_reg0; | |||
56 | static bool paused; /* playback is paused */ | 52 | static bool paused; /* playback is paused */ |
57 | static bool playing; /* We are playing an MP3 stream */ | 53 | static bool playing; /* We are playing an MP3 stream */ |
58 | 54 | ||
59 | #ifndef SIMULATOR | ||
60 | /* for measuring the play time */ | 55 | /* for measuring the play time */ |
61 | static long playstart_tick; | 56 | static long playstart_tick; |
62 | static long cumulative_ticks; | 57 | static long cumulative_ticks; |
63 | 58 | ||
64 | /* the registered callback function to ask for more mp3 data */ | 59 | /* the registered callback function to ask for more mp3 data */ |
65 | static void (*callback_for_more)(unsigned char**, size_t*); | 60 | static void (*callback_for_more)(unsigned char**, size_t*); |
66 | #endif /* #ifndef SIMULATOR */ | ||
67 | 61 | ||
68 | /* list of tracks in memory */ | 62 | /* list of tracks in memory */ |
69 | #define MAX_ID3_TAGS (1<<4) /* Must be power of 2 */ | 63 | #define MAX_ID3_TAGS (1<<4) /* Must be power of 2 */ |
@@ -77,8 +71,6 @@ bool audio_is_initialized = false; | |||
77 | extern void playback_tick(void); | 71 | extern void playback_tick(void); |
78 | extern void rec_tick(void); | 72 | extern void rec_tick(void); |
79 | 73 | ||
80 | #ifndef SIMULATOR | ||
81 | |||
82 | unsigned long mas_version_code; | 74 | unsigned long mas_version_code; |
83 | 75 | ||
84 | #if CONFIG_CODEC == MAS3507D | 76 | #if CONFIG_CODEC == MAS3507D |
@@ -133,7 +125,6 @@ static void postpone_dma_tick(void) | |||
133 | } | 125 | } |
134 | #endif | 126 | #endif |
135 | 127 | ||
136 | |||
137 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) | 128 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) |
138 | void demand_irq_enable(bool on) | 129 | void demand_irq_enable(bool on) |
139 | { | 130 | { |
@@ -328,7 +319,6 @@ static void init_playback(void) | |||
328 | DEBUGF("MAS Decoding application started\n"); | 319 | DEBUGF("MAS Decoding application started\n"); |
329 | } | 320 | } |
330 | #endif /* #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) */ | 321 | #endif /* #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) */ |
331 | #endif /* SIMULATOR */ | ||
332 | 322 | ||
333 | void mp3_init(int volume, int bass, int treble, int balance, int loudness, | 323 | void mp3_init(int volume, int bass, int treble, int balance, int loudness, |
334 | int avc, int channel_config, int stereo_width, | 324 | int avc, int channel_config, int stereo_width, |
@@ -336,23 +326,6 @@ void mp3_init(int volume, int bass, int treble, int balance, int loudness, | |||
336 | int mdb_center, int mdb_shape, bool mdb_enable, | 326 | int mdb_center, int mdb_shape, bool mdb_enable, |
337 | bool superbass) | 327 | bool superbass) |
338 | { | 328 | { |
339 | #ifdef SIMULATOR | ||
340 | (void)volume; | ||
341 | (void)bass; | ||
342 | (void)treble; | ||
343 | (void)balance; | ||
344 | (void)loudness; | ||
345 | (void)avc; | ||
346 | (void)channel_config; | ||
347 | (void)stereo_width; | ||
348 | (void)mdb_strength; | ||
349 | (void)mdb_harmonics; | ||
350 | (void)mdb_center; | ||
351 | (void)mdb_shape; | ||
352 | (void)mdb_enable; | ||
353 | (void)superbass; | ||
354 | audio_is_initialized = true; | ||
355 | #else | ||
356 | #if CONFIG_CODEC == MAS3507D | 329 | #if CONFIG_CODEC == MAS3507D |
357 | unsigned long val; | 330 | unsigned long val; |
358 | (void)loudness; | 331 | (void)loudness; |
@@ -469,7 +442,6 @@ void mp3_init(int volume, int bass, int treble, int balance, int loudness, | |||
469 | sound_set(SOUND_MDB_ENABLE, mdb_enable); | 442 | sound_set(SOUND_MDB_ENABLE, mdb_enable); |
470 | sound_set(SOUND_SUPERBASS, superbass); | 443 | sound_set(SOUND_SUPERBASS, superbass); |
471 | #endif | 444 | #endif |
472 | #endif /* !SIMULATOR */ | ||
473 | 445 | ||
474 | playing = false; | 446 | playing = false; |
475 | paused = true; | 447 | paused = true; |
@@ -477,7 +449,6 @@ void mp3_init(int volume, int bass, int treble, int balance, int loudness, | |||
477 | 449 | ||
478 | void mp3_shutdown(void) | 450 | void mp3_shutdown(void) |
479 | { | 451 | { |
480 | #ifndef SIMULATOR | ||
481 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) | 452 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) |
482 | unsigned long val = 1; | 453 | unsigned long val = 1; |
483 | mas_writemem(MAS_BANK_D0, MAS_D0_SOFT_MUTE, &val, 1); /* Mute */ | 454 | mas_writemem(MAS_BANK_D0, MAS_D0_SOFT_MUTE, &val, 1); /* Mute */ |
@@ -486,14 +457,10 @@ void mp3_shutdown(void) | |||
486 | #if CONFIG_CODEC == MAS3507D | 457 | #if CONFIG_CODEC == MAS3507D |
487 | dac_volume(0, 0, false); | 458 | dac_volume(0, 0, false); |
488 | #endif | 459 | #endif |
489 | |||
490 | #endif | ||
491 | } | 460 | } |
492 | 461 | ||
493 | /* new functions, to be exported to plugin API */ | 462 | /* new functions, to be exported to plugin API */ |
494 | 463 | ||
495 | #ifndef SIMULATOR | ||
496 | |||
497 | void mp3_play_init(void) | 464 | void mp3_play_init(void) |
498 | { | 465 | { |
499 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) | 466 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) |
@@ -594,25 +561,3 @@ unsigned char* mp3_get_pos(void) | |||
594 | { | 561 | { |
595 | return (unsigned char*)SAR3; | 562 | return (unsigned char*)SAR3; |
596 | } | 563 | } |
597 | #else /* #ifndef SIMULATOR */ | ||
598 | |||
599 | void mp3_play_pause(bool play) | ||
600 | { | ||
601 | (void)play; | ||
602 | } | ||
603 | void mp3_play_stop(void) | ||
604 | { | ||
605 | } | ||
606 | |||
607 | unsigned char* mp3_get_pos(void) | ||
608 | { | ||
609 | return NULL; | ||
610 | } | ||
611 | |||
612 | void mp3_play_data(const unsigned char* start, int size, | ||
613 | void (*get_more)(unsigned char** start, size_t* size) /* callback fn */ | ||
614 | ) | ||
615 | { | ||
616 | (void)start; (void)size; (void)get_more; | ||
617 | } | ||
618 | #endif | ||
diff --git a/firmware/drivers/mas.c b/firmware/target/sh/archos/mascodec-archos.c index 4f384d3b98..3f932166eb 100644 --- a/firmware/drivers/mas.c +++ b/firmware/target/sh/archos/mascodec-archos.c | |||
@@ -5,7 +5,7 @@ | |||
5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < | 5 | * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < |
6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ | 6 | * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ |
7 | * \/ \/ \/ \/ \/ | 7 | * \/ \/ \/ \/ \/ |
8 | * $Id$ | 8 | * $Id: mas.c 18807 2008-10-14 11:12:20Z zagor $ |
9 | * | 9 | * |
10 | * Copyright (C) 2002 by Linus Nielsen Feltzing | 10 | * Copyright (C) 2002 by Linus Nielsen Feltzing |
11 | * | 11 | * |
@@ -23,7 +23,7 @@ | |||
23 | #include "sh7034.h" | 23 | #include "sh7034.h" |
24 | #include "i2c.h" | 24 | #include "i2c.h" |
25 | #include "debug.h" | 25 | #include "debug.h" |
26 | #include "mas.h" | 26 | #include "mas35xx.h" |
27 | #include "kernel.h" | 27 | #include "kernel.h" |
28 | #include "system.h" | 28 | #include "system.h" |
29 | #include "hwcompat.h" | 29 | #include "hwcompat.h" |
diff --git a/firmware/test/i2c/main.c b/firmware/test/i2c/main.c index ad0f8efcbd..7a2ff49fcb 100644 --- a/firmware/test/i2c/main.c +++ b/firmware/test/i2c/main.c | |||
@@ -46,9 +46,9 @@ | |||
46 | 46 | ||
47 | #include "i2c.h" | 47 | #include "i2c.h" |
48 | 48 | ||
49 | #include "mas.h" | 49 | #include "mas35xx.h" |
50 | 50 | ||
51 | #include "dac.h" | 51 | #include "dac3550a.h" |
52 | 52 | ||
53 | #include "sh7034.h" | 53 | #include "sh7034.h" |
54 | 54 | ||
diff --git a/uisimulator/common/stubs.c b/uisimulator/common/stubs.c index a9011b9aa5..e0372d2683 100644 --- a/uisimulator/common/stubs.c +++ b/uisimulator/common/stubs.c | |||
@@ -40,7 +40,113 @@ void audio_set_buffer_margin(int seconds) | |||
40 | { | 40 | { |
41 | (void)seconds; | 41 | (void)seconds; |
42 | } | 42 | } |
43 | #endif | 43 | |
44 | /* firmware/target/sh/archos/audio-archos.c */ | ||
45 | |||
46 | /* list of tracks in memory */ | ||
47 | #define MAX_ID3_TAGS (1<<4) /* Must be power of 2 */ | ||
48 | #define MAX_ID3_TAGS_MASK (MAX_ID3_TAGS - 1) | ||
49 | |||
50 | static bool paused; /* playback is paused */ | ||
51 | static bool playing; /* We are playing an MP3 stream */ | ||
52 | |||
53 | bool audio_is_initialized = false; | ||
54 | |||
55 | void mp3_init(int volume, int bass, int treble, int balance, int loudness, | ||
56 | int avc, int channel_config, int stereo_width, | ||
57 | int mdb_strength, int mdb_harmonics, | ||
58 | int mdb_center, int mdb_shape, bool mdb_enable, | ||
59 | bool superbass) | ||
60 | { | ||
61 | (void)volume; | ||
62 | (void)bass; | ||
63 | (void)treble; | ||
64 | (void)balance; | ||
65 | (void)loudness; | ||
66 | (void)avc; | ||
67 | (void)channel_config; | ||
68 | (void)stereo_width; | ||
69 | (void)mdb_strength; | ||
70 | (void)mdb_harmonics; | ||
71 | (void)mdb_center; | ||
72 | (void)mdb_shape; | ||
73 | (void)mdb_enable; | ||
74 | (void)superbass; | ||
75 | audio_is_initialized = true; | ||
76 | |||
77 | playing = false; | ||
78 | paused = true; | ||
79 | } | ||
80 | |||
81 | void mp3_play_pause(bool play) | ||
82 | { | ||
83 | (void)play; | ||
84 | } | ||
85 | |||
86 | void mp3_play_stop(void) | ||
87 | { | ||
88 | } | ||
89 | |||
90 | unsigned char* mp3_get_pos(void) | ||
91 | { | ||
92 | return NULL; | ||
93 | } | ||
94 | |||
95 | void mp3_play_data(const unsigned char* start, int size, | ||
96 | void (*get_more)(unsigned char** start, size_t* size) /* callback fn */ | ||
97 | ) | ||
98 | { | ||
99 | (void)start; (void)size; (void)get_more; | ||
100 | } | ||
101 | |||
102 | /* firmware/drivers/audio/mas35xx.c */ | ||
103 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) | ||
104 | void audiohw_set_loudness(int value) | ||
105 | { | ||
106 | (void)value; | ||
107 | } | ||
108 | |||
109 | void audiohw_set_avc(int value) | ||
110 | { | ||
111 | (void)value; | ||
112 | } | ||
113 | |||
114 | void audiohw_set_mdb_strength(int value) | ||
115 | { | ||
116 | (void)value; | ||
117 | } | ||
118 | |||
119 | void audiohw_set_mdb_harmonics(int value) | ||
120 | { | ||
121 | (void)value; | ||
122 | } | ||
123 | |||
124 | void audiohw_set_mdb_center(int value) | ||
125 | { | ||
126 | (void)value; | ||
127 | } | ||
128 | |||
129 | void audiohw_set_mdb_shape(int value) | ||
130 | { | ||
131 | (void)value; | ||
132 | } | ||
133 | |||
134 | void audiohw_set_mdb_enable(int value) | ||
135 | { | ||
136 | (void)value; | ||
137 | } | ||
138 | |||
139 | void audiohw_set_superbass(int value) | ||
140 | { | ||
141 | (void)value; | ||
142 | } | ||
143 | |||
144 | void audiohw_set_pitch(unsigned long value) | ||
145 | { | ||
146 | (void)value; | ||
147 | } | ||
148 | #endif /* (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) */ | ||
149 | #endif /* CODEC != SWCODEC */ | ||
44 | 150 | ||
45 | int fat_startsector(void) | 151 | int fat_startsector(void) |
46 | { | 152 | { |