linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Michael Büsch" <m@bues.ch>
To: Mauro Carvalho Chehab <mchehab@infradead.org>
Cc: linux-media <linux-media@vger.kernel.org>,
	Hans-Frieder Vogt <hfvogt@gmx.net>
Subject: Re: [PATCH] Add Fitipower fc0011 tuner driver
Date: Thu, 29 Mar 2012 02:17:21 +0200	[thread overview]
Message-ID: <20120329021721.6f0ba357@milhouse> (raw)
In-Reply-To: <20120329020134.1a18e39e@milhouse>

[-- Attachment #1: Type: text/plain, Size: 5642 bytes --]

On Thu, 29 Mar 2012 02:01:34 +0200
Michael Büsch <m@bues.ch> wrote:

> The driver is tested with the af903x driver.

For reference, here goes the af903x/fc0011 glue:

Signed-off-by: Michael Buesch <m@bues.ch>

Index: linux-3.3/drivers/media/dvb/dvb-usb/Kconfig
===================================================================
--- linux-3.3.orig/drivers/media/dvb/dvb-usb/Kconfig	2012-03-28 23:47:04.091901520 +0200
+++ linux-3.3/drivers/media/dvb/dvb-usb/Kconfig	2012-03-28 23:47:07.695965033 +0200
@@ -342,6 +342,7 @@
 config DVB_USB_AF903X
 	tristate "Afatech AF903X DVB-T USB2.0 support"
 	depends on DVB_USB && EXPERIMENTAL
+	select MEDIA_TUNER_FC0011   if !MEDIA_TUNER_CUSTOMISE
 	select MEDIA_TUNER_FC0012   if !MEDIA_TUNER_CUSTOMISE
 	select MEDIA_TUNER_MXL5007T if !MEDIA_TUNER_CUSTOMISE
 	help
Index: linux-3.3/drivers/media/dvb/dvb-usb/af903x-devices.c
===================================================================
--- linux-3.3.orig/drivers/media/dvb/dvb-usb/af903x-devices.c	2012-03-28 23:47:04.091901520 +0200
+++ linux-3.3/drivers/media/dvb/dvb-usb/af903x-devices.c	2012-03-28 23:47:07.699965103 +0200
@@ -260,6 +260,7 @@
 }
 
 extern struct tuner_desc tuner_af9007;
+extern struct tuner_desc tuner_fc0011;
 extern struct tuner_desc tuner_fc0012;
 extern struct tuner_desc tuner_mxl5007t;
 
@@ -273,6 +274,9 @@
 	case TUNER_AF9007:
 		ctx->tuner_desc = &tuner_af9007;
 		break;
+	case TUNER_FC0011:
+		ctx->tuner_desc = &tuner_fc0011;
+		break;
 	case TUNER_FC0012:
 		ctx->tuner_desc = &tuner_fc0012;
 		break;
Index: linux-3.3/drivers/media/dvb/dvb-usb/af903x-fe.c
===================================================================
--- linux-3.3.orig/drivers/media/dvb/dvb-usb/af903x-fe.c	2012-03-28 23:47:04.091901520 +0200
+++ linux-3.3/drivers/media/dvb/dvb-usb/af903x-fe.c	2012-03-28 23:47:07.699965103 +0200
@@ -28,6 +28,7 @@
 #include "af903x-fe.h"
 #include "af903x-fe-priv.h"
 #include "dvb_frontend.h"
+#include "fc0011.h"
 #include "fc0012.h"
 #include "mxl5007t.h"
 
@@ -1967,6 +1968,8 @@
 	}
 };
 
+extern int af903x_fc0011_reset(unsigned long arg0, unsigned long arg1);
+
 static struct dvb_frontend_ops af903x_ops;
 struct dvb_frontend *af903x_fe_attach(struct i2c_adapter *i2c_adap, int id,
 	struct af903x_dev_ctx *ctx)
@@ -1990,6 +1993,14 @@
 	switch(ctx->tuner_desc->tunerId) {
 	case TUNER_AF9007:
 		break;
+	case TUNER_FC0011:
+		ret = dvb_attach(fc0011_attach, frontend, i2c_adap,
+			id == 0 ? ctx->tuner_desc->tuner_addr :
+			ctx->tuner_desc->tuner_addr + 1,
+			af903x_fc0011_reset,
+			(unsigned long)ctx, (unsigned long)id)
+			== NULL ?  -ENODEV : 0;
+		break;
 	case TUNER_FC0012:
 		ret = dvb_attach(fc0012_attach, frontend, i2c_adap,
 			id == 0 ? ctx->tuner_desc->tuner_addr :
Index: linux-3.3/drivers/media/dvb/dvb-usb/af903x-tuners.c
===================================================================
--- linux-3.3.orig/drivers/media/dvb/dvb-usb/af903x-tuners.c	2012-03-28 23:47:04.091901520 +0200
+++ linux-3.3/drivers/media/dvb/dvb-usb/af903x-tuners.c	2012-03-28 23:47:07.699965103 +0200
@@ -189,6 +189,69 @@
 	{0xf1e6, 0x00},
 };
 
+static struct af903x_val_set fc0011_scripts[] = {
+	{0x0046, 0x28}, /* TUNER_ID */
+	{0x0057, 0x00},
+	{0x0058, 0x01},
+	{0x005f, 0x00},
+	{0x0060, 0x00},
+	{0x0068, 0xa5},
+	{0x006e, 0x01},
+	{0x0071, 0x0A},
+	{0x0072, 0x02},
+	{0x0074, 0x01},
+	{0x0079, 0x01},
+	{0x0093, 0x00},
+	{0x0094, 0x00},
+	{0x0095, 0x00},
+	{0x0096, 0x00},
+	{0x009b, 0x2D},
+	{0x009c, 0x60},
+	{0x009d, 0x23},
+	{0x00a4, 0x50},
+	{0x00ad, 0x50},
+	{0x00b3, 0x01},
+	{0x00b7, 0x88},
+	{0x00b8, 0xa6},
+	{0x00c3, 0x01},
+	{0x00c4, 0x01},
+	{0x00c7, 0x69},
+	{0xF007, 0x00},
+	{0xF00A, 0x1B},
+	{0xF00B, 0x1B},
+	{0xF00C, 0x1B},
+	{0xF00D, 0x1B},
+	{0xF00E, 0xFF},
+	{0xF00F, 0x01},
+	{0xF010, 0x00},
+	{0xF011, 0x02},
+	{0xF012, 0xFF},
+	{0xF013, 0x01},
+	{0xF014, 0x00},
+	{0xF015, 0x02},
+	{0xF01B, 0xEF},
+	{0xF01C, 0x01},
+	{0xF01D, 0x0f},
+	{0xF01E, 0x02},
+	{0xF01F, 0x6E},
+	{0xF020, 0x00},
+	{0xF025, 0xDE},
+	{0xF026, 0x00},
+	{0xF027, 0x0A},
+	{0xF028, 0x03},
+	{0xF029, 0x6E},
+	{0xF02A, 0x00},
+	{0xF047, 0x00},
+	{0xF054, 0x0},
+	{0xF055, 0x0},
+	{0xF077, 0x01},
+	{0xF1E6, 0x00},
+};
+
+static u16 fc0011_script_sets[] = {
+	ARRAY_SIZE(fc0011_scripts),
+};
+
 static int af903x_fc0012_init(struct af903x_dev_ctx *ctx, int chip)
 {
 	int ret;
@@ -338,6 +401,44 @@
 	TUNER_FC0012,
 };
 
+int af903x_fc0011_reset(unsigned long arg0, unsigned long arg1)
+{
+	struct af903x_dev_ctx *ctx = (struct af903x_dev_ctx *)arg0;
+	int chip = arg1;
+	struct usb_device *udev = ctx->udev;
+	int ret;
+
+	ret = af9035_wr_reg(udev, chip, PRO_LINK, GPIOT3_ON, 1);
+	if (ret < 0)
+		return ret;
+	ret = af9035_wr_reg(udev, chip, PRO_LINK, GPIOT3_EN, 1);
+	if (ret < 0)
+		return ret;
+	ret = af9035_wr_reg(udev, chip, PRO_LINK, GPIOT3_O, 1);
+	if (ret < 0)
+		return ret;
+	msleep(10);
+	ret = af9035_wr_reg(udev, chip, PRO_LINK, GPIOT3_O, 0);
+	if (ret < 0)
+		return ret;
+	msleep(10);
+
+	return 0;
+}
+
+struct tuner_desc tuner_fc0011 = {
+	.open_tuner		= af903x_fc0012_init,
+	.close_tuner		= af903x_fc0012_sleep,
+	.set_tuner		= af903x_fc0012_set,
+	.tuner_scripts		= fc0011_scripts,
+	.tuner_script_sets	= fc0011_script_sets,
+	.tuner_addr		= 0xc0,
+	.reg_addr_len		= 1,
+	.if_freq		= 0,
+	.inversion		= true,
+	.tunerId		= TUNER_FC0011,
+};
+
 static u16 mxl5007t_script_sets[] = {
 	0x1e
 };


-- 
Greetings, Michael.

PGP encryption is encouraged / 908D8B0E

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

      reply	other threads:[~2012-03-29  0:17 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-29  0:01 [PATCH] Add Fitipower fc0011 tuner driver Michael Büsch
2012-03-29  0:17 ` Michael Büsch [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120329021721.6f0ba357@milhouse \
    --to=m@bues.ch \
    --cc=hfvogt@gmx.net \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).