[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <LVAYJR.C9X3GOLBHW113@crapouillou.net>
Date: Tue, 18 Oct 2022 14:30:57 +0100
From: Paul Cercueil <paul@...pouillou.net>
To: Siarhei Volkau <lis8215@...il.com>
Cc: Michael Turquette <mturquette@...libre.com>,
Stephen Boyd <sboyd@...nel.org>,
Rob Herring <robh+dt@...nel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
Thomas Bogendoerfer <tsbogend@...ha.franken.de>,
linux-clk@...r.kernel.org, devicetree@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-mips@...r.kernel.org
Subject: Re: [PATCH v2 4/4] clk: Add Ingenic JZ4755 CGU driver
Hi Siarhei,
Le lun., oct. 17 2022 at 21:07:47 +0300, Siarhei Volkau
<lis8215@...il.com> a écrit :
> пн, 17 окт. 2022 г. в 20:24, Paul Cercueil
> <paul@...pouillou.net>:
>>
>>
>>
>> Le lun., oct. 17 2022 at 20:10:56 +0300, Siarhei Volkau
>> <lis8215@...il.com> a écrit :
>> > пн, 17 окт. 2022 г. в 12:24, Paul Cercueil
>> > <paul@...pouillou.net>:
>> >
>> >> > + [JZ4755_CLK_AIC] = {
>> >> > + "aic", CGU_CLK_GATE,
>> >> > + .parents = { JZ4755_CLK_I2S, -1, -1, -1 },
>> >>
>> >> Wrong parent here, should be JZ4755_CLK_EXT_HALF.
>> >
>> > I don't agree, see Figure 20-13 in the JZ4755 PM.
>>
>> 20-13 describes the I2S clock, no?
>
> See 20.4.9 Serial Audio Clocks and Sampling Frequencies.
> It stated that: "For internal CODEC ... CODEC needs a 12MHz
> clock from CPM called SYS_CLK ...", but SYS_CLK is described
> only in the I2S Controller section. I assume it is the same clock.
Yes, and your SYS_CLK is the I2S clock, not the AIC clock.
>>
>> AIC clock's parent is EXT/2 according to the diagram in 8.2.2.
>>
>
> It's a bit cryptic manual, who knows how it's done in the HW.
> I observed that codec runs on a desired sample rate only when PLL
> equals 432 or 216 MHz, but SYS_CLK is definitely configured to be
> 12MHz - from EXTCLK. On other PLL frequencies it is lower by
> 2-4% than expected. That isn't observed on JZ4725B.
The audio codec supplies SYS_CLK to the controller, not the other way
around. Parent the I2S clock to EXT/2 (which is 12 MHz) and it should
work fine, independently of the PLL.
The AIC clock does not drive anything, it only "powers" the AIC module.
It should be parented only to EXT/2, similar to what's done in every
other CGU driver.
Cheers,
-Paul
Powered by blists - more mailing lists