Sound Open Firmware
Loading...
Searching...
No Matches
IPC4 Hardware Audio Gateways

Audio gateway addressing (HD-Audio host/link, SoundWire ALH aggregation, DMIC link, SSP/I2S), gateway attributes, and NHLT configuration blobs. More...

Collaboration diagram for IPC4 Hardware Audio Gateways:

Files

file  alh.h
 IPC4 Audio Hub Link (ALH) and SoundWire multi-gateway definitions.
 
file  dmic.h
 IPC4 Digital Microphone (DMIC) gateway and PDM controller configuration.
 
file  gateway.h
 IPC4 audio gateway attributes, ALH, HDA, and SoundWire gateway definitions.
 
file  ssp.h
 IPC4 Synchronous Serial Port (SSP / I2S) gateway and TDM configuration.
 

Data Structures

struct  ipc4_alh_multi_gtw_cfg
 Multi-gateway channel aggregation configuration. More...
 
struct  sof_alh_configuration_blob
 Full configuration blob for Audio Hub Link (ALH) gateways. More...
 
union  dmic_global_cfg
 Global hardware configuration for DMIC controller. More...
 
struct  dmic_channel_cfg
 Configuration parameters for a single DMIC channel. More...
 
struct  dmic_fir_cfg
 Finite Impulse Response (FIR) decimation filter configuration. More...
 
struct  dmic_pdm_ctrl_cfg
 Pulse Density Modulation (PDM) controller configuration for DMIC. More...
 
struct  dmic_config_blob
 Complete configuration blob for Digital Microphone (DMIC) settings. More...
 
struct  dmic_config_data
 Top-level DMIC configuration data container. More...
 
union  ipc4_connector_node_id
 Audio gateway addressing descriptor (connector node ID). More...
 
union  ipc4_gateway_attributes
 Gateway buffer allocation attributes. More...
 
struct  ipc4_gateway_config_data
 Generic gateway configuration blob container. More...
 
struct  ipc4_ipc_gateway_config_blob
 Configuration parameters for IPC Host Gateway. More...
 
struct  ipc4_ssp_config
 Hardware register configuration values for Intel SSP/I2S controller. More...
 
struct  ipc4_ssp_mclk_config
 Master Clock (MCLK) divider hardware configuration. More...
 
struct  ipc4_ssp_driver_config
 Combined SSP hardware and clock configuration structure. More...
 
struct  ipc4_ssp_start_control
 SSP interface clock start control parameters. More...
 
struct  ipc4_ssp_stop_control
 SSP interface clock stop control parameters. More...
 
union  ipc4_ssp_dma_control
 SSP dynamic DMA and clock control union. More...
 
struct  ipc4_ssp_configuration_blob
 Full SSP/I2S gateway configuration blob structure. More...
 

Enumerations

enum  ipc4_connector_node_id_type {
  ipc4_hda_host_output_class = 0 , ipc4_hda_host_input_class = 1 , ipc4_hda_host_inout_class = 2 , ipc4_hda_link_output_class = 8 ,
  ipc4_hda_link_input_class = 9 , ipc4_hda_link_inout_class = 10 , ipc4_dmic_link_input_class = 11 , ipc4_i2s_link_output_class = 12 ,
  ipc4_i2s_link_input_class = 13 , ipc4_alh_link_output_class = 16 , ipc4_alh_link_input_class = 17 , ipc4_alh_snd_wire_stream_link_output_class = 16 ,
  ipc4_alh_snd_wire_stream_link_input_class = 17 , ipc4_alh_uaol_stream_link_output_class = 18 , ipc4_alh_uaol_stream_link_input_class = 19 , ipc4_ipc_output_class = 20 ,
  ipc4_ipc_input_class = 21 , ipc4_i2s_multi_link_output_class = 22 , ipc4_i2s_multi_link_input_class = 23 , ipc4_gpio_class = 24 ,
  ipc4_spi_output_class = 25 , ipc4_spi_input_class = 26 , ipc4_max_connector_node_id_type
}
 Hardware and virtual audio gateway connector types. More...
 
enum  ipc4_gateway_type {
  ipc4_gtw_none = BIT(0) , ipc4_gtw_host = BIT(1) , ipc4_gtw_dmic = BIT(2) , ipc4_gtw_link = BIT(3) ,
  ipc4_gtw_alh = BIT(4) , ipc4_gtw_ssp = BIT(5) , ipc4_gtw_all = BIT(6) - 1
}
 Gateway peripheral category bitmask. More...
 
enum  ipc4_direction_type { ipc4_playback = BIT(0) , ipc4_capture = BIT(1) , ipc4_bidirection = BIT(0) | BIT(1) }
 Audio data stream direction flags. More...
 

Functions

static bool is_multi_gateway (const union ipc4_connector_node_id node_id)
 Check if an IPC4 connector node ID corresponds to an aggregated multi-gateway.
 
static size_t get_alh_config_size (const struct sof_alh_configuration_blob *alh_blob)
 Calculate the serialized size of an ALH configuration blob.
 

Detailed Description

Audio gateway addressing (HD-Audio host/link, SoundWire ALH aggregation, DMIC link, SSP/I2S), gateway attributes, and NHLT configuration blobs.

Enumeration Type Documentation

◆ ipc4_connector_node_id_type

Hardware and virtual audio gateway connector types.

Enumerator
ipc4_hda_host_output_class 

HD/A host output stream (Host to DSP playback).

ipc4_hda_host_input_class 

HD/A host input stream (DSP to Host capture).

ipc4_hda_host_inout_class 

HD/A host bidirectional stream (reserved for future use).

ipc4_hda_link_output_class 

HD/A link output (DSP to external codec playback).

ipc4_hda_link_input_class 

HD/A link input (external codec to DSP capture).

ipc4_hda_link_inout_class 

HD/A link bidirectional stream (reserved for future use).

ipc4_dmic_link_input_class 

Digital Microphone (DMIC) link input (microphones to DSP capture).

ipc4_i2s_link_output_class 

I2S/SSP link output (DSP to I2S codec playback).

ipc4_i2s_link_input_class 

I2S/SSP link input (I2S codec to DSP capture).

ipc4_alh_link_output_class 

ALH link output, legacy alias for SoundWire (DSP to SoundWire link).

ipc4_alh_link_input_class 

ALH link input, legacy alias for SoundWire (SoundWire link to DSP).

ipc4_alh_snd_wire_stream_link_output_class 

SoundWire link output stream (DSP to SoundWire codec playback).

ipc4_alh_snd_wire_stream_link_input_class 

SoundWire link input stream (SoundWire codec to DSP capture).

ipc4_alh_uaol_stream_link_output_class 

USB Audio Offload (UAOL) link output (DSP to UAOL controller).

ipc4_alh_uaol_stream_link_input_class 

USB Audio Offload (UAOL) link input (UAOL controller to DSP).

ipc4_ipc_output_class 

Inter-Processor Communication (IPC) output (DSP to host/peer).

ipc4_ipc_input_class 

Inter-Processor Communication (IPC) input (host/peer to DSP).

ipc4_i2s_multi_link_output_class 

I2S aggregated multi-gateway output.

ipc4_i2s_multi_link_input_class 

I2S aggregated multi-gateway input.

ipc4_gpio_class 

GPIO hardware gateway.

ipc4_spi_output_class 

SPI hardware gateway output.

ipc4_spi_input_class 

SPI hardware gateway input.

ipc4_max_connector_node_id_type 

Sentinel marking maximum connector node ID type.

◆ ipc4_direction_type

Audio data stream direction flags.

Enumerator
ipc4_playback 

Playback stream direction (host/memory to peripheral).

ipc4_capture 

Capture stream direction (peripheral to host/memory).

ipc4_bidirection 

Bidirectional stream direction.

◆ ipc4_gateway_type

Gateway peripheral category bitmask.

Enumerator
ipc4_gtw_none 

No gateway specified.

ipc4_gtw_host 

Host DMA gateway.

ipc4_gtw_dmic 

Digital microphone gateway.

ipc4_gtw_link 

HD/A link gateway.

ipc4_gtw_alh 

Audio Hub Link / SoundWire gateway.

ipc4_gtw_ssp 

SSP / I2S gateway.

ipc4_gtw_all 

Bitmask covering all gateway types.

Function Documentation

◆ get_alh_config_size()

static size_t get_alh_config_size ( const struct sof_alh_configuration_blob *  alh_blob)
inlinestatic

Calculate the serialized size of an ALH configuration blob.

Parameters
alh_blobPointer to the ALH configuration structure.
Returns
Size in bytes of the configuration blob.

◆ is_multi_gateway()

static bool is_multi_gateway ( const union ipc4_connector_node_id  node_id)
inlinestatic

Check if an IPC4 connector node ID corresponds to an aggregated multi-gateway.

Parameters
node_idGateway connector node ID.
Returns
True if the node represents an aggregated multi-gateway, false otherwise.