1 // SPDX-License-Identifier: BSD-3-Clause 2 // 3 // Copyright(c) 2021 Intel Corporation. All rights reserved. 4 // 5 // Author: Seppo Ingalsuo <seppo.ingalsuo@linux.intel.com> 6 // Jaska Uimonen <jaska.uimonen@linux.intel.com> 7 8 #ifndef __DMIC_INTEL_H 9 #define __DMIC_INTEL_H 10 11 #include <stdint.h> 12 13 #define DMIC_TS_GROUP_SIZE 4 14 15 /* structs for intel dmic nhlt vendor specific blob generation */ 16 struct dmic_intel_fir_config { 17 uint32_t fir_control; 18 uint32_t fir_config; 19 uint32_t dc_offset_left; 20 uint32_t dc_offset_right; 21 uint32_t out_gain_left; 22 uint32_t out_gain_right; 23 uint32_t reserved2[2]; 24 uint32_t fir_coeffs[]; 25 } __attribute__((packed)); 26 27 struct dmic_intel_pdm_ctrl_cfg { 28 uint32_t cic_control; 29 uint32_t cic_config; 30 uint32_t reserved0; 31 uint32_t mic_control; 32 uint32_t pdmsm; 33 uint32_t reuse_fir_from_pdm; 34 uint32_t reserved1[2]; 35 struct dmic_intel_fir_config fir_config[]; 36 } __attribute__((packed)); 37 38 struct dmic_intel_config_data { 39 uint32_t gateway_attributes; 40 uint32_t ts_group[DMIC_TS_GROUP_SIZE]; 41 uint32_t clock_on_delay; 42 uint32_t channel_ctrl_mask; 43 uint32_t chan_ctrl_cfg[2]; 44 uint32_t channel_pdm_mask; 45 struct dmic_intel_pdm_ctrl_cfg pdm_ctrl_cfg[]; 46 } __attribute__((packed)); 47 48 #endif /* __DMIC_INTEL_H */ 49