2 * skl-nhlt.h - Intel HDA Platform NHLT header
4 * Copyright (C) 2015 Intel Corp
5 * Author: Sanjiv Kumar <sanjiv.kumar@intel.com>
6 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; version 2 of the License.
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * General Public License for more details.
17 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
20 #ifndef __SKL_NHLT_H__
21 #define __SKL_NHLT_H__
23 #include <linux/acpi.h>
29 u32 avg_bytes_per_sec
;
38 u16 valid_bits_per_sample
;
39 u16 samples_per_block
;
54 enum nhlt_device_type
{
61 struct nhlt_specific_cfg
{
67 struct wav_fmt_ext fmt_ext
;
68 struct nhlt_specific_cfg config
;
73 struct nhlt_fmt_cfg fmt_config
[0];
76 struct nhlt_endpoint
{
87 struct nhlt_specific_cfg config
;
90 struct nhlt_acpi_table
{
91 struct acpi_table_header header
;
93 struct nhlt_endpoint desc
[0];
96 struct nhlt_resource_desc
{
102 u64 addr_trans_offset
;
106 #define MIC_ARRAY_2CH 2
107 #define MIC_ARRAY_4CH 4
109 struct nhlt_tdm_config
{
114 struct nhlt_dmic_array_config
{
115 struct nhlt_tdm_config tdm_config
;
120 NHLT_MIC_ARRAY_2CH_SMALL
= 0xa,
121 NHLT_MIC_ARRAY_2CH_BIG
= 0xb,
122 NHLT_MIC_ARRAY_4CH_1ST_GEOM
= 0xc,
123 NHLT_MIC_ARRAY_4CH_L_SHAPED
= 0xd,
124 NHLT_MIC_ARRAY_4CH_2ND_GEOM
= 0xe,
125 NHLT_MIC_ARRAY_VENDOR_DEFINED
= 0xf,