[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20221027012605.B6769C433C1@smtp.kernel.org>
Date: Wed, 26 Oct 2022 18:26:03 -0700
From: Stephen Boyd <sboyd@...nel.org>
To: Hal Feng <hal.feng@...ux.starfivetech.com>
Cc: Emil Renner Berthing <emil.renner.berthing@...onical.com>,
devicetree@...r.kernel.org, linux-clk@...r.kernel.org,
linux-gpio@...r.kernel.org, linux-riscv@...ts.infradead.org,
Rob Herring <robh+dt@...nel.org>,
Krzysztof Kozlowski <krzysztof.kozlowski+dt@...aro.org>,
Paul Walmsley <paul.walmsley@...ive.com>,
Palmer Dabbelt <palmer@...belt.com>,
Albert Ou <aou@...s.berkeley.edu>,
Daniel Lezcano <daniel.lezcano@...aro.org>,
Thomas Gleixner <tglx@...utronix.de>,
Marc Zyngier <maz@...nel.org>,
Philipp Zabel <p.zabel@...gutronix.de>,
Michael Turquette <mturquette@...libre.com>,
Linus Walleij <linus.walleij@...aro.org>,
Emil Renner Berthing <kernel@...il.dk>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v1 15/30] clk: starfive: Use regmap APIs to operate registers
Quoting Hal Feng (2022-10-22 21:11:41)
> On Wed, 12 Oct 2022 16:05:23 -0700, Stephen Boyd wrote:
> > I think we should use auxiliary bus and split the driver logically into
> > a reset driver in drivers/reset and a clk driver in drivers/clk. That
> > way the appropriate maintainers can review the code. There is only one
> > platform device with a single reg property and node in DT, but there are
> > two drivers.
>
> Yes, I agree that the reset driver and the clock driver should be split.
> However, I think using auxiliary bus is a little bit complicated in this
> case, because the reset is not a part of functionality of the clock in
> JH7110. They just share a common register base address.
That is why auxiliary bus exists.
> I think it is
> better to use ioremap for the same address, and the dt will be like
>
> syscrg_clk: clock-controller@...20000 {
> compatible = "starfive,jh7110-clkgen-sys";
> reg = <0x0 0x13020000 0x0 0x10000>;
> ...
> };
> syscrg_rst: reset-controller@...20000 {
> compatible = "starfive,jh7110-reset-sys";
> reg = <0x0 0x13020000 0x0 0x10000>;
> ...
> };
>
> What do you think of this approach? I would appreciate your suggestions.
>
We shouldn't have two different nodes with the same reg property. Please
ioremap in whatever driver probes and creates the auxiliary device(s)
and then pass the void __iomem * to it.
Powered by blists - more mailing lists