RE: [PATCH v3 09/10] arch: arm: boot: dts: Introduce HPE GXP Device tree

From: Hawkins, Nick
Date: Wed Apr 13 2022 - 12:49:39 EST




-----Original Message-----
From: Arnd Bergmann [mailto:arnd@xxxxxxxx]
Sent: Wednesday, April 6, 2022 2:25 AM
To: Hawkins, Nick <nick.hawkins@xxxxxxx>
Cc: Arnd Bergmann <arnd@xxxxxxxx>; Verdun, Jean-Marie <verdun@xxxxxxx>; Olof Johansson <olof@xxxxxxxxx>; soc@xxxxxxxxxx; Rob Herring <robh+dt@xxxxxxxxxx>; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
Subject: Re: [PATCH v3 09/10] arch: arm: boot: dts: Introduce HPE GXP Device tree

> I would count passing a register address to the child device as a private interface.
> It's a minimalistic one, but that is not a bad thing here.

Thank you. Now that the parent/child issue with timer/watchdog is resolved I am now having an issue trying to access "iopclk" from "gxp-timer". I have tried use of of_clk_get_by_name and of_clk_get which both fail to find the clock.
Is it because clocks is outside of the axi -> ahb hierarchy?

clocks {
pll: pll {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <1600000000>;
};

iopclk: iopclk {
compatible = "fixed-factor-clock";
#clock-cells = <0>;
clock-div = <4>;
clock-mult = <4>;
clocks = <&pll>;
};
};

axi {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges;
dma-ranges;

ahb@c0000000 {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0x0 0xc0000000 0x30000000>;

...

st: timer@80 {
compatible = "hpe,gxp-timer","simple-mfd";
reg = <0x80 0x16>;
interrupts = <0>;
interrupt-parent = <&vic0>;
clocks = <&iopclk>;
clock-names = "iopclk";

watchdog {
compatible = "hpe,gxp-wdt";
};
};
};
};

Thanks,

-Nick Hawkins