[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: Abylay Ospan <aospan@netup.ru> Signed-off-by: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
This commit is contained in:
Родитель
2dc1ed4edb
Коммит
83808c23e5
Разница между файлами не показана из-за своего большого размера
Загрузить разницу
|
@ -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,
|
||||||
|
|
||||||
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;
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче