⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tmbslhdmitx.h

📁 HDMI NXP9983 chipset controller driver
💻 H
📖 第 1 页 / 共 5 页
字号:
};/**    \brief      Set audio input configuration in HDMI mode only    \param[in]  txUnit      Transmitter unit number    \param[in]  aFmt        Audio input format    \param[in]  chanI2s     I2S channel allocation    \param[in]  chanDsd     DSD channel allocation    \param[in]  clkPolDsd   DSD clock polarity    \param[in]  swapDsd     DSD data swap    \param[in]  layout      Sample layout    \param[in]  latency_rd  Audio FIFO read latency    \return     The call result:                - TM_OK: the call was successful                - Else a problem has been detected:                  - TMBSL_ERR_HDMI_BAD_UNIT_NUMBER: bad transmitter unit number                  - TMBSL_ERR_HDMI_BAD_PARAMETER: a parameter was out of range                  - TMBSL_ERR_HDMI_NOT_INITIALIZED: transmitter not initialized                  - TMBSL_ERR_HDMI_I2C_WRITE: failed when writing to the I2C bus                  - TMBSL_ERR_HDMI_OPERATION_NOT_PERMITTED: in DVI mode */tmErrorCode_ttmbslHdmiTxAudioInSetConfig(    tmUnitSelect_t           txUnit,    tmbslHdmiTxaFmt_t        aFmt,    UInt8                    chanI2s,    UInt8                    chanDsd,    tmbslHdmiTxClkPolDsd_t   clkPolDsd,    tmbslHdmiTxSwapDsd_t     swapDsd,    UInt8                    layout,    UInt16                   latency_rd);/*============================================================================*//** * tmbslHdmiTxAudioInSetCts() parameter types *//** Clock Time Stamp reference source */typedef enum{    HDMITX_CTSREF_ACLK      = 0,    /**< Clock input pin for I2S       */    HDMITX_CTSREF_MCLK      = 1,    /**< Clock input pin for EXTREF    */    HDMITX_CTSREF_FS64SPDIF = 2,    /**< 64xsample rate, for SPDIF     */    HDMITX_CTSREF_INVALID   = 3     /**< Invalid value                 */} tmbslHdmiTxctsRef_t;/** Audio sample rate kHz indexes */typedef enum{    HDMITX_AFS_32k           = 0,     /**< 32kHz    */    HDMITX_AFS_44_1k         = 1,     /**< 44.1kHz  */    HDMITX_AFS_48K           = 2,     /**< 48kHz    */    HDMITX_AFS_88_2K         = 3,     /**< 88.2kHz  */    HDMITX_AFS_96K           = 4,     /**< 96kHz    */    HDMITX_AFS_176_4K        = 5,     /**< 176.4kHz */    HDMITX_AFS_192K          = 6,     /**< 192kHz   */    HDMITX_AFS_NOT_INDICATED = 7,     /**< Not Indicated (Channel Status) */    HDMITX_AFS_INVALID       = 7,     /**< Invalid  */    HDMITX_AFS_NUM           = 7      /**< # rates  */} tmbslHdmiTxafs_t;/** Vertical output frequencies */typedef enum{    HDMITX_VFREQ_24Hz      = 0,     /**< 24Hz          */	HDMITX_VFREQ_25Hz      = 1,     /**< 25Hz          */	HDMITX_VFREQ_30Hz      = 2,     /**< 30Hz          */	HDMITX_VFREQ_50Hz      = 3,     /**< 50Hz         0 */    HDMITX_VFREQ_59Hz      = 4,     /**< 59.94Hz      1 */    HDMITX_VFREQ_60Hz      = 5,     /**< 60Hz         2 */#ifndef FORMAT_PC    HDMITX_VFREQ_INVALID   = 6,     /**< Invalid       */    HDMITX_VFREQ_NUM       = 6      /**< No. of values */#else /* FORMAT_PC */    HDMITX_VFREQ_70Hz      = 6,     /**< 70Hz          */    HDMITX_VFREQ_72Hz      = 7,     /**< 72Hz          */    HDMITX_VFREQ_75Hz      = 8,     /**< 75Hz          */    HDMITX_VFREQ_85Hz      = 9,     /**< 85Hz          */    HDMITX_VFREQ_87Hz      = 10,     /**< 87Hz          */    HDMITX_VFREQ_INVALID   = 11,     /**< Invalid       */    HDMITX_VFREQ_NUM       = 11      /**< No. of values */#endif /* FORMAT_PC */} tmbslHdmiTxVfreq_t;/** Clock Time Stamp predivider - scales N */typedef enum{    HDMITX_CTSK1           = 0,     /**< k=1 */    HDMITX_CTSK2           = 1,     /**< k=2 */    HDMITX_CTSK3           = 2,     /**< k=3 */    HDMITX_CTSK4           = 3,     /**< k=4 */    HDMITX_CTSK8           = 4,     /**< k=8 */    HDMITX_CTSK_USE_CTSX   = 5,     /**< Calculate from ctsX factor */    HDMITX_CTSK_INVALID    = 6      /**< Invalid */} tmbslHdmiTxctsK_t;/** Clock Time Stamp postdivider measured time stamp */typedef enum{    HDMITX_CTSMTS          = 0,     /**< =mts   */    HDMITX_CTSMTS2         = 1,     /**< =mts%2 */    HDMITX_CTSMTS4         = 2,     /**< =mts%4 */    HDMITX_CTSMTS8         = 3,     /**< =mts%8 */    HDMITX_CTSMTS_USE_CTSX = 4,     /**< Calculate from ctsX factor */    HDMITX_CTSMTS_INVALID  = 5      /**< Invalid */} tmbslHdmiTxctsM_t;/** Cycle Time Stamp values */enum _tmbslHdmiTxCts{    HDMITX_CTS_AUTO        = 0,    HDMITX_CTS_MIN         = 0x000001};/** Cycle Time Stamp X factors */ enum _tmbslHdmiTxCtsX{    HDMITX_CTSX_16         = 0,    HDMITX_CTSX_32         = 1,    HDMITX_CTSX_48         = 2,    HDMITX_CTSX_64         = 3,    HDMITX_CTSX_128        = 4,    HDMITX_CTSX_NUM        = 5,    HDMITX_CTSX_UNUSED     = 5,     /**< CTX value unused when K and Mts used */    HDMITX_CTSX_INVALID    = 6};/**    \brief      Set the Clock Time Stamp generator in HDMI mode only    \param[in]  txUnit      Transmitter unit number    \param[in]  ctsRef      Clock Time Stamp reference source    \param[in]  afs         Audio input sample frequency    \param[in]  voutFmt     Video output format    \param[in]  voutFreq    Vertical output frequency    \param[in]  uCts        Manual Cycle Time Stamp    \param[in]  uCtsX       Clock Time Stamp factor x    \param[in]  ctsK        Clock Time Stamp predivider k    \param[in]  ctsM        Clock Time Stamp postdivider m    \return     The call result:                - TM_OK: the call was successful                - Else a problem has been detected:                  - TMBSL_ERR_HDMI_BAD_UNIT_NUMBER: bad transmitter unit number                  - TMBSL_ERR_HDMI_BAD_PARAMETER: a parameter was out of range                  - TMBSL_ERR_HDMI_NOT_INITIALIZED: transmitter not initialized                  - TMBSL_ERR_HDMI_I2C_WRITE: failed when writing to the I2C bus                  - TMBSL_ERR_HDMI_OPERATION_NOT_PERMITTED: in DVI mode */tmErrorCode_ttmbslHdmiTxAudioInSetCts(    tmUnitSelect_t       txUnit,    tmbslHdmiTxctsRef_t  ctsRef,    tmbslHdmiTxafs_t     afs,     tmbslHdmiTxVidFmt_t  voutFmt,     tmbslHdmiTxVfreq_t   voutFreq,     UInt32               uCts,     UInt16               uCtsX,    tmbslHdmiTxctsK_t    ctsK,    tmbslHdmiTxctsM_t    ctsM);/*============================================================================*//** * tmbslHdmiTxAudioOutSetChanStatus() parameter types *//** BYTE 0: Channel Status Format information */typedef enum{    HDMITX_CSFI_PCM_2CHAN_NO_PRE    = 0,  /**< PCM 2 channels without pre-emphasis           */    HDMITX_CSFI_PCM_2CHAN_PRE       = 1,  /**< PCM 2 channels with 50us/15us pre-emphasis    */    HDMITX_CSFI_PCM_2CHAN_PRE_RSVD1 = 2,  /**< PCM Reserved for 2 channels with pre-emphasis */    HDMITX_CSFI_PCM_2CHAN_PRE_RSVD2 = 3,  /**< PCM Reserved for 2 channels with pre-emphasis */    HDMITX_CSFI_NOTPCM_DEFAULT      = 4,  /**< Non-PCM Default state                         */    HDMITX_CSFI_INVALID             = 5   /**< Invalid value                                 */} tmbslHdmiTxCSformatInfo_t;/** BYTE 0: Channel Status Copyright assertion */typedef enum{    HDMITX_CSCOPYRIGHT_PROTECTED   = 0,  /**< Copyright protected     */    HDMITX_CSCOPYRIGHT_UNPROTECTED = 1,  /**< Not copyright protected */    HDMITX_CSCOPYRIGHT_INVALID     = 2   /**< Invalid value           */} tmbslHdmiTxCScopyright_t;/** BYTE 3: Channel Status Clock Accuracy */typedef enum{    HDMITX_CSCLK_LEVEL_II    = 0,     /**< Level II                     */    HDMITX_CSCLK_LEVEL_I     = 1,     /**< Level I                      */    HDMITX_CSCLK_LEVEL_III   = 2,     /**< Level III                    */    HDMITX_CSCLK_NOT_MATCHED = 3,     /**< Not matched to sample freq.  */    HDMITX_CSCLK_INVALID     = 4      /**< Invalid                      */} tmbslHdmiTxCSclkAcc_t;/** BYTE 4: Channel Status Maximum sample word length */typedef enum{    HDMITX_CSMAX_LENGTH_20   = 0,  /**< Max word length is 20 bits   */    HDMITX_CSMAX_LENGTH_24   = 1,  /**< Max word length is 24 bits   */    HDMITX_CSMAX_INVALID     = 2   /**< Invalid value                */} tmbslHdmiTxCSmaxWordLength_t;/** BYTE 4: Channel Status Sample word length */typedef enum{    HDMITX_CSWORD_DEFAULT          = 0,     /**< Word length is not indicated                    */    HDMITX_CSWORD_20_OF_24         = 1,     /**< Sample length is 20 bits out of max 24 possible */    HDMITX_CSWORD_16_OF_20         = 1,     /**< Sample length is 16 bits out of max 20 possible */    HDMITX_CSWORD_22_OF_24         = 2,     /**< Sample length is 22 bits out of max 24 possible */    HDMITX_CSWORD_18_OF_20         = 2,     /**< Sample length is 18 bits out of max 20 possible */    HDMITX_CSWORD_RESVD            = 3,     /**< Reserved - shall not be used */    HDMITX_CSWORD_23_OF_24         = 4,     /**< Sample length is 23 bits out of max 24 possible */    HDMITX_CSWORD_19_OF_20         = 4,     /**< Sample length is 19 bits out of max 20 possible */    HDMITX_CSWORD_24_OF_24         = 5,     /**< Sample length is 24 bits out of max 24 possible */    HDMITX_CSWORD_20_OF_20         = 5,     /**< Sample length is 20 bits out of max 20 possible */    HDMITX_CSWORD_21_OF_24         = 6,     /**< Sample length is 21 bits out of max 24 possible */    HDMITX_CSWORD_17_OF_20         = 6,     /**< Sample length is 17 bits out of max 20 possible */    HDMITX_CSWORD_INVALID          = 7      /**< Invalid */} tmbslHdmiTxCSwordLength_t;/** BYTE 4: Channel Status Original sample frequency */typedef enum{    HDMITX_CSOFREQ_NOT_INDICATED = 0,   /**< Not Indicated */    HDMITX_CSOFREQ_192k          = 1,   /**< 192kHz        */    HDMITX_CSOFREQ_12k           = 2,   /**< 12kHz         */    HDMITX_CSOFREQ_176_4k        = 3,   /**< 176.4kHz      */    HDMITX_CSOFREQ_RSVD1         = 4,   /**< Reserved      */    HDMITX_CSOFREQ_96k           = 5,   /**< 96kHz         */    HDMITX_CSOFREQ_8k            = 6,   /**< 8kHz          */    HDMITX_CSOFREQ_88_2k         = 7,   /**< 88.2kHz       */    HDMITX_CSOFREQ_16k           = 8,   /**< 16kHz         */    HDMITX_CSOFREQ_24k           = 9,   /**< 24kHz         */    HDMITX_CSOFREQ_11_025k       = 10,  /**< 11.025kHz     */    HDMITX_CSOFREQ_22_05k        = 11,  /**< 22.05kHz      */    HDMITX_CSOFREQ_32k           = 12,  /**< 32kHz         */    HDMITX_CSOFREQ_48k           = 13,  /**< 48kHz         */    HDMITX_CSOFREQ_RSVD2         = 14,  /**< Reserved      */    HDMITX_CSOFREQ_44_1k         = 15,  /**< 44.1kHz       */    HDMITX_CSAFS_INVALID         = 16   /**< Invalid value */} tmbslHdmiTxCSorigAfs_t;/**    \brief      Set the Channel Status Bytes 0,1,3 & 4    \param[in]  txUnit              Transmitter unit number    \param[in]  copyright           Byte 0 Copyright bit (bit2)    \param[in]  formatInfo          Byte 0 Audio sample format (bit1) and additional info (bit345)    \param[in]  categoryCode        Byte 1 Category code (bits8-15)    \param[in]  sampleFreq          Byte 3 Sample Frequency (bits24-27)    \param[in]  clockAccuracy       Byte 3 Clock Accuracy (bits38-31)    \param[in]  maxWordLength       Byte 4 Maximum word length (bit32)    \param[in]  wordLength          Byte 4 Word length (bits33-35)    \param[in]  origSampleFreq      Byte 4 Original Sample Frequency (bits36-39)    \return     The call result:                - TM_OK: the call was successful                - Else a problem has been detected:                  - TMBSL_ERR_HDMI_BAD_UNIT_NUMBER: bad transmitter unit number                  - TMBSL_ERR_HDMI_BAD_PARAMETER: a parameter was out of range                  - TMBSL_ERR_HDMI_NOT_INITIALIZED: transmitter not initialized                  - TMBSL_ERR_HDMI_I2C_WRITE: failed when writing to the I2C bus                  - TMBSL_ERR_HDMI_OPERATION_NOT_PERMITTED: in DVI mode    \note       The consumer use bit (bit0) and Mode bits (bits6-7) are forced to zero.                Use tmbslHdmiTxAudioOutSetChanStatusMapping to set CS Byte 2. */tmErrorCode_ttmbslHdmiTxAudioOutSetChanStatus(    tmUnitSelect_t               txUnit,    tmbslHdmiTxCSformatInfo_t    formatInfo,    tmbslHdmiTxCScopyright_t     copyright,    UInt8                        categoryCode,    tmbslHdmiTxafs_t             sampleFreq,    tmbslHdmiTxCSclkAcc_t        clockAccuracy,    tmbslHdmiTxCSmaxWordLength_t maxWordLength,    tmbslHdmiTxCSwordLength_t    wordLength,    tmbslHdmiTxCSorigAfs_t       origSampleFreq);/*============================================================================*//** * tmbslHdmiTxAudioOutSetChanStatusMapping() parameter types *//** Channel Status source/channel number limits */enum _tmbslHdmiTxChanStatusChanLimits{    HDMITX_CS_CHANNELS_MAX  = 0x0F,    HDMITX_CS_SOURCES_MAX   = 0x0F};/**    \brief      Set the Channel Status Byte2 for Audio Port 0    \param[in]  txUnit              Transmitter unit number    \param[in]  sourceLeft          L Source Number: 0 don't take into account, 1-15    \param[in]  channelLeft         L Channel Number: 0 don't take into account, 1-15    \param[in]  sourceRight         R Source Number: 0 don't take into account, 1-15    \param[in]  channelRight        R Channel Number: 0 don't take into account, 1-15    \return     The call result:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -