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