18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * Support for the Broadcom BCM3510 ATSC demodulator (1st generation Air2PC) 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 2001-5, B2C2 inc. 68c2ecf20Sopenharmony_ci * 78c2ecf20Sopenharmony_ci * GPL/Linux driver written by Patrick Boettcher <patrick.boettcher@posteo.de> 88c2ecf20Sopenharmony_ci */ 98c2ecf20Sopenharmony_ci#ifndef BCM3510_H 108c2ecf20Sopenharmony_ci#define BCM3510_H 118c2ecf20Sopenharmony_ci 128c2ecf20Sopenharmony_ci#include <linux/dvb/frontend.h> 138c2ecf20Sopenharmony_ci#include <linux/firmware.h> 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_cistruct bcm3510_config 168c2ecf20Sopenharmony_ci{ 178c2ecf20Sopenharmony_ci /* the demodulator's i2c address */ 188c2ecf20Sopenharmony_ci u8 demod_address; 198c2ecf20Sopenharmony_ci 208c2ecf20Sopenharmony_ci /* request firmware for device */ 218c2ecf20Sopenharmony_ci int (*request_firmware)(struct dvb_frontend* fe, const struct firmware **fw, char* name); 228c2ecf20Sopenharmony_ci}; 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ci#if IS_REACHABLE(CONFIG_DVB_BCM3510) 258c2ecf20Sopenharmony_ciextern struct dvb_frontend* bcm3510_attach(const struct bcm3510_config* config, 268c2ecf20Sopenharmony_ci struct i2c_adapter* i2c); 278c2ecf20Sopenharmony_ci#else 288c2ecf20Sopenharmony_cistatic inline struct dvb_frontend* bcm3510_attach(const struct bcm3510_config* config, 298c2ecf20Sopenharmony_ci struct i2c_adapter* i2c) 308c2ecf20Sopenharmony_ci{ 318c2ecf20Sopenharmony_ci printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 328c2ecf20Sopenharmony_ci return NULL; 338c2ecf20Sopenharmony_ci} 348c2ecf20Sopenharmony_ci#endif // CONFIG_DVB_BCM3510 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci#endif 37