Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-or-later */
0002 /*
0003  * ZyDAS ZD1301 driver (demodulator)
0004  *
0005  * Copyright (C) 2015 Antti Palosaari <crope@iki.fi>
0006  */
0007 
0008 #ifndef ZD1301_DEMOD_H
0009 #define ZD1301_DEMOD_H
0010 
0011 #include <linux/platform_device.h>
0012 #include <linux/dvb/frontend.h>
0013 #include <media/dvb_frontend.h>
0014 
0015 /**
0016  * struct zd1301_demod_platform_data - Platform data for the zd1301_demod driver
0017  * @reg_priv: First argument of reg_read and reg_write callbacks.
0018  * @reg_read: Register read callback.
0019  * @reg_write: Register write callback.
0020  */
0021 struct zd1301_demod_platform_data {
0022     void *reg_priv;
0023     int (*reg_read)(void *, u16, u8 *);
0024     int (*reg_write)(void *, u16, u8);
0025 };
0026 
0027 #if IS_REACHABLE(CONFIG_DVB_ZD1301_DEMOD)
0028 /**
0029  * zd1301_demod_get_dvb_frontend() - Get pointer to DVB frontend
0030  * @pdev: Pointer to platform device
0031  *
0032  * Return: Pointer to DVB frontend which given platform device owns.
0033  */
0034 struct dvb_frontend *zd1301_demod_get_dvb_frontend(struct platform_device *pdev);
0035 
0036 /**
0037  * zd1301_demod_get_i2c_adapter() - Get pointer to I2C adapter
0038  * @pdev: Pointer to platform device
0039  *
0040  * Return: Pointer to I2C adapter which given platform device owns.
0041  */
0042 struct i2c_adapter *zd1301_demod_get_i2c_adapter(struct platform_device *pdev);
0043 
0044 #else
0045 
0046 static inline struct dvb_frontend *zd1301_demod_get_dvb_frontend(struct platform_device *dev)
0047 {
0048     printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
0049 
0050     return NULL;
0051 }
0052 static inline struct i2c_adapter *zd1301_demod_get_i2c_adapter(struct platform_device *dev)
0053 {
0054     printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__);
0055 
0056     return NULL;
0057 }
0058 
0059 #endif
0060 
0061 #endif /* ZD1301_DEMOD_H */