summaryrefslogtreecommitdiffstats
path: root/api/Microtune_MT2260B0.c
diff options
context:
space:
mode:
Diffstat (limited to 'api/Microtune_MT2260B0.c')
-rw-r--r--api/Microtune_MT2260B0.c115
1 files changed, 115 insertions, 0 deletions
diff --git a/api/Microtune_MT2260B0.c b/api/Microtune_MT2260B0.c
new file mode 100644
index 0000000..0cf11e5
--- /dev/null
+++ b/api/Microtune_MT2260B0.c
@@ -0,0 +1,115 @@
+/**
+ * @(#)Microtune_MT2260B0.cpp
+ *
+ * ==========================================================
+ * Version: 2.0
+ * Date: 2008.07.02
+ * ==========================================================
+ *
+ * ==========================================================
+ * History:
+ *
+ * Date Author Description
+ * ----------------------------------------------------------
+ *
+ * 2008.07.02 Tom Lin added tuner version
+ * ==========================================================
+ *
+ * Copyright 2005 Afatech, Inc. All rights reserved.
+ *
+ */
+
+
+//#include <stdio.h> //for Linux
+#include "type.h"
+#include "error.h"
+#include "user.h"
+#include "register.h"
+#include "standard.h"
+#include "mt2260.h"
+#include "Microtune_MT2260B0_Script.h"
+
+
+#define Microtune_MT2260B0_EXT_ADDRESS 0xC0
+
+Handle_t Microtune_MT2260B0_tunerHandles[2];
+UserData Microtune_MT2260B0_userDatas[2];
+
+
+Dword MT2260B0_open (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+ UData_t status = MT_OK;
+
+ Microtune_MT2260B0_userDatas[chip].chip = chip;
+ Microtune_MT2260B0_userDatas[chip].demodulator = demodulator;
+ status = MT2260_Open ((unsigned int)Microtune_MT2260B0_EXT_ADDRESS, &Microtune_MT2260B0_tunerHandles[chip], &Microtune_MT2260B0_userDatas[chip]);
+ if (MT_NO_ERROR (status))
+ status |= MT2260_SetParam (Microtune_MT2260B0_tunerHandles[chip], MT2260_STEPSIZE, 62500);
+ if (MT_NO_ERROR (status))
+ status |= MT2260_SetParam (Microtune_MT2260B0_tunerHandles[chip], MT2260_RF_EXT, 1);
+ if (MT_NO_ERROR (status))
+ status |= MT2260_SetParam (Microtune_MT2260B0_tunerHandles[chip], MT2260_BB_EXT, 1);
+ if (MT_IS_ERROR (status))
+ error = Error_MT_TUNE_FAIL;
+
+ return (error);
+}
+
+
+Dword MT2260B0_close (
+ IN Demodulator* demodulator,
+ IN Byte chip
+) {
+ Dword error = Error_NO_ERROR;
+ UData_t status = MT_OK;
+
+ status |= MT2260_Close (Microtune_MT2260B0_tunerHandles[chip]);
+ if (MT_IS_ERROR (status))
+ error = Error_MT_TUNE_FAIL;
+
+ return (error);
+}
+
+
+Dword MT2260B0_set (
+ IN Demodulator* demodulator,
+ IN Byte chip,
+ IN Word bandwidth,
+ IN Dword frequency
+) {
+ Dword error = Error_NO_ERROR;
+ UData_t status = MT_OK;
+ UData_t freq;
+ UData_t bw;
+
+ freq = frequency * 1000UL;
+ bw = (UData_t) bandwidth * 1000UL;
+
+ /** Change frequency */
+ status = MT2260_ChangeFreq (Microtune_MT2260B0_tunerHandles[chip], freq);
+ if (MT_NO_ERROR (status))
+ status |= MT2260_SetParam (Microtune_MT2260B0_tunerHandles[chip], MT2260_OUTPUT_BW, bw);
+ if (MT_IS_ERROR (status))
+ error = Error_MT_TUNE_FAIL;
+
+ User_delay (demodulator, 100);
+
+ return (error);
+}
+
+
+TunerDescription tuner_MT2260B0 = {
+ MT2260B0_open,
+ MT2260B0_close,
+ MT2260B0_set,
+ MT2260B0_scripts,
+ MT2260B0_scriptSets,
+ MT2260B0_ADDRESS, /** tuner i2c address */
+ 1, /** length of tuner register address */
+ 0, /** tuner if */
+ True, /** spectrum inverse */
+ 0x21, /** tuner id */
+};