Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 285184
b: refs/heads/master
c: de2843b
h: refs/heads/master
v: v3
  • Loading branch information
Peter De Schrijver authored and Mauro Carvalho Chehab committed Nov 8, 2011
1 parent 72c9568 commit e25dbee
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 3822c7cef7b422833f1b58949a01bd87b822d280
refs/heads/master: de2843b663fd621e9a6c75fed4da73e8c9a1b094
49 changes: 49 additions & 0 deletions trunk/drivers/media/video/bt8xx/bttv-cards.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,8 @@ static void phytec_muxsel(struct bttv *btv, unsigned int input);
static void gv800s_muxsel(struct bttv *btv, unsigned int input);
static void gv800s_init(struct bttv *btv);

static void td3116_muxsel(struct bttv *btv, unsigned int input);

static int terratec_active_radio_upgrade(struct bttv *btv);
static int tea5757_read(struct bttv *btv);
static int tea5757_write(struct bttv *btv, int value);
Expand Down Expand Up @@ -342,6 +344,7 @@ static struct CARD {
{ 0x15401835, BTTV_BOARD_PV183, "Provideo PV183-6" },
{ 0x15401836, BTTV_BOARD_PV183, "Provideo PV183-7" },
{ 0x15401837, BTTV_BOARD_PV183, "Provideo PV183-8" },
{ 0x3116f200, BTTV_BOARD_TVT_TD3116, "Tongwei Video Technology TD-3116" },

{ 0, -1, NULL }
};
Expand Down Expand Up @@ -2880,6 +2883,16 @@ struct tvcard bttv_tvcards[] = {
.tuner_type = TUNER_ABSENT,
.tuner_addr = ADDR_UNSET,
},
[BTTV_BOARD_TVT_TD3116] = {
.name = "Tongwei Video Technology TD-3116",
.video_inputs = 16,
.gpiomask = 0xc00ff,
.muxsel = MUXSEL(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2),
.muxsel_hook = td3116_muxsel,
.svhs = NO_SVHS,
.pll = PLL_28,
.tuner_type = TUNER_ABSENT,
},
};

static const unsigned int bttv_num_tvcards = ARRAY_SIZE(bttv_tvcards);
Expand Down Expand Up @@ -3229,6 +3242,42 @@ static void geovision_muxsel(struct bttv *btv, unsigned int input)
gpio_bits(0xf, inmux);
}

/*
* The TD3116 has 2 74HC4051 muxes wired to the MUX0 input of a bt878.
* The first 74HC4051 has the lower 8 inputs, the second one the higher 8.
* The muxes are controlled via a 74HC373 latch which is connected to
* GPIOs 0-7. GPIO 18 is connected to the LE signal of the latch.
* Q0 of the latch is connected to the Enable (~E) input of the first
* 74HC4051. Q1 - Q3 are connected to S0 - S2 of the same 74HC4051.
* Q4 - Q7 are connected to the second 74HC4051 in the same way.
*/

static void td3116_latch_value(struct bttv *btv, u32 value)
{
gpio_bits((1<<18) | 0xff, value);
gpio_bits((1<<18) | 0xff, (1<<18) | value);
udelay(1);
gpio_bits((1<<18) | 0xff, value);
}

static void td3116_muxsel(struct bttv *btv, unsigned int input)
{
u32 value;
u32 highbit;

highbit = (input & 0x8) >> 3 ;

/* Disable outputs and set value in the mux */
value = 0x11; /* Disable outputs */
value |= ((input & 0x7) << 1) << (4 * highbit);
td3116_latch_value(btv, value);

/* Enable the correct output */
value &= ~0x11;
value |= ((highbit ^ 0x1) << 4) | highbit;
td3116_latch_value(btv, value);
}

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

static void bttv_reset_audio(struct bttv *btv)
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/media/video/bt8xx/bttv.h
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@
#define BTTV_BOARD_GEOVISION_GV800S 0x9d
#define BTTV_BOARD_GEOVISION_GV800S_SL 0x9e
#define BTTV_BOARD_PV183 0x9f
#define BTTV_BOARD_TVT_TD3116 0xa0


/* more card-specific defines */
Expand Down

0 comments on commit e25dbee

Please sign in to comment.