You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
172 lines
12 KiB
172 lines
12 KiB
/*
|
|
* Copyright (c) Hisilicon Technologies Co., Ltd. 2017-2021. All rights reserved.
|
|
* Description: Frontend IAPI interface
|
|
* Author: Hisilicon
|
|
* Created: 2017-06-30
|
|
*/
|
|
|
|
#ifndef __IAPI_FRONTEND_H__
|
|
#define __IAPI_FRONTEND_H__
|
|
|
|
#include <time.h>
|
|
#include "soc_module.h"
|
|
#include "uapi_frontend.h"
|
|
|
|
#ifdef __cplusplus
|
|
#if __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
#endif /* __cplusplus */
|
|
|
|
#define fe_usleep(us) \
|
|
do { \
|
|
struct timespec ts; \
|
|
ts.tv_sec = (us) / 1000000; \
|
|
ts.tv_nsec = ((us) % 1000000) * 1000; \
|
|
nanosleep(&ts, NULL); \
|
|
} while (0)
|
|
|
|
#define PI 3.14159265
|
|
#undef array_size
|
|
#define array_size(x) (sizeof(x) / sizeof((x)[0]))
|
|
|
|
#define IAPI_TUNER_NUM 8
|
|
#undef LOG_MODULE_ID
|
|
#define LOG_MODULE_ID SOC_ID_FRONTEND
|
|
|
|
/*
|
|
* type of TUNER device
|
|
* CNcomment:TUNER设备类型
|
|
*/
|
|
typedef enum {
|
|
IAPI_TUNER_DEV_TYPE_XG_3BL = 0, /* XG_3BL,Not supported */ /* CNcomment:不支持 */
|
|
IAPI_TUNER_DEV_TYPE_CD1616 = 1, /* CD1616,Not supported */ /* CNcomment:不支持 */
|
|
IAPI_TUNER_DEV_TYPE_ALPS_TDAE = 2, /* ALPS_TDAE,Not supported */ /* CNcomment:不支持 */
|
|
IAPI_TUNER_DEV_TYPE_TDCC = 3, /* TDCC,Not supported */ /* CNcomment:不支持 */
|
|
IAPI_TUNER_DEV_TYPE_TDA18250 = 4, /* TDA18250 */ /* CNcomment:支持TDA18250射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_CD1616_DOUBLE = 5, /* CD1616 with double agc, Not supported */ /* CNcomment:不支持 */
|
|
IAPI_TUNER_DEV_TYPE_MT2081 = 6, /* MT2081,Not supported */ /* CNcomment:不支持 */
|
|
IAPI_TUNER_DEV_TYPE_TMX7070X = 7, /* THOMSON7070X, Not supported */ /* CNcomment:不支持 */
|
|
IAPI_TUNER_DEV_TYPE_R820C = 8, /* R820C */ /* CNcomment:支持R820C射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_MXL203 = 9, /* MXL203 */ /* CNcomment:支持MXL203射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_AV2011 = 10, /* AV2011 */ /* CNcomment:支持AV2011射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_SHARP7903 = 11, /* SHARP7903,Not supported */ /* CNcomment:不支持 */
|
|
IAPI_TUNER_DEV_TYPE_MXL101 = 12, /* MXL101,Not supported */ /* CNcomment:不支持 */
|
|
IAPI_TUNER_DEV_TYPE_MXL603 = 13, /* MXL603 */ /* CNcomment:支持MXL603射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_IT9170 = 14, /* IT9170,Not supported */ /* CNcomment:不支持 */
|
|
IAPI_TUNER_DEV_TYPE_IT9133 = 15, /* IT9133,Not supported */ /* CNcomment:不支持 */
|
|
IAPI_TUNER_DEV_TYPE_TDA6651 = 16, /* TDA6651,Not supported */ /* CNcomment:不支持 */
|
|
IAPI_TUNER_DEV_TYPE_TDA18250B = 17, /* TDA18250B */ /* CNcomment:支持TDA18250B射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_M88TS2022 = 18, /* M88TS2022,Not supported */ /* CNcomment:不支持 */
|
|
IAPI_TUNER_DEV_TYPE_RDA5815 = 19, /* RDA5815 */ /* CNcomment:支持RDA5815射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_MXL254 = 20, /* MXL254 */ /* CNcomment:支持MXL254射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_CXD2861 = 21, /* CXD2861,Not supported */ /* CNcomment:不支持 */
|
|
IAPI_TUNER_DEV_TYPE_SI2147 = 22, /* Si2147 */ /* CNcomment:支持Si2147射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_RAFAEL836 = 23, /* Rafael836 */ /* CNcomment:支持Rafael836射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_MXL608 = 24, /* MXL608 */ /* CNcomment:支持MXL608射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_MXL214 = 25, /* MXL214 */ /* CNcomment:支持MXL214射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_TDA18280 = 26, /* TDA18280 */ /* CNcomment:支持TDA18280射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_TDA182I5A = 27, /* TDA182I5A */ /* CNcomment:支持TDA182I5A芯片 */
|
|
IAPI_TUNER_DEV_TYPE_SI2144 = 28, /* Si2144 */ /* CNcomment:支持Si2144芯片 */
|
|
IAPI_TUNER_DEV_TYPE_AV2018 = 29, /* AV2018 */ /* CNcomment:支持AV2018芯片 */
|
|
IAPI_TUNER_DEV_TYPE_MXL251 = 30, /* MXL251 */ /* CNcomment:支持MXL251芯片 */
|
|
IAPI_TUNER_DEV_TYPE_M88TC3800 = 31, /* M88TC3800,Not supported */ /* CNcomment:不支持 */
|
|
IAPI_TUNER_DEV_TYPE_MXL601 = 32, /* MXL601 */ /* CNcomment:支持MXL601射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_MXL683 = 33, /* MXL683 */ /* CNcomment:支持MXL683射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_AV2026 = 34, /* AV2026 */ /* CNcomment:支持AV2026射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_R850 = 35, /* R850 */ /* CNcomment:支持R850射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_R858 = 36, /* R858 */ /* CNcomment:支持R858射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_MXL541 = 37, /* MXL541 */ /* CNcomment:支持MXL541射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_MXL581 = 38, /* MXL581 */ /* CNcomment:支持MXL581射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_MXL582 = 39, /* MXL582 */ /* CNcomment:支持MXL582射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_MXL661 = 40, /* MXL661 */ /* CNcomment:支持MXL661射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_RT720 = 41, /* RT720 */ /* CNcomment:支持RT720射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_CXD2871 = 42, /* CXD2871 */ /* CNcomment:支持CXD2871射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_SUT_PJ987 = 43, /* SUT-PJ987 */ /* CNcomment:支持SUT-PJ987射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_ATBM253 = 44, /* ATBM253 */ /* CNcomment:支持ATBM253射频芯片 */
|
|
IAPI_TUNER_DEV_TYPE_R842 = 45, /* R842 */ /* CNcomment:支持R842射频芯片 */
|
|
UAPI_TUNER_DEV_TYPE_MAX /* Invalid value */ /* CNcomment:非法边界值 */
|
|
} iapi_tuner_dev_type;
|
|
|
|
/*
|
|
* Type of the demod device
|
|
* CNcomment:demod设备类型
|
|
*/
|
|
typedef enum {
|
|
IAPI_DEMOD_DEV_TYPE_NONE, /* Not supported */ /* CNcomment:不支持 */
|
|
/*
|
|
* Internal QAM, same as UAPI_DEMOD_DEV_TYPE_INTERNAL0
|
|
* CNcomment:内部QAM,与UAPI_DEMOD_DEV_TYPE_INTERNAL0相同
|
|
*/
|
|
IAPI_DEMOD_DEV_TYPE_3130I = 0x100,
|
|
IAPI_DEMOD_DEV_TYPE_3130E = 0x101, /* External fe3130 */ /* CNcomment:外部QAM fe3130芯片 */
|
|
IAPI_DEMOD_DEV_TYPE_J83B = 0x102, /* suppoort j83b */ /* CNcomment:支持j83b */
|
|
IAPI_DEMOD_DEV_TYPE_AVL6211 = 0x103, /* Avalink 6211 */ /* CNcomment:支持Avalink 6211 */
|
|
IAPI_DEMOD_DEV_TYPE_MXL101 = 0x104, /* Maxlinear mxl101, Not supported */ /* CNcomment:不支持 */
|
|
IAPI_DEMOD_DEV_TYPE_MN88472 = 0x105, /* PANASONIC mn88472 */ /* CNcomment:支持P mn88472 */
|
|
IAPI_DEMOD_DEV_TYPE_IT9170 = 0x106, /* ITE it9170,Not supported */ /* CNcomment:不支持 */
|
|
IAPI_DEMOD_DEV_TYPE_IT9133 = 0x107, /* ITE it9133,Not supported */ /* CNcomment:不支持 */
|
|
IAPI_DEMOD_DEV_TYPE_FE3136 = 0x108, /* External fe3136 */ /* CNcomment:外部fe3136芯片 */
|
|
IAPI_DEMOD_DEV_TYPE_MXL254 = 0x10A, /* External mxl254 */ /* CNcomment:外部MXL254芯片 */
|
|
IAPI_DEMOD_DEV_TYPE_CXD2837 = 0x10B, /* Sony cxd2837, Not supported */ /* CNcomment:不支持 */
|
|
IAPI_DEMOD_DEV_TYPE_FE3137 = 0x10C, /* External fe3137 */ /* CNcomment:支持外部fe3137芯片 */
|
|
IAPI_DEMOD_DEV_TYPE_MXL214 = 0x10D, /* External mxl214 */ /* CNcomment:外部MXL214芯片 */
|
|
IAPI_DEMOD_DEV_TYPE_TDA18280 = 0x10E, /* External tda18280 */ /* CNcomment:外部tda18280芯片 */
|
|
IAPI_DEMOD_DEV_TYPE_MXL251 = 0x111, /* External mxl251 */ /* CNcomment:外部MXL251芯片 */
|
|
IAPI_DEMOD_DEV_TYPE_ATBM888X = 0x113, /* External ATBM888X */ /* CNcomment:支持外部ATBM888X芯片 */
|
|
IAPI_DEMOD_DEV_TYPE_MN88473 = 0x114, /* Panasonic 88473 */ /* CNcomment:支持Panasonic 88473 */
|
|
IAPI_DEMOD_DEV_TYPE_MXL683 = 0x115, /* External mxl683 */ /* CNcomment:外部mxl683芯片 */
|
|
IAPI_DEMOD_DEV_TYPE_TP5001 = 0x116, /* External TP5001 */ /* CNcomment:支持外部TP5001芯片 */
|
|
IAPI_DEMOD_DEV_TYPE_HD2501 = 0x117, /* External HD2501 */ /* CNcomment:支持外部HD2501芯片 */
|
|
IAPI_DEMOD_DEV_TYPE_AVL6381 = 0x118, /* External AVL6381 */ /* CNcomment:支持外部AVL6381芯片 */
|
|
IAPI_DEMOD_DEV_TYPE_MXL541 = 0x119, /* External MXL541 */ /* CNcomment:支持外部MXL541芯片 */
|
|
IAPI_DEMOD_DEV_TYPE_MXL581 = 0x11A, /* External MXL581 */ /* CNcomment:支持外部MXL581芯片 */
|
|
IAPI_DEMOD_DEV_TYPE_MXL582 = 0x11B, /* External MXL582 */ /* CNcomment:支持外部MXL582芯片 */
|
|
IAPI_DEMOD_DEV_TYPE_INTERNAL0 = 0x11C, /* Internal Demod */ /* CNcomment:支持内部解调芯片 */
|
|
IAPI_DEMOD_DEV_TYPE_CXD2856 = 0x11D, /* External CXD2856 */ /* CNcomment:支持外部CXD2856芯片 */
|
|
IAPI_DEMOD_DEV_TYPE_CXD2857 = 0x11E, /* External CXD2857 */ /* CNcomment:支持外部CXD2857芯片 */
|
|
IAPI_DEMOD_DEV_TYPE_CXD2878 = 0x11F, /* External CXD2878 */ /* CNcomment:支持外部CXD2878芯片 */
|
|
IAPI_DEMOD_DEV_TYPE_FE3138V200 = 0x120, /* External FE3138V200 */ /* CNcomment:支持外部FE3138V200芯片 */
|
|
IAPI_DEMOD_DEV_TYPE_FE3138V210 = 0x121, /* External FE3138V210 */ /* CNcomment:支持外部FE3138V210芯片 */
|
|
IAPI_DEMOD_DEV_TYPE_TDA8296I = 0x122, /* External TDA8296I */ /* CNcomment:支持TDA8296I芯片 */
|
|
IAPI_DEMOD_DEV_TYPE_MAX /* Invalid value */ /* CNcomment:非法边界值 */
|
|
} iapi_demod_dev_type;
|
|
|
|
/*
|
|
* LNB power supply and control device
|
|
* CNcomment:LNB供电和控制芯片
|
|
*/
|
|
typedef enum {
|
|
IAPI_LNB_CTRL_DEV_TYPE_NONE, /* No LNB control device */ /* CNcomment:无控制芯片 */
|
|
IAPI_LNB_CTRL_DEV_TYPE_MPS8125, /* MPS8125 */ /* CNcomment:MPS8125 */
|
|
IAPI_LNB_CTRL_DEV_TYPE_ISL9492, /* ISL9492 */ /* CNcomment:ISL9492 */
|
|
IAPI_LNB_CTRL_DEV_TYPE_A8300, /* A8300 */ /* CNcomment:A8300 */
|
|
IAPI_LNB_CTRL_DEV_TYPE_A8297, /* A8297 */ /* CNcomment:A8297 */
|
|
IAPI_LNB_CTRL_DEV_TYPE_TPS65233, /* TPS65233 */ /* CNcomment:TPS65233 */
|
|
IAPI_LNB_CTRL_DEV_TYPE_LNBH30, /* LNBH30 */ /* CNcomment:LNBH30 */
|
|
IAPI_LNB_CTRL_DEV_TYPE_LNBH25, /* LNBH25 */ /* CNcomment:LNBH25 */
|
|
IAPI_LNB_CTRL_DEV_TYPE_LNBH26_A, /* LNBH26_A */ /* CNcomment:LNBH26_A */
|
|
IAPI_LNB_CTRL_DEV_TYPE_LNBH26_B, /* LNBH26_B */ /* CNcomment:LNBH26_B */
|
|
IAPI_LNB_CTRL_DEV_TYPE_MAX /* Invalid value */ /* CNcomment:非法边界值 */
|
|
} iapi_lnb_ctrl_dev_type;
|
|
|
|
typedef struct {
|
|
iapi_demod_dev_type demod_type;
|
|
iapi_tuner_dev_type tuner_type;
|
|
iapi_lnb_ctrl_dev_type lnb_type;
|
|
} iapi_frontend_cfg;
|
|
|
|
td_s32 tuner_get_attr_execute(td_u32 tuner_id, uapi_frontend_attr *iapi_tuner_attr);
|
|
td_bool frontend_is_open(td_u32 port);
|
|
td_s32 iapi_frontend_get_cfg(td_u32 tuner_id, iapi_frontend_cfg *fe_cfg);
|
|
td_u32 frontend_u32_multiplication(td_u32 multi_a, td_u32 multi_b);
|
|
|
|
#ifdef __cplusplus
|
|
#if __cplusplus
|
|
}
|
|
#endif
|
|
#endif /* __cplusplus */
|
|
|
|
#endif
|
|
|