linux/drivers/staging/cx25821/cx25821-cards.c
<<
>>
Prefs
   1/*
   2 *  Driver for the Conexant CX25821 PCIe bridge
   3 *
   4 *  Copyright (C) 2009 Conexant Systems Inc.
   5 *  Authors  <shu.lin@conexant.com>, <hiep.huynh@conexant.com>
   6 *      Based on Steven Toth <stoth@linuxtv.org> cx23885 driver
   7 *
   8 *  This program is free software; you can redistribute it and/or modify
   9 *  it under the terms of the GNU General Public License as published by
  10 *  the Free Software Foundation; either version 2 of the License, or
  11 *  (at your option) any later version.
  12 *
  13 *  This program is distributed in the hope that it will be useful,
  14 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
  15 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16 *
  17 *  GNU General Public License for more details.
  18 *
  19 *  You should have received a copy of the GNU General Public License
  20 *  along with this program; if not, write to the Free Software
  21 *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  22 */
  23
  24#include <linux/init.h>
  25#include <linux/module.h>
  26#include <linux/pci.h>
  27#include <linux/delay.h>
  28#include <media/cx25840.h>
  29
  30#include "cx25821.h"
  31#include "tuner-xc2028.h"
  32
  33// board config info
  34
  35struct cx25821_board cx25821_boards[] = {
  36        [UNKNOWN_BOARD] = {
  37                           .name = "UNKNOWN/GENERIC",
  38                           // Ensure safe default for unknown boards
  39                           .clk_freq = 0,
  40                           },
  41
  42        [CX25821_BOARD] = {
  43                           .name = "CX25821",
  44                           .portb = CX25821_RAW,
  45                           .portc = CX25821_264,
  46                           .input[0].type = CX25821_VMUX_COMPOSITE,
  47                           },
  48
  49};
  50
  51const unsigned int cx25821_bcount = ARRAY_SIZE(cx25821_boards);
  52
  53struct cx25821_subid cx25821_subids[] = {
  54        {
  55         .subvendor = 0x14f1,
  56         .subdevice = 0x0920,
  57         .card = CX25821_BOARD,
  58         },
  59};
  60
  61void cx25821_card_setup(struct cx25821_dev *dev)
  62{
  63        static u8 eeprom[256];
  64
  65        if (dev->i2c_bus[0].i2c_rc == 0) {
  66                dev->i2c_bus[0].i2c_client.addr = 0xa0 >> 1;
  67                tveeprom_read(&dev->i2c_bus[0].i2c_client, eeprom,
  68                              sizeof(eeprom));
  69        }
  70}
  71