1706f2543Smrg#ifndef __TDA8425_H__
2706f2543Smrg#define __TDA8425_H__
3706f2543Smrg
4706f2543Smrg#include "xf86i2c.h"
5706f2543Smrg
6706f2543Smrgtypedef struct {
7706f2543Smrg	I2CDevRec d;
8706f2543Smrg
9706f2543Smrg	int mux;
10706f2543Smrg	int stereo;
11706f2543Smrg	int v_left;
12706f2543Smrg	int v_right;
13706f2543Smrg	int bass;
14706f2543Smrg	int treble;
15706f2543Smrg	int src_sel;
16706f2543Smrg	Bool mute;
17706f2543Smrg	} TDA8425Rec, *TDA8425Ptr;
18706f2543Smrg
19706f2543Smrg#define TDA8425_ADDR_1   0x82
20706f2543Smrg
21706f2543Smrg/* the third parameter is meant to force detection of tda8425.
22706f2543Smrg   This is because tda8425 is write-only and complete implementation
23706f2543Smrg   of I2C protocol is not always available. Besides address there is no good
24706f2543Smrg   way to autodetect it so we have to _know_ it is there anyway */
25706f2543Smrg
26706f2543Smrg#define xf86_Detect_tda8425	Detect_tda8425
27706f2543Smrgextern _X_EXPORT TDA8425Ptr Detect_tda8425(I2CBusPtr b, I2CSlaveAddr addr,Bool force);
28706f2543Smrg#define xf86_tda8425_init	tda8425_init
29706f2543Smrgextern _X_EXPORT Bool tda8425_init(TDA8425Ptr t);
30706f2543Smrg#define xf86_tda8425_setaudio	tda8425_setaudio
31706f2543Smrgextern _X_EXPORT void tda8425_setaudio(TDA8425Ptr t);
32706f2543Smrg#define xf86_tda8425_mute	tda8425_mute
33706f2543Smrgextern _X_EXPORT void tda8425_mute(TDA8425Ptr t, Bool mute);
34706f2543Smrg
35706f2543Smrg#define TDA8425SymbolsList  \
36706f2543Smrg		"Detect_tda8425", \
37706f2543Smrg		"tda8425_init", \
38706f2543Smrg		"tda8425_setaudio", \
39706f2543Smrg		"tda8425_mute"
40706f2543Smrg
41706f2543Smrg#endif
42