#ifndef _DEMOD_WRAPPER_H_ #define _DEMOD_WRAPPER_H_ #include /** * enum demod_wrapper_path_type - * represents all the possible path types in demod wrapper. * @demod_wrapper_forza_atv: a path for analog tv that passes through * forza demod. This path type is for all analog standards supported by forza. * @demod_wrapper_dtv_s: a path for digital tv that passes through * digital demod. This path type is for satellite standards supported by * this demod. * @demod_wrapper_dtv_t_c: a path for digital tv that passes through * digital demod. This path type is for terrestrial and cable standards * supported by this demod. * @demod_wrapper_ext_atv: a path for analog tv. The demod in this case is * external and located outside the demod wrapper. * @demod_wrapper_num_of_paths: number of path types. */ enum demod_wrapper_path_type { DEMOD_WRAPPER_FORZA_ATV, DEMOD_WRAPPER_DTV_S, DEMOD_WRAPPER_DTV_T_C, DEMOD_WRAPPER_EXT_ATV, DEMOD_WRAPPER_NUM_OF_PATHS }; /** * enum demod_wrapper_power_mode - * represents all the possible power modes of demod wrapper. * @demod_wrapper_full_preformance: demod wrapper will operate in full * performance mode. * @demod_wrapper_num_of_power_modes: number of power modes. */ enum demod_wrapper_power_mode { DEMOD_WRAPPER_FULL_PREFORMANCE, DEMOD_WRAPPER_NUM_OF_POWER_MODES }; /** * enum demod_wrapper_baud_rate_mode - * represents all the baud rate modes that are supported in dtv satellite paths. * @demod_wrapper_narrow: narrow baud rate mode. * @demod_wrapper_medium: medium baud rate mode. * @demod_wrapper_wide: wide baud rate mode. * @demod_wrapper_num_of_baud_rate_modes: number of baud_rate modes. */ enum demod_wrapper_baud_rate_mode { DEMOD_WRAPPER_NARROW, DEMOD_WRAPPER_MEDIUM, DEMOD_WRAPPER_WIDE, DEMOD_WRAPPER_NUM_OF_BAUD_RATE_MODES }; /** * enum demod_wrapper_pdm_num - * represents the two pdms that exists in demod wrapper: pdm0 and pdm1. * @demod_wrapper_pdm0: * @demod_wrapper_pdm1: */ enum demod_wrapper_pdm_num { DEMOD_WRAPPER_PDM0, DEMOD_WRAPPER_PDM1 }; /** * enum demod_wrapper_ts_bridge - * represents the output types of the ts bridge. * @demod_wrapper_ts_serial: output of ts bridge is serial. * @demod_wrapper_ts_parallel: output of ts bridge is parallel. */ enum demod_wrapper_ts_bridge { DEMOD_WRAPPER_TS_SERIAL, DEMOD_WRAPPER_TS_PARALLEL }; /** * struct demod_wrapper_release_path_args - * arguments to be passed to DEMOD_WRAPPER_RELEASE_PATH ioctl. * @type: the type of the path to be released. */ struct demod_wrapper_release_path_args { enum demod_wrapper_path_type type; }; /** * struct demod_wrapper_set_path_args - * arguments to be passed to DEMOD_WRAPPER_SET_PATH ioctl. * @type: the type of the path to set. * @pdm: the number of the pdm that this path should work with. * @power: the power mode that this path should work in. * Note: if we want to set external_atv path there is no pdm * involved so passing any value as pdm will be fine */ struct demod_wrapper_set_path_args { enum demod_wrapper_path_type type; enum demod_wrapper_pdm_num pdm; enum demod_wrapper_power_mode power; }; /** * struct demod_wrapper_set_path_dtv_sat_args - * arguments that should be passed to DEMOD_WRAPPER_SET_PATH_DTV_SAT * ioctl. * @pdm: the number of the pdm that dtv satellite path should work with. * @power: the power mode that dtv satellite path should work in. * @br_mode: baud rate parameter that is a specific paramter for dtv satellite, * and indicates what is the baud rate of the satellite signal. */ struct demod_wrapper_set_path_dtv_sat_args { enum demod_wrapper_pdm_num pdm; enum demod_wrapper_power_mode power; enum demod_wrapper_baud_rate_mode br_mode; }; /** * struct demod_wrapper_init_ts_bridge - * argumants that should be passed to DEMOD_WRAPPER_TS_BRIDGE_INIT ioctl. * @out: indicates if the output signal of the ts bridge is serial or parallel. */ struct demod_wrapper_init_ts_bridge_args { enum demod_wrapper_ts_bridge out; }; /** * struct demod_wrapper_pm_set_params_args - * argumants that should be passed to DEMOD_WRAPPER_PM_SET_PARAMS ioctl. * @pm_loop_cntr: the value that will be set to BCDEM_REGS_PM_LOOP_CNTR register * @pm_params_threshold: the value that will be set to * BCDEM_REGS_PM_PARAMS_THRESHOLD */ struct demod_wrapper_pm_set_params_args { unsigned int pm_loop_cntr; unsigned int pm_params_threshold; }; /** * struct demod_wrapper_pm_get_thrshld_cntr_args - * argumants that should be passed to DEMOD_WRAPPER_PM_GET_THRSHLD_CNTR ioctl. * @pm_thrshld_cntr: the parameter will hold the value gotten from * BCDEM_REGS_PM_RO_THRSHLD_CNTR */ struct demod_wrapper_pm_get_thr_cntr_args { unsigned int pm_thrshld_cntr; }; /** * struct demod_wrapper_pm_get_power_args - * argumants that should be passed to DEMOD_WRAPPER_PM_GET_POWER ioctl. * @pm_power: the parameter will hold the value gotten from * BCDEM_REGS_PM_RO_POWER */ struct demod_wrapper_pm_get_power_args { unsigned int pm_power; }; #define DEMOD_WRAPPER_BASIC_CMDS_NUM 1 /** * ioctl cmd : DEMOD_WRAPPER_SET_PATH - * Performs initialization and configuration of components * in demod_wrapper that are needed for the requested path. * If there is any path conflict - overrides. * Returns 0 in success. */ #define DEMOD_WRAPPER_SET_PATH _IOW(DEMOD_WRAPPER_BASIC_CMDS_NUM,\ 1, struct demod_wrapper_set_path_args) /** * ioctl cmd : DEMOD_WRAPPER_SET_PATH_DTV_SAT - * Performs initialization and configuration of components * in demod_wrapper that are needed for dtv sat path. * If there is any path conflict - overrides. * Returns 0 in success. */ #define DEMOD_WRAPPER_SET_PATH_DTV_SAT _IOW(\ DEMOD_WRAPPER_BASIC_CMDS_NUM, 2,\ struct demod_wrapper_set_path_dtv_sat_args) /** * ioctl cmd : DEMOD_WRAPPER_RELEASE_PATH - * Releases the requested path. * Returns 0 in success. */ #define DEMOD_WRAPPER_RELEASE_PATH _IOW(DEMOD_WRAPPER_BASIC_CMDS_NUM,\ 3, struct demod_wrapper_release_path_args) /** * ioctl cmd : DEMOD_WRAPPER_RELEASE_PATH - * Sets the out of the ts-bridge according to received * argument. Sets the in as parallel. * Returns 0 in success. */ #define DEMOD_WRAPPER_TS_BRIDGE_INIT _IOW(DEMOD_WRAPPER_BASIC_CMDS_NUM,\ 4, struct demod_wrapper_init_ts_bridge_args) /** * ioctl cmd : DEMOD_WRAPPER_RELEASE_PATH - * Enables the ts-bridge. If ts-bridge was'nt initialized * (with DEMOD_WRAPPER_TS_BRIDGE_INIT) sets default values: * in - parallel * out - parallel * Returns 0 in success. */ #define DEMOD_WRAPPER_TS_BRIDGE_ENABLE _IO(DEMOD_WRAPPER_BASIC_CMDS_NUM, 5) /** * ioctl cmd : DEMOD_WRAPPER_RELEASE_PATH - * Disables the ts-bridge. * Returns 0 in success. */ #define DEMOD_WRAPPER_TS_BRIDGE_DISABLE _IO(\ DEMOD_WRAPPER_BASIC_CMDS_NUM, 6) /** * ioctl cmd : DEMOD_WRAPPER_PM_SET_PARAMS - * Sets values for BCDEM_REGS_PM_LOOP_CNTR and BCDEM_REGS_PM_PARAMS_THRESHOLD * Returns 0 in success. */ #define DEMOD_WRAPPER_PM_SET_PARAMS _IOW(DEMOD_WRAPPER_BASIC_CMDS_NUM,\ 7, struct demod_wrapper_pm_set_params_args) /** * ioctl cmd : DEMOD_WRAPPER_PM_GET_THR_CNTR - * Gets the value of the BCDEM_REGS_OM_RO_THRSHLD_CNTR * Returns 0 in success. */ #define DEMOD_WRAPPER_PM_GET_THRSHLD_CNTR _IOR(\ DEMOD_WRAPPER_BASIC_CMDS_NUM,\ 8, struct demod_wrapper_pm_get_thr_cntr_args) /** * ioctl cmd : DEMOD_WRAPPER_PM_GET_POWER - * Gets the value of the BCDEM_REGS_RO_POWER * Returns 0 in success. */ #define DEMOD_WRAPPER_PM_GET_POWER _IOR(DEMOD_WRAPPER_BASIC_CMDS_NUM,\ 9, struct demod_wrapper_pm_get_power_args) #endif /* _DEMOD_WRAPPER_H_ */