Sound Open Firmware
Loading...
Searching...
No Matches
dmic.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: BSD-3-Clause
2 *
3 * Copyright(c) 2024 Intel Corporation.
4 */
5
6#ifndef __SOF_IPC4_DMIC_H__
7#define __SOF_IPC4_DMIC_H__
8
9#include <stdint.h>
10#include <stddef.h>
11#include <sof/drivers/dmic.h>
12#include "gateway.h"
13
22#define DMIC_SET_GAIN_COEFFICIENTS 2
23
25#define DMIC_MAX_GAIN_COEFFS_CNT 4
26
34
36 struct {
41 uint32_t silence_period : 16;
42
47 uint32_t fade_in_period : 16;
49} __packed __aligned(4);
50
56 uint32_t out_control;
57};
58
64 uint32_t fir_control;
65 uint32_t fir_config;
66 uint32_t dc_offset_left;
67 uint32_t dc_offset_rigth;
68 uint32_t out_gain_left;
69 uint32_t out_gain_rigth;
70 uint32_t rsvd_2[2];
71} __packed __aligned(4);
72
82 uint32_t cic_control;
83 uint32_t cic_config;
84 uint32_t rsvd_0;
85 uint32_t mic_control;
86 uint32_t pdmsm;
88 uint32_t rsvd_1[2];
90 uint32_t fir_coeffs[0];
91} __packed __aligned(4);
92
101 uint32_t ts_group[4];
103 uint32_t channel_ctrl_mask : 8;
104 uint32_t clock_source : 8;
105 uint32_t rsvd : 16;
107 uint32_t pdm_ctrl_mask;
109} __packed __aligned(4);
110
119
120#endif /* __SOF_IPC4_DMIC_H__ */
IPC4 audio gateway attributes, ALH, HDA, and SoundWire gateway definitions.
Configuration parameters for a single DMIC channel.
Definition dmic.h:55
uint32_t out_control
Output control register value.
Definition dmic.h:56
Complete configuration blob for Digital Microphone (DMIC) settings.
Definition dmic.h:100
uint32_t pdm_ctrl_mask
Bitmask of active PDM controllers.
Definition dmic.h:107
struct dmic_channel_cfg channel_cfg[0]
Variable-length channel configurations.
Definition dmic.h:106
struct dmic_pdm_ctrl_cfg pdm_ctrl_cfg[0]
Variable-length PDM controller configurations.
Definition dmic.h:108
uint32_t channel_ctrl_mask
PDM channels to program from channel_cfg.
Definition dmic.h:103
uint32_t clock_source
Clock source selection for DMIC.
Definition dmic.h:104
uint32_t ts_group[4]
Time-slot grouping mappings.
Definition dmic.h:101
union dmic_global_cfg global_cfg
Global clock delay and fade parameters.
Definition dmic.h:102
uint32_t rsvd
Reserved padding.
Definition dmic.h:105
Top-level DMIC configuration data container.
Definition dmic.h:115
struct dmic_config_blob dmic_blob
Hardware DMIC configuration blob.
Definition dmic.h:117
union ipc4_gateway_attributes gtw_attributes
Gateway memory allocation attributes.
Definition dmic.h:116
Finite Impulse Response (FIR) decimation filter configuration.
Definition dmic.h:63
uint32_t fir_config
FIR filter configuration register value.
Definition dmic.h:65
uint32_t out_gain_left
Output gain value for left channel.
Definition dmic.h:68
uint32_t dc_offset_left
DC offset compensation value for left channel.
Definition dmic.h:66
uint32_t rsvd_2[2]
Reserved padding.
Definition dmic.h:70
uint32_t fir_control
FIR filter control register value.
Definition dmic.h:64
uint32_t dc_offset_rigth
DC offset compensation value for right channel.
Definition dmic.h:67
uint32_t out_gain_rigth
Output gain value for right channel.
Definition dmic.h:69
Pulse Density Modulation (PDM) controller configuration for DMIC.
Definition dmic.h:81
uint32_t rsvd_0
Reserved padding.
Definition dmic.h:84
uint32_t cic_control
CIC filter control register value.
Definition dmic.h:82
uint32_t rsvd_1[2]
Reserved padding.
Definition dmic.h:88
uint32_t fir_coeffs[0]
Variable-length array of FIR coefficients (channel A then B).
Definition dmic.h:90
uint32_t pdmsm
SoundWire PDM stream mapping (ignored on non-SDW).
Definition dmic.h:86
struct dmic_fir_cfg fir_config[2]
Cascaded FIR decimation filter configurations.
Definition dmic.h:89
uint32_t cic_config
CIC filter configuration register value.
Definition dmic.h:83
uint32_t mic_control
Microphone control register value.
Definition dmic.h:85
uint32_t reuse_fir_from_pdm
Index of another PDM controller to reuse FIR coefficients from.
Definition dmic.h:87
Global hardware configuration for DMIC controller.
Definition dmic.h:31
uint32_t silence_period
Specifies the period in milliseconds to override data with silence after DMA transfer is started.
Definition dmic.h:41
struct dmic_global_cfg::@12 ext_global_cfg
Extended global configuration bitfields.
uint32_t fade_in_period
Specifies the period in milliseconds for fade-in to apply on input data (following silence_period if ...
Definition dmic.h:47
uint32_t clock_on_delay
Raw 32-bit clock on delay value.
Definition dmic.h:33
Gateway buffer allocation attributes.
Definition gateway.h:128