On 08/11/2022 15:30, Kunihiko Hayashi wrote: > Hi Krzysztof, > > On 2022/11/08 20:13, Krzysztof Kozlowski wrote: >> On 07/11/2022 11:34, Kunihiko Hayashi wrote: >>> Initial version of devicetree sources for NX1 SoC and boards. >>> >>> NX1 SoC belongs to the UniPhier armv8 architecture platform, and is >>> designed for IoT and AI/ML application fields. >>> >> >>> + >>> + soc_glue: syscon@1f800000 { >>> + compatible = "socionext,uniphier-nx1-soc-glue", >>> + "simple-mfd", "syscon"; >>> + reg = <0x1f800000 0x2000>; >>> + >>> + pinctrl: pinctrl { >>> + compatible = "socionext,uniphier-nx1-pinctrl"; >> >> So instead of documenting the hardware precisily, you have one big bag >> for everything under simple-mfd. This is not how the SoC should be >> described in DTS. > > Sorry I don't understand. This is inherited from the previous descriptions, > but is there some example to express DTS correctly about that? I think yes, although it actually depends what is this hardware. Generally speaking, do not use simple-mfd and syscon when these are not really simple devices. There are quite many in your DTS, which got my attention. Instead - have regular device with or without children. There is no real need to have this a simple-mfd with one children without any resources (no address space, no clocks, no interrupts, nothing). Why this syscon/mfd and pinctrl is not a regular, one device? > >> >>> + }; >>> + }; >>> + >>> + soc-glue@1f900000 { >>> + compatible = "simple-mfd"; >> >> No, it is not allowed on its own. You need a specific compatible and >> bindings describing its children. > > I saw the definition of "simple-mfd" itself is only in mfd/mfd.txt. > > Currently there are only efuse devices as children, and this space means > nothing. I think it had better define the devices directly. You need to start describe the hardware. efuse is an efuse, not MFD. pinctrl is pinctrl not MFD + pinctrl. Best regards, Krzysztof