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