18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 28c2ecf20Sopenharmony_ci/* 38c2ecf20Sopenharmony_ci * ZyDAS ZD1301 driver (demodulator) 48c2ecf20Sopenharmony_ci * 58c2ecf20Sopenharmony_ci * Copyright (C) 2015 Antti Palosaari <crope@iki.fi> 68c2ecf20Sopenharmony_ci */ 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_ci#ifndef ZD1301_DEMOD_H 98c2ecf20Sopenharmony_ci#define ZD1301_DEMOD_H 108c2ecf20Sopenharmony_ci 118c2ecf20Sopenharmony_ci#include <linux/platform_device.h> 128c2ecf20Sopenharmony_ci#include <linux/dvb/frontend.h> 138c2ecf20Sopenharmony_ci#include <media/dvb_frontend.h> 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci/** 168c2ecf20Sopenharmony_ci * struct zd1301_demod_platform_data - Platform data for the zd1301_demod driver 178c2ecf20Sopenharmony_ci * @reg_priv: First argument of reg_read and reg_write callbacks. 188c2ecf20Sopenharmony_ci * @reg_read: Register read callback. 198c2ecf20Sopenharmony_ci * @reg_write: Register write callback. 208c2ecf20Sopenharmony_ci */ 218c2ecf20Sopenharmony_cistruct zd1301_demod_platform_data { 228c2ecf20Sopenharmony_ci void *reg_priv; 238c2ecf20Sopenharmony_ci int (*reg_read)(void *, u16, u8 *); 248c2ecf20Sopenharmony_ci int (*reg_write)(void *, u16, u8); 258c2ecf20Sopenharmony_ci}; 268c2ecf20Sopenharmony_ci 278c2ecf20Sopenharmony_ci#if IS_REACHABLE(CONFIG_DVB_ZD1301_DEMOD) 288c2ecf20Sopenharmony_ci/** 298c2ecf20Sopenharmony_ci * zd1301_demod_get_dvb_frontend() - Get pointer to DVB frontend 308c2ecf20Sopenharmony_ci * @pdev: Pointer to platform device 318c2ecf20Sopenharmony_ci * 328c2ecf20Sopenharmony_ci * Return: Pointer to DVB frontend which given platform device owns. 338c2ecf20Sopenharmony_ci */ 348c2ecf20Sopenharmony_cistruct dvb_frontend *zd1301_demod_get_dvb_frontend(struct platform_device *pdev); 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci/** 378c2ecf20Sopenharmony_ci * zd1301_demod_get_i2c_adapter() - Get pointer to I2C adapter 388c2ecf20Sopenharmony_ci * @pdev: Pointer to platform device 398c2ecf20Sopenharmony_ci * 408c2ecf20Sopenharmony_ci * Return: Pointer to I2C adapter which given platform device owns. 418c2ecf20Sopenharmony_ci */ 428c2ecf20Sopenharmony_cistruct i2c_adapter *zd1301_demod_get_i2c_adapter(struct platform_device *pdev); 438c2ecf20Sopenharmony_ci 448c2ecf20Sopenharmony_ci#else 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_cistatic inline struct dvb_frontend *zd1301_demod_get_dvb_frontend(struct platform_device *dev) 478c2ecf20Sopenharmony_ci{ 488c2ecf20Sopenharmony_ci printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ci return NULL; 518c2ecf20Sopenharmony_ci} 528c2ecf20Sopenharmony_cistatic inline struct i2c_adapter *zd1301_demod_get_i2c_adapter(struct platform_device *dev) 538c2ecf20Sopenharmony_ci{ 548c2ecf20Sopenharmony_ci printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ci return NULL; 578c2ecf20Sopenharmony_ci} 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ci#endif 608c2ecf20Sopenharmony_ci 618c2ecf20Sopenharmony_ci#endif /* ZD1301_DEMOD_H */ 62