1#ifndef _S921_CORE_H 2#define _S921_CORE_H 3//#define u8 unsigned int 4//#define u32 unsigned int 5 6 7 8//#define EINVAL -1 9#define E_OK 0 10 11struct s921_isdb_t { 12 void *priv_dev; 13 int (*i2c_write)(void *dev, u8 reg, u8 val); 14 int (*i2c_read)(void *dev, u8 reg); 15}; 16 17#define ISDB_T_CMD_INIT 0 18#define ISDB_T_CMD_SET_PARAM 1 19#define ISDB_T_CMD_TUNE 2 20#define ISDB_T_CMD_GET_STATUS 3 21 22struct s921_isdb_t_tune_params { 23 u32 frequency; 24}; 25 26struct s921_isdb_t_status { 27}; 28 29struct s921_isdb_t_transmission_mode_params { 30 u8 mode; 31 u8 layer_a_mode; 32#define ISDB_T_LA_MODE_1 0 33#define ISDB_T_LA_MODE_2 1 34#define ISDB_T_LA_MODE_3 2 35 u8 layer_a_carrier_modulation; 36#define ISDB_T_LA_CM_DQPSK 0 37#define ISDB_T_LA_CM_QPSK 1 38#define ISDB_T_LA_CM_16QAM 2 39#define ISDB_T_LA_CM_64QAM 3 40#define ISDB_T_LA_CM_NOLAYER 4 41 u8 layer_a_code_rate; 42#define ISDB_T_LA_CR_1_2 0 43#define ISDB_T_LA_CR_2_3 1 44#define ISDB_T_LA_CR_3_4 2 45#define ISDB_T_LA_CR_5_6 4 46#define ISDB_T_LA_CR_7_8 8 47#define ISDB_T_LA_CR_NOLAYER 16 48 u8 layer_a_time_interleave; 49#define ISDB_T_LA_TI_0 0 50#define ISDB_T_LA_TI_1 1 51#define ISDB_T_LA_TI_2 2 52#define ISDB_T_LA_TI_4 4 53#define ISDB_T_LA_TI_8 8 54#define ISDB_T_LA_TI_16 16 55#define ISDB_T_LA_TI_32 32 56 u8 layer_a_nseg; 57 58 u8 layer_b_mode; 59#define ISDB_T_LB_MODE_1 0 60#define ISDB_T_LB_MODE_2 1 61#define ISDB_T_LB_MODE_3 2 62 u8 layer_b_carrier_modulation; 63#define ISDB_T_LB_CM_DQPSK 0 64#define ISDB_T_LB_CM_QPSK 1 65#define ISDB_T_LB_CM_16QAM 2 66#define ISDB_T_LB_CM_64QAM 3 67#define ISDB_T_LB_CM_NOLAYER 4 68 u8 layer_b_code_rate; 69#define ISDB_T_LB_CR_1_2 0 70#define ISDB_T_LB_CR_2_3 1 71#define ISDB_T_LB_CR_3_4 2 72#define ISDB_T_LB_CR_5_6 4 73#define ISDB_T_LB_CR_7_8 8 74#define ISDB_T_LB_CR_NOLAYER 16 75 u8 layer_b_time_interleave; 76#define ISDB_T_LB_TI_0 0 77#define ISDB_T_LB_TI_1 1 78#define ISDB_T_LB_TI_2 2 79#define ISDB_T_LB_TI_4 4 80#define ISDB_T_LB_TI_8 8 81#define ISDB_T_LB_TI_16 16 82#define ISDB_T_LB_TI_32 32 83 u8 layer_b_nseg; 84 85 u8 layer_c_mode; 86#define ISDB_T_LC_MODE_1 0 87#define ISDB_T_LC_MODE_2 1 88#define ISDB_T_LC_MODE_3 2 89 u8 layer_c_carrier_modulation; 90#define ISDB_T_LC_CM_DQPSK 0 91#define ISDB_T_LC_CM_QPSK 1 92#define ISDB_T_LC_CM_16QAM 2 93#define ISDB_T_LC_CM_64QAM 3 94#define ISDB_T_LC_CM_NOLAYER 4 95 u8 layer_c_code_rate; 96#define ISDB_T_LC_CR_1_2 0 97#define ISDB_T_LC_CR_2_3 1 98#define ISDB_T_LC_CR_3_4 2 99#define ISDB_T_LC_CR_5_6 4 100#define ISDB_T_LC_CR_7_8 8 101#define ISDB_T_LC_CR_NOLAYER 16 102 u8 layer_c_time_interleave; 103#define ISDB_T_LC_TI_0 0 104#define ISDB_T_LC_TI_1 1 105#define ISDB_T_LC_TI_2 2 106#define ISDB_T_LC_TI_4 4 107#define ISDB_T_LC_TI_8 8 108#define ISDB_T_LC_TI_16 16 109#define ISDB_T_LC_TI_32 32 110 u8 layer_c_nseg; 111}; 112 113int s921_isdb_cmd(struct s921_isdb_t *dev, u32 cmd, void *data); 114#endif 115