On Wed, May 15, 2024 at 10:47 AM Shengjiu Wang <shengjiu.wang@xxxxxxxxx> wrote: > > On Wed, May 15, 2024 at 5:09 AM Stephen Boyd <sboyd@xxxxxxxxxx> wrote: > > > > Quoting Conor Dooley (2024-05-14 11:06:14) > > > On Tue, May 14, 2024 at 05:33:27PM +0800, Shengjiu Wang wrote: > > > > diff --git a/Documentation/devicetree/bindings/clock/imx8mp-audiomix.yaml b/Documentation/devicetree/bindings/clock/imx8mp-audiomix.yaml > > > > index 0a6dc1a6e122..a403ace4d11f 100644 > > > > --- a/Documentation/devicetree/bindings/clock/imx8mp-audiomix.yaml > > > > +++ b/Documentation/devicetree/bindings/clock/imx8mp-audiomix.yaml > > > > @@ -15,7 +15,10 @@ description: | > > > > > > > > properties: > > > > compatible: > > > > - const: fsl,imx8mp-audio-blk-ctrl > > > > + items: > > > > + - const: fsl,imx8mp-audio-blk-ctrl > > > > + - const: syscon > > > > + - const: simple-mfd > > > > > > > > reg: > > > > maxItems: 1 > > > > @@ -44,6 +47,11 @@ properties: > > > > ID in its "clocks" phandle cell. See include/dt-bindings/clock/imx8mp-clock.h > > > > for the full list of i.MX8MP IMX8MP_CLK_AUDIOMIX_ clock IDs. > > > > > > > > + reset-controller: > > > > + type: object > > > > + $ref: /schemas/reset/fsl,imx8mp-audiomix-reset.yaml# > > > > + description: The child reset devices of AudioMIX Block Control. > > > > > > Why not just set #reset-cells = <1> in the existing node? IIRC it was > > > already suggested to you to do that and use auxdev to set up the reset > > > driver. > > > > Yes, do that. > > Can I know why sub nodes can't be used? the relationship of parent and > child devices looks better with sub nodes. > > A further question is can I use the reset-ti-syscon? which is a generic reset > device for SoCs. with it I don't even need to write a new reset device driver. > it is more simple. > The document link is: https://www.kernel.org/doc/Documentation/devicetree/bindings/reset/ti-syscon-reset.txt Then example is: examples: # Clock Control Module node: - | #include <dt-bindings/clock/imx8mp-clock.h> #include <dt-bindings/reset/ti-syscon.h> clock-controller@30e20000 { compatible = "fsl,imx8mp-audio-blk-ctrl", "syscon", "simple-mfd"; reg = <0x30e20000 0x10000>; #clock-cells = <1>; clocks = <&clk IMX8MP_CLK_AUDIO_ROOT>, <&clk IMX8MP_CLK_SAI1>, <&clk IMX8MP_CLK_SAI2>, <&clk IMX8MP_CLK_SAI3>, <&clk IMX8MP_CLK_SAI5>, <&clk IMX8MP_CLK_SAI6>, <&clk IMX8MP_CLK_SAI7>; clock-names = "ahb", "sai1", "sai2", "sai3", "sai5", "sai6", "sai7"; power-domains = <&pgc_audio>; reset-controller { compatible = "ti,syscon-reset"; #reset-cells = <1>; ti,reset-bits = < 0x200 0 0x200 0 0 0 (ASSERT_CLEAR | DEASSERT_SET | STATUS_NONE) 0x200 1 0x200 1 0 0 (ASSERT_CLEAR | DEASSERT_SET | STATUS_NONE) >; }; }; Best regards Shengjiu Wang