Commit 63bdab5d authored by Antti Palosaari's avatar Antti Palosaari Committed by Mauro Carvalho Chehab

[media] rtl2832_sdr: convert to platform driver

That SDR driver module was abusing DVB frontend SEC (satellite
equipment controller) device and due to that it was also using
legacy DVB binding. Platform bus is pseudo-bus provided by kernel
driver model and it fits cases like that, where any other busses
are not suitable.
Signed-off-by: default avatarAntti Palosaari <crope@iki.fi>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 725b7f30
This diff is collapsed.
...@@ -32,23 +32,47 @@ ...@@ -32,23 +32,47 @@
#define RTL2832_SDR_H #define RTL2832_SDR_H
#include <linux/kconfig.h> #include <linux/kconfig.h>
#include <linux/i2c.h>
#include <media/v4l2-subdev.h> #include <media/v4l2-subdev.h>
#include "dvb_frontend.h"
/* for config struct */
#include "rtl2832.h" #include "rtl2832.h"
#if IS_ENABLED(CONFIG_DVB_RTL2832_SDR) struct rtl2832_sdr_platform_data {
extern struct dvb_frontend *rtl2832_sdr_attach(struct dvb_frontend *fe, /*
struct i2c_adapter *i2c, const struct rtl2832_config *cfg, * Clock frequency.
struct v4l2_subdev *sd); * Hz
#else * 4000000, 16000000, 25000000, 28800000
*/
u32 clk;
/*
* Tuner.
* XXX: This list must be kept sync with dvb_usb_rtl28xxu USB IF driver.
*/
#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 i2c_client *i2c_client;
int (*bulk_read)(struct i2c_client *, unsigned int, void *, size_t);
int (*bulk_write)(struct i2c_client *, unsigned int, const void *, size_t);
int (*update_bits)(struct i2c_client *, unsigned int, unsigned int, unsigned int);
struct dvb_frontend *dvb_frontend;
struct v4l2_subdev *v4l2_subdev;
struct dvb_usb_device *dvb_usb_device;
};
static inline struct dvb_frontend *rtl2832_sdr_attach(struct dvb_frontend *fe, static inline struct dvb_frontend *rtl2832_sdr_attach(struct dvb_frontend *fe,
struct i2c_adapter *i2c, const struct rtl2832_config *cfg, struct i2c_adapter *i2c, const struct rtl2832_config *cfg,
struct v4l2_subdev *sd) struct v4l2_subdev *sd)
{ {
dev_warn(&i2c->dev, "%s: driver disabled by Kconfig\n", __func__); dev_warn(&i2c->dev, "%s: driver disabled!\n", __func__);
return NULL; return NULL;
} }
#endif
#endif /* RTL2832_SDR_H */ #endif /* RTL2832_SDR_H */
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment