All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jiayu Du <jiayu.riscv@isrc.iscas.ac.cn>
To: Xukai Wang <kingxukai@zohomail.com>,
	Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>, Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Conor Dooley <conor@kernel.org>
Cc: linux-clk@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org,
	Samuel Holland <samuel.holland@sifive.com>,
	Troy Mitchell <TroyMitchell988@gmail.com>
Subject: Re: [PATCH v10 2/3] clk: canaan: Add clock driver for Canaan K230
Date: Tue, 27 Jan 2026 20:22:36 +0800	[thread overview]
Message-ID: <aXiuDAO7I6urJj09@duge-virtual-machine> (raw)
In-Reply-To: <0af969a7-3579-4303-b302-f171ef02a163@zohomail.com>

On Tue, Jan 27, 2026 at 07:03:59PM +0800, Xukai Wang wrote:
> 
> On 2026/1/23 00:01, Jiayu Du wrote:
> > On Thu, Jan 22, 2026 at 07:40:29PM +0800, Xukai Wang wrote:
> >> On 2026/1/19 16:18, Jiayu Du wrote:
> >>>> +
> >>>> +K230_CLK_GATE_FORMAT(hs_hclk_src_gate,
> >>>> +		     K230_HS_HCLK_SRC_GATE,
> >>>> +		     0x18, 0, 0, 0,
> >>>> +		     &hs_hclk_high_src_rate.clk.hw);
> >>> Here, you replaced hs_hclk_high_gate(in v9) with hs_hclk_high_src_rate,
> >> I'm a bit confused, as I don't recall making these specific changes.
> >> Looking at the code below, the only difference between v9 and v10 is
> >> within the K230_CLK_GATE_FORMAT(hs_hclk_src_gate, ...) definition, where
> >> the second parameter changed from 1 to 0. Everything else appears
> >> consistent. Could you clarify which change you were referring to?
> >>> but after my board test, I find that when hs_hclk_high_gate is turned
> >>> off, the mmc/sd and other high-speed subsystems can not work. So maybe
> >>> you should not change the hs_hclk_high_gate to hs_hclk_high_src_rate.
> >> Regarding the clock management, I recommend explicitly enabling
> >> hs_hclk_high_gateas it will be closed by `close unused clocks`.
> > Sorry, you are right. It was me who made the changes locally. And I
> > saw your reply to this email[1], which you said According to the vendor's
> > code, the parent clock of hs_hclk_src is hs_hclk_high_src.
> >
> > Indeed, the parent clock of hs_hclk_src is hs_hclk_high_src. 
> 
> > but hs_hclk_high_gate is the gate of hs_hclk_high_src. 
> 
> No. It seems there is some confusion. The hs_hclk_high_src does not have
> a gate.

In this code segment of the vendor[1], it states that hs_hclk_high is
indeed the downstream gate of hs_hclk_high_src. Once hs_hclk_high is turned
off, all the high-speed peripherals such as USB, MMC, and SD will fail.
This indicates that in the hardware, the gate bit1 actually controls the
overall clock switch of the high speed system.

I understand that hs_sd0/1_ahb_gate should be enabled during the SD driver
probe, and hs_usb0/1_ahb_gate should be enabled during the USB driver probe,
but currently there is NO clear driver to ENABLE hi_hclk_high_gate. 

So in your code, I think hs_hclk_high_gate should be the gate of 
hs_hclk_high_src_rate. And hs_hclk_high_gate should be the parent of
hs_hclk_src_gate.

link: https://github.com/kendryte/k230_sdk/blob/main/src/little/linux/arch/riscv/boot/dts/kendryte/clock_provider.dtsi#L497 [1]

> 
> The clock tree is as follow:
> 
>        pll0_div4
>           hs_hclk_high_src_rate
>              hs_hclk_high_gate
>              hs_hclk_src_gate
>                 hs_hclk_src_rate
>                    hs_sd0_ahb_gate
>                    hs_sd1_ahb_gate
>                    hs_ssi1_ahb_gate
>                    hs_ssi2_ahb_gate
>                    hs_usb0_ahb_gate
>                    hs_usb1_ahb_gate
> 
> > So, what you mean is
> > that you will add the CLK_IS_CRITICAL flag to the hs_hclk_high_gate?
> No, I don't intend to add CLK_IS_CRITICAL flag. Instead, I recommend you
> to explicitly enable the clock by using clk_prepare_enable in your driver.

I think there is NO clear driver to ENABLE hi_hclk_high_gate.

Regards,
Jiayu Du

> >
> > Link: https://lore.kernel.org/all/159615d3-cc52-43be-bf6d-5fe717ef1cc4@zohomail.com/ [1]
> >
> > Regards,
> > Jiayu Du
> >


WARNING: multiple messages have this Message-ID (diff)
From: Jiayu Du <jiayu.riscv@isrc.iscas.ac.cn>
To: Xukai Wang <kingxukai@zohomail.com>,
	Michael Turquette <mturquette@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>, Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Conor Dooley <conor@kernel.org>
Cc: linux-clk@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org,
	Samuel Holland <samuel.holland@sifive.com>,
	Troy Mitchell <TroyMitchell988@gmail.com>
Subject: Re: [PATCH v10 2/3] clk: canaan: Add clock driver for Canaan K230
Date: Tue, 27 Jan 2026 20:22:36 +0800	[thread overview]
Message-ID: <aXiuDAO7I6urJj09@duge-virtual-machine> (raw)
In-Reply-To: <0af969a7-3579-4303-b302-f171ef02a163@zohomail.com>

On Tue, Jan 27, 2026 at 07:03:59PM +0800, Xukai Wang wrote:
> 
> On 2026/1/23 00:01, Jiayu Du wrote:
> > On Thu, Jan 22, 2026 at 07:40:29PM +0800, Xukai Wang wrote:
> >> On 2026/1/19 16:18, Jiayu Du wrote:
> >>>> +
> >>>> +K230_CLK_GATE_FORMAT(hs_hclk_src_gate,
> >>>> +		     K230_HS_HCLK_SRC_GATE,
> >>>> +		     0x18, 0, 0, 0,
> >>>> +		     &hs_hclk_high_src_rate.clk.hw);
> >>> Here, you replaced hs_hclk_high_gate(in v9) with hs_hclk_high_src_rate,
> >> I'm a bit confused, as I don't recall making these specific changes.
> >> Looking at the code below, the only difference between v9 and v10 is
> >> within the K230_CLK_GATE_FORMAT(hs_hclk_src_gate, ...) definition, where
> >> the second parameter changed from 1 to 0. Everything else appears
> >> consistent. Could you clarify which change you were referring to?
> >>> but after my board test, I find that when hs_hclk_high_gate is turned
> >>> off, the mmc/sd and other high-speed subsystems can not work. So maybe
> >>> you should not change the hs_hclk_high_gate to hs_hclk_high_src_rate.
> >> Regarding the clock management, I recommend explicitly enabling
> >> hs_hclk_high_gateas it will be closed by `close unused clocks`.
> > Sorry, you are right. It was me who made the changes locally. And I
> > saw your reply to this email[1], which you said According to the vendor's
> > code, the parent clock of hs_hclk_src is hs_hclk_high_src.
> >
> > Indeed, the parent clock of hs_hclk_src is hs_hclk_high_src. 
> 
> > but hs_hclk_high_gate is the gate of hs_hclk_high_src. 
> 
> No. It seems there is some confusion. The hs_hclk_high_src does not have
> a gate.

In this code segment of the vendor[1], it states that hs_hclk_high is
indeed the downstream gate of hs_hclk_high_src. Once hs_hclk_high is turned
off, all the high-speed peripherals such as USB, MMC, and SD will fail.
This indicates that in the hardware, the gate bit1 actually controls the
overall clock switch of the high speed system.

I understand that hs_sd0/1_ahb_gate should be enabled during the SD driver
probe, and hs_usb0/1_ahb_gate should be enabled during the USB driver probe,
but currently there is NO clear driver to ENABLE hi_hclk_high_gate. 

So in your code, I think hs_hclk_high_gate should be the gate of 
hs_hclk_high_src_rate. And hs_hclk_high_gate should be the parent of
hs_hclk_src_gate.

link: https://github.com/kendryte/k230_sdk/blob/main/src/little/linux/arch/riscv/boot/dts/kendryte/clock_provider.dtsi#L497 [1]

> 
> The clock tree is as follow:
> 
>        pll0_div4
>           hs_hclk_high_src_rate
>              hs_hclk_high_gate
>              hs_hclk_src_gate
>                 hs_hclk_src_rate
>                    hs_sd0_ahb_gate
>                    hs_sd1_ahb_gate
>                    hs_ssi1_ahb_gate
>                    hs_ssi2_ahb_gate
>                    hs_usb0_ahb_gate
>                    hs_usb1_ahb_gate
> 
> > So, what you mean is
> > that you will add the CLK_IS_CRITICAL flag to the hs_hclk_high_gate?
> No, I don't intend to add CLK_IS_CRITICAL flag. Instead, I recommend you
> to explicitly enable the clock by using clk_prepare_enable in your driver.

I think there is NO clear driver to ENABLE hi_hclk_high_gate.

Regards,
Jiayu Du

> >
> > Link: https://lore.kernel.org/all/159615d3-cc52-43be-bf6d-5fe717ef1cc4@zohomail.com/ [1]
> >
> > Regards,
> > Jiayu Du
> >


_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

  reply	other threads:[~2026-01-27 12:22 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-01-16 13:26 [PATCH v10 0/3] riscv: canaan: Add support for K230 clock Xukai Wang
2026-01-16 13:26 ` Xukai Wang
2026-01-16 13:26 ` [PATCH v10 1/3] dt-bindings: clock: Add bindings for Canaan K230 clock controller Xukai Wang
2026-01-16 13:26   ` Xukai Wang
2026-01-16 13:26 ` [PATCH v10 2/3] clk: canaan: Add clock driver for Canaan K230 Xukai Wang
2026-01-16 13:26   ` Xukai Wang
2026-01-19  8:18   ` Jiayu Du
2026-01-19  8:18     ` Jiayu Du
2026-01-22 11:40     ` Xukai Wang
2026-01-22 11:40       ` Xukai Wang
2026-01-22 16:01       ` Jiayu Du
2026-01-22 16:01         ` Jiayu Du
2026-01-27 11:03         ` Xukai Wang
2026-01-27 11:03           ` Xukai Wang
2026-01-27 12:22           ` Jiayu Du [this message]
2026-01-27 12:22             ` Jiayu Du
2026-01-27 13:21             ` Xukai Wang
2026-01-27 13:21               ` Xukai Wang
2026-01-16 13:26 ` [PATCH v10 3/3] riscv: dts: canaan: Add clock definition for K230 Xukai Wang
2026-01-16 13:26   ` Xukai Wang
2026-02-04 16:15 ` [PATCH v10 0/3] riscv: canaan: Add support for K230 clock Jiayu Du
2026-02-04 16:15   ` Jiayu Du
2026-02-13 16:37   ` Xukai Wang
2026-02-13 16:37     ` Xukai Wang
2026-02-14  6:33     ` Jiayu Du
2026-02-14  6:33       ` Jiayu Du
2026-02-14  7:34       ` Xukai Wang
2026-02-14  7:34         ` Xukai Wang
2026-02-14  8:15         ` Jiayu Du
2026-02-14  8:15           ` Jiayu Du

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aXiuDAO7I6urJj09@duge-virtual-machine \
    --to=jiayu.riscv@isrc.iscas.ac.cn \
    --cc=TroyMitchell988@gmail.com \
    --cc=aou@eecs.berkeley.edu \
    --cc=conor+dt@kernel.org \
    --cc=conor@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=kingxukai@zohomail.com \
    --cc=krzk+dt@kernel.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=mturquette@baylibre.com \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.com \
    --cc=robh@kernel.org \
    --cc=samuel.holland@sifive.com \
    --cc=sboyd@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.