Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Jian Hu <jian.hu@amlogic.com>
To: Jerome Brunet <jbrunet@baylibre.com>
Cc: Xianwei Zhao <xianwei.zhao@amlogic.com>,
	Chuan Liu <chuan.liu@amlogic.com>,
	Neil Armstrong <neil.armstrong@linaro.org>,
	Kevin Hilman <khilman@baylibre.com>,
	Stephen Boyd <sboyd@kernel.org>,
	Michael Turquette <mturquette@baylibre.com>,
	Dmitry Rokosov <ddrokosov@sberdevices.ru>,
	robh+dt <robh+dt@kernel.org>, Rob Herring <robh@kernel.org>,
	devicetree <devicetree@vger.kernel.org>,
	linux-clk <linux-clk@vger.kernel.org>,
	linux-amlogic <linux-amlogic@lists.infradead.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	linux-arm-kernel <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH v3 5/6] clk: meson: add MESON_PCLK_V2 for sys gate clock
Date: Fri, 20 Jun 2025 17:21:10 +0800	[thread overview]
Message-ID: <7ae5cc8c-410b-4be7-84b8-7a6273a45717@amlogic.com> (raw)
In-Reply-To: <1jzfffy738.fsf@starbuckisacylon.baylibre.com>

Resend it because it refused to receive html messages.


On 2025/5/14 15:39, Jerome Brunet wrote:
> [ EXTERNAL EMAIL ]
>
> On Fri 09 May 2025 at 07:48, Jian Hu <jian.hu@amlogic.com> wrote:
>
>> A new MESON_PCLK_V2 macro is introduced for the sys gate clock. Its parent
>> is an SCMI clock. It belongs to another clock controller, and the parent
>> configuration is different from  that of MESON_PCLK. This avoids new macro
>> definition in the peripheral clock driver.
>>
>> Signed-off-by: Jian Hu <jian.hu@amlogic.com>
>> ---
>>   drivers/clk/meson/clk-regmap.h | 24 ++++++++++++++++++++++++
>>   1 file changed, 24 insertions(+)
>>
>> diff --git a/drivers/clk/meson/clk-regmap.h b/drivers/clk/meson/clk-regmap.h
>> index e365312da54e..61b8fc2d875f 100644
>> --- a/drivers/clk/meson/clk-regmap.h
>> +++ b/drivers/clk/meson/clk-regmap.h
> This file is not meant for amlogic specific stuff. I know some found
> their way in regardless but that's being fixed


OK,  I found macro MESON_PCLK is used in G12A/MESON8B/GXBB/S4.

New macro is needed for T7 .

>> @@ -134,4 +134,28 @@ struct clk_regmap _name = {                                              \
>>
>>   #define MESON_PCLK_RO(_name, _reg, _bit, _pname)     \
>>        __MESON_PCLK(_name, _reg, _bit, &clk_regmap_gate_ro_ops, _pname)
>> +
>> +#define __MESON_PCLK_V2(_name, _reg, _bit, _ops, _pname)             \
>> +struct clk_regmap _name = {                                          \
>> +     .data = &(struct clk_regmap_gate_data){                         \
>> +             .offset = (_reg),                                       \
>> +             .bit_idx = (_bit),                                      \
>> +     },                                                              \
>> +     .hw.init = &(struct clk_init_data) {                            \
>> +             .name = #_name,                                         \
>> +             .ops = _ops,                                            \
>> +             .parent_data = &(const struct clk_parent_data) {        \
>> +                     .fw_name = #_pname,                             \
>> +             },                                                      \
>> +             .num_parents = 1,                                       \
>> +             .flags = (CLK_SET_RATE_PARENT | CLK_IGNORE_UNUSED),     \
>> +     },                                                              \
>> +}
> The proliferation of those macros has been going on for far too long,
> add using CLK_IGNORE_UNUSED inside is certainly a mistake I won't
> repeat.
>
> This will be part of more general clean-up that currently depends on a
> this [1] patch to go further. You'll have to be patient.
>
> [1]: https://lore.kernel.org/r/20250417-clk-hw-get-helpers-v1-0-7743e509612a@baylibre.com


OK, CLK_IGNORE_UNUSED is added for all gate clocks.

And  quote your comments in v2.  the T7_CLK_GATE is newly added in T7 
Peripheral driver in v2.

If I understand you correctly.  A common macro should be added for it 
and remove T7_CLK_GATE.


So I add a common macro in clk-regmap.h, and it can be used for 
different SoCs.

MESON_PCLK and MESON_PCLK_V2 difference is a clocks's parent defination.

the sys gate clock parent is in another clock controller. So parent_data 
member is needed for it.

and parent_hw member is for previous SoCs which clock and parent clock 
are in one clock controller.


How should we deal with it.

1.Add the macro in T7 Perpheral driver.

2.Or add a common macro for parent_data,   and where the macro should be 
placed? maybe put it in meson-clkc-utils.h?

>> +
>> +#define MESON_PCLK_V2(_name, _reg, _bit, _pname)     \
>> +     __MESON_PCLK_V2(_name, _reg, _bit, &clk_regmap_gate_ops, _pname)
>> +
>> +#define MESON_PCLK_RO_V2(_name, _reg, _bit, _pname)  \
>> +     __MESON_PCLK_V2(_name, _reg, _bit, &clk_regmap_gate_ro_ops, _pname)
>> +
>>   #endif /* __CLK_REGMAP_H */
> --
> Jerome


  parent reply	other threads:[~2025-06-20 10:30 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-05-09  7:48 [PATCH v3 0/6] add support for T7 family clock controller Jian Hu
2025-05-09  7:48 ` [PATCH v3 1/6] dt-bindings: clock: add Amlogic T7 PLL " Jian Hu
2025-05-09 16:09   ` Conor Dooley
2025-05-09  7:48 ` [PATCH v3 2/6] dt-bindings: clock: add Amlogic T7 SCMI " Jian Hu
2025-05-09  7:48 ` [PATCH v3 3/6] dt-bindings: clock: add Amlogic T7 peripherals " Jian Hu
2025-05-09  7:48 ` [PATCH v3 4/6] clk: meson: t7: add support for the T7 SoC PLL clock Jian Hu
2025-05-14  7:52   ` Jerome Brunet
2025-06-12 13:02     ` Jian Hu
2025-06-16 16:27       ` Jerome Brunet
2025-06-25  2:52         ` Jian Hu
2025-06-25  7:46           ` Jerome Brunet
2025-07-03  3:42             ` Jian Hu
2025-05-09  7:48 ` [PATCH v3 5/6] clk: meson: add MESON_PCLK_V2 for sys gate clock Jian Hu
2025-05-14  7:39   ` Jerome Brunet
     [not found]     ` <ea83e375-7088-4047-92f1-31d0e7c2c331@amlogic.com>
2025-06-16 16:28       ` Jerome Brunet
2025-06-20  9:21     ` Jian Hu [this message]
2025-05-09  7:48 ` [PATCH v3 6/6] clk: meson: t7: add t7 clock peripherals controller driver Jian Hu
2025-05-14  8:00   ` Jerome Brunet
2025-06-13  9:39     ` Jian Hu

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=7ae5cc8c-410b-4be7-84b8-7a6273a45717@amlogic.com \
    --to=jian.hu@amlogic.com \
    --cc=chuan.liu@amlogic.com \
    --cc=ddrokosov@sberdevices.ru \
    --cc=devicetree@vger.kernel.org \
    --cc=jbrunet@baylibre.com \
    --cc=khilman@baylibre.com \
    --cc=linux-amlogic@lists.infradead.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mturquette@baylibre.com \
    --cc=neil.armstrong@linaro.org \
    --cc=robh+dt@kernel.org \
    --cc=robh@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=xianwei.zhao@amlogic.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox