All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Boyd <sboyd@kernel.org>
To: Ryan Chen <ryan_chen@aspeedtech.com>,
	andrew@codeconstruct.com.au, conor+dt@kernel.org,
	devicetree@vger.kernel.org, dmitry.baryshkov@linaro.org,
	joel@jms.id.au, krzk+dt@kernel.org, lee@kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-aspeed@lists.ozlabs.org, linux-clk@vger.kernel.org,
	linux-kernel@vger.kernel.org, mturquette@baylibre.com,
	p.zabel@pengutronix.de, robh@kernel.org
Subject: RE: [PATCH v7 3/3] clk: aspeed: add AST2700 clock driver.
Date: Thu, 21 Nov 2024 15:06:48 -0800	[thread overview]
Message-ID: <a68516df98c8b8fb80f094e6e55fcb8d.sboyd@kernel.org> (raw)
In-Reply-To: <SI6PR06MB7535F5D22E3FCCF5C610B307F2552@SI6PR06MB7535.apcprd06.prod.outlook.com>

Quoting Ryan Chen (2024-10-31 00:24:39)
> > Subject: Re: [PATCH v7 3/3] clk: aspeed: add AST2700 clock driver.
> > 
> > Quoting Ryan Chen (2024-10-27 22:30:18)
> > > diff --git a/drivers/clk/clk-ast2700.c b/drivers/clk/clk-ast2700.c new
> > > file mode 100644 index 000000000000..db9ee5031b7c
> > > --- /dev/null
> > > +++ b/drivers/clk/clk-ast2700.c
> > > @@ -0,0 +1,1513 @@
> > > +// SPDX-License-Identifier: GPL-2.0
[...]
> > > +struct ast2700_clk_info {
> > > +       const char *name;
> > > +       const char * const *parent_names;
> > 
> > Please don't use strings for parent names.
> Sorry, do you mean use clk_parent_data struct for parent?
>         +const struct clk_parent_data   parent;         /* For gate */
>         +const struct clk_parent_data   *parents;               /* For mux */

Yes.

> 
> > 
> > > +       const struct clk_div_table *div_table;
> > > +       unsigned long fixed_rate;
> > > +       unsigned int mult;
> > > +       unsigned int div;
> > > +       u32 reg;
> > > +       u32 flags;
> > > +       u32 type;
> > > +       u8 clk_idx;
> > > +       u8 bit_shift;
> > > +       u8 bit_width;
> > > +       u8 num_parents;
> > > +};
> > > +
> > [...]
> > > +
> > > +static const struct clk_div_table ast2700_clk_div_table2[] = {
> > > +       { 0x0, 2 },
> > > +       { 0x1, 4 },
> > > +       { 0x2, 6 },
> > > +       { 0x3, 8 },
> > > +       { 0x4, 10 },
> > > +       { 0x5, 12 },
> > > +       { 0x6, 14 },
> > > +       { 0x7, 16 },
> > 
> > Isn't this the default divider setting for struct clk_divider?
> Sorry, I don't catch your point.
> the SoC do have default divider setting. But it can be modified.
> And also have different divider table setting.

I mean that this is the way that struct clk_divider works already. So
you don't need to make the clk_div_table array for what is supported in
code.

> > 
> > > +       { 0 }
> > > +};
> > > +
> > > +static const struct clk_div_table ast2700_clk_uart_div_table[] = {
> > > +       { 0x0, 1 },
> > > +       { 0x1, 13 },
> > > +       { 0 }
> > [...]
> > > +               .bit_shift = 23,
> > > +               .bit_width = 3,
> > > +               .div_table = ast2700_clk_div_table2,
> > > +       },
> > > +       [SCU0_CLK_GATE_MCLK] = {
> > > +               .type = CLK_GATE_ASPEED,
> > > +               .name = "mclk-gate",
> > > +               .parent_names = (const char *[]){ "soc0-mpll", },
> > > +               .reg = SCU0_CLK_STOP,
> > > +               .clk_idx = 0,
> > > +               .flags = CLK_IS_CRITICAL,
> > > +       },
> > > +       [SCU0_CLK_GATE_ECLK] = {
> > > +               .type = CLK_GATE_ASPEED,
> > > +               .name = "eclk-gate",
> > > +               .parent_names = (const char *[]){  },
> > > +               .reg = SCU0_CLK_STOP,
> > > +               .clk_idx = 1,
> > > +       },
> > > +       [SCU0_CLK_GATE_2DCLK] = {
> > > +               .type = CLK_GATE_ASPEED,
> > > +               .name = "gclk-gate",
> > > +               .parent_names = (const char *[]){  },
> > 
> > This has no parent? Why is parent_names set to an empty array?
> Due to I use clk->parent_names[0] for clk_hw_register_gate, const char *name parameter input.
> If null, that will cause panic for NULL point.

But the parent is NULL? How many parents does this clk have?

> > 
> > > +       if (!clk_data)
> > > +               return devm_of_platform_populate(dev);
> > 
> > What is being populated? Isn't there always clk_data?
> Yes, it is always clk_data, I will modify to be following, is it ok?
> If(!clk_data)
>         Return -ENODEV;
> 

Sure.

> > 
> > Please don't use strings for parent_names. Use clk_hw pointers or DT indices.
> Use clk_pareent_data is it ok ?

Yes.


  reply	other threads:[~2024-11-21 23:06 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-28  5:30 [PATCH v7 0/3] [PATCH v6 0/3] Add support for AST2700 clk driver Ryan Chen
2024-10-28  5:30 ` [PATCH v7 1/3] dt-bindings: mfd: aspeed: support for AST2700 Ryan Chen
2024-10-28  5:30 ` [PATCH v7 2/3] reset: aspeed: register AST2700 reset auxiliary bus device Ryan Chen
2024-10-28  5:30 ` [PATCH v7 3/3] clk: aspeed: add AST2700 clock driver Ryan Chen
2024-10-30 21:01   ` Stephen Boyd
2024-10-31  7:24     ` Ryan Chen
2024-11-21 23:06       ` Stephen Boyd [this message]
2024-12-02  3:12         ` Ryan Chen
2024-12-04 23:24           ` Stephen Boyd
2024-12-05  0:48             ` Ryan Chen
2024-12-06 22:15               ` Stephen Boyd
2024-12-09  1:49                 ` Ryan Chen
2024-10-30 21:02   ` Stephen Boyd
2024-10-31  0:44   ` kernel test robot

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=a68516df98c8b8fb80f094e6e55fcb8d.sboyd@kernel.org \
    --to=sboyd@kernel.org \
    --cc=andrew@codeconstruct.com.au \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dmitry.baryshkov@linaro.org \
    --cc=joel@jms.id.au \
    --cc=krzk+dt@kernel.org \
    --cc=lee@kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-aspeed@lists.ozlabs.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mturquette@baylibre.com \
    --cc=p.zabel@pengutronix.de \
    --cc=robh@kernel.org \
    --cc=ryan_chen@aspeedtech.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 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.