linux/drivers/media/dvb/siano/sms-cards.h
<<
>>
Prefs
   1/*
   2 *  Card-specific functions for the Siano SMS1xxx USB dongle
   3 *
   4 *  Copyright (c) 2008 Michael Krufky <mkrufky@linuxtv.org>
   5 *
   6 *  This program is free software; you can redistribute it and/or modify
   7 *  it under the terms of the GNU General Public License version 2 as
   8 *  published by the Free Software Foundation;
   9 *
  10 *  Software distributed under the License is distributed on an "AS IS"
  11 *  basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
  12 *
  13 *  See the GNU General Public License for more details.
  14 *
  15 *  You should have received a copy of the GNU General Public License
  16 *  along with this program; if not, write to the Free Software
  17 *  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  18 */
  19
  20#ifndef __SMS_CARDS_H__
  21#define __SMS_CARDS_H__
  22
  23#include <linux/usb.h>
  24#include "smscoreapi.h"
  25#include "smsir.h"
  26
  27#define SMS_BOARD_UNKNOWN 0
  28#define SMS1XXX_BOARD_SIANO_STELLAR 1
  29#define SMS1XXX_BOARD_SIANO_NOVA_A  2
  30#define SMS1XXX_BOARD_SIANO_NOVA_B  3
  31#define SMS1XXX_BOARD_SIANO_VEGA    4
  32#define SMS1XXX_BOARD_HAUPPAUGE_CATAMOUNT 5
  33#define SMS1XXX_BOARD_HAUPPAUGE_OKEMO_A 6
  34#define SMS1XXX_BOARD_HAUPPAUGE_OKEMO_B 7
  35#define SMS1XXX_BOARD_HAUPPAUGE_WINDHAM 8
  36#define SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD 9
  37#define SMS1XXX_BOARD_HAUPPAUGE_TIGER_MINICARD_R2 10
  38#define SMS1XXX_BOARD_SIANO_NICE        11
  39#define SMS1XXX_BOARD_SIANO_VENICE      12
  40
  41struct sms_board_gpio_cfg {
  42        int lna_vhf_exist;
  43        int lna_vhf_ctrl;
  44        int lna_uhf_exist;
  45        int lna_uhf_ctrl;
  46        int lna_uhf_d_ctrl;
  47        int lna_sband_exist;
  48        int lna_sband_ctrl;
  49        int lna_sband_d_ctrl;
  50        int foreign_lna0_ctrl;
  51        int foreign_lna1_ctrl;
  52        int foreign_lna2_ctrl;
  53        int rf_switch_vhf;
  54        int rf_switch_uhf;
  55        int rf_switch_sband;
  56        int leds_power;
  57        int led0;
  58        int led1;
  59        int led2;
  60        int led3;
  61        int led4;
  62        int ir;
  63        int eeprom_wp;
  64        int mrc_sense;
  65        int mrc_pdn_resetn;
  66        int mrc_gp0; /* mrcs spi int */
  67        int mrc_gp1;
  68        int mrc_gp2;
  69        int mrc_gp3;
  70        int mrc_gp4;
  71        int host_spi_gsp_ts_int;
  72};
  73
  74struct sms_board {
  75        enum sms_device_type_st type;
  76        char *name, *fw[DEVICE_MODE_MAX];
  77        struct sms_board_gpio_cfg board_cfg;
  78        enum ir_kb_type ir_kb_type;
  79
  80        /* gpios */
  81        int led_power, led_hi, led_lo, lna_ctrl, rf_switch;
  82};
  83
  84struct sms_board *sms_get_board(int id);
  85
  86extern struct smscore_device_t *coredev;
  87
  88enum SMS_BOARD_EVENTS {
  89        BOARD_EVENT_POWER_INIT,
  90        BOARD_EVENT_POWER_SUSPEND,
  91        BOARD_EVENT_POWER_RESUME,
  92        BOARD_EVENT_BIND,
  93        BOARD_EVENT_SCAN_PROG,
  94        BOARD_EVENT_SCAN_COMP,
  95        BOARD_EVENT_EMERGENCY_WARNING_SIGNAL,
  96        BOARD_EVENT_FE_LOCK,
  97        BOARD_EVENT_FE_UNLOCK,
  98        BOARD_EVENT_DEMOD_LOCK,
  99        BOARD_EVENT_DEMOD_UNLOCK,
 100        BOARD_EVENT_RECEPTION_MAX_4,
 101        BOARD_EVENT_RECEPTION_3,
 102        BOARD_EVENT_RECEPTION_2,
 103        BOARD_EVENT_RECEPTION_1,
 104        BOARD_EVENT_RECEPTION_LOST_0,
 105        BOARD_EVENT_MULTIPLEX_OK,
 106        BOARD_EVENT_MULTIPLEX_ERRORS
 107};
 108
 109int sms_board_event(struct smscore_device_t *coredev,
 110                enum SMS_BOARD_EVENTS gevent);
 111
 112int sms_board_setup(struct smscore_device_t *coredev);
 113
 114#define SMS_LED_OFF 0
 115#define SMS_LED_LO  1
 116#define SMS_LED_HI  2
 117int sms_board_led_feedback(struct smscore_device_t *coredev, int led);
 118int sms_board_power(struct smscore_device_t *coredev, int onoff);
 119int sms_board_lna_control(struct smscore_device_t *coredev, int onoff);
 120
 121extern int sms_board_load_modules(int id);
 122
 123#endif /* __SMS_CARDS_H__ */
 124
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.