Zephyr API 3.6.99
Loading...
Searching...
No Matches
dmic.h File Reference

Public API header file for Digital Microphones. More...

#include <zephyr/kernel.h>
#include <zephyr/device.h>

Go to the source code of this file.

Data Structures

struct  pdm_io_cfg
 PDM Input/Output signal configuration. More...
 
struct  pcm_stream_cfg
 Configuration of the PCM streams to be output by the PDM hardware. More...
 
struct  pdm_chan_cfg
 Mapping/ordering of the PDM channels to logical PCM output channel. More...
 
struct  dmic_cfg
 Input configuration structure for the DMIC configuration API. More...
 

Enumerations

enum  dmic_state {
  DMIC_STATE_UNINIT , DMIC_STATE_INITIALIZED , DMIC_STATE_CONFIGURED , DMIC_STATE_ACTIVE ,
  DMIC_STATE_PAUSED , DMIC_STATE_ERROR
}
 DMIC driver states. More...
 
enum  dmic_trigger {
  DMIC_TRIGGER_STOP , DMIC_TRIGGER_START , DMIC_TRIGGER_PAUSE , DMIC_TRIGGER_RELEASE ,
  DMIC_TRIGGER_RESET
}
 DMIC driver trigger commands. More...
 
enum  pdm_lr { PDM_CHAN_LEFT , PDM_CHAN_RIGHT }
 PDM Channels LEFT / RIGHT. More...
 

Functions

static uint32_t dmic_build_channel_map (uint8_t channel, uint8_t pdm, enum pdm_lr lr)
 Build the channel map to populate struct pdm_chan_cfg.
 
static void dmic_parse_channel_map (uint32_t channel_map_lo, uint32_t channel_map_hi, uint8_t channel, uint8_t *pdm, enum pdm_lr *lr)
 Helper function to parse the channel map in pdm_chan_cfg.
 
static uint32_t dmic_build_clk_skew_map (uint8_t pdm, uint8_t skew)
 Build a bit map of clock skew values for each PDM channel.
 
static int dmic_configure (const struct device *dev, struct dmic_cfg *cfg)
 Configure the DMIC driver and controller(s)
 
static int dmic_trigger (const struct device *dev, enum dmic_trigger cmd)
 Send a command to the DMIC driver.
 
static int dmic_read (const struct device *dev, uint8_t stream, void **buffer, size_t *size, int32_t timeout)
 Read received decimated PCM data stream.
 

Detailed Description

Public API header file for Digital Microphones.

This file contains the Digital Microphone APIs