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