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