Re: [PATCH v2 5/5] ASoC: qcom: sc8280xp: Add shikra-iqs-evk compatible support

From: Prasad Kumpatla

Date: Wed Oct 28 2026 - 08:50:54 EST


+static const struct snd_soc_dapm_widget shikra_iqs_dapm_widgets[] = {
+ SND_SOC_DAPM_HP("Headphone", NULL),
+ SND_SOC_DAPM_MIC("Headset Mic", NULL),
+ SND_SOC_DAPM_MIC("Int Mic", NULL),
+ SND_SOC_DAPM_SPK("Speaker", NULL),
+};
+
+static const struct snd_kcontrol_new shikra_iqs_controls[] = {
+ SOC_DAPM_PIN_SWITCH("Headset Mic"),
+ SOC_DAPM_PIN_SWITCH("Headphone"),
+ SOC_DAPM_PIN_SWITCH("Int Mic"),
+ SOC_DAPM_PIN_SWITCH("Speaker"),
+};
+
struct qcom_snd_soc_common {
const char *driver_name;
const struct snd_soc_dapm_widget *dapm_widgets;
@@ -543,6 +557,19 @@ static const struct qcom_snd_soc_common shikra_cqs_priv_data = {
.codec_sysclk_set = true,
};
+static const struct qcom_snd_soc_common shikra_iqs_priv_data = {
+ .driver_name = "shikra",
+ .dapm_widgets = shikra_iqs_dapm_widgets,
+ .num_dapm_widgets = ARRAY_SIZE(shikra_iqs_dapm_widgets),
+ .controls = shikra_iqs_controls,
+ .num_controls = ARRAY_SIZE(shikra_iqs_controls),
+ .codec_dai_fmt = SND_SOC_DAIFMT_CBP_CFP |
+ SND_SOC_DAIFMT_NB_NF |
+ SND_SOC_DAIFMT_I2S,


With cpu_dai_fmt unset, the CPU DAI falls back to SND_SOC_DAIFMT_BP_FP, while codec_dai_fmt configures the codec as SND_SOC_DAIFMT_CBP_CFP.

Wouldn't this configure both sides as clock providers? Which side is intended to provide BCLK/FSYNC on IQS?

Thanks,
Prasad

+ .codec_sysclk_set = true,
+ .mi2s_bclk_enable = true,
+};
+
static const struct qcom_snd_soc_common sm8450_priv_data = {
.driver_name = "sm8450",
.dapm_widgets = sc8280xp_dapm_widgets,
@@ -611,6 +638,7 @@ static const struct of_device_id snd_sc8280xp_dt_match[] = {
{ .compatible = "qcom,sc8280xp-sndcard", .data = &sc8280xp_priv_data },
{ .compatible = "qcom,shikra-cqm-sndcard", .data = &shikra_cqm_priv_data },
{ .compatible = "qcom,shikra-cqs-sndcard", .data = &shikra_cqs_priv_data },
+ { .compatible = "qcom,shikra-iqs-sndcard", .data = &shikra_iqs_priv_data },
{ .compatible = "qcom,sm8450-sndcard", .data = &sm8450_priv_data },
{ .compatible = "qcom,sm8475-sndcard", .data = &sm8475_priv_data },
{ .compatible = "qcom,sm8550-sndcard", .data = &sm8550_priv_data },