Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / drivers / media / dvb-frontends / si2165.h
diff --git a/kernel/drivers/media/dvb-frontends/si2165.h b/kernel/drivers/media/dvb-frontends/si2165.h
new file mode 100644 (file)
index 0000000..8a15d6a
--- /dev/null
@@ -0,0 +1,62 @@
+/*
+    Driver for Silicon Labs SI2165 DVB-C/-T Demodulator
+
+    Copyright (C) 2013-2014 Matthias Schwarzott <zzam@gentoo.org>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    References:
+    http://www.silabs.com/Support%20Documents/TechnicalDocs/Si2165-short.pdf
+*/
+
+#ifndef _DVB_SI2165_H
+#define _DVB_SI2165_H
+
+#include <linux/dvb/frontend.h>
+
+enum {
+       SI2165_MODE_OFF = 0x00,
+       SI2165_MODE_PLL_EXT = 0x20,
+       SI2165_MODE_PLL_XTAL = 0x21
+};
+
+struct si2165_config {
+       /* i2c addr
+        * possible values: 0x64,0x65,0x66,0x67 */
+       u8 i2c_addr;
+
+       /* external clock or XTAL */
+       u8 chip_mode;
+
+       /* frequency of external clock or xtal in Hz
+        * possible values: 4000000, 16000000, 20000000, 240000000, 27000000
+        */
+       u32 ref_freq_Hz;
+
+       /* invert the spectrum */
+       bool inversion;
+};
+
+#if IS_REACHABLE(CONFIG_DVB_SI2165)
+struct dvb_frontend *si2165_attach(
+       const struct si2165_config *config,
+       struct i2c_adapter *i2c);
+#else
+static inline struct dvb_frontend *si2165_attach(
+       const struct si2165_config *config,
+       struct i2c_adapter *i2c)
+{
+       pr_warn("%s: driver disabled by Kconfig\n", __func__);
+       return NULL;
+}
+#endif /* CONFIG_DVB_SI2165 */
+
+#endif /* _DVB_SI2165_H */