/** @file
Header file for PchHdaLib Endpoint descriptors.
Copyright (c) 2017, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
#ifndef _PCH_HDA_ENDPOINTS_H_
#define _PCH_HDA_ENDPOINTS_H_
#include
typedef enum {
HdaDmicX1 = 0,
HdaDmicX2,
HdaDmicX4,
HdaBtRender,
HdaBtCapture,
HdaI2sRender1,
HdaI2sRender2,
HdaI2sCapture,
HdaEndpointMax
} NHLT_ENDPOINT;
typedef struct {
NHLT_ENDPOINT EndpointType;
UINT32 EndpointFormatsBitmask;
BOOLEAN Enable;
} PCH_HDA_NHLT_ENDPOINTS;
#define PCH_HDA_NHLT_TABLE_SIZE 0x2000
// Format bitmask
#define B_HDA_DMIC_2CH_48KHZ_16BIT_FORMAT BIT0
#define B_HDA_DMIC_2CH_48KHZ_32BIT_FORMAT BIT1
#define B_HDA_DMIC_4CH_48KHZ_16BIT_FORMAT BIT2
#define B_HDA_DMIC_4CH_48KHZ_32BIT_FORMAT BIT3
#define B_HDA_DMIC_1CH_48KHZ_16BIT_FORMAT BIT4
#define B_HDA_BT_NARROWBAND_FORMAT BIT5
#define B_HDA_BT_WIDEBAND_FORMAT BIT6
#define B_HDA_BT_A2DP_FORMAT BIT7
#define B_HDA_I2S_RTK298_RENDER_4CH_48KHZ_24BIT_FORMAT BIT8
#define B_HDA_I2S_RTK298_CAPTURE_4CH_48KHZ_24BIT_FORMAT BIT9
#define B_HDA_I2S_RTK286S_2CH_48KHZ_24BIT_FORMAT BIT10
#define B_HDA_I2S_ADI_4CH_48KHZ_32BIT_FORMAT BIT11
#define B_HDA_I2S_48KHZ_24BIT_MASTER_FORMAT BIT12
#define B_HDA_I2S_48KHZ_24BIT_SLAVE_FORMAT BIT13
#define B_HDA_I2S_PCM_8KHZ_16BIT_MASTER_FORMAT BIT14
#define B_HDA_I2S_PCM_8KHZ_16BIT_SLAVE_FORMAT BIT15
#define V_HDA_FORMAT_MAX 16
// Formats
extern CONST WAVEFORMATEXTENSIBLE Ch1_48kHz16bitFormat;
extern CONST WAVEFORMATEXTENSIBLE Ch2_48kHz16bitFormat;
extern CONST WAVEFORMATEXTENSIBLE Ch2_48kHz24bitFormat;
extern CONST WAVEFORMATEXTENSIBLE Ch2_48kHz32bitFormat;
extern CONST WAVEFORMATEXTENSIBLE Ch4_48kHz16bitFormat;
extern CONST WAVEFORMATEXTENSIBLE Ch4_48kHz32bitFormat;
extern CONST WAVEFORMATEXTENSIBLE NarrowbandFormat;
extern CONST WAVEFORMATEXTENSIBLE WidebandFormat;
extern CONST WAVEFORMATEXTENSIBLE A2dpFormat;
// Format Config
extern CONST UINT32 DmicStereo16BitFormatConfig[];
extern CONST UINT32 DmicStereo16BitFormatConfigSize;
extern CONST UINT32 DmicStereo32BitFormatConfig[];
extern CONST UINT32 DmicStereo32BitFormatConfigSize;
extern CONST UINT32 DmicQuad16BitFormatConfig[];
extern CONST UINT32 DmicQuad16BitFormatConfigSize;
extern CONST UINT32 DmicQuad32BitFormatConfig[];
extern CONST UINT32 DmicQuad32BitFormatConfigSize;
extern CONST UINT32 DmicMono16BitFormatConfig[];
extern CONST UINT32 DmicMono16BitFormatConfigSize;
extern CONST UINT32 I2sRtk298Render4ch48kHz24bitFormatConfig[];
extern CONST UINT32 I2sRtk298Render4ch48kHz24bitFormatConfigSize;
extern CONST UINT32 I2sRtk298Capture4ch48kHz24bitFormatConfig[];
extern CONST UINT32 I2sRtk298Capture4ch48kHz24bitFormatConfigSize;
extern CONST UINT32 I2sRtk286S2ch48kHzFormatConfig[];
extern CONST UINT32 I2sRtk286S2ch48kHzFormatConfigSize;
extern CONST UINT32 I2sAdi4ch48kHzFormatConfig[];
extern CONST UINT32 I2sAdi4ch48kHzFormatConfigSize;
extern CONST UINT32 I2s48kHz24bitMasterFormatConfig[];
extern CONST UINT32 I2s48kHz24bitMasterFormatConfigSize;
extern CONST UINT32 I2s48kHz24bitSlaveFormatConfig[];
extern CONST UINT32 I2s48kHz24bitSlaveFormatConfigSize;
extern CONST UINT32 I2sPcm8kHz16bitMasterFormatConfig[];
extern CONST UINT32 I2sPcm8kHz16bitMasterFormatConfigSize;
extern CONST UINT32 I2sPcm8kHz16bitSlaveFormatConfig[];
extern CONST UINT32 I2sPcm8kHz16bitSlaveFormatConfigSize;
extern CONST UINT32 BtFormatConfig[];
extern CONST UINT32 BtFormatConfigSize;
// Endpoints
extern ENDPOINT_DESCRIPTOR HdaEndpointDmicX1;
extern ENDPOINT_DESCRIPTOR HdaEndpointDmicX2;
extern ENDPOINT_DESCRIPTOR HdaEndpointDmicX4;
extern ENDPOINT_DESCRIPTOR HdaEndpointBtRender;
extern ENDPOINT_DESCRIPTOR HdaEndpointBtCapture;
extern ENDPOINT_DESCRIPTOR HdaEndpointI2sRender;
extern ENDPOINT_DESCRIPTOR HdaEndpointI2sCapture;
// Endpoint Config
extern CONST UINT8 DmicX1Config[];
extern CONST UINT32 DmicX1ConfigSize;
extern CONST UINT8 DmicX2Config[];
extern CONST UINT32 DmicX2ConfigSize;
extern CONST UINT8 DmicX4Config[];
extern CONST UINT32 DmicX4ConfigSize;
extern CONST UINT8 BtConfig[];
extern CONST UINT32 BtConfigSize;
extern CONST UINT8 I2sRender1Config[];
extern CONST UINT32 I2sRender1ConfigSize;
extern CONST UINT8 I2sRender2Config[];
extern CONST UINT32 I2sRender2ConfigSize;
extern CONST UINT8 I2sCaptureConfig[];
extern CONST UINT32 I2sCaptureConfigSize;
// Oed Configuration
extern CONST UINT32 NhltConfiguration[];
extern CONST UINT32 NhltConfigurationSize;
#endif // _PCH_HDA_ENDPOINTS_H_