040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#ifndef __TDA9885_H__
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define __TDA9885_H__
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#include "xf86i2c.h"
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsynctypedef struct {
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync I2CDevRec d;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync /* write-only parameters */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync /* B DATA */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD8 sound_trap;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD8 auto_mute_fm;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD8 carrier_mode;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD8 modulation;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD8 forced_mute_audio;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD8 port1;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD8 port2;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync /* C DATA */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD8 top_adjustment;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD8 deemphasis;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD8 audio_gain;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync /* E DATA */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD8 standard_sound_carrier;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD8 standard_video_if;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD8 minimum_gain;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD8 gating;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD8 vif_agc;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync /* read-only values */
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD8 after_reset;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD8 afc_status;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD8 vif_level;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD8 afc_win;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync CARD8 fm_carrier;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync } TDA9885Rec, *TDA9885Ptr;
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define TDA9885_ADDR_1 0x86
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define TDA9885_ADDR_2 0x84
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define TDA9885_ADDR_3 0x96
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define TDA9885_ADDR_4 0x94
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncTDA9885Ptr Detect_tda9885(I2CBusPtr b, I2CSlaveAddr addr);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncBool tda9885_init(TDA9885Ptr t);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncvoid tda9885_setparameters(TDA9885Ptr t);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncvoid tda9885_getstatus(TDA9885Ptr t);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsyncvoid tda9885_dumpstatus(TDA9885Ptr t);
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define TDA9885SymbolsList \
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync "Detect_tda9885", \
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync "tda9885_init", \
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync "tda9885_setaudio", \
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync "tda9885_mute"
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define xf86_Detect_tda9885 ((TDA9885Ptr (*)(I2CBusPtr, I2CSlaveAddr))LoaderSymbol("Detect_tda9885"))
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define xf86_tda9885_init ((Bool (*)(TDA9885Ptr))LoaderSymbol("tda9885_init"))
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define xf86_tda9885_setparameters ((void (*)(TDA9885Ptr))LoaderSymbol("tda9885_setparameters"))
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define xf86_tda9885_getstatus ((void (*)(TDA9885Ptr))LoaderSymbol("tda9885_getstatus"))
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#define xf86_tda9885_dumpstatus ((void (*)(TDA9885Ptr))LoaderSymbol("tda9885_dumpstatus"))
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync
040abec2534dadc53ebc8fa378ef03f4feecb7dbvboxsync#endif