All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.