From nobody Sun Oct 5 00:11:59 2025 Received: from smtpbguseast2.qq.com (smtpbguseast2.qq.com [54.204.34.130]) (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 DF6F022F755; Mon, 11 Aug 2025 14:04:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=54.204.34.130 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754921102; cv=none; b=BiudKIy0mf6+xUOnC0cfSZB98A4E3pI9btFeqiHJ3xd1sB7tZjNZQw082G0A0GBTZb+DucYEgiAIZothDoeSyHujGVwqmhNJdNvFV38YgamiYiCS/Awd4P6Kix0hQt7a4+BkTugwFEf7753q4lcX7FviJ9NhFK+Pw/WrRNU69Vw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754921102; c=relaxed/simple; bh=WFzD3JxmXZH2A/HVSLYZQ1zRbumApEBwgTZWddNtTRo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tYwGn4HZ/c14jZpzViWJRGX5gVbQfBzVC+PBxDcX8+VQiQYuYdN9jkjKYSLDpMhdB8Tqr+z6YBnj/FsJG50XPghyhKEbc7KFDE1aSQiNabuGl4PHh8I/zCZnftl63spT0hokh4sgMYIGPTiXeBiyhgFGcIWywaJRKcIkAE0aHNo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=linux.spacemit.com; spf=none smtp.mailfrom=linux.spacemit.com; dkim=pass (1024-bit key) header.d=linux.spacemit.com header.i=@linux.spacemit.com header.b=vEnDzEeK; arc=none smtp.client-ip=54.204.34.130 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=linux.spacemit.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.spacemit.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.spacemit.com header.i=@linux.spacemit.com header.b="vEnDzEeK" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.spacemit.com; s=mxsw2412; t=1754921082; bh=VnVbQJFTKT9KqK9RrK42D0ZPWUeaI/Fw5R+S1EtpFzg=; h=From:Date:Subject:MIME-Version:Message-Id:To; b=vEnDzEeKJVVJlOePPf0OIiMV/SZ5zmaY5C4Rpcsk0Tfo+T3HKFq3N7DD/U7foA77m cWnaaJ5WY3OcXuy7CwJm8SSAruGNaRxJwKE+6xDq9XanMuJEgeVKhGdL8yRWBrjadu lvGgy/hUy8VPkrzj2lkMQcNDK7Uy9eIcAW1sH+Tg= X-QQ-mid: zesmtpip4t1754921080t0cee6af6 X-QQ-Originating-IP: 7OmkVN+qzWmNrNPB6kdQOPDm4g1ogZjUvbkSpLnPYLg= Received: from = ( [localhost]) by bizesmtp.qq.com (ESMTP) with id ; Mon, 11 Aug 2025 22:04:38 +0800 (CST) X-QQ-SSF: 0000000000000000000000000000000 X-QQ-GoodBg: 0 X-BIZMAIL-ID: 12793305655331086450 EX-QQ-RecipientCnt: 16 From: Troy Mitchell Date: Mon, 11 Aug 2025 22:04:27 +0800 Subject: [PATCH v2 1/4] dt-bindings: clock: spacemit: introduce i2s pre-clock to fix i2s clock Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250811-k1-clk-i2s-generation-v2-1-e4d3ec268b7a@linux.spacemit.com> References: <20250811-k1-clk-i2s-generation-v2-0-e4d3ec268b7a@linux.spacemit.com> In-Reply-To: <20250811-k1-clk-i2s-generation-v2-0-e4d3ec268b7a@linux.spacemit.com> To: Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Alex Elder , Haylen Chu , Inochi Amaoto Cc: linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-kernel@vger.kernel.org, Jinmei Wei , Troy Mitchell X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1754921074; l=1059; i=troy.mitchell@linux.spacemit.com; s=20250712; h=from:subject:message-id; bh=WFzD3JxmXZH2A/HVSLYZQ1zRbumApEBwgTZWddNtTRo=; b=MwM8g6ePB8qFUqu+QWf2+Dd40fsyq2XhFG631In6WZXoTzuMThqsfAVXsjFvgWb1fESK/4zji wAO2FZ3uhtUCOKXPoMxLEMKVVkf+XLoC69QqiJQL9CP9rXxus/FPTV2 X-Developer-Key: i=troy.mitchell@linux.spacemit.com; a=ed25519; pk=zhRP1xE0bftrurqSWI+SzcSdJGIZ0BTTY9Id0ESzqlI= X-QQ-SENDSIZE: 520 Feedback-ID: zesmtpip:linux.spacemit.com:qybglogicsvrsz:qybglogicsvrsz3a-0 X-QQ-XMAILINFO: MzoGiWnNk+AmNy+SNg9BU8Pqt2R9Ba6Svy7WE3kOFjyONDfKWsN5UcGV r/SX7mcsW1LEKWubHHDd3KrrJd1BcSQjdx8ba64bcaQ2KOvgsPKm2KpmWV3fyv47j+NB7B0 ANw60I0x8BY8idgZvDwJUVw693MBwtFvsPOkVoO/gPJ22P44JGObc4j9/XE81cPlKUioXaJ 456uBEWczhwhL+Vt8jC4cbvjmbZLpWdt2GVgdfzlUp0juf4Z51CNfz0G8Qf2RB8ADXMt4jO wa12O5ERJQWXXFTthowmrwRm/7GadeBTbKgYro0uLxrmm1pVz3971UHN3fjMjRMNpw2hM1w 7aZ3W6ccmBrEnxJCCewnzve5Cn//lN2SsywNUAoueIrOznfTRwcYvhp5+Ud/c3FaoyjcNjY WnvgQfBWpLIyoYp6qxFnAnZdV7nLEqTSXQbsQCqqzDRqfVv1Q9NyQOBh8NdzPgEYdzzRfPz oc64oKwDvJgjCvBJ06wMBueajhzVGtMcxDlqu/EK8+P7W5jA8i/1OawHUeZQ+mFhyK8538A w2BDmBr3nIFjNHbNl6/G8/D1e054DOjSqU7V+FBnAugOf3uuoIlgMpJ1gLswUATt9nsmUKo JWSc0DM2Jkt7unqbUScRvLKDJMvuZfx0H1Bxc2MydNDZXaGG2uEz+Nm2XXNCRivbgk8uC1F tgpYe6RuDkW0J5I+7BoUUofqszpazuBaACcAANKdHfFabZaDwsS348mSYwuLQMoahf/WWSb DZuo/kx+/7nmpY0o75dto9BbB7KaLby/Ajw18u4U4T+DAfTr0ht+RfevI0kXihgsWHKl/ta nVlf3EzOFBXmeRmlAo+9Y8me0VPJotWzK44754W4lyqNkGOGmDaAzASzVykHzRkJuqByveH 7Ejw944Jz69z5qVtGh3+a0HWpc1+7pre01YI15Y1poWLgApR4Xw25RoSIoDhn5mpC4bRhp2 eT8r/YZ8UWa7ozEYtcvYKMChXbSItf7LuIiJrsZA3HgIIcanyPkuWzFEo/f/BhLqzXWAQ7j Y+7GklQts6qfFuN1fUqhbBa65p9gDTSzaEVGT+y32stiZup4/d1i75q59gkmMyFqeAnk4zn 9r64ESiZJZswpX7cl7TFzXA6pAEZl6ffi/WDePcWZUp5cWMSXBVep6PNBDiHrLrmcXwWEcM Nndx9ZKKg/whawE= X-QQ-XMRINFO: MPJ6Tf5t3I/ycC2BItcBVIA= X-QQ-RECHKSPAM: 0 Previously, the K1 clock driver did not include the parent clocks of the I2S sysclk. Otherwise, the I2S clock may not work as expected. This patch adds their definitions to allow proper registration in the driver and usage in the device tree. Fixes: 1b72c59db0add ("clk: spacemit: Add clock support for SpacemiT K1 SoC= ") Signed-off-by: Troy Mitchell Acked-by: Krzysztof Kozlowski --- include/dt-bindings/clock/spacemit,k1-syscon.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/dt-bindings/clock/spacemit,k1-syscon.h b/include/dt-bi= ndings/clock/spacemit,k1-syscon.h index 2714c3fe66cd5b49e12c8b20689f5b01da36b774..524268246fedd3f1238320f3524= 4baf32354fbd2 100644 --- a/include/dt-bindings/clock/spacemit,k1-syscon.h +++ b/include/dt-bindings/clock/spacemit,k1-syscon.h @@ -77,6 +77,9 @@ #define CLK_I2S_BCLK 30 #define CLK_APB 31 #define CLK_WDT_BUS 32 +#define CLK_I2S_153P6 33 +#define CLK_I2S_153P6_BASE 34 +#define CLK_I2S_SYSCLK_SRC 35 =20 /* MPMU resets */ #define RESET_WDT 0 --=20 2.50.1 From nobody Sun Oct 5 00:11:59 2025 Received: from smtpbgau1.qq.com (smtpbgau1.qq.com [54.206.16.166]) (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 D56231F91F6; Mon, 11 Aug 2025 14:04:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=54.206.16.166 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754921105; cv=none; b=I0U6GwBttGX4ZE1G93KSi8qvFDJeOl8sELxdw80LNiTvK6tmsF0AJDbUto3XN5xctSolAxZ7g6mc2VFy0o/nabIF7X6vqcihWqf1fucKJUlGp9uv0ikYFN8QgeHDP4Ggpxm1u9AzpnO8H5umEADmELGRaJmjuUKVy0D7BmcEmg0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754921105; c=relaxed/simple; bh=z70+6t8zQfe6gg2EzvLCmWTmpQzeFdqDzTO3JnB6imA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=N10CzYvGWYyJsehCTMyCNHwr6eBmXWtFzl0P3b48rkSfv+hLZENe4wRuHtVOnhaZbI3DhK7OHHkO91PuVUzPCMV9l0nSKzWBlM/RPAvzx6p5frjYYAFGX8F5ph4m0uLzYEsJJfUuKC9aEmYIXNpvHAp4pCbNzTYiDZTaLyCAZfI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=linux.spacemit.com; spf=none smtp.mailfrom=linux.spacemit.com; dkim=pass (1024-bit key) header.d=linux.spacemit.com header.i=@linux.spacemit.com header.b=OHQt4NpI; arc=none smtp.client-ip=54.206.16.166 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=linux.spacemit.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.spacemit.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.spacemit.com header.i=@linux.spacemit.com header.b="OHQt4NpI" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.spacemit.com; s=mxsw2412; t=1754921084; bh=OTPCPLnwbS9eTCXGHSG2KsfDknKo86Vz6KTpbMSyVrw=; h=From:Date:Subject:MIME-Version:Message-Id:To; b=OHQt4NpIbigM6isG7g/EGWBPkDVHIK9I5rTt+ZELcVC2oxC4jbPrgsiywWqI/nviL vtzV9i7E71JNMobqo5prchuJwvagLOBMJUEn9gs3NJEiLJZPCIq/HaO9q+rpHvbeLX nkI+nUFbf9f7DEx4LUHbRWojheqhrYicW0Y6TxVs= X-QQ-mid: zesmtpip2t1754921083t53edfe55 X-QQ-Originating-IP: H70G/aROUpW0T5k2Dez7TdHMWBIax7uH7QdV5lc7now= Received: from = ( [localhost]) by bizesmtp.qq.com (ESMTP) with id ; Mon, 11 Aug 2025 22:04:41 +0800 (CST) X-QQ-SSF: 0000000000000000000000000000000 X-QQ-GoodBg: 0 X-BIZMAIL-ID: 12609989171803677751 EX-QQ-RecipientCnt: 16 From: Troy Mitchell Date: Mon, 11 Aug 2025 22:04:28 +0800 Subject: [PATCH v2 2/4] clk: spacemit: introduce pre-div for ddn clock Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250811-k1-clk-i2s-generation-v2-2-e4d3ec268b7a@linux.spacemit.com> References: <20250811-k1-clk-i2s-generation-v2-0-e4d3ec268b7a@linux.spacemit.com> In-Reply-To: <20250811-k1-clk-i2s-generation-v2-0-e4d3ec268b7a@linux.spacemit.com> To: Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Alex Elder , Haylen Chu , Inochi Amaoto Cc: linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-kernel@vger.kernel.org, Jinmei Wei , Troy Mitchell X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1754921074; l=3244; i=troy.mitchell@linux.spacemit.com; s=20250712; h=from:subject:message-id; bh=z70+6t8zQfe6gg2EzvLCmWTmpQzeFdqDzTO3JnB6imA=; b=bYG/SvgS92wz4cP7uwrGWGWSfpZjCqtZoRlm9epxOT09HCebNp/gKHhdGXQcKNs9/1iJG9avD TIZ3sKcEehtDcYqfqNcfe8NrTca1918tLYJuwlkfZqeavdrl7FaSPOi X-Developer-Key: i=troy.mitchell@linux.spacemit.com; a=ed25519; pk=zhRP1xE0bftrurqSWI+SzcSdJGIZ0BTTY9Id0ESzqlI= X-QQ-SENDSIZE: 520 Feedback-ID: zesmtpip:linux.spacemit.com:qybglogicsvrsz:qybglogicsvrsz3a-0 X-QQ-XMAILINFO: Oe+QC9UX0c6WCBuE2VZ3TW5aB5Fcz8S2xE+klfVAIUX8pG6eM3s8mDXz 7L7LQvcQTXEZM6khcRQ16xyWWNPcKO33WqZ7LwRG1EFVsB/QJ8kUNgTJsHeJeEjIGgu6Frf bGIId377clfB/FgrmkIM2jAohraiuSy/3GBNd5bX+iXwncVdrQvHjHfYJrRRLUrjppig0+s f+YPksgFtip8yWEA3vKTqN+9JCW+bTLOj55I4ICmwzhvJCDQjDRHc/y4ZU+tklCDHEaOcTn K8EN41kdIq+BMMRTGCqc5zK2UGds9515GvBcvl/XDYhEQqHlk4hzv8hDT3UucmwsDAkIVVO /5qsk6MLiDZcg6Z/0rP6PLIO+xXA8qkhyW+vjhckc9zDyDi0vyo+YRRCdvoWPbso1udnjJA 3rjQayyuYIOuSJL5OCys6vi1fn8gxSx+U4h3SgSxTq9fR3OWjP8ZIt6fPRAqkioaqt7WGsk OpsTPBL0ff8q0/0IsuBXAy+kvst3GoYm5dKwwFjKc8VDMNSuNZ/7eNLZTVoCI7U1oHU2YOz IPAPGf1296x4FVrxkuNKhevgh5WC8ny+Hj7YOQhEJZZeFjavfBtt64R2P3ts41U3HA+GmO5 /vWxZj+QLDssTyOaadHTtZCrML57heh0H1jmurl9jAbhho/cwU9j2ucYutHOoe7IkuZG+t5 W9bK8aguDf/9DEZiN5t91bbANRXij5t3iwzhXfSlSPWsD5+kWW/hz5AHxkyC+tCiPPIyyll CZeyofBkWwinEzIA0VUtKA+eDK/aES+n2T/nznx6jB8AUiSVPHQ/cPj4WZfyya47lWmAQxD aCHxncsbjidKbCyMhyJBJCT+hUVhyNydl9JY8OiTWKpX9AQ+1OJuq2NzL+IDFuxfURH+8wK CbGHPdL5k58Yu5PS4fwfxpb3RNsIB5aGitvPK6rchkvD80KQlEHq4qPLlTwcGAvt2OzVRR4 Qo7YfB6NKUYraJTVUxFN1fuLdxltdKFi0KXT/CAVzbXjxcOIQFuAE3n3IccrqMiiAaaPGFN PYE92vmwAnujAJS36sJdWaOHtzt9D9q/CE+ngj3p8s1zFlnn7x/bWHuDb6I6ahiUP6UCTVL ua4Fm8xn3GJw1T1VegOkaIKFzshO9enWuOsLEzrzeZAEBGg3xjPI6E= X-QQ-XMRINFO: M/715EihBoGSf6IYSX1iLFg= X-QQ-RECHKSPAM: 0 The original DDN operations applied an implicit divide-by-2, which should not be a default behavior. This patch removes that assumption, letting each clock define its actual behavior explicitly. Signed-off-by: Troy Mitchell --- drivers/clk/spacemit/ccu_ddn.c | 12 ++++++------ drivers/clk/spacemit/ccu_ddn.h | 6 ++++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/clk/spacemit/ccu_ddn.c b/drivers/clk/spacemit/ccu_ddn.c index be311b045698e95a688a35858a8ac1bcfbffd2c7..06d86748182bd1959cdab5c18d0= a882ee25dcade 100644 --- a/drivers/clk/spacemit/ccu_ddn.c +++ b/drivers/clk/spacemit/ccu_ddn.c @@ -22,21 +22,21 @@ =20 #include "ccu_ddn.h" =20 -static unsigned long ccu_ddn_calc_rate(unsigned long prate, - unsigned long num, unsigned long den) +static unsigned long ccu_ddn_calc_rate(unsigned long prate, unsigned long = num, + unsigned long den, unsigned int pre_div) { - return prate * den / 2 / num; + return prate * den / pre_div / num; } =20 static unsigned long ccu_ddn_calc_best_rate(struct ccu_ddn *ddn, unsigned long rate, unsigned long prate, unsigned long *num, unsigned long *den) { - rational_best_approximation(rate, prate / 2, + rational_best_approximation(rate, prate / ddn->pre_div, ddn->den_mask >> ddn->den_shift, ddn->num_mask >> ddn->num_shift, den, num); - return ccu_ddn_calc_rate(prate, *num, *den); + return ccu_ddn_calc_rate(prate, *num, *den, ddn->pre_div); } =20 static long ccu_ddn_round_rate(struct clk_hw *hw, unsigned long rate, @@ -58,7 +58,7 @@ static unsigned long ccu_ddn_recalc_rate(struct clk_hw *h= w, unsigned long prate) num =3D (val & ddn->num_mask) >> ddn->num_shift; den =3D (val & ddn->den_mask) >> ddn->den_shift; =20 - return ccu_ddn_calc_rate(prate, num, den); + return ccu_ddn_calc_rate(prate, num, den, ddn->pre_div); } =20 static int ccu_ddn_set_rate(struct clk_hw *hw, unsigned long rate, diff --git a/drivers/clk/spacemit/ccu_ddn.h b/drivers/clk/spacemit/ccu_ddn.h index a52fabe77d62eba16426867a9c13481e72f025c0..4838414a8e8dc04af49d3b8d392= 80efedbd75616 100644 --- a/drivers/clk/spacemit/ccu_ddn.h +++ b/drivers/clk/spacemit/ccu_ddn.h @@ -18,13 +18,14 @@ struct ccu_ddn { unsigned int num_shift; unsigned int den_mask; unsigned int den_shift; + unsigned int pre_div; }; =20 #define CCU_DDN_INIT(_name, _parent, _flags) \ CLK_HW_INIT_HW(#_name, &_parent.common.hw, &spacemit_ccu_ddn_ops, _flags) =20 #define CCU_DDN_DEFINE(_name, _parent, _reg_ctrl, _num_shift, _num_width, \ - _den_shift, _den_width, _flags) \ + _den_shift, _den_width, _pre_div, _flags) \ static struct ccu_ddn _name =3D { \ .common =3D { \ .reg_ctrl =3D _reg_ctrl, \ @@ -33,7 +34,8 @@ static struct ccu_ddn _name =3D { \ .num_mask =3D GENMASK(_num_shift + _num_width - 1, _num_shift), \ .num_shift =3D _num_shift, \ .den_mask =3D GENMASK(_den_shift + _den_width - 1, _den_shift), \ - .den_shift =3D _den_shift, \ + .den_shift =3D _den_shift, \ + .pre_div =3D _pre_div, \ } =20 static inline struct ccu_ddn *hw_to_ccu_ddn(struct clk_hw *hw) --=20 2.50.1 From nobody Sun Oct 5 00:11:59 2025 Received: from smtpbgeu1.qq.com (smtpbgeu1.qq.com [52.59.177.22]) (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 79535233715; Mon, 11 Aug 2025 14:05:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=52.59.177.22 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754921105; cv=none; b=eAdNEpHy2Cs9Pxqv5kpMkLoFJZlKgF+OgbG4UO0gFzX+s3GzyYwQqQWtpvVbhZp6ufjovAhRr6ueAagIHKW1zjxh+N2NjwGDefoH6SLlmMuubdJ981O1j01Hns8oic4xFf7K8mF4ml+RMO20q/w215P00T4phmuiQkIRAZPuUV0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754921105; c=relaxed/simple; bh=i8wU+l87tRxkjkfc5X201U4kzijJu18Cxdb+J92Erc8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gK0anpH088oeoXNdUCiwcIWcZI5ulPmyna9FbNYhVNvBPJEnhGKyIdQf87HgTxXbsozKk5PqWF1X5q7kw69/tUMfWTleXyQ1Wg864391g21W5q+JBgJdt8J25JKRDGEOdm6L8VJmqyN9iuItpQXl5AH3ScRsXPymzqogrbK8Or0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=linux.spacemit.com; spf=none smtp.mailfrom=linux.spacemit.com; dkim=pass (1024-bit key) header.d=linux.spacemit.com header.i=@linux.spacemit.com header.b=DGH2nRgR; arc=none smtp.client-ip=52.59.177.22 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=linux.spacemit.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.spacemit.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.spacemit.com header.i=@linux.spacemit.com header.b="DGH2nRgR" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.spacemit.com; s=mxsw2412; t=1754921087; bh=wb4h/OzfiqKCugrfopSTO9j+qCnAteCd8FPyFMBUIrg=; h=From:Date:Subject:MIME-Version:Message-Id:To; b=DGH2nRgR4hXl9hLuExezpROCW2ZLA8j1FDnPD/UH9qq+1OvRqIDp6uGy8yhg5RYyD /RzhaGL5SdDk6dyFivq8qnpBL1HwQBQChvvCW2ZIB2i43GKLJrb2Hv8rrNwc465+4x dH/HUxbZpRGVKEhU3yDoH7KefVxArlVxeWrQQPhc= X-QQ-mid: zesmtpip3t1754921086t50d3704e X-QQ-Originating-IP: JMkenniBoL8H4OuTkxR7yA/i0LlRFQMennh9ZMVZn1g= Received: from = ( [localhost]) by bizesmtp.qq.com (ESMTP) with id ; Mon, 11 Aug 2025 22:04:44 +0800 (CST) X-QQ-SSF: 0000000000000000000000000000000 X-QQ-GoodBg: 0 X-BIZMAIL-ID: 14415561950656257543 EX-QQ-RecipientCnt: 16 From: Troy Mitchell Date: Mon, 11 Aug 2025 22:04:29 +0800 Subject: [PATCH v2 3/4] clk: spacemit: introduce factor for div clock Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250811-k1-clk-i2s-generation-v2-3-e4d3ec268b7a@linux.spacemit.com> References: <20250811-k1-clk-i2s-generation-v2-0-e4d3ec268b7a@linux.spacemit.com> In-Reply-To: <20250811-k1-clk-i2s-generation-v2-0-e4d3ec268b7a@linux.spacemit.com> To: Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Alex Elder , Haylen Chu , Inochi Amaoto Cc: linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-kernel@vger.kernel.org, Jinmei Wei , Troy Mitchell X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1754921074; l=2765; i=troy.mitchell@linux.spacemit.com; s=20250712; h=from:subject:message-id; bh=i8wU+l87tRxkjkfc5X201U4kzijJu18Cxdb+J92Erc8=; b=5bYOJwOIPnJ/yb9gowQbTXUnpNhSF41jaer7Ec5uqwQ4SUs2RhfWuZYmkUBZV0RJlUF22yTdI f9QrHsd/QeiAx6X4tRJQwIKyGruc31IuNhBS+tahC7EoeXzknkZDTIm X-Developer-Key: i=troy.mitchell@linux.spacemit.com; a=ed25519; pk=zhRP1xE0bftrurqSWI+SzcSdJGIZ0BTTY9Id0ESzqlI= X-QQ-SENDSIZE: 520 Feedback-ID: zesmtpip:linux.spacemit.com:qybglogicsvrsz:qybglogicsvrsz3a-0 X-QQ-XMAILINFO: MT2+grFT7YMrE87ljq9KG5N/MqSGuuFmBMEHpt2cgwzmXLZzhTPPhi3G UanISi74r4OA+MJ3j1kWvfEjkgHu4+4yrFsxXB3b82lZ0RDjF78ZFLbl4DjVppcgcaxfvJI 6TYNKfoCkK9uuVHKo68OvW/5UrWBAIcOcM81Ef7SQ6aaWXQJqd3RxpZLvJDeH8TwtCJvmFd 1UATqpia7ciZQ5XDE3KCq0SvQlPqrjxlWv8IPN8o17fLmU490/r3B9Z9SXQgTq+UrshyWSU kGDbKlwRSE91agO5JoIubdTbMC5L1oSXChz0XnXgMj0g8ltWqFD+5Sx4kREkpjCGXlFDvOh 1j93om0wg/z4/KqfvwUUp3xa/JGzczVeCJ+KtmDtxeEi8Xxl0eHJers9MEgmlj5KIkl4BTy dWHoblQDCr/SSG8pMp50H6I+x9iLSTrsPLXLCgFXNSR/h0uQie8P4OiLfsT8Ap2WCFzOjaQ oq/HdBlSGj+4oIDgC0xrIHLzcmZ20pRGl+8vXXAWS5zstICIP2KZS7udhv2WHc/YojJGqAu R8/9mnQBh4muRxl4MDsS/qoDKiDPTb1E2gX8P4P6Ie7PZclo+AJPLxchEd7e+bVxEWrpCpQ IP/EEhnu+4R0tUsqGAfa2JH0b2nCucW37vKYCA023nKz3N3he3Y96zTIHmqFjqTX0ih3FNz 7tG2jT4Zr5cnpRjirwjn4p1Y5ewlQGtw8jaunolOUfe2R48jh6aQNtJK6m+wgtdsBaX2/Mf xz2RcgIPtWFzUVqg3mwerbQIQ+yGuhKtfFrcWi1k7OZnYry7zHzw8VgpL87X2CNS6ibhx6i gYMQVwxULCapa8rbULFYqbhorE+wskEFS6baGO0S0hgzJKG/kz5aJp962E0Oy21LCwBN41O S1ggLVHGj5wjAKMZZoQ58+YCMcLeDh0va6T8LXcU4OwkE5+Ruzcfz3N/9YI2WP0EefFIqiQ n/tdPCPp16TQDaB2Fp7YMrGP504gCuNY6oM5Rv6PbfiSkLGTtQgm5Yfbn9CrYMhQmLhyJvs QTyu8LaFwdeYVN2LB1SGm5OOuJUkAk1aSJExQsN0J5u1XJwfPpSpc4K789S8ZNl1K4GnR+t lxygSqLSRe+GUFHL0m+LReDI2viSitITl5ijb14nitmAsII1q47P7UTqWxOgbPreg== X-QQ-XMRINFO: MPJ6Tf5t3I/ycC2BItcBVIA= X-QQ-RECHKSPAM: 0 From the definition of register, The i2s_bclk is a non-linear, discrete divider clock. The following table shows the correspondence between index and frequency division coefficients: | index | div | |-------|-------| | 0 | 2 | | 1 | 4 | | 2 | 6 | | 3 | 8 | But from a software perspective and this table, dividing the actual div value by 2 is sufficient to obtain a continuous divider clock. Rather than introducing a new clock type to handle this case, a factor parameter has been added to CCU_DIV_GATE_DEFINE. Suggested-by: Haylen Chu Signed-off-by: Troy Mitchell --- drivers/clk/spacemit/ccu_mix.c | 7 ++++++- drivers/clk/spacemit/ccu_mix.h | 4 +++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/clk/spacemit/ccu_mix.c b/drivers/clk/spacemit/ccu_mix.c index 9b852aa61f78aed5256bfe6fc3b01932d6db6256..dbd2cf234bf81d8e110b19868ff= 9af7373e2ab55 100644 --- a/drivers/clk/spacemit/ccu_mix.c +++ b/drivers/clk/spacemit/ccu_mix.c @@ -56,7 +56,10 @@ static unsigned long ccu_div_recalc_rate(struct clk_hw *= hw, val =3D ccu_read(&mix->common, ctrl) >> div->shift; val &=3D (1 << div->width) - 1; =20 - return divider_recalc_rate(hw, parent_rate, val, NULL, 0, div->width); + if (!div->factor) + return divider_recalc_rate(hw, parent_rate, val, NULL, 0, div->width); + + return divider_recalc_rate(hw, parent_rate, val, NULL, 0, div->width) / d= iv->factor; } =20 /* @@ -115,6 +118,8 @@ ccu_mix_calc_best_rate(struct clk_hw *hw, unsigned long= rate, =20 for (int j =3D 1; j <=3D div_max; j++) { unsigned long tmp =3D DIV_ROUND_CLOSEST_ULL(parent_rate, j); + if (mix->div.factor) + tmp /=3D mix->div.factor; =20 if (abs(tmp - rate) < abs(best_rate - rate)) { best_rate =3D tmp; diff --git a/drivers/clk/spacemit/ccu_mix.h b/drivers/clk/spacemit/ccu_mix.h index 54d40cd39b2752260f57d2a96eb8d3eed8116ecd..7dd00d24ec4b1dab70663b9cb7b= 9ebb02abeaecb 100644 --- a/drivers/clk/spacemit/ccu_mix.h +++ b/drivers/clk/spacemit/ccu_mix.h @@ -34,6 +34,7 @@ struct ccu_mux_config { struct ccu_div_config { u8 shift; u8 width; + unsigned int factor; }; =20 struct ccu_mix { @@ -130,10 +131,11 @@ static struct ccu_mix _name =3D { \ } =20 #define CCU_DIV_GATE_DEFINE(_name, _parent, _reg_ctrl, _shift, _width, \ - _mask_gate, _flags) \ + _mask_gate, _factor, _flags) \ static struct ccu_mix _name =3D { \ .gate =3D CCU_GATE_INIT(_mask_gate), \ .div =3D CCU_DIV_INIT(_shift, _width), \ + .div.factor =3D _factor, \ .common =3D { \ .reg_ctrl =3D _reg_ctrl, \ CCU_MIX_INITHW(_name, _parent, spacemit_ccu_div_gate_ops, \ --=20 2.50.1 From nobody Sun Oct 5 00:11:59 2025 Received: from smtpbgeu1.qq.com (smtpbgeu1.qq.com [52.59.177.22]) (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 5466E23BCF5; Mon, 11 Aug 2025 14:05:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=52.59.177.22 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754921109; cv=none; b=kZUSGUNroSbgh24SJHiINMdR+3aTLiyiPrkUJ6ytNFAz5UXCBQwm0UNaKwbgUoP0zeYpwfprBUtuWF4vQUsNo5sgKdMEc0aHG16P0xoiysga/fQ0NTx0RzhPc+WLaCOTtcz0fBcPtE9Gnx1yAiVeL26Gv+xkdJ3STfm178zseMQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1754921109; c=relaxed/simple; bh=/eP5t1s0TqmJIvJ8sxEMoPxPa8mRQSEXNyaZxgSUlDo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=e0NB4bH7v7+MqFHBeuSQvyRLgV8/pVG9uzAbti7oW+jg6/NyBLN4WqLQkjEeb7iz0Ud+smj3mG7Ht6aYJdKl7RDN0AdoqfYXsKNrED4MI/M1pWXscuqZPuEXWmnI57BU/Xmtzf5crOGZ+z2uH62pFpBsA2PFGtBIzfeBa+BBXdI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=linux.spacemit.com; spf=none smtp.mailfrom=linux.spacemit.com; dkim=pass (1024-bit key) header.d=linux.spacemit.com header.i=@linux.spacemit.com header.b=PpR8rMpZ; arc=none smtp.client-ip=52.59.177.22 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=linux.spacemit.com Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=linux.spacemit.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=linux.spacemit.com header.i=@linux.spacemit.com header.b="PpR8rMpZ" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.spacemit.com; s=mxsw2412; t=1754921091; bh=oUvLpctbzw/WmMzpaNN8M2oVwo9YJxXCqlSJR/iqBr4=; h=From:Date:Subject:MIME-Version:Message-Id:To; b=PpR8rMpZadtp6AJTmxAaNaejQAbvdZuhyYchCHs9cQVWRiLb0ggFzFqjAFFUblaQo V/OM16U7ZhMzJIJpudurQZeh8Yo1Q00hPgRlt6mTAdxp1CvH1cLKRSMH2shyAgneut DAakkYe4btH/T+qnRulXl/4G5XBk48POVAPZc51k= X-QQ-mid: zesmtpip3t1754921090t5adf6c6f X-QQ-Originating-IP: 77QCtEo+rzaJ27LWZg1zIIO7xOaXq4U7Kmzsi4q9YBI= Received: from = ( [localhost]) by bizesmtp.qq.com (ESMTP) with id ; Mon, 11 Aug 2025 22:04:48 +0800 (CST) X-QQ-SSF: 0000000000000000000000000000000 X-QQ-GoodBg: 0 X-BIZMAIL-ID: 11959351235578941372 EX-QQ-RecipientCnt: 16 From: Troy Mitchell Date: Mon, 11 Aug 2025 22:04:30 +0800 Subject: [PATCH v2 4/4] clk: spacemit: fix i2s clock Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250811-k1-clk-i2s-generation-v2-4-e4d3ec268b7a@linux.spacemit.com> References: <20250811-k1-clk-i2s-generation-v2-0-e4d3ec268b7a@linux.spacemit.com> In-Reply-To: <20250811-k1-clk-i2s-generation-v2-0-e4d3ec268b7a@linux.spacemit.com> To: Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Alex Elder , Haylen Chu , Inochi Amaoto Cc: linux-clk@vger.kernel.org, devicetree@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-kernel@vger.kernel.org, Jinmei Wei , Troy Mitchell X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1754921074; l=4205; i=troy.mitchell@linux.spacemit.com; s=20250712; h=from:subject:message-id; bh=/eP5t1s0TqmJIvJ8sxEMoPxPa8mRQSEXNyaZxgSUlDo=; b=p3HEwh3FPsXPkPLayk+Nv8p8KIP+CiyvupGRdd/M1EW0hj4BIzjQBvfOmJJNmHfWUf4zpTd/I nJgeuQ4Q9vuDlqsdURTkbApXuDuq6R9iYSatGTdLH23AW4EG0Ve1q42 X-Developer-Key: i=troy.mitchell@linux.spacemit.com; a=ed25519; pk=zhRP1xE0bftrurqSWI+SzcSdJGIZ0BTTY9Id0ESzqlI= X-QQ-SENDSIZE: 520 Feedback-ID: zesmtpip:linux.spacemit.com:qybglogicsvrsz:qybglogicsvrsz3a-0 X-QQ-XMAILINFO: NYSbNmQ6i3UflGZQAhExDUD5lezifgMNpg/HQ1y4ZLzfvJpN3ogzQQwc OClc6N7TR4/Mz+5fYUZG0dtigTV+p7cnXhu35WSp28lmhVwoI6RpjYmOv1MiDQwDvxDVGFy VY6kbg3oezvzNIpp170m21rA0V6NOiVFowef0WyXOJtfBsuF4UmvDx+UD56s/8n8UMpDIF7 mWZ00dOOJOo3EdUZwXUbloRolVgzEcvhewsYYncpjDVj34207OP7ycRs5hrdVOZf7k/MABt yhf6wXG/p94NgPac5yAV0/yjFL1dgU+P8tMKj047P9noiKJ4TQvJESkax6AupUml7hR23Q6 mJbUl3UW2xRUu67eOsE2Yx9PelRIGnyj4ImELM3BPEpH5QeKkpanDN8JVR8zt7RmaatqGcM AouqxkonTeIdPyy4c0cJ8/rsB80QMVF7338X8U6207WQ090WgzZHaFlVJIuRH40RKAr6Sjj CbdhKeKQfIXvOfx5AzTw8kOkbyz0BJf8/cAU8oskaasVWhoTbN47wBF3MMDjCKaafRPmRHQ j+lSNSFdusI7CjQRZM3jBDdYx9tZQf/F9xQXeQrBZ6fXXUfnpm1Uf26ySGTfTEHvXp0MlX2 4tVh7g0mEDUca8U0WaZzwCC4ZEPvWnn3YZvgYrw8aOOmAMK3qpwld9JDdJHRaBH958LuJ/S +AkevnVIbnIcrX7DczPgDsC2eqRjlGVZHyag6CqnYCaewUrDQyTKsgh9rLeX6dvjQdQgOIW wrENzLyg1aHOzEYpYLZixq1wsNtSNrxgW+JnT4N+c2X5Ypr3tJwn9YJ82Ho52PR9UWc6a/x n3XWvpqVnxG2zFViht4tFNg3P17sYc4dX1ZIIRxKQNzq0WCcavh2fAb8xLNOx0h8nS1C0PT ws6xnxsHJFjNRTjEHS7jKGRudJsOB0UW4hnOJFfNXd/FhmDQ90PtVYrjZg501peYDBBml2j hNKjM/yx1CwbXgw4S3gCwpqMBb1FDMjsfgSUxE6qsjXDVf82Rqyrn19YqYuHYCDcC3096Pr WJYtH5rYqa9DMxP9ji/s1xIIKpXLTyBQjBYCNKWqH7BpCvjvs9Vh872WBMvgFH+PdhjTj/0 8otdT8tiRWD71bdUGBwTmob+NkcUACYbFRsALWFboueB3isN548EDet7w7KnIeGPSvvljK1 ktQnHkq6yc4Wm6vIz9gx/qoTSNlz7dZ6fZ7o X-QQ-XMRINFO: Nq+8W0+stu50PRdwbJxPCL0= X-QQ-RECHKSPAM: 0 Defining i2s_bclk and i2s_sysclk as fixed-factor clocks is insufficient for real I2S use cases. Moreover, the current I2S clock configuration does not work as expected due to missing parent clocks. This patch adds the missing parent clocks, defines i2s_sysclk as a DDN clock, and i2s_bclk as a DIV clock. The I2S-related clock registers can be found here [1]. Link: https://developer.spacemit.com/documentation?token=3DLCrKwWDasiJuROkVNusc2p= WTnEb [1] Fixes: 1b72c59db0add ("clk: spacemit: Add clock support for SpacemiT K1 SoC= ") Co-developer: Jinmei Wei Signed-off-by: Jinmei Wei Signed-off-by: Troy Mitchell --- drivers/clk/spacemit/ccu-k1.c | 28 +++++++++++++++++++++++----- include/soc/spacemit/k1-syscon.h | 1 + 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/drivers/clk/spacemit/ccu-k1.c b/drivers/clk/spacemit/ccu-k1.c index 65e6de030717afa60eefab7bda88f9a13b857650..3a885d64fb09144bb0d40024fea= 9415d66eba01b 100644 --- a/drivers/clk/spacemit/ccu-k1.c +++ b/drivers/clk/spacemit/ccu-k1.c @@ -136,13 +136,28 @@ CCU_GATE_DEFINE(pll1_d3_819p2, CCU_PARENT_HW(pll1_d3)= , MPMU_ACGR, BIT(14), 0); CCU_GATE_DEFINE(pll1_d2_1228p8, CCU_PARENT_HW(pll1_d2), MPMU_ACGR, BIT(16)= , 0); =20 CCU_GATE_DEFINE(slow_uart, CCU_PARENT_NAME(osc), MPMU_ACGR, BIT(1), CLK_IG= NORE_UNUSED); -CCU_DDN_DEFINE(slow_uart1_14p74, pll1_d16_153p6, MPMU_SUCCR, 16, 13, 0, 13= , 0); -CCU_DDN_DEFINE(slow_uart2_48, pll1_d4_614p4, MPMU_SUCCR_1, 16, 13, 0, 13, = 0); +CCU_DDN_DEFINE(slow_uart1_14p74, pll1_d16_153p6, MPMU_SUCCR, 16, 13, 0, 13= , 2, 0); +CCU_DDN_DEFINE(slow_uart2_48, pll1_d4_614p4, MPMU_SUCCR_1, 16, 13, 0, 13, = 2, 0); =20 CCU_GATE_DEFINE(wdt_clk, CCU_PARENT_HW(pll1_d96_25p6), MPMU_WDTPCR, BIT(1)= , 0); =20 -CCU_FACTOR_GATE_DEFINE(i2s_sysclk, CCU_PARENT_HW(pll1_d16_153p6), MPMU_ISC= CR, BIT(31), 50, 1); -CCU_FACTOR_GATE_DEFINE(i2s_bclk, CCU_PARENT_HW(i2s_sysclk), MPMU_ISCCR, BI= T(29), 1, 1); +CCU_FACTOR_DEFINE(i2s_153p6, CCU_PARENT_HW(pll1_d8_307p2), 2, 1); + +static const struct clk_parent_data i2s_153p6_base_parents[] =3D { + CCU_PARENT_HW(i2s_153p6), + CCU_PARENT_HW(pll1_d8_307p2), +}; +CCU_MUX_DEFINE(i2s_153p6_base, i2s_153p6_base_parents, MPMU_FCCR, 29, 1, 0= ); + +static const struct clk_parent_data i2s_sysclk_src_parents[] =3D { + CCU_PARENT_HW(pll1_d96_25p6), + CCU_PARENT_HW(i2s_153p6_base) +}; +CCU_MUX_GATE_DEFINE(i2s_sysclk_src, i2s_sysclk_src_parents, MPMU_ISCCR, 30= , 1, BIT(31), 0); + +CCU_DDN_DEFINE(i2s_sysclk, i2s_sysclk_src, MPMU_ISCCR, 0, 15, 15, 12, 1, 0= ); + +CCU_DIV_GATE_DEFINE(i2s_bclk, CCU_PARENT_HW(i2s_sysclk), MPMU_ISCCR, 27, 2= , BIT(29), 2, 0); =20 static const struct clk_parent_data apb_parents[] =3D { CCU_PARENT_HW(pll1_d96_25p6), @@ -639,7 +654,7 @@ static const struct clk_parent_data emmc_parents[] =3D { CCU_MUX_DIV_GATE_FC_DEFINE(emmc_clk, emmc_parents, APMU_PMUA_EM_CLK_RES_CT= RL, 8, 3, BIT(11), 6, 2, BIT(4), 0); CCU_DIV_GATE_DEFINE(emmc_x_clk, CCU_PARENT_HW(pll1_d2_1228p8), APMU_PMUA_E= M_CLK_RES_CTRL, 12, - 3, BIT(15), 0); + 3, BIT(15), 1, 0); =20 static const struct clk_parent_data audio_parents[] =3D { CCU_PARENT_HW(pll1_aud_245p7), @@ -756,6 +771,9 @@ static struct clk_hw *k1_ccu_mpmu_hws[] =3D { [CLK_I2S_BCLK] =3D &i2s_bclk.common.hw, [CLK_APB] =3D &apb_clk.common.hw, [CLK_WDT_BUS] =3D &wdt_bus_clk.common.hw, + [CLK_I2S_153P6] =3D &i2s_153p6.common.hw, + [CLK_I2S_153P6_BASE] =3D &i2s_153p6_base.common.hw, + [CLK_I2S_SYSCLK_SRC] =3D &i2s_sysclk_src.common.hw, }; =20 static const struct spacemit_ccu_data k1_ccu_mpmu_data =3D { diff --git a/include/soc/spacemit/k1-syscon.h b/include/soc/spacemit/k1-sys= con.h index c59bd7a38e5b4219121341b9c0d9ffda13a9c3e2..354751562c55523ef8a22be931d= dd8aca9651084 100644 --- a/include/soc/spacemit/k1-syscon.h +++ b/include/soc/spacemit/k1-syscon.h @@ -30,6 +30,7 @@ to_spacemit_ccu_adev(struct auxiliary_device *adev) =20 /* MPMU register offset */ #define MPMU_POSR 0x0010 +#define MPMU_FCCR 0x0008 #define POSR_PLL1_LOCK BIT(27) #define POSR_PLL2_LOCK BIT(28) #define POSR_PLL3_LOCK BIT(29) --=20 2.50.1