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