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