• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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