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