mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 20:51:03 +02:00
media: dvb-frontends/cxd2878: dos2unix
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,103 +1,103 @@
|
||||
#ifndef _CXD2878_H_
|
||||
#define _CXD2878_H_
|
||||
|
||||
enum sony_demod_xtal_t{
|
||||
SONY_DEMOD_XTAL_16000KHz = 0, /**< 16 MHz */
|
||||
SONY_DEMOD_XTAL_24000KHz = 1, /**< 24 MHz */
|
||||
SONY_DEMOD_XTAL_32000KHz = 2 /**< 32 MHz */
|
||||
} ;
|
||||
enum sony_ascot3_xtal_t{
|
||||
SONY_ASCOT3_XTAL_16000KHz, /**< 16 MHz */
|
||||
SONY_ASCOT3_XTAL_20500KHz, /**< 20.5 MHz */
|
||||
SONY_ASCOT3_XTAL_24000KHz, /**< 24 MHz */
|
||||
SONY_ASCOT3_XTAL_41000KHz /**< 41 MHz */
|
||||
} ;
|
||||
|
||||
#define SONY_DEMOD_MAKE_IFFREQ_CONFIG(iffreq) ((u32)(((iffreq)/48.0)*16777216.0 + 0.5))
|
||||
#define SONY_DEMOD_ATSC_MAKE_IFFREQ_CONFIG(iffreq) ((u32)(((iffreq)/24.0)*4294967296.0 + 0.5))
|
||||
|
||||
struct cxd2878_config{
|
||||
u8 addr_slvt;
|
||||
enum sony_demod_xtal_t xtal;
|
||||
u8 tuner_addr;
|
||||
enum sony_ascot3_xtal_t tuner_xtal;
|
||||
|
||||
//for ts
|
||||
// - 0: Serial output.
|
||||
// - 1: Parallel output (Default).
|
||||
u8 ts_mode;
|
||||
/**
|
||||
@brief Serial output pin of TS data.
|
||||
|
||||
Value:
|
||||
- 0: Output from TSDATA0
|
||||
- 1: Output from TSDATA7 (Default).
|
||||
*/
|
||||
u8 ts_ser_data;
|
||||
/**
|
||||
@brief Serial TS clock gated on valid TS data or is continuous.
|
||||
|
||||
Value is stored in demodulator structure to be applied during Sleep to Active
|
||||
transition.
|
||||
|
||||
Value:
|
||||
- 0: Gated
|
||||
- 1: Continuous (Default)
|
||||
*/
|
||||
u8 ts_clk;
|
||||
/**
|
||||
@brief Disable/Enable TS clock during specified TS region.
|
||||
|
||||
bit flags: ( can be bitwise ORed )
|
||||
- 0 : Always Active
|
||||
- 1 : Disable during TS packet gap (default)
|
||||
- 2 : Disable during TS parity (default)
|
||||
- 4 : Disable during TS payload
|
||||
- 8 : Disable during TS header
|
||||
- 16: Disable during TS sync
|
||||
*/
|
||||
u8 ts_clk_mask;
|
||||
/**
|
||||
@brief Disable/Enable TSVALID during specified TS region.
|
||||
|
||||
bit flags: ( can be bitwise ORed )
|
||||
- 0 : Always Active
|
||||
- 1 : Disable during TS packet gap (default)
|
||||
- 2 : Disable during TS parity (default)
|
||||
- 4 : Disable during TS payload
|
||||
- 8 : Disable during TS header
|
||||
- 16: Disable during TS sync
|
||||
*/
|
||||
u8 ts_valid;
|
||||
|
||||
u8 atscCoreDisable;
|
||||
|
||||
bool lock_flag; //for usb device
|
||||
//for ecp3 update
|
||||
void (*write_properties) (struct i2c_adapter *i2c,u8 reg, u32 buf);
|
||||
void (*read_properties) (struct i2c_adapter *i2c,u8 reg, u32 *buf);
|
||||
// EEPROM access
|
||||
void (*write_eeprom) (struct i2c_adapter *i2c,u8 reg, u8 buf);
|
||||
void (*read_eeprom) (struct i2c_adapter *i2c,u8 reg, u8 *buf);
|
||||
|
||||
//for 6590SE mode change(T or s);
|
||||
void (*RF_switch)(struct i2c_adapter * i2c,u8 rf_in,u8 flag);
|
||||
u8 rf_port; //for change command
|
||||
};
|
||||
|
||||
#if IS_REACHABLE(CONFIG_DVB_CXD2878)
|
||||
extern struct dvb_frontend *cxd2878_attach(
|
||||
const struct cxd2878_config *config,
|
||||
struct i2c_adapter *i2c);
|
||||
#else
|
||||
static inline struct dvb_frontend *cxd2878_attach(
|
||||
const struct cxd2878_config *config,
|
||||
struct i2c_adapter *i2c)
|
||||
{
|
||||
dev_warn(&i2c->dev, "%s: driver disabled by Kconfig\n", __func__);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
#ifndef _CXD2878_H_
|
||||
#define _CXD2878_H_
|
||||
|
||||
enum sony_demod_xtal_t{
|
||||
SONY_DEMOD_XTAL_16000KHz = 0, /**< 16 MHz */
|
||||
SONY_DEMOD_XTAL_24000KHz = 1, /**< 24 MHz */
|
||||
SONY_DEMOD_XTAL_32000KHz = 2 /**< 32 MHz */
|
||||
} ;
|
||||
enum sony_ascot3_xtal_t{
|
||||
SONY_ASCOT3_XTAL_16000KHz, /**< 16 MHz */
|
||||
SONY_ASCOT3_XTAL_20500KHz, /**< 20.5 MHz */
|
||||
SONY_ASCOT3_XTAL_24000KHz, /**< 24 MHz */
|
||||
SONY_ASCOT3_XTAL_41000KHz /**< 41 MHz */
|
||||
} ;
|
||||
|
||||
#define SONY_DEMOD_MAKE_IFFREQ_CONFIG(iffreq) ((u32)(((iffreq)/48.0)*16777216.0 + 0.5))
|
||||
#define SONY_DEMOD_ATSC_MAKE_IFFREQ_CONFIG(iffreq) ((u32)(((iffreq)/24.0)*4294967296.0 + 0.5))
|
||||
|
||||
struct cxd2878_config{
|
||||
u8 addr_slvt;
|
||||
enum sony_demod_xtal_t xtal;
|
||||
u8 tuner_addr;
|
||||
enum sony_ascot3_xtal_t tuner_xtal;
|
||||
|
||||
//for ts
|
||||
// - 0: Serial output.
|
||||
// - 1: Parallel output (Default).
|
||||
u8 ts_mode;
|
||||
/**
|
||||
@brief Serial output pin of TS data.
|
||||
|
||||
Value:
|
||||
- 0: Output from TSDATA0
|
||||
- 1: Output from TSDATA7 (Default).
|
||||
*/
|
||||
u8 ts_ser_data;
|
||||
/**
|
||||
@brief Serial TS clock gated on valid TS data or is continuous.
|
||||
|
||||
Value is stored in demodulator structure to be applied during Sleep to Active
|
||||
transition.
|
||||
|
||||
Value:
|
||||
- 0: Gated
|
||||
- 1: Continuous (Default)
|
||||
*/
|
||||
u8 ts_clk;
|
||||
/**
|
||||
@brief Disable/Enable TS clock during specified TS region.
|
||||
|
||||
bit flags: ( can be bitwise ORed )
|
||||
- 0 : Always Active
|
||||
- 1 : Disable during TS packet gap (default)
|
||||
- 2 : Disable during TS parity (default)
|
||||
- 4 : Disable during TS payload
|
||||
- 8 : Disable during TS header
|
||||
- 16: Disable during TS sync
|
||||
*/
|
||||
u8 ts_clk_mask;
|
||||
/**
|
||||
@brief Disable/Enable TSVALID during specified TS region.
|
||||
|
||||
bit flags: ( can be bitwise ORed )
|
||||
- 0 : Always Active
|
||||
- 1 : Disable during TS packet gap (default)
|
||||
- 2 : Disable during TS parity (default)
|
||||
- 4 : Disable during TS payload
|
||||
- 8 : Disable during TS header
|
||||
- 16: Disable during TS sync
|
||||
*/
|
||||
u8 ts_valid;
|
||||
|
||||
u8 atscCoreDisable;
|
||||
|
||||
bool lock_flag; //for usb device
|
||||
//for ecp3 update
|
||||
void (*write_properties) (struct i2c_adapter *i2c,u8 reg, u32 buf);
|
||||
void (*read_properties) (struct i2c_adapter *i2c,u8 reg, u32 *buf);
|
||||
// EEPROM access
|
||||
void (*write_eeprom) (struct i2c_adapter *i2c,u8 reg, u8 buf);
|
||||
void (*read_eeprom) (struct i2c_adapter *i2c,u8 reg, u8 *buf);
|
||||
|
||||
//for 6590SE mode change(T or s);
|
||||
void (*RF_switch)(struct i2c_adapter * i2c,u8 rf_in,u8 flag);
|
||||
u8 rf_port; //for change command
|
||||
};
|
||||
|
||||
#if IS_REACHABLE(CONFIG_DVB_CXD2878)
|
||||
extern struct dvb_frontend *cxd2878_attach(
|
||||
const struct cxd2878_config *config,
|
||||
struct i2c_adapter *i2c);
|
||||
#else
|
||||
static inline struct dvb_frontend *cxd2878_attach(
|
||||
const struct cxd2878_config *config,
|
||||
struct i2c_adapter *i2c)
|
||||
{
|
||||
dev_warn(&i2c->dev, "%s: driver disabled by Kconfig\n", __func__);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@@ -1,161 +1,161 @@
|
||||
#ifndef _CXD2878_PRIV_H_
|
||||
#define _CXD2878_PRIV_H_
|
||||
|
||||
#define AUTO (0xFF) /* For IF_OUT_SEL and AGC_SEL, it means that the value is desided by config flags. */
|
||||
/* For RF_GAIN, it means that RF_GAIN_SEL(SubAddr:0x4E) = 1 */
|
||||
#define OFFSET(ofs) ((u8)(ofs) & 0x1F)
|
||||
#define BW_6 (0x00)
|
||||
#define BW_7 (0x01)
|
||||
#define BW_8 (0x02)
|
||||
#define BW_1_7 (0x03)
|
||||
|
||||
#define MAX_BIT_PRECISION 5
|
||||
#define FRAC_BITMASK 0x1F
|
||||
#define LOG2_10_100X 332 /**< log2 (10) */
|
||||
#define LOG2_E_100X 144 /**< log2 (e) */
|
||||
|
||||
//////////////////////////////
|
||||
enum sony_ascot3_tv_system_t{
|
||||
SONY_ASCOT3_TV_SYSTEM_UNKNOWN,
|
||||
/* Analog */
|
||||
SONY_ASCOT3_ATV_MN_EIAJ, /**< System-M (Japan) (IF: Fp=5.75MHz in default) */
|
||||
SONY_ASCOT3_ATV_MN_SAP, /**< System-M (US) (IF: Fp=5.75MHz in default) */
|
||||
SONY_ASCOT3_ATV_MN_A2, /**< System-M (Korea) (IF: Fp=5.9MHz in default) */
|
||||
SONY_ASCOT3_ATV_BG, /**< System-B/G (IF: Fp=7.3MHz in default) */
|
||||
SONY_ASCOT3_ATV_I, /**< System-I (IF: Fp=7.85MHz in default) */
|
||||
SONY_ASCOT3_ATV_DK, /**< System-D/K (IF: Fp=7.85MHz in default) */
|
||||
SONY_ASCOT3_ATV_L, /**< System-L (IF: Fp=7.85MHz in default) */
|
||||
SONY_ASCOT3_ATV_L_DASH, /**< System-L DASH (IF: Fp=2.2MHz in default) */
|
||||
/* Digital */
|
||||
SONY_ASCOT3_DTV_8VSB, /**< ATSC 8VSB (IF: Fc=3.7MHz in default) */
|
||||
SONY_ASCOT3_DTV_QAM, /**< US QAM (IF: Fc=3.7MHz in default) */
|
||||
SONY_ASCOT3_DTV_ISDBT_6, /**< ISDB-T 6MHzBW (IF: Fc=3.55MHz in default) */
|
||||
SONY_ASCOT3_DTV_ISDBT_7, /**< ISDB-T 7MHzBW (IF: Fc=4.15MHz in default) */
|
||||
SONY_ASCOT3_DTV_ISDBT_8, /**< ISDB-T 8MHzBW (IF: Fc=4.75MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBT_5, /**< DVB-T 5MHzBW (IF: Fc=3.6MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBT_6, /**< DVB-T 6MHzBW (IF: Fc=3.6MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBT_7, /**< DVB-T 7MHzBW (IF: Fc=4.2MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBT_8, /**< DVB-T 8MHzBW (IF: Fc=4.8MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBT2_1_7,/**< DVB-T2 1.7MHzBW (IF: Fc=3.5MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBT2_5, /**< DVB-T2 5MHzBW (IF: Fc=3.6MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBT2_6, /**< DVB-T2 6MHzBW (IF: Fc=3.6MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBT2_7, /**< DVB-T2 7MHzBW (IF: Fc=4.2MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBT2_8, /**< DVB-T2 8MHzBW (IF: Fc=4.8MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBC_6, /**< DVB-C 6MHzBW (IF: Fc=3.7MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBC_8, /**< DVB-C 8MHzBW (IF: Fc=4.9MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBC2_6, /**< DVB-C2 6MHzBW (IF: Fc=3.7MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBC2_8, /**< DVB-C2 8MHzBW (IF: Fc=4.9MHz in default) */
|
||||
SONY_ASCOT3_DTV_ATSC3_6, /**< ATSC 3.0 6MHzBW (IF: Fc=3.6MHz in default) */
|
||||
SONY_ASCOT3_DTV_ATSC3_7, /**< ATSC 3.0 7MHzBW (IF: Fc=4.2MHz in default) */
|
||||
SONY_ASCOT3_DTV_ATSC3_8, /**< ATSC 3.0 8MHzBW (IF: Fc=4.8MHz in default) */
|
||||
SONY_ASCOT3_DTV_J83B_5_6, /**< J.83B 5.6Msps (IF: Fc=3.75MHz in default) */
|
||||
SONY_ASCOT3_DTV_DTMB, /**< DTMB (IF: Fc=5.1MHz in default) */
|
||||
|
||||
SONY_ASCOT3_ATV_MIN = SONY_ASCOT3_ATV_MN_EIAJ, /**< Minimum analog terrestrial system */
|
||||
SONY_ASCOT3_ATV_MAX = SONY_ASCOT3_ATV_L_DASH, /**< Maximum analog terrestrial system */
|
||||
SONY_ASCOT3_DTV_MIN = SONY_ASCOT3_DTV_8VSB, /**< Minimum digital terrestrial system */
|
||||
SONY_ASCOT3_DTV_MAX = SONY_ASCOT3_DTV_DTMB, /**< Maximum digital terrestrial system */
|
||||
SONY_ASCOT3_TV_SYSTEM_NUM /**< Number of supported broadcasting system */
|
||||
} ;
|
||||
|
||||
struct sony_ascot3_adjust_param_t {
|
||||
u8 OUTLMT; /**< Addr:0x68 Bit[1:0] : Maximum IF output. (0: 1.5Vp-p, 1: 1.2Vp-p) */
|
||||
u8 RF_GAIN; /**< Addr:0x69 Bit[6:4] : RFVGA gain. 0xFF means Auto. (RF_GAIN_SEL = 1) */
|
||||
u8 IF_BPF_GC; /**< Addr:0x69 Bit[3:0] : IF_BPF gain. */
|
||||
u8 RFOVLD_DET_LV1_VL; /**< Addr:0x6B Bit[3:0] : RF overload RF input detect level. (FRF <= 172MHz) */
|
||||
u8 RFOVLD_DET_LV1_VH; /**< Addr:0x6B Bit[3:0] : RF overload RF input detect level. (172MHz < FRF <= 464MHz) */
|
||||
u8 RFOVLD_DET_LV1_U; /**< Addr:0x6B Bit[3:0] : RF overload RF input detect level. (FRF > 464MHz) */
|
||||
u8 IFOVLD_DET_LV_VL; /**< Addr:0x6C Bit[2:0] : Internal RFAGC detect level. (FRF <= 172MHz) */
|
||||
u8 IFOVLD_DET_LV_VH; /**< Addr:0x6C Bit[2:0] : Internal RFAGC detect level. (172MHz < FRF <= 464MHz) */
|
||||
u8 IFOVLD_DET_LV_U; /**< Addr:0x6C Bit[2:0] : Internal RFAGC detect level. (FRF > 464MHz) */
|
||||
u8 IF_BPF_F0; /**< Addr:0x6D Bit[5:4] : IF filter center offset. */
|
||||
u8 BW; /**< Addr:0x6D Bit[1:0] : 6MHzBW(0x00) or 7MHzBW(0x01) or 8MHzBW(0x02) or 1.7MHzBW(0x03) */
|
||||
u8 FIF_OFFSET; /**< Addr:0x6E Bit[4:0] : 5bit signed. IF offset (kHz) = FIF_OFFSET x 50 */
|
||||
u8 BW_OFFSET; /**< Addr:0x6F Bit[4:0] : 5bit signed. BW offset (kHz) = BW_OFFSET x 50 (BW_OFFSET x 10 in 1.7MHzBW) */
|
||||
u8 AGC_SEL; /**< Addr:0x74 Bit[5:4] : AGC pin select. (0: AGC1, 1: AGC2) 0xFF means Auto (by config flags) */
|
||||
u8 IF_OUT_SEL; /**< Addr:0x74 Bit[1:0] : IFOUT pin select. (0: IFOUT1, 1: IFOUT2) 0xFF means Auto. (by config flags) */
|
||||
u8 IS_LOWERLOCAL; /**< Addr:0x9C Bit[0] : Local polarity. (0: Upper Local, 1: Lower Local) */
|
||||
} ;
|
||||
////////////////////////
|
||||
enum sony_demod_chip_id_t{
|
||||
SONY_DEMOD_CHIP_ID_UNKNOWN = 0, /**< Unknown */
|
||||
SONY_DEMOD_CHIP_ID_CXD2856 = 0x090, /**< CXD2856 / CXD6800(SiP) */
|
||||
SONY_DEMOD_CHIP_ID_CXD2857 = 0x091, /**< CXD2857 */
|
||||
SONY_DEMOD_CHIP_ID_CXD2878 = 0x396, /**< CXD2878 / CXD6801(SiP) */
|
||||
SONY_DEMOD_CHIP_ID_CXD2879 = 0x297, /**< CXD2879 */
|
||||
SONY_DEMOD_CHIP_ID_CXD6802 = 0x197 /**< CXD6802(SiP) */
|
||||
} ;
|
||||
enum sony_ascot3_chip_id_t{
|
||||
SONY_ASCOT3_CHIP_ID_UNKNOWN, /**< Unknown */
|
||||
SONY_ASCOT3_CHIP_ID_2871, /**< CXD2871 (for TV) */
|
||||
SONY_ASCOT3_CHIP_ID_2872, /**< CXD2872 (for STB) */
|
||||
SONY_ASCOT3_CHIP_ID_2871A, /**< CXD2871A (ASCOT3I) (for TV) */
|
||||
SONY_ASCOT3_CHIP_ID_2875 /**< CXD2875 */
|
||||
} ;
|
||||
enum sony_dtv_system_t{
|
||||
SONY_DTV_SYSTEM_UNKNOWN, /**< Unknown. */
|
||||
SONY_DTV_SYSTEM_DVBT, /**< DVB-T */
|
||||
SONY_DTV_SYSTEM_DVBT2, /**< DVB-T2 */
|
||||
SONY_DTV_SYSTEM_DVBC, /**< DVB-C(J.83A) */
|
||||
SONY_DTV_SYSTEM_DVBC2, /**< DVB-C2(J.382) */
|
||||
SONY_DTV_SYSTEM_ATSC, /**< ATSC */
|
||||
SONY_DTV_SYSTEM_ATSC3, /**< ATSC3.0 */
|
||||
SONY_DTV_SYSTEM_ISDBT, /**< ISDB-T */
|
||||
SONY_DTV_SYSTEM_ISDBC, /**< ISDB-C(J.83C) */
|
||||
SONY_DTV_SYSTEM_J83B, /**< J.83B */
|
||||
SONY_DTV_SYSTEM_DVBS, /**< DVB-S */
|
||||
SONY_DTV_SYSTEM_DVBS2, /**< DVB-S2 */
|
||||
SONY_DTV_SYSTEM_ISDBS, /**< ISDB-S */
|
||||
SONY_DTV_SYSTEM_ISDBS3, /**< ISDB-S3 */
|
||||
SONY_DTV_SYSTEM_ANY /**< Used for multiple system scanning / blind tuning */
|
||||
} ;
|
||||
|
||||
|
||||
enum sony_dtv_bandwidth_t{
|
||||
SONY_DTV_BW_UNKNOWN = 0, /**< Unknown bandwidth. */
|
||||
SONY_DTV_BW_1_7_MHZ = 1, /**< 1.7MHz bandwidth. */
|
||||
SONY_DTV_BW_5_MHZ = 5, /**< 5MHz bandwidth. */
|
||||
SONY_DTV_BW_6_MHZ = 6, /**< 6MHz bandwidth. */
|
||||
SONY_DTV_BW_7_MHZ = 7, /**< 7MHz bandwidth. */
|
||||
SONY_DTV_BW_8_MHZ = 8, /**< 8MHz bandwidth. */
|
||||
|
||||
SONY_DTV_BW_J83B_5_06_5_36_MSPS = 50, /**< For J.83B. 5.06/5.36Msps auto selection commonly used in US. */
|
||||
SONY_DTV_BW_J83B_5_60_MSPS = 51 /**< For J.83B. 5.6Msps used by SKY PerfecTV! Hikari in Japan. */
|
||||
} ;
|
||||
|
||||
enum sony_demod_state_t{
|
||||
SONY_DEMOD_STATE_UNKNOWN, /**< Unknown. */
|
||||
SONY_DEMOD_STATE_SHUTDOWN, /**< Chip is in Shutdown state. */
|
||||
SONY_DEMOD_STATE_SLEEP, /**< Chip is in Sleep state. */
|
||||
SONY_DEMOD_STATE_ACTIVE, /**< Chip is in Active state. */
|
||||
SONY_DEMOD_STATE_INVALID /**< Invalid, result of an error during a state change. */
|
||||
} ;
|
||||
struct sony_demod_ts_clk_configuration_t{
|
||||
u8 serialClkMode; /**< Serial clock mode (gated or continuous) */
|
||||
u8 serialDutyMode; /**< Serial clock duty mode (full rate or half rate) */
|
||||
u8 tsClkPeriod; /**< TS clock period */
|
||||
u8 clkSelTSIf; /**< TS clock frequency (low, mid or high) */
|
||||
} ;
|
||||
struct sony_demod_iffreq_config_t{
|
||||
u32 configDVBT_5; /**< DVB-T 5MHz */
|
||||
u32 configDVBT_6; /**< DVB-T 6MHz */
|
||||
u32 configDVBT_7; /**< DVB-T 7MHz */
|
||||
u32 configDVBT_8; /**< DVB-T 8MHz */
|
||||
u32 configDVBT2_1_7; /**< DVB-T2 1.7MHz */
|
||||
u32 configDVBT2_5; /**< DVB-T2 5MHz */
|
||||
u32 configDVBT2_6; /**< DVB-T2 6MHz */
|
||||
u32 configDVBT2_7; /**< DVB-T2 7MHz */
|
||||
u32 configDVBT2_8; /**< DVB-T2 8MHz */
|
||||
u32 configDVBC_6; /**< DVB-C 6MHz */
|
||||
u32 configDVBC_7; /**< DVB-C 7MHz */
|
||||
u32 configDVBC_8; /**< DVB-C 8MHz */
|
||||
u32 configATSC; /**< ATSC 1.0 */
|
||||
u32 configISDBT_6; /**< ISDB-T 6MHz */
|
||||
u32 configISDBT_7; /**< ISDB-T 7MHz */
|
||||
u32 configISDBT_8; /**< ISDB-T 8MHz */
|
||||
u32 configJ83B_5_06_5_36; /**< J.83B 5.06/5.36Msps auto selection */
|
||||
u32 configJ83B_5_60; /**< J.83B. 5.6Msps */
|
||||
} ;
|
||||
|
||||
|
||||
#endif
|
||||
#ifndef _CXD2878_PRIV_H_
|
||||
#define _CXD2878_PRIV_H_
|
||||
|
||||
#define AUTO (0xFF) /* For IF_OUT_SEL and AGC_SEL, it means that the value is desided by config flags. */
|
||||
/* For RF_GAIN, it means that RF_GAIN_SEL(SubAddr:0x4E) = 1 */
|
||||
#define OFFSET(ofs) ((u8)(ofs) & 0x1F)
|
||||
#define BW_6 (0x00)
|
||||
#define BW_7 (0x01)
|
||||
#define BW_8 (0x02)
|
||||
#define BW_1_7 (0x03)
|
||||
|
||||
#define MAX_BIT_PRECISION 5
|
||||
#define FRAC_BITMASK 0x1F
|
||||
#define LOG2_10_100X 332 /**< log2 (10) */
|
||||
#define LOG2_E_100X 144 /**< log2 (e) */
|
||||
|
||||
//////////////////////////////
|
||||
enum sony_ascot3_tv_system_t{
|
||||
SONY_ASCOT3_TV_SYSTEM_UNKNOWN,
|
||||
/* Analog */
|
||||
SONY_ASCOT3_ATV_MN_EIAJ, /**< System-M (Japan) (IF: Fp=5.75MHz in default) */
|
||||
SONY_ASCOT3_ATV_MN_SAP, /**< System-M (US) (IF: Fp=5.75MHz in default) */
|
||||
SONY_ASCOT3_ATV_MN_A2, /**< System-M (Korea) (IF: Fp=5.9MHz in default) */
|
||||
SONY_ASCOT3_ATV_BG, /**< System-B/G (IF: Fp=7.3MHz in default) */
|
||||
SONY_ASCOT3_ATV_I, /**< System-I (IF: Fp=7.85MHz in default) */
|
||||
SONY_ASCOT3_ATV_DK, /**< System-D/K (IF: Fp=7.85MHz in default) */
|
||||
SONY_ASCOT3_ATV_L, /**< System-L (IF: Fp=7.85MHz in default) */
|
||||
SONY_ASCOT3_ATV_L_DASH, /**< System-L DASH (IF: Fp=2.2MHz in default) */
|
||||
/* Digital */
|
||||
SONY_ASCOT3_DTV_8VSB, /**< ATSC 8VSB (IF: Fc=3.7MHz in default) */
|
||||
SONY_ASCOT3_DTV_QAM, /**< US QAM (IF: Fc=3.7MHz in default) */
|
||||
SONY_ASCOT3_DTV_ISDBT_6, /**< ISDB-T 6MHzBW (IF: Fc=3.55MHz in default) */
|
||||
SONY_ASCOT3_DTV_ISDBT_7, /**< ISDB-T 7MHzBW (IF: Fc=4.15MHz in default) */
|
||||
SONY_ASCOT3_DTV_ISDBT_8, /**< ISDB-T 8MHzBW (IF: Fc=4.75MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBT_5, /**< DVB-T 5MHzBW (IF: Fc=3.6MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBT_6, /**< DVB-T 6MHzBW (IF: Fc=3.6MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBT_7, /**< DVB-T 7MHzBW (IF: Fc=4.2MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBT_8, /**< DVB-T 8MHzBW (IF: Fc=4.8MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBT2_1_7,/**< DVB-T2 1.7MHzBW (IF: Fc=3.5MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBT2_5, /**< DVB-T2 5MHzBW (IF: Fc=3.6MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBT2_6, /**< DVB-T2 6MHzBW (IF: Fc=3.6MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBT2_7, /**< DVB-T2 7MHzBW (IF: Fc=4.2MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBT2_8, /**< DVB-T2 8MHzBW (IF: Fc=4.8MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBC_6, /**< DVB-C 6MHzBW (IF: Fc=3.7MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBC_8, /**< DVB-C 8MHzBW (IF: Fc=4.9MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBC2_6, /**< DVB-C2 6MHzBW (IF: Fc=3.7MHz in default) */
|
||||
SONY_ASCOT3_DTV_DVBC2_8, /**< DVB-C2 8MHzBW (IF: Fc=4.9MHz in default) */
|
||||
SONY_ASCOT3_DTV_ATSC3_6, /**< ATSC 3.0 6MHzBW (IF: Fc=3.6MHz in default) */
|
||||
SONY_ASCOT3_DTV_ATSC3_7, /**< ATSC 3.0 7MHzBW (IF: Fc=4.2MHz in default) */
|
||||
SONY_ASCOT3_DTV_ATSC3_8, /**< ATSC 3.0 8MHzBW (IF: Fc=4.8MHz in default) */
|
||||
SONY_ASCOT3_DTV_J83B_5_6, /**< J.83B 5.6Msps (IF: Fc=3.75MHz in default) */
|
||||
SONY_ASCOT3_DTV_DTMB, /**< DTMB (IF: Fc=5.1MHz in default) */
|
||||
|
||||
SONY_ASCOT3_ATV_MIN = SONY_ASCOT3_ATV_MN_EIAJ, /**< Minimum analog terrestrial system */
|
||||
SONY_ASCOT3_ATV_MAX = SONY_ASCOT3_ATV_L_DASH, /**< Maximum analog terrestrial system */
|
||||
SONY_ASCOT3_DTV_MIN = SONY_ASCOT3_DTV_8VSB, /**< Minimum digital terrestrial system */
|
||||
SONY_ASCOT3_DTV_MAX = SONY_ASCOT3_DTV_DTMB, /**< Maximum digital terrestrial system */
|
||||
SONY_ASCOT3_TV_SYSTEM_NUM /**< Number of supported broadcasting system */
|
||||
} ;
|
||||
|
||||
struct sony_ascot3_adjust_param_t {
|
||||
u8 OUTLMT; /**< Addr:0x68 Bit[1:0] : Maximum IF output. (0: 1.5Vp-p, 1: 1.2Vp-p) */
|
||||
u8 RF_GAIN; /**< Addr:0x69 Bit[6:4] : RFVGA gain. 0xFF means Auto. (RF_GAIN_SEL = 1) */
|
||||
u8 IF_BPF_GC; /**< Addr:0x69 Bit[3:0] : IF_BPF gain. */
|
||||
u8 RFOVLD_DET_LV1_VL; /**< Addr:0x6B Bit[3:0] : RF overload RF input detect level. (FRF <= 172MHz) */
|
||||
u8 RFOVLD_DET_LV1_VH; /**< Addr:0x6B Bit[3:0] : RF overload RF input detect level. (172MHz < FRF <= 464MHz) */
|
||||
u8 RFOVLD_DET_LV1_U; /**< Addr:0x6B Bit[3:0] : RF overload RF input detect level. (FRF > 464MHz) */
|
||||
u8 IFOVLD_DET_LV_VL; /**< Addr:0x6C Bit[2:0] : Internal RFAGC detect level. (FRF <= 172MHz) */
|
||||
u8 IFOVLD_DET_LV_VH; /**< Addr:0x6C Bit[2:0] : Internal RFAGC detect level. (172MHz < FRF <= 464MHz) */
|
||||
u8 IFOVLD_DET_LV_U; /**< Addr:0x6C Bit[2:0] : Internal RFAGC detect level. (FRF > 464MHz) */
|
||||
u8 IF_BPF_F0; /**< Addr:0x6D Bit[5:4] : IF filter center offset. */
|
||||
u8 BW; /**< Addr:0x6D Bit[1:0] : 6MHzBW(0x00) or 7MHzBW(0x01) or 8MHzBW(0x02) or 1.7MHzBW(0x03) */
|
||||
u8 FIF_OFFSET; /**< Addr:0x6E Bit[4:0] : 5bit signed. IF offset (kHz) = FIF_OFFSET x 50 */
|
||||
u8 BW_OFFSET; /**< Addr:0x6F Bit[4:0] : 5bit signed. BW offset (kHz) = BW_OFFSET x 50 (BW_OFFSET x 10 in 1.7MHzBW) */
|
||||
u8 AGC_SEL; /**< Addr:0x74 Bit[5:4] : AGC pin select. (0: AGC1, 1: AGC2) 0xFF means Auto (by config flags) */
|
||||
u8 IF_OUT_SEL; /**< Addr:0x74 Bit[1:0] : IFOUT pin select. (0: IFOUT1, 1: IFOUT2) 0xFF means Auto. (by config flags) */
|
||||
u8 IS_LOWERLOCAL; /**< Addr:0x9C Bit[0] : Local polarity. (0: Upper Local, 1: Lower Local) */
|
||||
} ;
|
||||
////////////////////////
|
||||
enum sony_demod_chip_id_t{
|
||||
SONY_DEMOD_CHIP_ID_UNKNOWN = 0, /**< Unknown */
|
||||
SONY_DEMOD_CHIP_ID_CXD2856 = 0x090, /**< CXD2856 / CXD6800(SiP) */
|
||||
SONY_DEMOD_CHIP_ID_CXD2857 = 0x091, /**< CXD2857 */
|
||||
SONY_DEMOD_CHIP_ID_CXD2878 = 0x396, /**< CXD2878 / CXD6801(SiP) */
|
||||
SONY_DEMOD_CHIP_ID_CXD2879 = 0x297, /**< CXD2879 */
|
||||
SONY_DEMOD_CHIP_ID_CXD6802 = 0x197 /**< CXD6802(SiP) */
|
||||
} ;
|
||||
enum sony_ascot3_chip_id_t{
|
||||
SONY_ASCOT3_CHIP_ID_UNKNOWN, /**< Unknown */
|
||||
SONY_ASCOT3_CHIP_ID_2871, /**< CXD2871 (for TV) */
|
||||
SONY_ASCOT3_CHIP_ID_2872, /**< CXD2872 (for STB) */
|
||||
SONY_ASCOT3_CHIP_ID_2871A, /**< CXD2871A (ASCOT3I) (for TV) */
|
||||
SONY_ASCOT3_CHIP_ID_2875 /**< CXD2875 */
|
||||
} ;
|
||||
enum sony_dtv_system_t{
|
||||
SONY_DTV_SYSTEM_UNKNOWN, /**< Unknown. */
|
||||
SONY_DTV_SYSTEM_DVBT, /**< DVB-T */
|
||||
SONY_DTV_SYSTEM_DVBT2, /**< DVB-T2 */
|
||||
SONY_DTV_SYSTEM_DVBC, /**< DVB-C(J.83A) */
|
||||
SONY_DTV_SYSTEM_DVBC2, /**< DVB-C2(J.382) */
|
||||
SONY_DTV_SYSTEM_ATSC, /**< ATSC */
|
||||
SONY_DTV_SYSTEM_ATSC3, /**< ATSC3.0 */
|
||||
SONY_DTV_SYSTEM_ISDBT, /**< ISDB-T */
|
||||
SONY_DTV_SYSTEM_ISDBC, /**< ISDB-C(J.83C) */
|
||||
SONY_DTV_SYSTEM_J83B, /**< J.83B */
|
||||
SONY_DTV_SYSTEM_DVBS, /**< DVB-S */
|
||||
SONY_DTV_SYSTEM_DVBS2, /**< DVB-S2 */
|
||||
SONY_DTV_SYSTEM_ISDBS, /**< ISDB-S */
|
||||
SONY_DTV_SYSTEM_ISDBS3, /**< ISDB-S3 */
|
||||
SONY_DTV_SYSTEM_ANY /**< Used for multiple system scanning / blind tuning */
|
||||
} ;
|
||||
|
||||
|
||||
enum sony_dtv_bandwidth_t{
|
||||
SONY_DTV_BW_UNKNOWN = 0, /**< Unknown bandwidth. */
|
||||
SONY_DTV_BW_1_7_MHZ = 1, /**< 1.7MHz bandwidth. */
|
||||
SONY_DTV_BW_5_MHZ = 5, /**< 5MHz bandwidth. */
|
||||
SONY_DTV_BW_6_MHZ = 6, /**< 6MHz bandwidth. */
|
||||
SONY_DTV_BW_7_MHZ = 7, /**< 7MHz bandwidth. */
|
||||
SONY_DTV_BW_8_MHZ = 8, /**< 8MHz bandwidth. */
|
||||
|
||||
SONY_DTV_BW_J83B_5_06_5_36_MSPS = 50, /**< For J.83B. 5.06/5.36Msps auto selection commonly used in US. */
|
||||
SONY_DTV_BW_J83B_5_60_MSPS = 51 /**< For J.83B. 5.6Msps used by SKY PerfecTV! Hikari in Japan. */
|
||||
} ;
|
||||
|
||||
enum sony_demod_state_t{
|
||||
SONY_DEMOD_STATE_UNKNOWN, /**< Unknown. */
|
||||
SONY_DEMOD_STATE_SHUTDOWN, /**< Chip is in Shutdown state. */
|
||||
SONY_DEMOD_STATE_SLEEP, /**< Chip is in Sleep state. */
|
||||
SONY_DEMOD_STATE_ACTIVE, /**< Chip is in Active state. */
|
||||
SONY_DEMOD_STATE_INVALID /**< Invalid, result of an error during a state change. */
|
||||
} ;
|
||||
struct sony_demod_ts_clk_configuration_t{
|
||||
u8 serialClkMode; /**< Serial clock mode (gated or continuous) */
|
||||
u8 serialDutyMode; /**< Serial clock duty mode (full rate or half rate) */
|
||||
u8 tsClkPeriod; /**< TS clock period */
|
||||
u8 clkSelTSIf; /**< TS clock frequency (low, mid or high) */
|
||||
} ;
|
||||
struct sony_demod_iffreq_config_t{
|
||||
u32 configDVBT_5; /**< DVB-T 5MHz */
|
||||
u32 configDVBT_6; /**< DVB-T 6MHz */
|
||||
u32 configDVBT_7; /**< DVB-T 7MHz */
|
||||
u32 configDVBT_8; /**< DVB-T 8MHz */
|
||||
u32 configDVBT2_1_7; /**< DVB-T2 1.7MHz */
|
||||
u32 configDVBT2_5; /**< DVB-T2 5MHz */
|
||||
u32 configDVBT2_6; /**< DVB-T2 6MHz */
|
||||
u32 configDVBT2_7; /**< DVB-T2 7MHz */
|
||||
u32 configDVBT2_8; /**< DVB-T2 8MHz */
|
||||
u32 configDVBC_6; /**< DVB-C 6MHz */
|
||||
u32 configDVBC_7; /**< DVB-C 7MHz */
|
||||
u32 configDVBC_8; /**< DVB-C 8MHz */
|
||||
u32 configATSC; /**< ATSC 1.0 */
|
||||
u32 configISDBT_6; /**< ISDB-T 6MHz */
|
||||
u32 configISDBT_7; /**< ISDB-T 7MHz */
|
||||
u32 configISDBT_8; /**< ISDB-T 8MHz */
|
||||
u32 configJ83B_5_06_5_36; /**< J.83B 5.06/5.36Msps auto selection */
|
||||
u32 configJ83B_5_60; /**< J.83B. 5.6Msps */
|
||||
} ;
|
||||
|
||||
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user