blob: 4c27ae23753957c1028152f680c9fd2229db4036 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
/***************************************************************************
* __________ __ ___.
* Open \______ \ ____ ____ | | _\_ |__ _______ ___
* Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
* Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
* Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
* \/ \/ \/ \/ \/
* $Id$
*
* Copyright (C) 2011 by Amaury Pouly
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
* KIND, either express or implied.
*
****************************************************************************/
#ifndef __audioout_imx233__
#define __audioout_imx233__
#include "config.h"
#include "cpu.h"
#include "system.h"
/* target-defined output stage coupling method
* its setting is IMX233_AUDIO_COUPLING_MODE and must be set for every target
* Use ACM_CAP if output stage (i.e. headphones) have output capacitors,
* ACM_CAPLESS (DC-coupled) otherwise.
*/
#define ACM_CAPLESS 0
#define ACM_CAP 1
struct imx233_audioout_info_t
{
// NOTE there is a convention here: dac -> dacvol -> dacmute
int freq; // in mHz
bool hpselect;
bool dac;
int dacvol[2]; // in tenth-dB, l/r
bool dacmute[2]; // l/r
bool hp;
int hpvol[2]; // in tenth-db, l/r
bool hpmute[2]; // l/r
bool spkr;
int spkrvol[2]; // in tenth-db, l/r
int spkrmute[2]; // l/r
int ss3d; // in tenth-db
bool capless;
};
void imx233_audioout_preinit(void);
void imx233_audioout_postinit(void);
void imx233_audioout_close(void);
/* volume in half dB */
void imx233_audioout_set_hp_vol(int vol_l, int vol_r);
/* frequency index, NOT the frequency itself */
void imx233_audioout_set_freq(int fsel);
/* select between DAC and Line1 */
void imx233_audioout_select_hp_input(bool line1);
/* value is uses register encoding: 0=Off, 1=3dB, 2=4.5dB, 3=6dB */
void imx233_audioout_set_3d_effect(int val);
/* enable/disable speaker amplifier */
void imx233_audioout_enable_spkr(bool en);
struct imx233_audioout_info_t imx233_audioout_get_info(void);
#endif /* __audioout_imx233__ */
|