On 2023/4/26 0:56, Conor Dooley wrote: > On Tue, Apr 25, 2023 at 08:26:35PM +0800, Changhuang Liang wrote: >> On 2023/4/25 17:35, Conor Dooley wrote: >>> On Tue, Apr 25, 2023 at 05:18:10PM +0800, Changhuang Liang wrote: >>>> On 2023/4/25 16:19, Krzysztof Kozlowski wrote: >>>>> On 25/04/2023 09:57, Changhuang Liang wrote: >>>>>> Yes, "starfive,jh7110-aon-pmu" is a child-node of "starfive,jh7110-aon-syscon". >>>>>> In my opinion, "0x17010000" is "aon-syscon" on JH7110 SoC, and this "aon-pmu" is just >>>>>> a part of "aon-syscon" function, so I think it is inappropriate to make "aon-syscon" >>>>>> to a power domain controller. I think using the child-node description is closer to >>>>>> JH7110 SoC. >>>>> >>>>> Unfortunately, I do not see the correlation between these, any >>>>> connection. Why being a child of syscon block would mean that this >>>>> should no be power domain controller? Really, why? These are two >>>>> unrelated things. >>>> >>>> Let me summarize what has been discussed above. >>>> >>>> There has two ways to describe this "starfive,jh7110-aon-syscon"(0x17010000). >>>> 1. (0x17010000) is power-controller node: >>>> >>>> aon_pwrc: power-controller@17010000 { >>>> compatible = "starfive,jh7110-aon-pmu", "syscon"; >>>> reg = <0x0 0x17010000 0x0 0x1000>; >>>> #power-domain-cells = <1>; >>>> }; >>>> >>>> >>>> 2. (0x17010000) is syscon node, power-controller is child-node of syscon: >>>> >>>> aon_syscon: syscon@17010000 { >>>> compatible = "starfive,jh7110-aon-syscon", "syscon", "simple-mfd"; >>>> reg = <0x0 0x17010000 0x0 0x1000>; >>>> >>>> aon_pwrc: power-controller { >>>> compatible = "starfive,jh7110-aon-pmu"; >>>> #power-domain-cells = <1>; >>>> }; >>>> }; >>> >>> I thought that Rob was suggesting something like this: >>> aon_syscon: syscon@17010000 { >>> compatible = "starfive,jh7110-aon-syscon", ... >>> reg = <0x0 0x17010000 0x0 0x1000>; >>> #power-domain-cells = <1>; >>> }; > >> I see the kernel: >> https://elixir.bootlin.com/linux/latest/source/arch/arm64/boot/dts/mediatek/mt8167.dtsi >> this file line 42: >> it's power-controller also has no meaningful properties. >> What do you think? > > I'm not sure that I follow. It has a bunch of child-nodes does it not, > each of which is a domain? > > I didn't see such domains in your dts patch, they're defined directly in > the driver instead AFAIU. Assuming I have understood that correctly, > your situation is different to that mediatek one? > > Cheers, > Conor. Conor and Rob, How about this way: aon_syscon: syscon@17010000 { compatible = "starfive,jh7110-aon-syscon", "syscon", "simple-mfd"; reg = <0x0 0x17010000 0x0 0x1000>; aon_pwrc: power-controller { compatible = "starfive,jh7110-aon-pmu"; regmap = <&aon_syscon>; #power-domain-cells = <1>; }; }; Add a "regmap" property which is phandle. And it can keep the present child-node structure. This is more consistent with our soc design. Best regards, Changhuang