Commit 83808c23 authored by Abylay Ospan's avatar Abylay Ospan Committed by Mauro Carvalho Chehab

[media] Add support Sony CXD2854ER demodulator

CXD2854ER is identical to CXD2841ER except ISDB-T/S added.
New method 'cxd2841er_attach_i' is added
xtal frequency now configurable. Available options:
20.5MHz, 24MHz, 41MHz
Signed-off-by: default avatarAbylay Ospan <aospan@netup.ru>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@osg.samsung.com>
parent 2dc1ed4e
This diff is collapsed.
...@@ -25,8 +25,15 @@ ...@@ -25,8 +25,15 @@
#include <linux/kconfig.h> #include <linux/kconfig.h>
#include <linux/dvb/frontend.h> #include <linux/dvb/frontend.h>
enum cxd2841er_xtal {
SONY_XTAL_20500, /* 20.5 MHz */
SONY_XTAL_24000, /* 24 MHz */
SONY_XTAL_41000 /* 41 MHz */
};
struct cxd2841er_config { struct cxd2841er_config {
u8 i2c_addr; u8 i2c_addr;
enum cxd2841er_xtal xtal;
}; };
#if IS_REACHABLE(CONFIG_DVB_CXD2841ER) #if IS_REACHABLE(CONFIG_DVB_CXD2841ER)
...@@ -38,28 +45,38 @@ extern struct dvb_frontend *cxd2841er_attach_t(struct cxd2841er_config *cfg, ...@@ -38,28 +45,38 @@ extern struct dvb_frontend *cxd2841er_attach_t(struct cxd2841er_config *cfg,
extern struct dvb_frontend *cxd2841er_attach_c(struct cxd2841er_config *cfg, extern struct dvb_frontend *cxd2841er_attach_c(struct cxd2841er_config *cfg,
struct i2c_adapter *i2c); struct i2c_adapter *i2c);
extern struct dvb_frontend *cxd2841er_attach_i(struct cxd2841er_config *cfg,
struct i2c_adapter *i2c);
#else #else
static inline struct dvb_frontend *cxd2841er_attach_s( static inline struct dvb_frontend *cxd2841er_attach_s(
struct cxd2841er_config *cfg, struct cxd2841er_config *cfg,
struct i2c_adapter *i2c) struct i2c_adapter *i2c)
{ {
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); pr_warn("%s: driver disabled by Kconfig\n", __func__);
return NULL; return NULL;
} }
static inline struct dvb_frontend *cxd2841er_attach_t( static inline struct dvb_frontend *cxd2841er_attach_t(
struct cxd2841er_config *cfg, struct i2c_adapter *i2c) struct cxd2841er_config *cfg, struct i2c_adapter *i2c)
{ {
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); pr_warn("%s: driver disabled by Kconfig\n", __func__);
return NULL; return NULL;
} }
static inline struct dvb_frontend *cxd2841er_attach_c( static inline struct dvb_frontend *cxd2841er_attach_c(
struct cxd2841er_config *cfg, struct i2c_adapter *i2c) struct cxd2841er_config *cfg, struct i2c_adapter *i2c)
{ {
printk(KERN_WARNING "%s: driver disabled by Kconfig\n", __func__); pr_warn("%s: driver disabled by Kconfig\n", __func__);
return NULL;
}
static inline struct dvb_frontend *cxd2841er_attach_i(
struct cxd2841er_config *cfg, struct i2c_adapter *i2c)
{
pr_warn("%s: driver disabled by Kconfig\n", __func__);
return NULL; return NULL;
} }
#endif #endif
#endif #endif
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
#define I2C_SLVT 1 #define I2C_SLVT 1
#define CXD2841ER_CHIP_ID 0xa7 #define CXD2841ER_CHIP_ID 0xa7
#define CXD2854ER_CHIP_ID 0xc1
#define CXD2841ER_DVBS_POLLING_INVL 10 #define CXD2841ER_DVBS_POLLING_INVL 10
......
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