Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e4d2a616 authored by Hans Verkuil's avatar Hans Verkuil Committed by Mauro Carvalho Chehab
Browse files

[media] tuner: add Sony BTF tuners



This adds support for three Sony BTF tuners:
TUNER_SONY_BTF_PG472Z: PAL+SECAM
TUNER_SONY_BTF_PK467Z: NTSC-M-JP
TUNER_SONY_BTF_PB463Z: NTSC-M
These come from the go7007 staging driver where they were implemented in
the wis-sony-tuner i2c driver.
Adding support for these tuners to tuner-types.c is the first step towards
removing the wis-sony-tuner driver.

Signed-off-by: default avatarHans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent ffb97493
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -86,3 +86,6 @@ tuner=85 - Philips FQ1236 MK5
tuner=86 - Tena TNF5337 MFD
tuner=87 - Xceive 4000 tuner
tuner=88 - Xceive 5000C tuner
tuner=89 - Sony PAL+SECAM (BTF-PG472Z)
tuner=90 - Sony NTSC-M-JP (BTF-PK467Z)
tuner=91 - Sony NTSC-M (BTF-PB463Z)
+69 −0
Original line number Diff line number Diff line
@@ -1381,6 +1381,58 @@ static struct tuner_params tuner_philips_fq1236_mk5_params[] = {
	},
};

/* --------- Sony BTF-PG472Z PAL/SECAM ------- */

static struct tuner_range tuner_sony_btf_pg472z_ranges[] = {
	{ 16 * 144.25 /*MHz*/, 0xc6, 0x01, },
	{ 16 * 427.25 /*MHz*/, 0xc6, 0x02, },
	{ 16 * 999.99        , 0xc6, 0x04, },
};

static struct tuner_params tuner_sony_btf_pg472z_params[] = {
	{
		.type   = TUNER_PARAM_TYPE_PAL,
		.ranges = tuner_sony_btf_pg472z_ranges,
		.count  = ARRAY_SIZE(tuner_sony_btf_pg472z_ranges),
		.has_tda9887 = 1,
		.port1_active = 1,
		.port2_invert_for_secam_lc = 1,
	},
};

/* 90-99 */
/* --------- Sony BTF-PG467Z NTSC-M-JP ------- */

static struct tuner_range tuner_sony_btf_pg467z_ranges[] = {
	{ 16 * 220.25 /*MHz*/, 0xc6, 0x01, },
	{ 16 * 467.25 /*MHz*/, 0xc6, 0x02, },
	{ 16 * 999.99        , 0xc6, 0x04, },
};

static struct tuner_params tuner_sony_btf_pg467z_params[] = {
	{
		.type   = TUNER_PARAM_TYPE_NTSC,
		.ranges = tuner_sony_btf_pg467z_ranges,
		.count  = ARRAY_SIZE(tuner_sony_btf_pg467z_ranges),
	},
};

/* --------- Sony BTF-PG463Z NTSC-M ------- */

static struct tuner_range tuner_sony_btf_pg463z_ranges[] = {
	{ 16 * 130.25 /*MHz*/, 0xc6, 0x01, },
	{ 16 * 364.25 /*MHz*/, 0xc6, 0x02, },
	{ 16 * 999.99        , 0xc6, 0x04, },
};

static struct tuner_params tuner_sony_btf_pg463z_params[] = {
	{
		.type   = TUNER_PARAM_TYPE_NTSC,
		.ranges = tuner_sony_btf_pg463z_ranges,
		.count  = ARRAY_SIZE(tuner_sony_btf_pg463z_ranges),
	},
};

/* --------------------------------------------------------------------- */

struct tunertype tuners[] = {
@@ -1872,6 +1924,23 @@ struct tunertype tuners[] = {
		.name   = "Xceive 5000C tuner",
		/* see xc5000.c for details */
	},
	[TUNER_SONY_BTF_PG472Z] = {
		.name   = "Sony BTF-PG472Z PAL/SECAM",
		.params = tuner_sony_btf_pg472z_params,
		.count  = ARRAY_SIZE(tuner_sony_btf_pg472z_params),
	},

	/* 90-99 */
	[TUNER_SONY_BTF_PK467Z] = {
		.name   = "Sony BTF-PK467Z NTSC-M-JP",
		.params = tuner_sony_btf_pg467z_params,
		.count  = ARRAY_SIZE(tuner_sony_btf_pg467z_params),
	},
	[TUNER_SONY_BTF_PB463Z] = {
		.name   = "Sony BTF-PB463Z NTSC-M",
		.params = tuner_sony_btf_pg463z_params,
		.count  = ARRAY_SIZE(tuner_sony_btf_pg463z_params),
	},
};
EXPORT_SYMBOL(tuners);

+1 −0
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@
#include <linux/i2c.h>
#include <asm/byteorder.h>
#include <media/tvaudio.h>
#include <media/tuner.h>

#include "go7007-priv.h"
#include "wis-i2c.h"
+1 −0
Original line number Diff line number Diff line
@@ -1238,6 +1238,7 @@ static int vidioc_g_tuner(struct file *file, void *priv,
	if (!go->i2c_adapter_online)
		return -EIO;

	strlcpy(t->name, "Tuner", sizeof(t->name));
	return call_all(&go->v4l2_dev, tuner, g_tuner, t);
}

+0 −6
Original line number Diff line number Diff line
@@ -34,9 +34,3 @@ struct video_decoder_resolution {

#define	DECODER_SET_RESOLUTION	_IOW('d', 200, struct video_decoder_resolution)
#define	DECODER_SET_CHANNEL	_IOW('d', 201, int)

/* Sony tuner types */

#define TUNER_SONY_BTF_PG472Z		200
#define TUNER_SONY_BTF_PK467Z		201
#define TUNER_SONY_BTF_PB463Z		202
Loading