On Fri, May 17, 2024 at 05:21:32PM +0100, Conor Dooley wrote: > On Thu, May 16, 2024 at 11:56:27PM -0400, Frank Li wrote: > > > Look like it is easy to register auxdev "reset" devices. But I have a > > problem. How to use it by DT phandle? "reset" devices is service provider. > > Some client will use it. > > > > Generally, reset node will used by other devices nodes. like > > > > ABC: reset { > > compatible="simple-reset"; > > ... > > } > > > > other node will use "reset = <&ABC 0>". If use auxdev, how to get &ABC > > in dts file. > > Whether or not you use auxdev or any other method etc, does not matter > in a DT system, the consumer will always have a phandle to the provider > node: > > ABC: whatever { > compatible = "whatever"; > #clock-cells = <...>; > #reset-cells = <...>; > } > > something-else { > clocks = <&ABC ...>; > resets = <&ABC ...>; > } It goes back to old problem, "reset-cells" will be in "clock-controller". clock-controller@30e20000 { compatible = "fsl,imx8mp-audio-blk-ctrl", "syscon", "simple-mfd"; reg = <0x30e20000 0x10000>; ... #reset-cells = <...>; ^^^ }; If create new "whatever" auxdev bus driver which included two aux devices, (clock and reset). it will be similar with mfd. Still need change clock-controller@30e20000 drivers. "Which is I suspect is gonna require a change to your clock driver, because the range in the existing clock nodes: audio_blk_ctrl: clock-controller@30e20000 { compatible = "fsl,imx8mp-audio-blk-ctrl"; reg = <0x30e20000 0x10000>; }; would then have to move to the mfd parent node, and your clock child would have a reg property that overlaps the reset region. You'd need to then define a new binding that splits the range in two - obviously doable, but significantly more work and more disruptive than using an auxdev." So I don't know why auxdev will be better than mfd. A possible benefit may be that Auxdev needn't binding doc for clock and reset node devices. Frank Frank