From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 9A5CA431A34 for ; Wed, 15 Jul 2026 18:17:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784139478; cv=none; b=Z0comOgdaCuX6XC+yoxDI8n/dknyonths+OQJD0Gykv0vtwKQbPVgBruXbwNyvRVwTsxOzXSQKIcGpK01xXiFLF30b9mARL6Da4a+ft8lSrhX3S1dWHo1X54pBggqZgfyoje37PQBCZqlVlSMX1d4XwuM8dMqI5M+fwEjJL9I0g= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784139478; c=relaxed/simple; bh=hEc5PN66rn79NzpBQU3rsBRq7NY/VY/unhGC5vPHt+o=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=L2Eo/SgeS9CqrChIL8UTU5o945X4Gh5OJZBx/Msa7EGAiw3xJtQridWJTqYadG7cfKlmGkG7aIJsyN1fqYCPCn9UKnIJP5n1lOYKXVONOyO9fEf0X82ba+kGBcV814Y3rauTMtNm/FBOnrryq3b+EiE915XTchsv2lPVQAj2WkU= 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=KNqUGHPR; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=DaG2YYc9; arc=none smtp.client-ip=205.220.168.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="KNqUGHPR"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="DaG2YYc9" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66FHBX6s4098366 for ; Wed, 15 Jul 2026 18:17:53 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= oXiHdssRC7lJ3rFr84TqM3Lg5rx2BEdEQ8SGPePL4RU=; b=KNqUGHPRZ8l3/71Q fsTtTdl18Ka17s6x6kwIuA0aJnij+/snEsrSXrijNmiwX8NzhtxK/SoA0MVrhAYJ G9QHJs4v85zP6i+zmKPzoFjYU9CWa1A5fiudc4X8gcjDv8asxhsn3N5YeCvUYa1x fczCS5ypAHg/ndY+FkmJ6YvxHZXeEAtyxYMMLlyjQtgNPPTzJMk8Tw/YnWVDAXkl cLAK6FMUkqNZM/BNjmN+W+7hqJKwMKnyWk20peDiuv/beN6NeZfJdbF2dAgukCuH 8cieD2oaYkyjAc9ofbT0/Ueozg1mf/eXxgc3G0YXDQbmhBKomVWTXh52lOsEeqtB mu3d/g== Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fed060s6n-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 15 Jul 2026 18:17:52 +0000 (GMT) Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-c8924f4d0a4so8317868a12.2 for ; Wed, 15 Jul 2026 11:17:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784139472; x=1784744272; darn=vger.kernel.org; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:from:to:cc:subject:date:message-id:reply-to :content-type; bh=oXiHdssRC7lJ3rFr84TqM3Lg5rx2BEdEQ8SGPePL4RU=; b=DaG2YYc95p5gZ9pc181NmD/+wBHwSLeG6Ce03LfP6j8lxIsn2M7TYXSoQpnNms7St7 ElduMvgmdN936rzsPxCJcoTqARLe2tHk2M6jjK+vR6ONoHrAZY1evaQPTq/z48s0rogy eWndtBQNzxanlc6mpDo2zVPrl0suflVwqbC+qOxE4kMshTkyLt15UhlrLaICng5KAoTa j8CeCDJ5Ve2TTSlh6xmk5ESUffCkDt7p08OZfDlaTzV7mxLsJZQF4X+2a/wlyI1gX351 2yTBx26b3F8/nLpYgGCeYxIdixc9afkLjKbpRdYBxE8y5bK6tfOyEaIFcOzA5uUP+ktd RRdQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784139472; x=1784744272; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=oXiHdssRC7lJ3rFr84TqM3Lg5rx2BEdEQ8SGPePL4RU=; b=lWdGaTykYqcDMPuTChhzBOafr2VPve+AZ7csi5vNu8LLQ+1xDFhKsM4iLpla1qiJcL u4vXg6JlSs+5C6e6QA2fomYmM+s9p49XGOTO7ujTqPBsMH2l5O9+fXXYIkE0PQ1iZ0Hh FF9eBd7LJBWuJSeNu/l2ja4oSiDhVjS38VNgB1XvEOYu9YJSjSSrXntQDIrw747/dPBD mXIUY85wRIgy5HQm+FbDmgSgZ55Ilma1Rc5EnSfQerfcJKr/7RJyLfZuxITngzBz3g5b Qvf8Px1siYU/d3Hwp5iL+iwxUVXBqreuYcY61oAImDeSXvO18wKYpyWj30bq2lDq66g6 Jr6g== X-Forwarded-Encrypted: i=1; AHgh+RqFD4MLXqESFpnfN8MfdDLF+dylU96alQdXcDVbJlvNZL/JWwEhHafNgNQQo4Fp3vPooNgYjTMtRoE+Emw=@vger.kernel.org X-Gm-Message-State: AOJu0Yycreveob9EGa7qvvIzPJxb6uEabyJH3JobkbWmQsjvgg7rQT1q 8W4yd9J811IbvepND430LbfkklL3fAU34aAxqVVK5Tf6wSCibVCIyF4r6SbtiWIG2+Bwgrq9cOw wvExyVWm1N9l/pyJD5Khxm5b/xJvlxDjTNGqvnK82Ns0Z4Hgcj2H09SbeDCHqRegDRis= X-Gm-Gg: AfdE7cnYbGUfihVjhdtC1yldMvu1rEg8m5Lyva5olqsGcZv8ee58NLu2ffQPPdqksxa Fkt1ZB5wkXl/jcZcj0jrRuUdM52a30EdWPrZraujuFArzzSOQT69sWk6+qwkcIN8wGybNwUedFr sIJ3Qd7v8pIrEjqB09hIlpdOt+3DiSCzEOOh3dz00c9dE56U4tPuRvONMxlJxK/qP1QJrOrIZIL 4X/sm7VokWQnb5aDISwgjuRrV9bn1KxjshpHPKcSga6Y26p37so6D0zTVYWh0WMExMBKLELJqGj p8R0VSjFrYjINCNd3WcJ7c+7LtEH1mps5zD3Eh61Gqz50KZRjzV3pMWt18+DVQPwiid20qO9h2+ +WOXYKTIca0rDnuzC/bJuyw6lUMCyj81hSfDJr5MzA4B+9Ns8Jg== X-Received: by 2002:a05:6a21:2291:b0:3b4:6f7e:d0f9 with SMTP id adf61e73a8af0-3c36c0f6eb4mr4393106637.3.1784139472055; Wed, 15 Jul 2026 11:17:52 -0700 (PDT) X-Received: by 2002:a05:6a21:2291:b0:3b4:6f7e:d0f9 with SMTP id adf61e73a8af0-3c36c0f6eb4mr4393064637.3.1784139471373; Wed, 15 Jul 2026 11:17:51 -0700 (PDT) Received: from [192.168.1.5] ([122.164.226.74]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-3140e4fcd31sm3878330eec.4.2026.07.15.11.17.44 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 15 Jul 2026 11:17:50 -0700 (PDT) Message-ID: <7c905a1c-f65e-4ef5-a65c-2be83ff820ba@oss.qualcomm.com> Date: Wed, 15 Jul 2026 23:47:42 +0530 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 6/6] arm64: dts: qcom: qcs6490-rubikpi3: Add audio support To: Hongyang Zhao , Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Daniel Drake , Katsuhiro Suzuki , Matteo Martelli , Binbin Zhou , Srinivas Kandagatla , Jaroslav Kysela , Takashi Iwai , Bjorn Andersson , Konrad Dybcio Cc: Neil Armstrong , Dmitry Baryshkov , Roger Shimizu , linux-sound@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org References: <20260715-rubikpi-next-20260605-v2-0-67601d7a8581@thundersoft.com> <20260715-rubikpi-next-20260605-v2-6-67601d7a8581@thundersoft.com> Content-Language: en-US From: Mohammad Rafi Shaik In-Reply-To: <20260715-rubikpi-next-20260605-v2-6-67601d7a8581@thundersoft.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE1MDE4MiBTYWx0ZWRfX/6gtr3q3x18o C+8MeiwjMHUQVEuf1FAPQkYiXPO45H9E4tBg3wR8Uf9YpXs9pABEwlsH1WbCAL0ZQ6+1BEhVl+i hzq3CUVxqxVhcdhXZ/ivtbhJXbddwaY= X-Proofpoint-GUID: Pcsk_uc1lUoFTBS__Tfk2LnhNCENxxZ8 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE1MDE4MiBTYWx0ZWRfX3OgvhCxjLt4I G3gbCO0FQzUcls2FFAj/Rd7lzM9KC37+N0yEvFCSKqXuk294pYv6E+rogeA0hEbu9l1Rq+zR46K A/L4EUysadjdOOaMOZM7/et90oV4VEUVxJIQjuyMe1lACOFG6FmJZPwBdOrhWzo5QlfnddGpx8M kV7i0DeVGq/2e1tNXvXxalHLJb/W4aEHhIT/IyIF3jLAxmfx9o1ujtcJsPvDZN/omwUfAbrFhkC RTYuh0pVMwaOWzfPEtOckdXIxx8+qnuNWuQ1Up9Afnb79hiuYLyY1VpTf+2FoSrP8jgLpy61z/7 UncJNLsV6qFBFkyE/riRiJJ33xpP9KQrvjIhFhqyMZ0PAsW4qSbllodYLz9kcTsCoWINxx5S5fi d8g+hkEJCA1V+T8H/JRoy1cEZABG44C3mDX5yvAUXQMngvjVzWprWDKVctGz1iFPsV+ZSQ/z6cm itAa+zv71QsvYCu4ogA== X-Authority-Analysis: v=2.4 cv=Xb25Co55 c=1 sm=1 tr=0 ts=6a57ced0 cx=c_pps a=rz3CxIlbcmazkYymdCej/Q==:117 a=n9TYrBAzqQq97mF55NlG6Q==:17 a=IkcTkHD0fZMA:10 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=Wdb1h0LgAAAA:8 a=0R1nZIO2IiU70gt1Wv8A:9 a=QEXdDO2ut3YA:10 a=bFCP_H2QrGi7Okbo017w:22 a=j5gyrzqu0rbr1vhfHjzO:22 X-Proofpoint-ORIG-GUID: Pcsk_uc1lUoFTBS__Tfk2LnhNCENxxZ8 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-15_04,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 spamscore=0 priorityscore=1501 suspectscore=0 bulkscore=0 impostorscore=0 malwarescore=0 adultscore=0 lowpriorityscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607150182 On 7/15/2026 7:32 PM, Hongyang Zhao wrote: > RubikPi 3 uses the AudioReach firmware path for its external audio > interfaces. The primary MI2S interface connects to an ES8316 codec for > headset playback and capture, while the quaternary MI2S interface feeds > the LT9611 HDMI bridge. > > Enable the AudioReach description and add the three DAI links. Describe > the primary MI2S MCLK and bit clock inputs under the backend DAI so the > machine driver can control them. Add the primary and quaternary pin > configurations to the sound card and make the LT9611 codec DAI > addressable. > > Describe the ES8316, its 3.3 V enable supply, 19.2 MHz MCLK and inverted > GPIO jack-detect signal. Route the codec headphone outputs and microphone > input to the board headset connector. > > Signed-off-by: Hongyang Zhao > --- > .../boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts | 159 +++++++++++++++++++++ > 1 file changed, 159 insertions(+) > > diff --git a/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts b/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts > index d8a9a7e47bdc..7b010823d692 100644 > --- a/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts > +++ b/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts > @@ -19,6 +19,7 @@ > #include "pm7325.dtsi" > #include "pm8350c.dtsi" /* PM7350C */ > #include "pmk8350.dtsi" /* PMK7325 */ > +#include "qcs6490-audioreach.dtsi" > > /delete-node/ &adsp_mem; > /delete-node/ &cdsp_mem; > @@ -128,6 +129,23 @@ fan0: pwm-fan { > pinctrl-names = "default"; > }; > > + vreg_es8316_3v3: regulator-es8316-3v3 { > + compatible = "regulator-fixed"; > + > + regulator-name = "vreg_es8316_3v3"; > + regulator-min-microvolt = <3300000>; > + regulator-max-microvolt = <3300000>; > + > + gpio = <&tlmm 117 GPIO_ACTIVE_HIGH>; > + enable-active-high; > + > + pinctrl-0 = <&es8316_power_on>; > + pinctrl-names = "default"; > + > + regulator-always-on; > + regulator-boot-on; > + }; > + > vreg_eth_1v8: regulator-eth-1v8 { > compatible = "regulator-fixed"; > > @@ -727,6 +745,26 @@ &gpu_zap_shader { > firmware-name = "qcom/qcs6490/a660_zap.mbn"; > }; > > +&i2c0 { > + status = "okay"; > + > + es8316: audio-codec@11 { > + compatible = "everest,es8316"; > + reg = <0x11>; > + #sound-dai-cells = <0>; > + > + clocks = <&q6prmcc LPASS_CLK_ID_MCLK_1 LPASS_CLK_ATTRIBUTE_COUPLE_NO>; > + clock-names = "mclk"; > + > + interrupts-extended = <&tlmm 63 IRQ_TYPE_LEVEL_HIGH>; > + > + pinctrl-0 = <&es8316_jack_detect>; > + pinctrl-names = "default"; > + > + everest,jack-detect-inverted; > + }; > +}; > + > /* Pin 3, 5 in 40-pin connector */ > &i2c1 { > status = "okay"; > @@ -740,6 +778,7 @@ &i2c9 { > lt9611_codec: hdmi-bridge@39 { > compatible = "lontium,lt9611"; > reg = <0x39>; > + #sound-dai-cells = <1>; > > interrupts-extended = <&tlmm 20 IRQ_TYPE_EDGE_FALLING>; > reset-gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>; > @@ -978,6 +1017,27 @@ &pon_resin { > status = "okay"; > }; > > +&q6apmbedai { > + #address-cells = <1>; > + #size-cells = <0>; > + > + dai@10 { > + reg = ; > + clocks = <&q6prmcc LPASS_CLK_ID_MCLK_1 LPASS_CLK_ATTRIBUTE_COUPLE_NO>, Drop this; it is already enabled from the codec node. Why is the same clock being enabled in two places? > + <&q6prmcc LPASS_CLK_ID_PRI_MI2S_IBIT LPASS_CLK_ATTRIBUTE_COUPLE_NO>; > + clock-names = "mclk", > + "bclk"; > + }; > + > + dai@11 { > + reg = ; > + clocks = <&q6prmcc LPASS_CLK_ID_MCLK_1 LPASS_CLK_ATTRIBUTE_COUPLE_NO>, > + <&q6prmcc LPASS_CLK_ID_PRI_MI2S_IBIT LPASS_CLK_ATTRIBUTE_COUPLE_NO>; > + clock-names = "mclk", > + "bclk"; > + }; > +}; > + > &qupv3_id_0 { > firmware-name = "qcom/qcm6490/qupv3fw.elf"; > > @@ -1014,6 +1074,69 @@ &sdhc_2 { > status = "okay"; > }; > > +&sound { > + compatible = "thundercomm,qcs6490-rubikpi3-sndcard"; > + model = "QCS6490-Thundercomm-RubikPi3"; > + > + pinctrl-0 = <&mi2s0_data0>, <&mi2s0_data1>, <&mi2s0_mclk>, > + <&mi2s0_sclk>, <&mi2s0_ws>, > + <&lpass_qua_mi2s_sclk>, <&lpass_qua_mi2s_ws>, > + <&lpass_qua_mi2s_data>; > + pinctrl-names = "default"; > + > + audio-routing = "Headphone Jack", "HPOL", > + "Headphone Jack", "HPOR", > + "MIC2", "Mic Jack"; > + > + mi2s-playback-dai-link { > + link-name = "MI2S-LPAIF-RX-PRIMARY"; > + What does "MI2S-LPAIF-RX-PRIMARY" represents? > + codec { > + sound-dai = <&es8316>; > + }; > + > + cpu { > + sound-dai = <&q6apmbedai PRIMARY_MI2S_RX>; > + }; > + > + platform { > + sound-dai = <&q6apm>; > + }; > + }; > + > + mi2s-capture-dai-link { > + link-name = "MI2S-LPAIF-TX-PRIMARY"; > + > + codec { > + sound-dai = <&es8316>; > + }; > + > + cpu { > + sound-dai = <&q6apmbedai PRIMARY_MI2S_TX>; > + }; > + > + platform { > + sound-dai = <&q6apm>; > + }; > + }; > + > + quaternary-mi2s-playback-dai-link { > + link-name = "MI2S-LPAIF_RXTX-RX-PRIMARY"; > + > + codec { > + sound-dai = <<9611_codec 0>; > + }; > + > + cpu { > + sound-dai = <&q6apmbedai QUATERNARY_MI2S_RX>; > + }; > + > + platform { > + sound-dai = <&q6apm>; > + }; > + }; > +}; > + > /* Pin 19, 21, 23, 24 in 40-pin connector */ > &spi12 { > status = "okay"; > @@ -1228,6 +1351,29 @@ &sdc2_data { > drive-strength = <10>; > }; > > +&lpass_tlmm { > + lpass_qua_mi2s_sclk: qua-mi2s-sclk-state { > + pins = "gpio0"; > + function = "qua_mi2s_sclk"; > + drive-strength = <8>; > + bias-disable; > + }; > + > + lpass_qua_mi2s_ws: qua-mi2s-ws-state { > + pins = "gpio1"; > + function = "qua_mi2s_ws"; > + drive-strength = <8>; > + bias-disable; > + }; > + > + lpass_qua_mi2s_data: qua-mi2s-data-state { > + pins = "gpio2", "gpio3", "gpio4"; > + function = "qua_mi2s_data"; > + drive-strength = <8>; > + bias-disable; > + }; > +}; > + > &tlmm { > pcie1_reset_n: pcie1-reset-n-state { > pins = "gpio2"; > @@ -1366,6 +1512,12 @@ m2_vcc_pin: m2-vcc-state { > input-disable; > }; > > + es8316_jack_detect: es8316-jack-detect-state { > + pins = "gpio63"; > + function = "gpio"; > + bias-disable; > + }; > + > lt9611_vcc_pin: lt9611-vcc-pin-state { > pins = "gpio83"; > function = "gpio"; > @@ -1395,6 +1547,13 @@ pcie0_wake_n: pcie0-wake-n-state { > bias-pull-up; > }; > > + es8316_power_on: es8316-power-on-state { > + pins = "gpio117"; > + function = "gpio"; > + drive-strength = <2>; > + bias-pull-down; > + }; > + > wifi_power_on: wifi-power-on-state { > pins = "gpio125"; > function = "gpio"; >