Thread (32 messages) 32 messages, 7 authors, 2018-04-04

Re: [PATCH net-next 02/12] clk: sunxi-ng: r40: export a regmap to access the GMAC register

From: Chen-Yu Tsai <hidden>
Date: 2018-04-04 07:00:48
Also in: linux-arm-kernel, linux-clk, linux-devicetree

On Wed, Apr 4, 2018 at 2:45 PM, Icenowy Zheng [off-list ref] wrote:
在 2018-04-03二的 11:50 +0200,Maxime Ripard写道:
quoted
On Tue, Apr 03, 2018 at 11:48:45AM +0200, Maxime Ripard wrote:
quoted
On Tue, Mar 20, 2018 at 03:15:02PM +0800, Chen-Yu Tsai wrote:
quoted
On Mon, Mar 19, 2018 at 5:31 AM, Maxime Ripard
[off-list ref] wrote:
quoted
On Sat, Mar 17, 2018 at 05:28:47PM +0800, Chen-Yu Tsai wrote:
quoted
From: Icenowy Zheng <icenowy@aosc.io>

There's a GMAC configuration register, which exists on
A64/A83T/H3/H5 in
the syscon part, in the CCU of R40 SoC.

Export a regmap of the CCU.

Read access is not restricted to all registers, but only the
GMAC
register is allowed to be written.

Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
Signed-off-by: Chen-Yu Tsai <redacted>
Gah, this is crazy. I'm really starting to regret letting that
syscon
in in the first place...
IMHO syscon is really a better fit. It's part of the glue layer
and
most other dwmac user platforms treat it as such and use a
syscon.
Plus the controls encompass delays (phase), inverters (polarity),
and even signal routing. It's not really just a group of clock
controls,
like what we poorly modeled for A20/A31. I think that was really
a
mistake.

As I mentioned in the cover letter, a slightly saner approach
would
be to let drivers add custom syscon entries, which would then
require
less custom plumbing.
A syscon is convenient, sure, but it also bypasses any abstraction
layer we have everywhere else, which means that we'll have to
maintain
the register layout in each and every driver that uses it.

So far, it's only be the GMAC, but it can also be others (the SRAM
controller comes to my mind), and then, if there's any difference
in
the design in a future SoC, we'll have to maintain that in the GMAC
driver as well.
I guess I forgot to say something, I'm fine with using a syscon we
already have.
As we finally need the SRAM controller on these new SoCs (for VE on all
SoCs targeted by dwmac-sun8i, and for DE on A64), should we deprecate
the syscon and all switch to device regmap (and let sunxi-dram driver
to export a regmap)? (As in the A64 DE2 thread discussed, two device
nodes shouldn't cover the same MMIO region.)
Sounds like a plan.
In addition, there might be multiple registers in the syscon/sram zone
that are needed (for example, if a version driver is written, it will
need the "0x24 Version Register"; and GMAC needs "0x30 EMAC Clock
Register"). How to deal with this if we export the syscon/sram zone as
a generic device regmap?
You can have multiple regmaps for a device. And the API allows you to
request them up by name.

ChenYu
quoted
I'm just questionning if merging any other driver using one is the
right move.

Maxime

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help