Re: [PATCH 18/18] arm64: apple: Add initial Mac Mini 2020 (M1) devicetree

Tony Lindgren
2021-02-10T11:37:10Z

* Hector Martin <marcan@marcan.st> [210210 11:14]:
> On 10/02/2021 19.19, Tony Lindgren wrote:
> > * Hector Martin 'marcan' <marcan@marcan.st> [210208 12:05]:
> > > On 08/02/2021 20.04, Krzysztof Kozlowski wrote:
> > ...
> >
> > > > > + clk24: clk24 {
> > > >
> > > > Just "clock". Node names should be generic.
> > >
> > > Really? Almost every other device device tree uses unique clock node names.
> >
> > Yeah please just use generic node name "clock". FYI, we're still hurting
> > because of this for the TI clock node names years after because the drivers
> > got a chance to rely on the clock node name..
> >
> > Using "clock" means your clock driver code won't get a chance to wrongly
> > use the node name and you avoid similar issues.
>
> That means it'll end up like this (so that we can have more than one
> fixed-clock):
>
> clocks {
> #address-cells = <1>;
> #size-cells = <0>;
>
> clk123: clock@0 {
> ...
> reg = <0>
> }
>
> clk456: clock@1 {
> ...
> reg = <1>
> }
> }
>
> Correct?

Yeah, just don't use an imaginary dummy index for the reg. Use a real
register offset from a clock controller instance base, and a register
bit offset too if needed.

That way if you discover a new clock inbetween somewhere, you don't have
renumber any imaginary lists in the driver or device tree. So try to
follow sort of what the standard interrupts binding is doing only
describing the hardware.

> Incidentally, there is just one example in the kernel tree of doing this
> right (in arch/arm/boot/dts/imx6qdl-tx6.dtsi). All the others that use
> non-mmio clocks called `clock`, including the various tegra devicetrees,
> violate the DT spec by not including a dummy reg property matching the
> unit-address.

Doing it right will save you tons of time later on ;)

FYI, for the TI clocks, we ended up redoing most of the clocks as
documented in Documentation/devicetree/bindings/clock/ti-clkctrl.txt.

Regards,

Tony