Some cleanup/simplification and an added comment
[Rockbox.git] / firmware / export / wm8975.h
blobe97497ee02c45139b57675bedf3fdc35ab61527a
1 /***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
10 * Copyright (C) 2005 by Dave Chapman
12 * All files in this archive are subject to the GNU General Public License.
13 * See the file COPYING in the source tree root for full license agreement.
15 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
16 * KIND, either express or implied.
18 ****************************************************************************/
20 #ifndef _WM8975_H
21 #define _WM8975_H
23 /* volume/balance/treble/bass interdependency */
24 #define VOLUME_MIN -730
25 #define VOLUME_MAX 60
27 extern int tenthdb2master(int db);
28 extern int tenthdb2mixer(int db);
30 extern void audiohw_reset(void);
31 extern void audiohw_enable_output(bool enable);
32 extern int audiohw_set_master_vol(int vol_l, int vol_r);
33 extern int audiohw_set_lineout_vol(int vol_l, int vol_r);
34 extern int audiohw_set_mixer_vol(int channel1, int channel2);
35 extern void audiohw_set_bass(int value);
36 extern void audiohw_set_treble(int value);
37 extern void audiohw_set_nsorder(int order);
38 extern void audiohw_set_sample_rate(int sampling_control);
40 extern void audiohw_enable_recording(bool source_mic);
41 extern void audiohw_disable_recording(void);
42 extern void audiohw_set_recvol(int left, int right, int type);
43 extern void audiohw_set_monitor(int enable);
45 /* Register addresses */
46 #define LOUT1VOL 0x02
47 #define ROUT1VOL 0x03
48 #define DACCTRL 0x05
49 #define AINTFCE 0x07
50 #define BASSCTRL 0x0c
51 #define TREBCTRL 0x0d
52 #define RESET 0x0f
53 #define PWRMGMT1 0x19
54 #define PWRMGMT2 0x1a
55 #define LOUTMIX1 0x22
56 #define LOUTMIX2 0x23
57 #define ROUTMIX1 0x24
58 #define ROUTMIX2 0x25
59 #define MOUTMIX1 0x26
60 #define MOUTMIX2 0x27
61 #define LOUT2VOL 0x28
62 #define ROUT2VOL 0x29
64 /* Register settings for the supported samplerates: */
65 #define WM8975_8000HZ 0x4d
66 #define WM8975_12000HZ 0x61
67 #define WM8975_16000HZ 0x55
68 #define WM8975_22050HZ 0x77
69 #define WM8975_24000HZ 0x79
70 #define WM8975_32000HZ 0x59
71 #define WM8975_44100HZ 0x63
72 #define WM8975_48000HZ 0x41
73 #define WM8975_88200HZ 0x7f
74 #define WM8975_96000HZ 0x5d
76 #endif /* _WM8975_H */