From nobody Thu Apr 9 13:32:58 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 76B60364026 for ; Mon, 9 Mar 2026 06:51:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773039116; cv=none; b=Ty1LZj8qFp2jbwAuva07VESHw+d7Hz8AZDUS0NlbfTHGItEZkKG0X76tZ+KqNhVGWhxFR/HU6ud28VERpy4c7m5Vf0NH4Ljpn8wQrHCeAqoB5UuUhJJP+FDTgnMC/kSVwRaCX1sHoDHpdof19yf1ustf+jhv+57n77jMAALTFIQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773039116; c=relaxed/simple; bh=nhF962DJ35ZnGtg1Nyn29ALPxXwZIXyRUxas4dLT8SI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rAqZkQJIQZoXtVX1x0nIciSDcPG65r4Dk6InB2eRnwDu1ynKTAG2j4gyS3PfH2fgqsV1nrjynrSD9tJWNuYTqel6KVlVQoVKKQEJSuVjQNbKWNKYWfJ6OWf79KdnUbNum8nQfduyZUwTmYfDrFKdfy8bXBfEk1N+k3sSDKqXfBM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=lW/VnAo5; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=WvP0tc2P; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="lW/VnAo5"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="WvP0tc2P" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6296hkSm3979487 for ; Mon, 9 Mar 2026 06:51:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=ZsyVHtwoLDk /xLA/rwLKIW8JVwySpk++YyIKH0BTOlA=; b=lW/VnAo5Hr0q6imX9TYhL5xMsck /HpKbCcMkEvJc97F8+kf/Ny2pvNOGkj+h1AkojpkbUvjPUBXOb9dP/GF0VIJoNlS rrtqPitUgAlQ1Vn3ERcnwkuRoZJIIb6c2E67F4LYu5ejOlcnjhg9Uw/RcmQXYTup ZQmDH0f2za/AFhUPyv48dBc4NgnqR0slYgTliPFrK6U1R1HWFZ641NHwIp+nfjvm mfk6Stg/cDJn+hKSu5XOfiW9TRWt27IbrsJx9AH/6nfTSRWajZCbBILEiGKOD3Ft HdruT758i/6ugV+imoJ0A2bqr28qfD6vm60C7RtbeZTE5/Vv2zc5kOlFTgg== Received: from mail-qk1-f198.google.com (mail-qk1-f198.google.com [209.85.222.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4crb14vbj4-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 06:51:53 +0000 (GMT) Received: by mail-qk1-f198.google.com with SMTP id af79cd13be357-8cd85e08fddso817544785a.1 for ; Sun, 08 Mar 2026 23:51:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773039113; x=1773643913; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=ZsyVHtwoLDk/xLA/rwLKIW8JVwySpk++YyIKH0BTOlA=; b=WvP0tc2PFHk0JgcIQ8BHohoUjqmdXEAEdQwv3dKEfSJt6ZNGsQ9xDk3hF1eqiyOJks rxgf+l0XZrncZ41mqWHBRl8bNyHor1HdEzwuwVOwVha2/ntYsC3q90BL4cJQ70lwTMrV inBvgW1LOy7O7dRe+/WRuYFKw3OjO+wl6WCCkfxxAQOYkavWrPwOPSJW1aCfOLViVVI0 VZzvWJm0R+hYKJ9bkWRV/bPqfc7+hpmSlqUqTJ2MtbriLwX8KnbdIhTa70FR5ll83dEo eZckQrEclb8uywN4QBX3Tb4ssGP1UxGYvnhABS8N2ihwQ/PZmChpjWHHSs3tq/wi2OSe xigw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773039113; x=1773643913; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ZsyVHtwoLDk/xLA/rwLKIW8JVwySpk++YyIKH0BTOlA=; b=cplEUMVbPwp68rGOb3f1pceGccDr45SMpMRm7qTBCMVP5tTe9a43zCj9kscKutGzku fIAkhcxJ0UTZJfL50Sf8Q6v3DL33UaIvkoGGsJ0UgJ5bTV80gLJeBeaWehvWmTPcLfRG wapYuB+Fd040WZAaMw4tNHW36bRa/I9/cOygWf753KO2V8V/VPKlbVTk9qmOA4ajPJla RcJ1cbxjIZRwFypgdAS3WGSYLSkYTAEygWHcBwIJHpX9TWLzDl2LUnLNxsWqQrdXzKaa fyuIRYX6nIQjHXMFgyE5IKFP1fjJhOoLIxIu3oxygc2wk22oesXddHTW/jj0BWds7l9z 7CXQ== X-Forwarded-Encrypted: i=1; AJvYcCWgGEZphhdVRzQnTtg90GYjf9rK+DeafCbEW5wzBmFyQfScqZ5iaG9+R+ZqQTC8Hx1f1KYuqsD6UVSn0EM=@vger.kernel.org X-Gm-Message-State: AOJu0YwJbwA5hKQa9lQmNVIkxcd+/VktkJM8h+SR2dq1H3tTkojcdm5r j7Np/lZAPqeZs01eMZNsnELPExCrEiElBMdJXq8NdhNaqQnSp0CWEb+J7q4PdJtNMi/Zbrs3k06 4rMRpqQT5wob8UKYY55LpW3oUUg+W3Cd2Rix5cvTV/Ai3ts/ZUBt4wYQZOUmPYE8yV38= X-Gm-Gg: ATEYQzylXKqyhK43eiAiADTQt7M069Vt86xpO/5YEOaSMpzcA8WjFkKu6pKHaU+U94Y FhGWf0FHXnOJT4xiK4rGf3ijer92D2CiW7NkGqWc6PG5TJPWKTU/yRKuRAOvUyMA4IGfLgq615P n0Nw7qpxkkly+d+8hxtUMitl7kES2fqg7LO9eMNMXs+X0hAmu8dtSTmsr51vcafpm1bRMuP7M5T AdlK8sQ4b5mq0mgwwk9SspMRX7eAsc+O8Mv/9/NvF/5zEf0gYffVGJeqFNAebuNKmH/zSp0xYB1 YC3Z4o+9cTRHH+BT45uUYzLZpMsc2CnRBFfF7waM9BJ/SEWZ7Bl1UAgDuKtsst4bZIveRMKUxaT v7M2gAqP0JilUc4gIUhloA0DC8sj6fzjqghEUorWbNrLaKVxbqov5vbY= X-Received: by 2002:a05:620a:4056:b0:8cb:4d9b:6b4d with SMTP id af79cd13be357-8cd6d3ea059mr1260359285a.10.1773039112848; Sun, 08 Mar 2026 23:51:52 -0700 (PDT) X-Received: by 2002:a05:620a:4056:b0:8cb:4d9b:6b4d with SMTP id af79cd13be357-8cd6d3ea059mr1260357485a.10.1773039112464; Sun, 08 Mar 2026 23:51:52 -0700 (PDT) Received: from localhost.localdomain ([5.133.47.210]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48529f01997sm80449975e9.14.2026.03.08.23.51.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 08 Mar 2026 23:51:51 -0700 (PDT) From: Srinivas Kandagatla To: broonie@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: mohammad.rafi.shaik@oss.qualcomm.com, linux-sound@vger.kernel.org, lgirdwood@gmail.com, perex@perex.cz, tiwai@suse.com, johan@kernel.org, dmitry.baryshkov@oss.qualcomm.com, konrad.dybcio@oss.qualcomm.com, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, mailingradian@gmail.com, Srinivas Kandagatla Subject: [PATCH v5 08/13] ASoC: qcom: q6dsp: Add Senary MI2S audio interface support Date: Mon, 9 Mar 2026 06:51:32 +0000 Message-ID: <20260309065137.949053-9-srinivas.kandagatla@oss.qualcomm.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260309065137.949053-1-srinivas.kandagatla@oss.qualcomm.com> References: <20260309065137.949053-1-srinivas.kandagatla@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=IYSKmGqa c=1 sm=1 tr=0 ts=69ae6e09 cx=c_pps a=qKBjSQ1v91RyAK45QCPf5w==:117 a=ZsC4DHZuhs/kKio7QBcDoQ==:17 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=aBFzMgE2VLA-TvnT3JMA:9 a=NFOGd7dJGGMPyQGDc5-O:22 X-Proofpoint-GUID: s-AEyCnUTE8DMtir0ur8HjnOqtqqV6U8 X-Proofpoint-ORIG-GUID: s-AEyCnUTE8DMtir0ur8HjnOqtqqV6U8 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDA2MSBTYWx0ZWRfX4Tdhu5SPTJPi VsfD6u2CpfEsTCNeqKlKGXwQa/BOGQwGpmHUN86O7+9sVrSRxJLxNyJeVrBdgp9nEr2MbO/XUhb kNcs2nvWy3TlWSb5KBC0AIRIOudwjnka6skD+X8dIDxl4RSFjtXab/zOwk4c2ef68HuSYINd+ON 8YB5jGbeyNwPdsbJV3gZIBmDZsjb2rN8ZyN5//jncWF3IIRscvg8bow1sAHtHxUhmkCeT3HX1fr C24hN+drCL6DIwDrHLIIkN/uhG0K9zcPG1bATZ3OsMsm38HJzNAXq6dXr5VLCDtIQBpPKMKpi+o RmhlJYVlAMkuyCTheHCHdwgDCFO7WIbJchagfPKWNqxlM/WxaLSO+iBnFbWfbk7PfbbiRqi4uX0 eFQ+7fmSR8I98FjN8ddW/RJnFv+tastu9ufN7HsnXy/ZMc46qficYajmqoC8QSEgNWf6dfSL6e2 D4AO+9T0m6Bl6wMKJkw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_02,2026-03-06_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 suspectscore=0 lowpriorityscore=0 spamscore=0 impostorscore=0 phishscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090061 Content-Type: text/plain; charset="utf-8" From: Mohammad Rafi Shaik Introduces support for the Senary MI2S audio interface in the Qualcomm q6dsp. Add new AFE port IDs for Senary MI2S RX and TX and include the necessary mappings in the port configuration to allow audio routing over the Senary MI2S interface. Signed-off-by: Mohammad Rafi Shaik Signed-off-by: Srinivas Kandagatla Tested-by: Val Packett # sm7325-motorola-dubai --- sound/soc/qcom/qdsp6/q6afe-dai.c | 6 +++++ sound/soc/qcom/qdsp6/q6afe.c | 6 +++++ sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c | 29 ++++++++++++++++++++++++ 3 files changed, 41 insertions(+) diff --git a/sound/soc/qcom/qdsp6/q6afe-dai.c b/sound/soc/qcom/qdsp6/q6afe-= dai.c index 0f47aadaabe1..a0d21034a626 100644 --- a/sound/soc/qcom/qdsp6/q6afe-dai.c +++ b/sound/soc/qcom/qdsp6/q6afe-dai.c @@ -409,6 +409,7 @@ static int q6afe_dai_prepare(struct snd_pcm_substream *= substream, q6afe_slim_port_prepare(dai_data->port[dai->id], &dai_data->port_config[dai->id].slim); break; + case SENARY_MI2S_RX ... SENARY_MI2S_TX: case QUINARY_MI2S_RX ... QUINARY_MI2S_TX: case PRIMARY_MI2S_RX ... QUATERNARY_MI2S_TX: rc =3D q6afe_i2s_port_prepare(dai_data->port[dai->id], @@ -540,6 +541,7 @@ static const struct snd_soc_dapm_route q6afe_dapm_route= s[] =3D { {"Tertiary MI2S Playback", NULL, "TERT_MI2S_RX"}, {"Quaternary MI2S Playback", NULL, "QUAT_MI2S_RX"}, {"Quinary MI2S Playback", NULL, "QUIN_MI2S_RX"}, + {"Senary MI2S Playback", NULL, "SEN_MI2S_RX"}, =20 {"Primary TDM0 Playback", NULL, "PRIMARY_TDM_RX_0"}, {"Primary TDM1 Playback", NULL, "PRIMARY_TDM_RX_1"}, @@ -636,6 +638,7 @@ static const struct snd_soc_dapm_route q6afe_dapm_route= s[] =3D { {"SEC_MI2S_TX", NULL, "Secondary MI2S Capture"}, {"QUAT_MI2S_TX", NULL, "Quaternary MI2S Capture"}, {"QUIN_MI2S_TX", NULL, "Quinary MI2S Capture"}, + {"SEN_MI2S_TX", NULL, "Senary MI2S Capture"}, =20 {"WSA_CODEC_DMA_RX_0 Playback", NULL, "WSA_CODEC_DMA_RX_0"}, {"WSA_CODEC_DMA_TX_0", NULL, "WSA_CODEC_DMA_TX_0 Capture"}, @@ -770,6 +773,8 @@ static const struct snd_soc_dapm_widget q6afe_dai_widge= ts[] =3D { SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_TX", NULL, 0, SND_SOC_NOPM, 0, 0), SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_TX", NULL, 0, SND_SOC_NOPM, 0, 0), SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_TX", NULL, 0, SND_SOC_NOPM, 0, 0), + SND_SOC_DAPM_AIF_IN("SEN_MI2S_RX", NULL, 0, SND_SOC_NOPM, 0, 0), + SND_SOC_DAPM_AIF_OUT("SEN_MI2S_TX", NULL, 0, SND_SOC_NOPM, 0, 0), SND_SOC_DAPM_AIF_IN("QUIN_MI2S_RX", NULL, 0, SND_SOC_NOPM, 0, 0), SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_TX", NULL, @@ -1037,6 +1042,7 @@ static void of_q6afe_parse_dai_data(struct device *de= v, =20 switch (id) { /* MI2S specific properties */ + case SENARY_MI2S_RX ... SENARY_MI2S_TX: case QUINARY_MI2S_RX ... QUINARY_MI2S_TX: case PRIMARY_MI2S_RX ... QUATERNARY_MI2S_TX: priv =3D &data->priv[id]; diff --git a/sound/soc/qcom/qdsp6/q6afe.c b/sound/soc/qcom/qdsp6/q6afe.c index 43d877322bae..7bd40e32f758 100644 --- a/sound/soc/qcom/qdsp6/q6afe.c +++ b/sound/soc/qcom/qdsp6/q6afe.c @@ -130,6 +130,8 @@ #define AFE_PORT_ID_QUATERNARY_MI2S_TX 0x1007 #define AFE_PORT_ID_QUINARY_MI2S_RX 0x1016 #define AFE_PORT_ID_QUINARY_MI2S_TX 0x1017 +#define AFE_PORT_ID_SENARY_MI2S_RX 0x1018 +#define AFE_PORT_ID_SENARY_MI2S_TX 0x1019 =20 /* Start of the range of port IDs for TDM devices. */ #define AFE_PORT_ID_TDM_PORT_RANGE_START 0x9000 @@ -718,6 +720,10 @@ static struct afe_port_map port_maps[AFE_PORT_MAX] =3D= { QUINARY_MI2S_RX, 1, 1}, [QUINARY_MI2S_TX] =3D { AFE_PORT_ID_QUINARY_MI2S_TX, QUINARY_MI2S_TX, 0, 1}, + [SENARY_MI2S_RX] =3D { AFE_PORT_ID_SENARY_MI2S_RX, + SENARY_MI2S_RX, 1, 1}, + [SENARY_MI2S_TX] =3D { AFE_PORT_ID_SENARY_MI2S_TX, + SENARY_MI2S_TX, 0, 1}, [PRIMARY_TDM_RX_0] =3D { AFE_PORT_ID_PRIMARY_TDM_RX, PRIMARY_TDM_RX_0, 1, 1}, [PRIMARY_TDM_TX_0] =3D { AFE_PORT_ID_PRIMARY_TDM_TX, diff --git a/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c b/sound/soc/qcom/qdsp= 6/q6dsp-lpass-ports.c index d31388ed3ccf..e5cd82f77b55 100644 --- a/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c +++ b/sound/soc/qcom/qdsp6/q6dsp-lpass-ports.c @@ -519,6 +519,34 @@ static struct snd_soc_dai_driver q6dsp_audio_fe_dais[]= =3D { }, .id =3D QUINARY_MI2S_TX, .name =3D "QUIN_MI2S_TX", + }, { + .playback =3D { + .stream_name =3D "Senary MI2S Playback", + .rates =3D SNDRV_PCM_RATE_8000_192000, + .formats =3D SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min =3D 1, + .channels_max =3D 8, + .rate_min =3D 8000, + .rate_max =3D 192000, + }, + .id =3D SENARY_MI2S_RX, + .name =3D "SEN_MI2S_RX", + }, { + .capture =3D { + .stream_name =3D "Senary MI2S Capture", + .rates =3D SNDRV_PCM_RATE_8000_192000, + .formats =3D SNDRV_PCM_FMTBIT_S16_LE | + SNDRV_PCM_FMTBIT_S24_LE | + SNDRV_PCM_FMTBIT_S32_LE, + .channels_min =3D 1, + .channels_max =3D 8, + .rate_min =3D 8000, + .rate_max =3D 192000, + }, + .id =3D SENARY_MI2S_TX, + .name =3D "SEN_MI2S_TX", }, Q6AFE_MI2S_RX_DAI("LPI RX0", LPI_MI2S_RX_0), Q6AFE_MI2S_RX_DAI("LPI RX1", LPI_MI2S_RX_1), @@ -680,6 +708,7 @@ struct snd_soc_dai_driver *q6dsp_audio_ports_set_config= (struct device *dev, case SLIMBUS_0_RX ... SLIMBUS_6_TX: q6dsp_audio_fe_dais[i].ops =3D cfg->q6slim_ops; break; + case SENARY_MI2S_RX ... SENARY_MI2S_TX: case QUINARY_MI2S_RX ... QUINARY_MI2S_TX: case PRIMARY_MI2S_RX ... QUATERNARY_MI2S_TX: case LPI_MI2S_RX_0 ... LPI_MI2S_TX_4: --=20 2.47.3