rockbox/firmware/target/arm/imx233/audioout-imx233.h
Amaury Pouly 812c3e7c48 imx233: add support for speaker on stmp3780
Change-Id: I990ca2bd43e12047e257f85ff06f046dfa3f94b3
2014-02-16 20:53:08 +01:00

72 lines
2.4 KiB
C

/***************************************************************************
* __________ __ ___.
* 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"
#include "regs/regs-audioout.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 in 1.5dB steps, from 0dB to 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__ */