/* SPDX-License-Identifier: GPL-2.0 */ /* * * bttv - Bt848 frame grabber driver * * card ID's and external interfaces of the bttv driver * basically stuff needed by other drivers (i2c, lirc, ...) * and is supported not to change much over time. * * Copyright (C) 1996,97 Ralph Metzler (rjkm@thp.uni-koeln.de) * (c) 1999,2000 Gerd Knorr <kraxel@goldbach.in-berlin.de> *
*/
unsignedint tuner_type;
u8 tuner_addr;
u8 video_inputs; /* Number of inputs */ unsignedint svhs:4; /* Which input is s-video */ #define NO_SVHS 15 unsignedint pll:2; #define PLL_NONE 0 #define PLL_28 1 #define PLL_35 2 #define PLL_14 3
/* i2c audio flags */ unsignedint no_msp34xx:1; unsignedint no_tda7432:1; unsignedint msp34xx_alt:1; /* Note: currently no card definition needs to mark the presence of a RDS saa6588 chip. If this is ever needed, then add a new
'has_saa6588' bit here. */
unsignedint no_video:1; /* video pci function is unused */ unsignedint has_dvb:1; unsignedint has_remote:1; unsignedint has_radio:1; unsignedint has_dig_in:1; /* Has digital input (always last input) */ unsignedint no_gpioirq:1;
};
externstruct tvcard bttv_tvcards[];
/* * This bit of cpp voodoo is used to create a macro with a variable number of * arguments (1 to 16). It will pack each argument into a word two bits at a * time. It can't be a function because it needs to be compile time constant to * initialize structures. Since each argument must fit in two bits, it's ok * that they are changed to octal. One should not use hex number, macros, or * anything else with this macro. Just use plain integers from 0 to 3.
*/ #define _MUXSELf(a) 0##a << 30 #define _MUXSELe(a, b...) 0##a << 28 | _MUXSELf(b) #define _MUXSELd(a, b...) 0##a << 26 | _MUXSELe(b) #define _MUXSELc(a, b...) 0##a << 24 | _MUXSELd(b) #define _MUXSELb(a, b...) 0##a << 22 | _MUXSELc(b) #define _MUXSELa(a, b...) 0##a << 20 | _MUXSELb(b) #define _MUXSEL9(a, b...) 0##a << 18 | _MUXSELa(b) #define _MUXSEL8(a, b...) 0##a << 16 | _MUXSEL9(b) #define _MUXSEL7(a, b...) 0##a << 14 | _MUXSEL8(b) #define _MUXSEL6(a, b...) 0##a << 12 | _MUXSEL7(b) #define _MUXSEL5(a, b...) 0##a << 10 | _MUXSEL6(b) #define _MUXSEL4(a, b...) 0##a << 8 | _MUXSEL5(b) #define _MUXSEL3(a, b...) 0##a << 6 | _MUXSEL4(b) #define _MUXSEL2(a, b...) 0##a << 4 | _MUXSEL3(b) #define _MUXSEL1(a, b...) 0##a << 2 | _MUXSEL2(b) #define MUXSEL(a, b...) (a | _MUXSEL1(b))
/* sets GPOE register (BT848_GPIO_OUT_EN) to new value: data | (current_GPOE_value & ~mask) returns negative value if error occurred
*/ externint bttv_gpio_enable(unsignedint card, unsignedlong mask, unsignedlong data);
/* fills data with GPDATA register contents returns negative value if error occurred
*/ externint bttv_read_gpio(unsignedint card, unsignedlong *data);
/* sets GPDATA register to new value: (data & mask) | (current_GPDATA_value & ~mask) returns negative value if error occurred
*/ externint bttv_write_gpio(unsignedint card, unsignedlong mask, unsignedlong data);
/* ---------------------------------------------------------- */ /* sysfs/driver-moded based gpio access interface */
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.