IMX6的相关音频结构体的定义

在IMX上的音频接口主要有3种接口,分别为SSI, SPDIF, ESAI 等;platform 连接 codec 与 cpu 的驱动时,通过内核函数结构体static struct snd_soc_dai_link 来设置两边的接口;SSI接口中,IMX6中的SSI接口有3对可以接着路I2S;三路SSI可以每路SSI 单独作为一个声卡,也可以是一个声卡包含多个设备;以下的定义模式是一个声卡多个设备;相关结构体成员定义如下;static struct snd_soc_dai_link imx_alc5642_dai[] = {#if 1{.name= "HiFi_0",.stream_name= "HiFi_0",.codec_dai_name= "alc5642_0",.cpu_dai_name= "imx-ssi.1", //代表的是同一个声卡中的第一个设备与SSI1相连;I2SX X代表0,1,2;ssi.1代表SSI1.codec_name= "alc5642.2-001c", //alc5642.2代表的是用I2C2来控制codec,其I2C地址为0x1c;I2CX, X代表的是0,1,2,开始;.platform_name= "imx-pcm-audio.1", //代表的连接接口与SSI来对应,用哪路SSI,其后面的数字就是几;.init= imx_3stack_alc5642_init,.ops= &imx_alc5642_hifi_ops,},#endif{.name= "HiFi_1",.stream_name= "HiFi_1",.codec_dai_name= "alc5642_1",.cpu_dai_name= "imx-ssi.2", //代表的是同一个声卡中的第一个设备与SSI1相连;I2SX X代表0,1,2;ssi.2代表SSI2.codec_name= "alc5642.2-001c", //alc5642.2代表的是用I2C2来控制codec,其I2C地址为0x1c;I2CX, X代表的是0,1,2,开始;.platform_name= "imx-pcm-audio.2", //代表的是与SSI来对应,用哪路SSI,其后面的数字就是几;.init= imx_3stack_alc5642_init_1,.ops= &imx_alc5642_hifi_ops,},};ESAI接口中,IMX6的ESAI接口为多声道的接口;如5.1声道,7.1声道,,按独立的I2S来考虑的话,其可接三路I2S;相关结构体成员定义如下;static struct snd_soc_dai_link imx_3stack_dai[] = {{.name = "HiFi",.stream_name = "HiFi",.codec_dai_name = "AK7757",.codec_name = "ak7757-i2c.1-0054", //代表的是用I2C2来控制codec,其I2C地址为0x1c;I2CX, X代表的是0,1,2,开始;.cpu_dai_name = "imx-esai.0", //代表的是同一个声卡中的第一个设备与ESAI0相连;ESAIX X代表0,1,2; esai.0 代表ESAI0,其实IMX6上只有一个ESAI接口.platform_name = "imx-pcm-audio.3", //代表的是与ESAI来对应,在其连接的连接接口文件中将其排成3为了是不与SSI进行冲突;.init = imx_3stack_ak7757_init,.ops = &imx_3stack_surround_ops,},};

背着背包的路上,看过许多人,

IMX6的相关音频结构体的定义

相关文章:

你感兴趣的文章:

标签云: