9.2.2. 前端驱动程序

9.2.2.1. 前端连接头文件

struct a8293_platform_data

a8293 驱动程序的平台数据

定义:

struct a8293_platform_data {
    struct dvb_frontend *dvb_frontend;
    int volt_slew_nanos_per_mv;
};

成员

dvb_frontend

DVB 前端。

volt_slew_nanos_per_mv

增加 LNB 电压时的转换率,以纳秒/毫伏为单位。

struct af9013_platform_data

af9013 驱动程序的平台数据

定义:

struct af9013_platform_data {
    u32 clk;
#define AF9013_TUNER_MXL5003D      3 ;
#define AF9013_TUNER_MXL5005D     13 ;
#define AF9013_TUNER_MXL5005R     30 ;
#define AF9013_TUNER_ENV77H11D5  129 ;
#define AF9013_TUNER_MT2060      130 ;
#define AF9013_TUNER_MC44S803    133 ;
#define AF9013_TUNER_QT1010      134 ;
#define AF9013_TUNER_UNKNOWN     140 ;
#define AF9013_TUNER_MT2060_2    147 ;
#define AF9013_TUNER_TDA18271    156 ;
#define AF9013_TUNER_QT1010A     162 ;
#define AF9013_TUNER_MXL5007T    177 ;
#define AF9013_TUNER_TDA18218    179 ;
    u8 tuner;
    u32 if_frequency;
#define AF9013_TS_MODE_USB       0;
#define AF9013_TS_MODE_PARALLEL  1;
#define AF9013_TS_MODE_SERIAL    2;
    u8 ts_mode;
    u8 ts_output_pin;
    bool spec_inv;
    u8 api_version[4];
#define AF9013_GPIO_ON (1 << 0);
#define AF9013_GPIO_EN (1 << 1);
#define AF9013_GPIO_O  (1 << 2);
#define AF9013_GPIO_I  (1 << 3);
#define AF9013_GPIO_LO (AF9013_GPIO_ON|AF9013_GPIO_EN);
#define AF9013_GPIO_HI (AF9013_GPIO_ON|AF9013_GPIO_EN|AF9013_GPIO_O);
#define AF9013_GPIO_TUNER_ON  (AF9013_GPIO_ON|AF9013_GPIO_EN);
#define AF9013_GPIO_TUNER_OFF (AF9013_GPIO_ON|AF9013_GPIO_EN|AF9013_GPIO_O);
    u8 gpio[4];
    struct dvb_frontend* (*get_dvb_frontend)(struct i2c_client *);
    struct i2c_adapter* (*get_i2c_adapter)(struct i2c_client *);
    int (*pid_filter_ctrl)(struct dvb_frontend *, int);
    int (*pid_filter)(struct dvb_frontend *, u8, u16, int);
};

成员

clk

时钟频率。

tuner

使用的调谐器型号。

if_frequency

中频频率。

ts_mode

TS 模式。

ts_output_pin

TS 输出引脚。

spec_inv

输入频谱反转。

api_version

固件 API 版本。

gpio

GPIO。

get_dvb_frontend

获取 DVB 前端回调。

get_i2c_adapter

获取 I2C 适配器。

pid_filter_ctrl

控制 PID 过滤器。

pid_filter

将 PID 设置到 PID 过滤器。

struct ascot2e_config

Ascot2E 调谐器驱动程序的配置

定义:

struct ascot2e_config {
    u8 i2c_address;
    u8 xtal_freq_mhz;
    void *set_tuner_priv;
    int (*set_tuner_callback)(void *, int);
};

成员

i2c_address

调谐器的 I2C 地址

xtal_freq_mhz

振荡器频率,MHz

set_tuner_priv

回调函数私有上下文

set_tuner_callback

通知父驱动程序当前哪个调谐器处于活动状态的回调函数

struct dvb_frontend *ascot2e_attach(struct dvb_frontend *fe, const struct ascot2e_config *config, struct i2c_adapter *i2c)

连接 ascot2e 调谐器

参数

struct dvb_frontend *fe

要连接的前端

const struct ascot2e_config *config

指向具有调谐器配置的 struct ascot2e_config 的指针。

struct i2c_adapter *i2c

要使用的 I2C 适配器。

返回

成功时返回 FE 指针,失败时返回 NULL。

struct cxd2820r_platform_data

cxd2820r 驱动程序的平台数据

定义:

struct cxd2820r_platform_data {
    u8 ts_mode;
    bool ts_clk_inv;
    bool if_agc_polarity;
    bool spec_inv;
    int **gpio_chip_base;
    struct dvb_frontend* (*get_dvb_frontend)(struct i2c_client *);
};

成员

ts_mode

TS 模式。

ts_clk_inv

TS 时钟反转。

if_agc_polarity

中频 AGC 极性。

spec_inv

输入频谱反转。

gpio_chip_base

GPIO。

get_dvb_frontend

获取 DVB 前端。

struct cxd2820r_config

cxd2020r 解调器的配置

定义:

struct cxd2820r_config {
    u8 i2c_address;
    u8 ts_mode;
    bool ts_clock_inv;
    bool if_agc_polarity;
    bool spec_inv;
};

成员

i2c_address

解调器 I2C 地址。驱动程序从主地址自动确定 DVB-C 从 I2C 地址。默认值:无,必须设置。值:0x6c、0x6d。

ts_mode

TS 输出模式。默认值:无,必须设置。值:FIXME?

ts_clock_inv

TS 时钟反转。默认值:0。值:0、1。

if_agc_polarity

默认值:0。值:0、1

spec_inv

频谱反转。默认值:0。值:0、1。

struct dvb_frontend *cxd2820r_attach(const struct cxd2820r_config *config, struct i2c_adapter *i2c, int *gpio_chip_base)

连接 cxd2820r 解调器

参数

const struct cxd2820r_config *config

指向具有解调器配置的 struct cxd2820r_config 的指针。

struct i2c_adapter *i2c

要使用的 I2C 适配器。

int *gpio_chip_base

如果为零,则禁用 GPIO 设置。否则,如果设置了 CONFIG_GPIOLIB,则动态分配 gpio 基址;如果未设置,则使用其值设置 GPIO 引脚。

返回

成功时返回 FE 指针,失败时返回 NULL。

struct drxk_config

为 DRX-K 配置初始参数

定义:

struct drxk_config {
    u8 adr;
    bool single_master;
    bool no_i2c_bridge;
    bool parallel_ts;
    bool dynamic_clk;
    bool enable_merr_cfg;
    bool antenna_dvbt;
    u16 antenna_gpio;
    u8 mpeg_out_clk_strength;
    int chunk_size;
    const char      *microcode_name;
    int qam_demod_parameter_count;
};

成员

adr

DRX-K 的 I2C 地址

single_master

设备处于单主模式

no_i2c_bridge

不要切换 I2C 桥来与调谐器通信

parallel_ts

True 表示该设备使用并行 TS,否则使用串行 TS。

dynamic_clk

True 表示时钟将动态调整。否则为静态时钟。

enable_merr_cfg

启用 SIO_PDR_PERR_CFG/SIO_PDR_MVAL_CFG。

antenna_dvbt

用于将天线更改为 DVB-C 的 GPIO 位。值为 1 表示 1=DVBC,0=DVBT。零表示相反。

antenna_gpio

用于控制天线的 GPIO 位

mpeg_out_clk_strength

DRXK Mpeg 输出时钟驱动强度。

chunk_size

I2C 消息的最大大小

microcode_name

具有微代码的固件文件的名称

qam_demod_parameter_count

用于设置解调器参数的命令的参数数量。所有固件都使用 2 参数命令。一个例外是 drxk_a3.mc 固件,它使用 4 参数命令。值 0(默认)或更低表示将自动检测正确的参数数量。

描述

*_gpio 变量上,位 0 是 UIO-1,位 1 是 UIO-2,位 2 是 UIO-3。

struct dvb_frontend *drxk_attach(const struct drxk_config *config, struct i2c_adapter *i2c)

连接 drxk 解调器

参数

const struct drxk_config *config

指向带有解调器配置的 struct drxk_config 的指针。

struct i2c_adapter *i2c

要使用的 I2C 适配器。

返回

成功时返回 FE 指针,失败时返回 NULL。

struct dvb_frontend *dvb_pll_attach(struct dvb_frontend *fe, int pll_addr, struct i2c_adapter *i2c, unsigned int pll_desc_id)

将 dvb-pll 连接到提供的前端结构。

参数

struct dvb_frontend *fe

要连接到的前端。

int pll_addr

PLL 的 i2c 地址(如果使用)。

struct i2c_adapter *i2c

要使用的 i2c 适配器(如果未使用,则设置为 NULL)。

unsigned int pll_desc_id

要使用的 dvb_pll_desc。

返回

成功时返回前端指针,失败时返回 NULL

struct helene_config

“Helene” 调谐器驱动程序的配置

定义:

struct helene_config {
    u8 i2c_address;
    u8 xtal_freq_mhz;
    void *set_tuner_priv;
    int (*set_tuner_callback)(void *, int);
    enum helene_xtal xtal;
    struct dvb_frontend *fe;
};

成员

i2c_address

调谐器的 I2C 地址

xtal_freq_mhz

振荡器频率,MHz

set_tuner_priv

回调函数私有上下文

set_tuner_callback

通知父驱动程序当前哪个调谐器处于活动状态的回调函数

xtal

Cristal 频率,如 enum helene_xtal 所述

fe

连接此调谐器的前端

struct dvb_frontend *helene_attach(struct dvb_frontend *fe, const struct helene_config *config, struct i2c_adapter *i2c)

连接 helene 调谐器(地面和有线标准)

参数

struct dvb_frontend *fe

要连接的前端

const struct helene_config *config

指向带有调谐器配置的 struct helene_config 的指针。

struct i2c_adapter *i2c

要使用的 I2C 适配器。

返回

成功时返回 FE 指针,失败时返回 NULL。

struct dvb_frontend *helene_attach_s(struct dvb_frontend *fe, const struct helene_config *config, struct i2c_adapter *i2c)

连接 helene 调谐器(卫星标准)

参数

struct dvb_frontend *fe

要连接的前端

const struct helene_config *config

指向带有调谐器配置的 struct helene_config 的指针。

struct i2c_adapter *i2c

要使用的 I2C 适配器。

返回

成功时返回 FE 指针,失败时返回 NULL。

struct horus3a_config

Horus3A 调谐器驱动程序的配置

定义:

struct horus3a_config {
    u8 i2c_address;
    u8 xtal_freq_mhz;
    void *set_tuner_priv;
    int (*set_tuner_callback)(void *, int);
};

成员

i2c_address

调谐器的 I2C 地址

xtal_freq_mhz

振荡器频率,MHz

set_tuner_priv

回调函数私有上下文

set_tuner_callback

通知父驱动程序当前哪个调谐器处于活动状态的回调函数

struct dvb_frontend *horus3a_attach(struct dvb_frontend *fe, const struct horus3a_config *config, struct i2c_adapter *i2c)

连接 horus3a 调谐器

参数

struct dvb_frontend *fe

要连接的前端

const struct horus3a_config *config

指向带有调谐器配置的 struct helene_config 的指针。

struct i2c_adapter *i2c

要使用的 I2C 适配器。

返回

成功时返回 FE 指针,失败时返回 NULL。

struct ix2505v_config

ix2505 连接配置

定义:

struct ix2505v_config {
    u8 tuner_address;
    u8 tuner_gain;
    u8 tuner_chargepump;
    int min_delay_ms;
    u8 tuner_write_only;
};

成员

tuner_address

调谐器地址

tuner_gain

基带 AMP 增益控制 0/1=0dB(默认)2=-2bB 3=-4dB

tuner_chargepump

充电泵输出 +/- 0=120 1=260 2=555 3=1200(默认)

min_delay_ms

调谐后的延迟

tuner_write_only

禁用读取

struct dvb_frontend *ix2505v_attach(struct dvb_frontend *fe, const struct ix2505v_config *config, struct i2c_adapter *i2c)

将 ix2505v 调谐器连接到提供的前端结构。

参数

struct dvb_frontend *fe

要连接到的前端。

const struct ix2505v_config *config

指向 struct ix2505v_config 的指针

struct i2c_adapter *i2c

指向 struct i2c_adapter 的指针。

返回

成功时返回 FE 指针,失败时返回 NULL。

enum m88ds3103_ts_mode

TS 连接模式

常量

M88DS3103_TS_SERIAL

TS 输出引脚 D0,正常

M88DS3103_TS_SERIAL_D7

TS 输出引脚 D7

M88DS3103_TS_PARALLEL

TS 并行模式

M88DS3103_TS_CI

TS CI 模式

enum m88ds3103_clock_out

常量

M88DS3103_CLOCK_OUT_DISABLED

时钟输出被禁用

M88DS3103_CLOCK_OUT_ENABLED

时钟输出已启用,使用晶体时钟。

M88DS3103_CLOCK_OUT_ENABLED_DIV2

时钟输出已启用,使用一半的晶体时钟。

struct m88ds3103_platform_data

m88ds3103 驱动程序的平台数据

定义:

struct m88ds3103_platform_data {
    u32 clk;
    u16 i2c_wr_max;
    enum m88ds3103_ts_mode ts_mode;
    u32 ts_clk;
    enum m88ds3103_clock_out clk_out;
    u8 ts_clk_pol:1;
    u8 spec_inv:1;
    u8 agc;
    u8 agc_inv:1;
    u8 envelope_mode:1;
    u8 lnb_hv_pol:1;
    u8 lnb_en_pol:1;
    struct dvb_frontend* (*get_dvb_frontend)(struct i2c_client *);
    struct i2c_adapter* (*get_i2c_adapter)(struct i2c_client *);
};

成员

clk

时钟频率。

i2c_wr_max

I2C 适配器一次可以写入的最大字节数。

ts_mode

TS 模式。

ts_clk

TS 时钟 (KHz)。

clk_out

时钟输出。

ts_clk_pol

TS 时钟极性。1-在下降沿有效;0-在上升沿有效。

spec_inv

输入频谱反转。

agc

AGC 配置。

agc_inv

AGC 极性。

envelope_mode

DiSEqC 包络模式。

lnb_hv_pol

LNB H/V 引脚极性。0:引脚高电平设置为 VOLTAGE_18,引脚低电平设置为 VOLTAGE_13。1:引脚高电平设置为 VOLTAGE_13,引脚低电平设置为 VOLTAGE_18。

lnb_en_pol

LNB 使能引脚极性。0:引脚高电平禁用,引脚低电平使能。1:引脚高电平使能,引脚低电平禁用。

get_dvb_frontend

获取 DVB 前端。

get_i2c_adapter

获取 I2C 适配器。

struct m88ds3103_config

m88ds3102 配置

定义:

struct m88ds3103_config {
    u8 i2c_addr;
    u32 clock;
    u16 i2c_wr_max;
    u8 ts_mode;
    u32 ts_clk;
    u8 ts_clk_pol:1;
    u8 spec_inv:1;
    u8 agc_inv:1;
    u8 clock_out;
    u8 envelope_mode:1;
    u8 agc;
    u8 lnb_hv_pol:1;
    u8 lnb_en_pol:1;
};

成员

i2c_addr

I2C 地址。默认值:无,必须设置。示例:0x68,...

clock

设备的时钟。默认值:无,必须设置。示例:27000000

i2c_wr_max

I2C 提供程序一次请求写入的最大字节数。默认值:无,必须设置。示例:33、65,...

ts_mode

TS 输出模式,如 enum m88ds3103_ts_mode 定义。默认值:M88DS3103_TS_SERIAL。

ts_clk

TS 时钟,单位为 KHz。默认值:0。

ts_clk_pol

TS 时钟极性。默认值:0。1-在下降沿有效;0-在上升沿有效。

spec_inv

频谱反转。默认值:0。

agc_inv

AGC 极性。默认值:0。

clock_out

时钟输出,如 enum m88ds3103_clock_out 定义。默认值:M88DS3103_CLOCK_OUT_DISABLED。

envelope_mode

DiSEqC 包络模式。默认值:0。

agc

AGC 配置。默认值:无,必须设置。

lnb_hv_pol

LNB H/V 引脚极性。默认值:0。值:1:引脚高电平设置为 VOLTAGE_13,引脚低电平设置为 VOLTAGE_18;0:引脚高电平设置为 VOLTAGE_18,引脚低电平设置为 VOLTAGE_13。

lnb_en_pol

LNB 使能引脚极性。默认值:0。值:1:引脚高电平使能,引脚低电平禁用;0:引脚高电平禁用,引脚低电平使能。

struct dvb_frontend *m88ds3103_attach(const struct m88ds3103_config *config, struct i2c_adapter *i2c, struct i2c_adapter **tuner_i2c)

连接 m88ds3103 解调器

参数

const struct m88ds3103_config *config

指向包含解调器配置的 struct m88ds3103_config 的指针。

struct i2c_adapter *i2c

要使用的 I2C 适配器。

struct i2c_adapter **tuner_i2c

成功时,返回与 m88ds3103 调谐器关联的 I2C 适配器。

返回

成功时返回 FE 指针,失败时返回 NULL。

注意

不要添加新的 m88ds3103_attach() 用户!请改用 I2C 绑定。

struct mb86a20s_config

定义前端的每个设备属性

定义:

struct mb86a20s_config {
    u32 fclk;
    u8 demod_address;
    bool is_serial;
};

成员

fclk

时钟频率。如果为零,则假定为默认值 (32.57142 Mhz)

demod_address

解调器的 i2c 地址

is_serial

如果为 true,则 TS 为串行。否则,TS 为并行

struct dvb_frontend *mb86a20s_attach(const struct mb86a20s_config *config, struct i2c_adapter *i2c)

连接 mb86a20s 解调器

参数

const struct mb86a20s_config *config

指向包含解调器配置的 struct mb86a20s_config 的指针。

struct i2c_adapter *i2c

要使用的 I2C 适配器。

返回

成功时返回 FE 指针,失败时返回 NULL。

struct mn88472_config

mn88472 驱动程序的平台数据

定义:

struct mn88472_config {
    unsigned int xtal;
#define MN88472_TS_MODE_SERIAL      0;
#define MN88472_TS_MODE_PARALLEL    1;
    int ts_mode;
#define MN88472_TS_CLK_FIXED        0;
#define MN88472_TS_CLK_VARIABLE     1;
    int ts_clock;
    u16 i2c_wr_max;
    struct dvb_frontend **fe;
    struct dvb_frontend* (*get_dvb_frontend)(struct i2c_client *);
};

成员

xtal

时钟频率。

ts_mode

TS 模式。

ts_clock

TS 时钟配置。

i2c_wr_max

驱动程序一次写入 I2C 的最大字节数。

fe

指向前端指针的指针

get_dvb_frontend

获取 DVB 前端回调。

struct rtl2830_platform_data

rtl2830 驱动程序的平台数据

定义:

struct rtl2830_platform_data {
    u32 clk;
    bool spec_inv;
    u8 vtop;
    u8 krf;
    u8 agc_targ_val;
    struct dvb_frontend* (*get_dvb_frontend)(struct i2c_client *);
    struct i2c_adapter* (*get_i2c_adapter)(struct i2c_client *);
    int (*pid_filter)(struct dvb_frontend *, u8, u16, int);
    int (*pid_filter_ctrl)(struct dvb_frontend *, int);
};

成员

clk

时钟频率(4000000、16000000、25000000、28800000)。

spec_inv

频谱反转。

vtop

AGC 接管点。

krf

AGC 比率。

agc_targ_val

AGC。

get_dvb_frontend

获取 DVB 前端。

get_i2c_adapter

获取 I2C 适配器。

pid_filter

将 PID 设置到 PID 过滤器。

pid_filter_ctrl

控制 PID 过滤器。

struct rtl2832_platform_data

rtl2832 驱动程序的平台数据

定义:

struct rtl2832_platform_data {
    u32 clk;
#define RTL2832_TUNER_FC2580    0x21;
#define RTL2832_TUNER_TUA9001   0x24;
#define RTL2832_TUNER_FC0012    0x26;
#define RTL2832_TUNER_E4000     0x27;
#define RTL2832_TUNER_FC0013    0x29;
#define RTL2832_TUNER_R820T     0x2a;
#define RTL2832_TUNER_R828D     0x2b;
#define RTL2832_TUNER_SI2157    0x2c;
    u8 tuner;
    struct dvb_frontend* (*get_dvb_frontend)(struct i2c_client *);
    struct i2c_adapter* (*get_i2c_adapter)(struct i2c_client *);
    int (*slave_ts_ctrl)(struct i2c_client *, bool);
    int (*pid_filter)(struct dvb_frontend *, u8, u16, int);
    int (*pid_filter_ctrl)(struct dvb_frontend *, int);
};

成员

clk

时钟频率(4000000、16000000、25000000、28800000)。

tuner

使用的调谐器型号。

get_dvb_frontend

获取 DVB 前端。

get_i2c_adapter

获取 I2C 适配器。

slave_ts_ctrl

控制从 TS 接口。

pid_filter

将 PID 设置到 PID 过滤器。

pid_filter_ctrl

控制 PID 过滤器。

struct rtl2832_sdr_platform_data

rtl2832_sdr 驱动程序的平台数据

定义:

struct rtl2832_sdr_platform_data {
    u32 clk;
#define RTL2832_SDR_TUNER_FC2580    0x21;
#define RTL2832_SDR_TUNER_TUA9001   0x24;
#define RTL2832_SDR_TUNER_FC0012    0x26;
#define RTL2832_SDR_TUNER_E4000     0x27;
#define RTL2832_SDR_TUNER_FC0013    0x29;
#define RTL2832_SDR_TUNER_R820T     0x2a;
#define RTL2832_SDR_TUNER_R828D     0x2b;
    u8 tuner;
    struct regmap *regmap;
    struct dvb_frontend *dvb_frontend;
    struct v4l2_subdev *v4l2_subdev;
    struct dvb_usb_device *dvb_usb_device;
};

成员

clk

时钟频率(4000000、16000000、25000000、28800000)。

tuner

使用的调谐器型号。

regmap

指向 struct regmap 的指针。

dvb_frontend

rtl2832 DVB 前端。

v4l2_subdev

调谐器 v4l2 控制。

dvb_usb_device

用于 USB 流的 DVB USB 接口。

struct dvb_frontend *stb6000_attach(struct dvb_frontend *fe, int addr, struct i2c_adapter *i2c)

将 stb6000 调谐器连接到提供的的前端结构。

参数

struct dvb_frontend *fe

要连接到的前端。

int addr

调谐器的 i2c 地址。

struct i2c_adapter *i2c

要使用的 I2C 适配器。

返回

成功时返回 FE 指针,失败时返回 NULL。

struct tda10071_platform_data

tda10071 驱动程序的平台数据

定义:

struct tda10071_platform_data {
    u32 clk;
    u16 i2c_wr_max;
#define TDA10071_TS_SERIAL        0;
#define TDA10071_TS_PARALLEL      1;
    u8 ts_mode;
    bool spec_inv;
    u8 pll_multiplier;
    u8 tuner_i2c_addr;
    struct dvb_frontend* (*get_dvb_frontend)(struct i2c_client *);
};

成员

clk

时钟频率。

i2c_wr_max

I2C 适配器一次可以写入的最大字节数。

ts_mode

TS 模式。

spec_inv

输入频谱反转。

pll_multiplier

PLL 乘数。

tuner_i2c_addr

CX24118A 调谐器 I2C 地址(0x14、0x54 等)。

get_dvb_frontend

获取 DVB 前端。

struct dvb_frontend *tda826x_attach(struct dvb_frontend *fe, int addr, struct i2c_adapter *i2c, int has_loopthrough)

将 tda826x 调谐器连接到提供的前端结构。

参数

struct dvb_frontend *fe

要连接到的前端。

int addr

调谐器的 i2c 地址。

struct i2c_adapter *i2c

要使用的 I2C 适配器。

int has_loopthrough

如果该卡具有环通 RF 连接器,则设置为 1。

返回

成功时返回 FE 指针,失败时返回 NULL。

struct zd1301_demod_platform_data

zd1301_demod 驱动程序的平台数据

定义:

struct zd1301_demod_platform_data {
    void *reg_priv;
    int (*reg_read)(void *, u16, u8 *);
    int (*reg_write)(void *, u16, u8);
};

成员

reg_priv

reg_read 和 reg_write 回调的第一个参数。

reg_read

寄存器读取回调。

reg_write

寄存器写入回调。

struct dvb_frontend *zd1301_demod_get_dvb_frontend(struct platform_device *pdev)

获取指向 DVB 前端的指针

参数

struct platform_device *pdev

指向平台设备的指针

返回

指向给定平台设备拥有的 DVB 前端的指针。

struct i2c_adapter *zd1301_demod_get_i2c_adapter(struct platform_device *pdev)

获取指向 I2C 适配器的指针

参数

struct platform_device *pdev

指向平台设备的指针

返回

指向给定平台设备拥有的 I2C 适配器的指针。

struct dvb_frontend *zl10036_attach(struct dvb_frontend *fe, const struct zl10036_config *config, struct i2c_adapter *i2c)

将 zl10036 调谐器连接到提供的前端结构。

参数

struct dvb_frontend *fe

要连接到的前端。

const struct zl10036_config *config

zl10036_config 结构。

struct i2c_adapter *i2c

指向 struct i2c_adapter 的指针。

返回

成功时返回 FE 指针,失败时返回 NULL。