summaryrefslogtreecommitdiff
path: root/firmware/export
diff options
context:
space:
mode:
authorDaniel Ankers <dan@weirdo.org.uk>2007-03-11 17:38:08 +0000
committerDaniel Ankers <dan@weirdo.org.uk>2007-03-11 17:38:08 +0000
commitdfad406aa14a735b2cd071d8d399c79be0f98e43 (patch)
tree2993687589af53e570e27e6a025fe1c24b8f1a96 /firmware/export
parente21d21720556bb069f7ceb5669c5b693138838bb (diff)
downloadrockbox-dfad406aa14a735b2cd071d8d399c79be0f98e43.zip
rockbox-dfad406aa14a735b2cd071d8d399c79be0f98e43.tar.gz
rockbox-dfad406aa14a735b2cd071d8d399c79be0f98e43.tar.bz2
rockbox-dfad406aa14a735b2cd071d8d399c79be0f98e43.tar.xz
Sound for Sansa E200 - based on work by myself, Rene Peinthor, Barry Wardell and Christian Gmeiner from the AS3514 datasheet.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12727 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/export')
-rw-r--r--firmware/export/as3514.h78
-rw-r--r--firmware/export/config-e200.h7
2 files changed, 82 insertions, 3 deletions
diff --git a/firmware/export/as3514.h b/firmware/export/as3514.h
new file mode 100644
index 0000000..0bf87db
--- /dev/null
+++ b/firmware/export/as3514.h
@@ -0,0 +1,78 @@
+/***************************************************************************
+ * __________ __ ___.
+ * Open \______ \ ____ ____ | | _\_ |__ _______ ___
+ * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
+ * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
+ * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
+ * \/ \/ \/ \/ \/
+ * $Id$
+ *
+ * Copyright (C) 2007 by Daniel Ankers
+ *
+ * All files in this archive are subject to the GNU General Public License.
+ * See the file COPYING in the source tree root for full license agreement.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ****************************************************************************/
+
+#ifndef _AS3514_H
+#define _AS3514_H
+
+extern int tenthdb2master(int db);
+extern int tenthdb2mixer(int db);
+
+extern void audiohw_reset(void);
+extern int audiohw_init(void);
+extern void audiohw_enable_output(bool enable);
+extern int audiohw_set_master_vol(int vol_l, int vol_r);
+extern int audiohw_set_lineout_vol(int vol_l, int vol_r);
+extern int audiohw_set_mixer_vol(int channel1, int channel2);
+extern void audiohw_set_bass(int value);
+extern void audiohw_set_treble(int value);
+extern int audiohw_mute(int mute);
+extern void audiohw_close(void);
+extern void audiohw_set_nsorder(int order);
+extern void audiohw_set_sample_rate(int sampling_control);
+
+extern void audiohw_enable_recording(bool source_mic);
+extern void audiohw_disable_recording(void);
+extern void audiohw_set_recvol(int left, int right, int type);
+extern void audiohw_set_monitor(int enable);
+
+extern void audiohw_set_equalizer_band(int band, int freq, int bw, int gain);
+
+/* Register Descriptions */
+#define LINE_OUT_R 0x00
+#define LINE_OUT_L 0x01
+#define HPH_OUT_R 0x02
+#define HPH_OUT_L 0x03
+#define LSP_OUT_R 0x04
+#define LSP_OUT_L 0x05
+#define MIC1_R 0x06
+#define MIC1_L 0x07
+#define MIC2_R 0x08
+#define MIC2_L 0x09
+#define LINE_IN1_R 0x0a
+#define LINE_IN1_L 0x0b
+#define LINE_IN2_R 0x0c
+#define LINE_IN2_L 0x0d
+#define DAC_R 0x0e
+#define DAC_L 0x0f
+#define ADC_R 0x10
+#define ADC_L 0x11
+#define AUDIOSET1 0x14
+#define AUDIOSET2 0x15
+#define AUDIOSET3 0x16
+#define PLLMODE 0x1d
+
+/* Headphone volume goes from -45.43 - 1.07dB */
+#define VOLUME_MIN -454
+#define VOLUME_MAX 10
+
+#ifdef SANSA_E200
+#define AS3514_I2C_ADDR 0x46
+#endif
+
+#endif /* _AS3514_H */
diff --git a/firmware/export/config-e200.h b/firmware/export/config-e200.h
index afe2ebe..1b3404a 100644
--- a/firmware/export/config-e200.h
+++ b/firmware/export/config-e200.h
@@ -40,6 +40,10 @@
/* Define this if you do software codec */
#define CONFIG_CODEC SWCODEC
+/* There is no hardware tone control */
+#define HAVE_SW_TONE_CONTROLS
+/* The PP5024 has a built-in AustriaMicrosystems AS3514 */
+#define HAVE_AS3514
/* define this if you have a real-time clock */
#ifndef BOOTLOADER
@@ -58,9 +62,6 @@
/* The number of bytes reserved for loadable plugins */
#define PLUGIN_BUFFER_SIZE 0x80000
-/* Use the built-in DAC on the PP5024 */
-#define HAVE_PP5024_CODEC
-
#define AB_REPEAT_ENABLE 1
/* FM Tuner */