/* * 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 #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