blob: d862c7305d434c6f89633de8066c02901798443c [file] [log] [blame]
#ifndef _DEMOD_WRAPPER_H_
#define _DEMOD_WRAPPER_H_
#include <linux/ioctl.h>
/**
* 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_ */