aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/xfree86/i2c/tda8425.h
diff options
context:
space:
mode:
Diffstat (limited to 'xorg-server/hw/xfree86/i2c/tda8425.h')
-rw-r--r--xorg-server/hw/xfree86/i2c/tda8425.h42
1 files changed, 42 insertions, 0 deletions
diff --git a/xorg-server/hw/xfree86/i2c/tda8425.h b/xorg-server/hw/xfree86/i2c/tda8425.h
new file mode 100644
index 000000000..4abb4175f
--- /dev/null
+++ b/xorg-server/hw/xfree86/i2c/tda8425.h
@@ -0,0 +1,42 @@
+#ifndef __TDA8425_H__
+#define __TDA8425_H__
+
+#include "xf86i2c.h"
+
+typedef struct {
+ I2CDevRec d;
+
+ int mux;
+ int stereo;
+ int v_left;
+ int v_right;
+ int bass;
+ int treble;
+ int src_sel;
+ Bool mute;
+ } TDA8425Rec, *TDA8425Ptr;
+
+#define TDA8425_ADDR_1 0x82
+
+/* the third parameter is meant to force detection of tda8425.
+ This is because tda8425 is write-only and complete implementation
+ of I2C protocol is not always available. Besides address there is no good
+ way to autodetect it so we have to _know_ it is there anyway */
+
+TDA8425Ptr Detect_tda8425(I2CBusPtr b, I2CSlaveAddr addr,Bool force);
+Bool tda8425_init(TDA8425Ptr t);
+void tda8425_setaudio(TDA8425Ptr t);
+void tda8425_mute(TDA8425Ptr t, Bool mute);
+
+#define TDA8425SymbolsList \
+ "Detect_tda8425", \
+ "tda8425_init", \
+ "tda8425_setaudio", \
+ "tda8425_mute"
+
+#define xf86_Detect_tda8425 ((TDA8425Ptr (*)(I2CBusPtr, I2CSlaveAddr,Bool))LoaderSymbol("Detect_tda8425"))
+#define xf86_tda8425_init ((Bool (*)(TDA8425Ptr))LoaderSymbol("tda8425_init"))
+#define xf86_tda8425_setaudio ((void (*)(TDA8425Ptr))LoaderSymbol("tda8425_setaudio"))
+#define xf86_tda8425_mute ((void (*)(TDA8425Ptr, Bool))LoaderSymbol("tda8425_mute"))
+
+#endif