summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/drivers/audio/tsc2100.c25
-rw-r--r--firmware/export/config-mrobe500.h9
-rw-r--r--firmware/export/tsc2100.h1
-rw-r--r--firmware/sound.c3
-rwxr-xr-xfirmware/target/arm/tms320dm320/debug-dm320.c3
-rw-r--r--firmware/target/arm/tms320dm320/dsp/main.c21
6 files changed, 19 insertions, 43 deletions
diff --git a/firmware/drivers/audio/tsc2100.c b/firmware/drivers/audio/tsc2100.c
index ca7f22d097..98a16f1fc1 100644
--- a/firmware/drivers/audio/tsc2100.c
+++ b/firmware/drivers/audio/tsc2100.c
@@ -29,20 +29,13 @@
29#include "tsc2100.h" 29#include "tsc2100.h"
30 30
31const struct sound_settings_info audiohw_settings[] = { 31const struct sound_settings_info audiohw_settings[] = {
32 [SOUND_VOLUME] = {"dB", 0, 1, -63, 0, -25}, 32 [SOUND_VOLUME] = {"dB", 0, 1, VOLUME_MIN/10, VOLUME_MAX/10, -25},
33#if 0
34 /* HAVE_SW_TONE_CONTROLS */ 33 /* HAVE_SW_TONE_CONTROLS */
35 [SOUND_BASS] = {"dB", 0, 1, -24, 24, 0}, 34 [SOUND_BASS] = {"dB", 0, 1, -24, 24, 0},
36 [SOUND_TREBLE] = {"dB", 0, 1, -24, 24, 0}, 35 [SOUND_TREBLE] = {"dB", 0, 1, -24, 24, 0},
37 [SOUND_BALANCE] = {"%", 0, 1,-100, 100, 0}, 36 [SOUND_BALANCE] = {"%", 0, 1,-100, 100, 0},
38 [SOUND_CHANNELS] = {"", 0, 1, 0, 5, 0}, 37 [SOUND_CHANNELS] = {"", 0, 1, 0, 5, 0},
39 [SOUND_STEREO_WIDTH] = {"%", 0, 5, 0, 250, 100}, 38 [SOUND_STEREO_WIDTH] = {"%", 0, 5, 0, 250, 100},
40#ifdef HAVE_RECORDING
41 [SOUND_MIC_GAIN] = {"dB", 1, 1, 0, 39, 23},
42 [SOUND_LEFT_GAIN] = {"dB", 1, 1, 0, 31, 23},
43 [SOUND_RIGHT_GAIN] = {"dB", 1, 1, 0, 31, 23},
44#endif
45#endif
46}; 39};
47static bool is_muted = false; 40static bool is_muted = false;
48/* convert tenth of dB volume to master volume register value */ 41/* convert tenth of dB volume to master volume register value */
@@ -50,11 +43,11 @@ int tenthdb2master(int db)
50{ 43{
51 /* 0 to -63.0dB in 1dB steps, tsc2100 can goto -63.5 in 0.5dB steps */ 44 /* 0 to -63.0dB in 1dB steps, tsc2100 can goto -63.5 in 0.5dB steps */
52 if (db < VOLUME_MIN) { 45 if (db < VOLUME_MIN) {
53 return 0x0; 46 return 0x7E;
54 } else if (db >= VOLUME_MAX) { 47 } else if (db >= VOLUME_MAX) {
55 return 0x1f; 48 return 0x00;
56 } else { 49 } else {
57 return((db-VOLUME_MIN)/10); /* VOLUME_MIN is negative */ 50 return(-((db)/5)); /* VOLUME_MIN is negative */
58 } 51 }
59} 52}
60 53
@@ -95,15 +88,7 @@ void audiohw_postinit(void)
95 88
96void audiohw_set_master_vol(int vol_l, int vol_r) 89void audiohw_set_master_vol(int vol_l, int vol_r)
97{ 90{
98 short vol = (vol_l<<14)|(vol_r); 91 tsc2100_writereg(TSDACGAIN_PAGE, TSDACGAIN_ADDRESS, (short)((vol_l<<8) | vol_r) );
99 if (is_muted)
100 vol |= (1<<15)|(1<<7);
101 tsc2100_writereg(TSDACGAIN_PAGE, TSDACGAIN_ADDRESS, vol);
102}
103
104void audiohw_set_lineout_vol(int vol_l, int vol_r)
105{
106 audiohw_set_master_vol(vol_l, vol_r);
107} 92}
108 93
109void audiohw_mute(bool mute) 94void audiohw_mute(bool mute)
diff --git a/firmware/export/config-mrobe500.h b/firmware/export/config-mrobe500.h
index 5f89a9667d..857404b3db 100644
--- a/firmware/export/config-mrobe500.h
+++ b/firmware/export/config-mrobe500.h
@@ -93,6 +93,9 @@
93/* Define this if you do software codec */ 93/* Define this if you do software codec */
94#define CONFIG_CODEC SWCODEC 94#define CONFIG_CODEC SWCODEC
95 95
96/* There is no hardware tone control */
97#define HAVE_SW_TONE_CONTROLS
98
96/* define this if you have a real-time clock */ 99/* define this if you have a real-time clock */
97#define CONFIG_RTC RTC_RX5X348AB 100#define CONFIG_RTC RTC_RX5X348AB
98 101
@@ -120,12 +123,6 @@
120/* The number of bytes reserved for loadable plugins */ 123/* The number of bytes reserved for loadable plugins */
121#define PLUGIN_BUFFER_SIZE 0x100000 124#define PLUGIN_BUFFER_SIZE 0x100000
122 125
123/* Define this if you have the WM8975 audio codec */
124//#define HAVE_WM8751
125
126/* Define this if you want to use the adaptive bass capibility of the 8751 */
127/* #define USE_ADAPTIVE_BASS */
128
129#define HW_SAMPR_CAPS (SAMPR_CAP_88 | SAMPR_CAP_44 | SAMPR_CAP_22 | \ 126#define HW_SAMPR_CAPS (SAMPR_CAP_88 | SAMPR_CAP_44 | SAMPR_CAP_22 | \
130 SAMPR_CAP_11) 127 SAMPR_CAP_11)
131 128
diff --git a/firmware/export/tsc2100.h b/firmware/export/tsc2100.h
index 242d3b1889..8d0ee529ff 100644
--- a/firmware/export/tsc2100.h
+++ b/firmware/export/tsc2100.h
@@ -134,6 +134,5 @@ void tsc2100_keyclick(void);
134 134
135extern int tenthdb2master(int db); 135extern int tenthdb2master(int db);
136extern void audiohw_set_master_vol(int vol_l, int vol_r); 136extern void audiohw_set_master_vol(int vol_l, int vol_r);
137extern void audiohw_set_lineout_vol(int vol_l, int vol_r);
138 137
139#endif 138#endif
diff --git a/firmware/sound.c b/firmware/sound.c
index c602a41467..5e5a596374 100644
--- a/firmware/sound.c
+++ b/firmware/sound.c
@@ -257,8 +257,7 @@ static void set_prescaled_volume(void)
257 || defined(HAVE_WM8751) || defined(HAVE_AS3514) || defined(HAVE_TSC2100) 257 || defined(HAVE_WM8751) || defined(HAVE_AS3514) || defined(HAVE_TSC2100)
258 audiohw_set_master_vol(tenthdb2master(l), tenthdb2master(r)); 258 audiohw_set_master_vol(tenthdb2master(l), tenthdb2master(r));
259#if defined(HAVE_WM8975) || defined(HAVE_WM8758) \ 259#if defined(HAVE_WM8975) || defined(HAVE_WM8758) \
260 || (defined(HAVE_WM8751) && !defined(MROBE_100)) \ 260 || (defined(HAVE_WM8751) && !defined(MROBE_100)) || defined(HAVE_WM8985)
261 || defined(HAVE_TSC2100) || defined(HAVE_WM8985)
262 audiohw_set_lineout_vol(tenthdb2master(0), tenthdb2master(0)); 261 audiohw_set_lineout_vol(tenthdb2master(0), tenthdb2master(0));
263#endif 262#endif
264 263
diff --git a/firmware/target/arm/tms320dm320/debug-dm320.c b/firmware/target/arm/tms320dm320/debug-dm320.c
index b630fe4795..db19a16a07 100755
--- a/firmware/target/arm/tms320dm320/debug-dm320.c
+++ b/firmware/target/arm/tms320dm320/debug-dm320.c
@@ -39,9 +39,6 @@
39bool __dbg_ports(void) 39bool __dbg_ports(void)
40{ 40{
41 dsp_init(); 41 dsp_init();
42#ifndef CREATIVE_ZVx
43 tsc2100_writereg(TSDACGAIN_PAGE, TSDACGAIN_ADDRESS, 0x2020/*x0303*/);
44#endif
45 dsp_wake(); 42 dsp_wake();
46 return false; 43 return false;
47} 44}
diff --git a/firmware/target/arm/tms320dm320/dsp/main.c b/firmware/target/arm/tms320dm320/dsp/main.c
index 57156e0451..ae2030a310 100644
--- a/firmware/target/arm/tms320dm320/dsp/main.c
+++ b/firmware/target/arm/tms320dm320/dsp/main.c
@@ -43,17 +43,6 @@ void main(void) {
43 43
44 debugf("DSP inited..."); 44 debugf("DSP inited...");
45 45
46#ifdef DATA_32_SINE
47 for (i = 0; i < 32; i++) {
48 double ratio = ((double)i)/32.0;
49 double rad = 3.0*3.141592*ratio;
50 double normal = sin(rad);
51 double scaled = 32767.0*(normal);
52 data[2*i + 0] = -(signed short)scaled;
53 data[2*i + 1] = (signed short)scaled;
54 }
55#endif
56
57 for (;;) { 46 for (;;) {
58 asm(" IDLE 1"); 47 asm(" IDLE 1");
59 asm(" NOP"); 48 asm(" NOP");
@@ -69,6 +58,16 @@ void main(void) {
69 memset((unsigned short *)0x7f80, 0, 0x80); 58 memset((unsigned short *)0x7f80, 0, 0x80);
70#endif 59#endif
71 60
61#ifdef DATA_32_SINE
62 for (i = 0; i < 32; i++) {
63 double ratio = ((double)i)/32.0;
64 double rad = 3.0*3.141592*ratio;
65 double normal = sin(rad);
66 double scaled = 32767.0*(normal);
67 data[2*i + 0] = -(signed short)scaled;
68 data[2*i + 1] = (signed short)scaled;
69 }
70#endif
72 71
73#ifdef MANUAL_TRANSFER 72#ifdef MANUAL_TRANSFER
74 register signed short *p; 73 register signed short *p;