a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#ifndef __TDA8425_H__
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#define __TDA8425_H__
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#include "xf86i2c.h"
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsynctypedef struct {
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync I2CDevRec d;
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync int mux;
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync int stereo;
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync int v_left;
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync int v_right;
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync int bass;
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync int treble;
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync int src_sel;
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync Bool mute;
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync} TDA8425Rec, *TDA8425Ptr;
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#define TDA8425_ADDR_1 0x82
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync/* the third parameter is meant to force detection of tda8425.
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync This is because tda8425 is write-only and complete implementation
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync of I2C protocol is not always available. Besides address there is no good
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync way to autodetect it so we have to _know_ it is there anyway */
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#define xf86_Detect_tda8425 Detect_tda8425
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsyncextern _X_EXPORT TDA8425Ptr Detect_tda8425(I2CBusPtr b, I2CSlaveAddr addr,
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync Bool force);
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#define xf86_tda8425_init tda8425_init
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsyncextern _X_EXPORT Bool tda8425_init(TDA8425Ptr t);
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#define xf86_tda8425_setaudio tda8425_setaudio
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsyncextern _X_EXPORT void tda8425_setaudio(TDA8425Ptr t);
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#define xf86_tda8425_mute tda8425_mute
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsyncextern _X_EXPORT void tda8425_mute(TDA8425Ptr t, Bool mute);
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#define TDA8425SymbolsList \
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync "Detect_tda8425", \
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync "tda8425_init", \
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync "tda8425_setaudio", \
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync "tda8425_mute"
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync
a3f3701cea1ba388e7c877955252bb7375eedebdvboxsync#endif