RE: [PATCH v6 4/4] clk: samsung: add top clock support for ExynosAuto v920 SoC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Krzysztof,

> -----Original Message-----
> From: Krzysztof Kozlowski <krzk@xxxxxxxxxx>
> Sent: Wednesday, August 21, 2024 3:23 PM
> To: sunyeal.hong <sunyeal.hong@xxxxxxxxxxx>; 'Kwanghoon Son'
> <k.son@xxxxxxxxxxx>; 'Sylwester Nawrocki' <s.nawrocki@xxxxxxxxxxx>;
> 'Chanwoo Choi' <cw00.choi@xxxxxxxxxxx>; 'Alim Akhtar'
> <alim.akhtar@xxxxxxxxxxx>; 'Michael Turquette' <mturquette@xxxxxxxxxxxx>;
> 'Stephen Boyd' <sboyd@xxxxxxxxxx>; 'Rob Herring' <robh@xxxxxxxxxx>; 'Conor
> Dooley' <conor+dt@xxxxxxxxxx>
> Cc: linux-samsung-soc@xxxxxxxxxxxxxxx; linux-clk@xxxxxxxxxxxxxxx;
> devicetree@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux-
> kernel@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH v6 4/4] clk: samsung: add top clock support for
> ExynosAuto v920 SoC
> 
> On 21/08/2024 04:23, sunyeal.hong wrote:
> > Hello Kwanghoon,
> >
> >> -----Original Message-----
> >> From: Kwanghoon Son <k.son@xxxxxxxxxxx>
> >> Sent: Tuesday, August 20, 2024 6:54 PM
> >> To: sunyeal.hong <sunyeal.hong@xxxxxxxxxxx>; 'Krzysztof Kozlowski'
> >> <krzk@xxxxxxxxxx>; 'Sylwester Nawrocki' <s.nawrocki@xxxxxxxxxxx>;
> >> 'Chanwoo Choi' <cw00.choi@xxxxxxxxxxx>; 'Alim Akhtar'
> >> <alim.akhtar@xxxxxxxxxxx>; 'Michael Turquette'
> <mturquette@xxxxxxxxxxxx>; 'Stephen Boyd'
> >> <sboyd@xxxxxxxxxx>; 'Rob Herring' <robh@xxxxxxxxxx>; 'Conor Dooley'
> >> <conor+dt@xxxxxxxxxx>
> >> Cc: linux-samsung-soc@xxxxxxxxxxxxxxx; linux-clk@xxxxxxxxxxxxxxx;
> >> devicetree@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx;
> >> linux- kernel@xxxxxxxxxxxxxxx
> >> Subject: Re: [PATCH v6 4/4] clk: samsung: add top clock support for
> >> ExynosAuto v920 SoC
> >>
> >> On Tue, 2024-08-20 at 10:50 +0900, sunyeal.hong wrote:
> >>> Hello Kwanghoon,
> >>>
> >>>> -----Original Message-----
> >>>> From: Kwanghoon Son <k.son@xxxxxxxxxxx>
> >>>> Sent: Monday, August 19, 2024 6:32 PM
> >>>> To: Sunyeal Hong <sunyeal.hong@xxxxxxxxxxx>; Krzysztof Kozlowski
> >>>> <krzk@xxxxxxxxxx>; Sylwester Nawrocki <s.nawrocki@xxxxxxxxxxx>;
> >>>> Chanwoo Choi <cw00.choi@xxxxxxxxxxx>; Alim Akhtar
> >>>> <alim.akhtar@xxxxxxxxxxx>; Michael Turquette
> >>>> <mturquette@xxxxxxxxxxxx>; Stephen Boyd <sboyd@xxxxxxxxxx>; Rob
> >>>> Herring <robh@xxxxxxxxxx>; Conor Dooley <conor+dt@xxxxxxxxxx>
> >>>> Cc: linux-samsung-soc@xxxxxxxxxxxxxxx; linux-clk@xxxxxxxxxxxxxxx;
> >>>> devicetree@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx;
> >>>> linux- kernel@xxxxxxxxxxxxxxx
> >>>> Subject: Re: [PATCH v6 4/4] clk: samsung: add top clock support for
> >>>> ExynosAuto v920 SoC
> >>>>
> >>>> On Mon, 2024-08-19 at 14:24 +0900, Sunyeal Hong wrote:
> >>>>> This adds support for CMU_TOP which generates clocks for all the
> >>>>> function blocks such as CORE, HSI0/1/2, PERIC0/1 and so on. For
> >>>>> CMU_TOP, PLL_SHARED0,1,2,3,4 and 5 will be the sources of this
> >>>>> block and they will generate bus clocks.
> >>>>>
> >>>>> Signed-off-by: Sunyeal Hong <sunyeal.hong@xxxxxxxxxxx>
> >>>>> ---
> >>>>>  drivers/clk/samsung/Makefile             |    1 +
> >>>>>  drivers/clk/samsung/clk-exynosautov920.c | 1173
> >>>>> ++++++++++++++++++++++
> >>>>>  2 files changed, 1174 insertions(+)  create mode 100644
> >>>>> drivers/clk/samsung/clk-exynosautov920.c
> >>>>>
> >>>>> diff --git a/drivers/clk/samsung/Makefile
> >>>>> b/drivers/clk/samsung/Makefile index 3056944a5a54..f1ba48758c78
> >>>>> 100644
> >>>>> --- a/drivers/clk/samsung/Makefile
> >>>>> +++ b/drivers/clk/samsung/Makefile
> >>>>> @@ -21,6 +21,7 @@ obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-
> >>>> exynos7.o
> >>>>>  obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos7885.o
> >>>>>  obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynos850.o
> >>>>>  obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynosautov9.o
> >>>>> +obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-exynosautov920.o
> >>>>>  obj-$(CONFIG_EXYNOS_ARM64_COMMON_CLK)	+= clk-gs101.o
> >>>>>  obj-$(CONFIG_S3C64XX_COMMON_CLK)	+= clk-s3c64xx.o
> >>>>>  obj-$(CONFIG_S5PV210_COMMON_CLK)	+= clk-s5pv210.o clk-s5pv210-
> >>>> audss.o
> >>>>> diff --git a/drivers/clk/samsung/clk-exynosautov920.c
> >>>>> b/drivers/clk/samsung/clk-exynosautov920.c
> >>>>> new file mode 100644
> >>>>> index 000000000000..c17d25e3c9a0
> >>>>> --- /dev/null
> >>>>> +++ b/drivers/clk/samsung/clk-exynosautov920.c
> >>>>
> >>>> [snip]
> >>>>
> >>>>> +};
> >>>>> +
> >>>>> +static const struct samsung_cmu_info peric0_cmu_info __initconst
> >>>>> +=
> >> {
> >>>>> +	.mux_clks		= peric0_mux_clks,
> >>>>> +	.nr_mux_clks		= ARRAY_SIZE(peric0_mux_clks),
> >>>>> +	.div_clks		= peric0_div_clks,
> >>>>> +	.nr_div_clks		= ARRAY_SIZE(peric0_div_clks),
> >>>>> +	.nr_clk_ids		= CLKS_NR_PERIC0,
> >>>>> +	.clk_regs		= peric0_clk_regs,
> >>>>> +	.nr_clk_regs		= ARRAY_SIZE(peric0_clk_regs),
> >>>>> +	.clk_name		= "dout_clkcmu_peric0_noc",
> >>>>
> >>>> same question.
> >>>> Isn't it "noc"?
> >>>> https://lore.kernel.org/linux-samsung-
> >>>> soc/58dfae564a4a624e464c7803a309f1f07b5ae83d.camel@xxxxxxxxxxx/
> >>>>
> >>>> In my case(autov9), if put wrong clk_name dmesg will show that,
> >>>> exynos_arm64_register_cmu: could not enable bus clock ...; err = -2
> >>>>
> >>>> Kwang.
> >>>>
> >>>>
> >>>
> >>> clk_name follows the guide document provided by hw. v9 is bus, but
> >>> v920
> >> uses noc.
> >>
> >> What I mean,
> >>
> >> .clk_name		= "dout_clkcmu_peric0_noc", // wrong
> >> .clk_name		= "noc", // correct
> >>
> >> Because there is no clock-names "dout_clkcmu_peric0_noc" in
> >> exynos/exynosautov920.dtsi.
> >>
> >
> > The clk_name written here has nothing to do with the device tree. Please
> look at the code carefully.
> 
> Hm? I see in the code clearly:
> 
> 	clk_get(dev, cmu->clk_name);
> 
> Where cmu is the discussed struct.
> 
> If you claim it does not have anything to do with DT, then what is it for?
> 
> Best regards,
> Krzysztof

In general, clk_get is used via the clk_name declared in the DT.

However, the question asked here is the parent clock name of peric0_noc, so it is unrelated to the device tree.

	PNAME(mout_peric0_noc_user_p) = { "oscclk", "dout_clkcmu_peric0_noc" };

So we are using clk_name as "dout_clkcmu_peric0_noc".

Best Regards,
sunyeal







[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux