-----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