/*
 * @file hv_mw_Bcon.h
 * @brief Header file of bcon module.
 *
 * @verbatim
 * ==============================================================================
 *                        ##### How to use #####
 * ==============================================================================
 * (+) 
 *
 * @endverbatim
 * @author HiView SoC Software Team
 * @version 1.0.0
 * @date 2023-01-16
 */

#ifndef __MW_BCON_H__
#define __MW_BCON_H__

VOID Hv_Mw_Bcon_Init(UCHAR8 ucVendor, UINT32 uiClk);

VOID Hv_Mw_Bcon_HY8603_Init();

VOID Hv_Mw_Bcon_HY8603BlDataSend();

VOID Hv_Mw_Bcon_HY8603SetLanes(UCHAR8 ucDisLane, USHORT16 usDipLanes);

VOID Hv_Mw_Bcon_HY8603BlDataPrep(UCHAR8 ucPort, USHORT16 *ausBlData, UINT32 uiLen);

VOID Hv_Mw_Bcon_XP7008_Init(UINT32 uiLanes);

USHORT16 Hv_Mw_XP7008_PrepCmd(UCHAR8 ucStart, UCHAR8 ucLen, UCHAR8 *regs, USHORT16* pusOutData);

USHORT16 Hv_Mw_XP7008_PrepData(UCHAR8 ucStart, UCHAR8 ucLen, USHORT16 *pusPwm, USHORT16 *pusOutData);

VOID Hv_Mw_Bcon_XP7008BlDataPrep(UCHAR8 ucPort, USHORT16 *ausBlData, UINT32 uiLen);

VOID Hv_Mw_Bcon_XP7008_SendData();

VOID Hv_Mw_Bcon_ReadData(UCHAR8 ucLane, USHORT16 usLen, USHORT16 *pusBuf);

VOID Hv_Mw_Bcon_HP9309_Init();

VOID Hv_Mw_Bcon_HP9309_WriteData(UCHAR8 ucLane,USHORT16 *pusData, UINT32 uiLen);

UINT32 Hv_Mw_Bcon_HP9309_PrepData(USHORT16 usHead, USHORT16 usAddr, USHORT16 usSubAddr, USHORT16 usFeedBack, USHORT16 *pusData, USHORT16 usDataLen, USHORT16* pusOut);
#endif
