Updated our source code header to explicitly mention that we are GPL v2 or
[Rockbox.git] / firmware / export / wm8758.h
blobaf0e22943db6ad921756871dc611a7a418c60b8a
1 /***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
10 * Copyright (C) 2005 by Dave Chapman
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.
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
20 ****************************************************************************/
22 #ifndef _WM8758_H
23 #define _WM8758_H
25 /* volume/balance/treble/bass interdependency */
26 #define VOLUME_MIN -570
27 #define VOLUME_MAX 60
29 #define AUDIOHW_CAPS (BASS_CAP | TREBLE_CAP | BASS_CUTOFF_CAP | TREBLE_CUTOFF_CAP)
31 extern int tenthdb2master(int db);
32 extern int tenthdb2mixer(int db);
34 extern void audiohw_set_master_vol(int vol_l, int vol_r);
35 extern void audiohw_set_lineout_vol(int vol_l, int vol_r);
36 extern void audiohw_set_mixer_vol(int channel1, int channel2);
37 extern void audiohw_set_nsorder(int order);
38 extern void audiohw_set_sample_rate(int sampling_control);
40 #define RESET 0x00
41 #define PWRMGMT1 0x01
42 #define PWRMGMT2 0x02
43 #define PWRMGMT3 0x03
44 #define AINTFCE 0x04
45 #define CLKCTRL 0x06
46 #define SRATECTRL 0x07
47 #define DACCTRL 0x0a
48 #define INCTRL 0x2c
49 #define LINPGAVOL 0x2d
50 #define RINPGAVOL 0x2e
51 #define LADCBOOST 0x2f
52 #define RADCBOOST 0x30
53 #define OUTCTRL 0x31
54 #define LOUTMIX 0x32
55 #define ROUTMIX 0x33
57 #define LOUT1VOL 0x34
58 #define ROUT1VOL 0x35
59 #define LOUT2VOL 0x36
60 #define ROUT2VOL 0x37
62 #define PLLN 0x24
63 #define PLLK1 0x25
64 #define PLLK2 0x26
65 #define PLLK3 0x27
67 #define EQ1 0x12
68 #define EQ2 0x13
69 #define EQ3 0x14
70 #define EQ4 0x15
71 #define EQ5 0x16
72 #define EQ_GAIN_MASK 0x001f
73 #define EQ_CUTOFF_MASK 0x0060
74 #define EQ_GAIN_VALUE(x) (((-x) + 12) & 0x1f)
75 #define EQ_CUTOFF_VALUE(x) ((((x) - 1) & 0x03) << 5)
77 /* Register settings for the supported samplerates: */
78 #define WM8758_8000HZ 0x4d
79 #define WM8758_12000HZ 0x61
80 #define WM8758_16000HZ 0x55
81 #define WM8758_22050HZ 0x77
82 #define WM8758_24000HZ 0x79
83 #define WM8758_32000HZ 0x59
84 #define WM8758_44100HZ 0x63
85 #define WM8758_48000HZ 0x41
86 #define WM8758_88200HZ 0x7f
87 #define WM8758_96000HZ 0x5d
89 #endif /* _WM8758_H */