Hi Everyone,
I am trying to write the i2s driver for the hikey modem i2s. I am currently making hacks in the current i2s driver of it.
I enabled the pins in the low-speed expansion header with the help of this post.
I have the Huawei honor kernel code which uses the same soc as hikey.
I am trying to understand the relationship between the i2s driver in the hikey and hissc.c codec driver in the mobile.
Till now everything is clear.
I got a doubt that, can we route the tinyplay data to the modem i2s?
As per the routings in that file, I am seeing nothing.
/* audio play route soc */
{"STEREO_DLINK_TEST_SEL MUX", "APB", "AUDIO_DLINK INPUT"},
{"STEREO_DLINK_L_EN PGA", NULL, "STEREO_DLINK_TEST_SEL MUX"},
{"STEREO_DLINK_R_EN PGA", NULL, "STEREO_DLINK_TEST_SEL MUX"},
{"DACL_MIXER_EN MIXER", "DACL_MIXER_IN2_MUTE", "STEREO_DLINK_L_EN PGA"},
{"DACR_MIXER_EN MIXER", "DACR_MIXER_IN2_MUTE", "STEREO_DLINK_R_EN PGA"},
{"DACL_AGC_EN PGA", NULL, "DACL_MIXER_EN MIXER"},
{"DACR_AGC_EN PGA", NULL, "DACR_MIXER_EN MIXER"},
.....
/* voice downlink route SoC(bt) */
{"S2_OL_MIXER_EN MIXER", "S2_OL_MIXER_IN1_MUTE", "DACL_MIXER_EN MIXER"},
{"S2_OL_MIXER_EN MIXER", "S2_OL_MIXER_IN2_MUTE", "DACR_MIXER_EN MIXER"},
{"S2_DOUT_LEFT_SEL MUX", "SRC3", "S2_OL_MIXER_EN MIXER"},
{"S2_DOUT_LEFT_SEL MUX", "VOICE_DLINK_PGA", "VOICE_DLINK_EN PGA"},
{"S2_DOUT_TEST_SEL MUX", "VOICE_DLINK_PGA_S2", "S2_DOUT_LEFT_SEL MUX"},
{"S2_DOUT_TEST_SEL MUX", "DACL_MIXER", "DACL_MIXER_EN MIXER"},
{"I2S1_2_3 OUTPUT", NULL, "S2_DOUT_TEST_SEL MUX"},
{"S1_IF_TX_ENA MIXER", "ADC_LR", "I2S1_2_3 INPUT"},
{"S1_IF_TX_ENA MIXER", "DAC_LR", "I2S1_2_3 INPUT"},
{"S1_IF_RX_ENA MIXER", "FM_L", "I2S1_2_3 INPUT"},
{"S1_IF_RX_ENA MIXER", "FM_R", "I2S1_2_3 INPUT"},
{"S1_IF_CLK_EN PGA", NULL, "S1_IF_TX_ENA MIXER"},
{"S1_IF_CLK_EN PGA", NULL, "S1_IF_RX_ENA MIXER"},
{"I2S1_2_3 OUTPUT", NULL, "S1_IF_CLK_EN PGA"},
{"S2_IF_TX_ENA MIXER", "DACL", "I2S1_2_3 INPUT"},
{"S2_IF_TX_ENA MIXER", "VOICE_DLINK", "I2S1_2_3 INPUT"},
{"S2_IF_RX_ENA MIXER", "VOICE_UL", "I2S1_2_3 INPUT"},
{"S2_IF_RX_ENA MIXER", "VOICE_UR", "I2S1_2_3 INPUT"},
{"S2_IF_CLK_EN PGA", NULL, "S2_IF_TX_ENA MIXER"},
{"S2_IF_CLK_EN PGA", NULL, "S2_IF_RX_ENA MIXER"},
{"I2S1_2_3 OUTPUT", NULL, "S2_IF_CLK_EN PGA"},
{"S3_IF_TX_ENA MIXER", "VOICE_DL", "I2S1_2_3 INPUT"},
{"S3_IF_TX_ENA MIXER", "VOICE_DR", "I2S1_2_3 INPUT"},
{"S3_IF_RX_ENA MIXER", "VOICE_UP", "I2S1_2_3 INPUT"},
{"S3_IF_CLK_EN PGA", NULL, "S3_IF_TX_ENA MIXER"},
{"S3_IF_CLK_EN PGA", NULL, "S3_IF_RX_ENA MIXER"},
{"I2S1_2_3 OUTPUT", NULL, "S3_IF_CLK_EN PGA"},
/* 3rd modem downlink */
{"THIRDMD_DLINK_DIN_SEL MUX", "APB_THIRDMD", "THIRDMD_DOWN INPUT"},
{"THIRDMD_DLINK_EN SWITCH", "THIRDMD_DLINK_EN", "THIRDMD_DLINK_DIN_SEL MUX"},
{"S3_DOUT_RIGHT_SEL MUX", "THIRDMD_DLINK_PGA", "THIRDMD_DLINK_EN SWITCH"},
{"S3_DOUT_RIGHT_SEL MUX", "ADCR_PGA", "ADCR_PGA_EN PGA"},
{"S3_DOUT_RIGHT_SEL MUX", "OTHER", "I2S1_2_3 INPUT"},
{"I2S1_2_3 OUTPUT", NULL, "S3_DOUT_RIGHT_SEL MUX"},
{"S3_DOUT_LEFT_SEL MUX", "THIRDMD_DLINK_PGA", "THIRDMD_DLINK_EN SWITCH"},
{"S3_DOUT_LEFT_SEL MUX", "ADCL_PGA", "ADCL_PGA_EN PGA"},
{"I2S1_2_3 OUTPUT", NULL, "S3_DOUT_LEFT_SEL MUX"},
Is there anything that I am missing or no possiblilty to route the tinyplay data to the modem i2s?
I am getting the clocks(lrclk and bclk as I configured those registers).
Only thing left here was that routing the stuff to modem i2s data.