Thread (105 messages) 105 messages, 13 authors, 2022-10-29

Re: [PATCH v1 15/30] clk: starfive: Use regmap APIs to operate registers

From: Stephen Boyd <sboyd@kernel.org>
Date: 2022-10-27 01:26:19
Also in: linux-clk, linux-gpio, linux-riscv, lkml

Quoting Hal Feng (2022-10-22 21:11:41)
On Wed, 12 Oct 2022 16:05:23 -0700, Stephen Boyd wrote:
quoted
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@13020000 {
        compatible = "starfive,jh7110-clkgen-sys";
        reg = <0x0 0x13020000 0x0 0x10000>;
        ...
};
syscrg_rst: reset-controller@13020000 {
        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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help