在2024年6月19日六月 上午10:28,Krzysztof Kozlowski写道: > On 18/06/2024 17:11, Jiaxun Yang wrote: >> This compatible has been used in arch/mips/boot/dts/img/boston.dts >> for a while but never documented properly. >> > >> diff --git a/Documentation/devicetree/bindings/mfd/img,boston-platform-regs.yaml b/Documentation/devicetree/bindings/mfd/img,boston-platform-regs.yaml >> new file mode 100644 >> index 000000000000..79cae87c6758 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/mfd/img,boston-platform-regs.yaml >> @@ -0,0 +1,74 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/mfd/img,boston-platform-regs.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: Imagination Technologies Boston Platform Registers >> + >> +maintainers: >> + - Jiaxun Yang <jiaxun.yang@xxxxxxxxxxx> >> + >> +properties: >> + compatible: >> + items: >> + - const: img,boston-platform-regs >> + - const: syscon >> + - const: simple-mfd > > > Fix U-boot to populate devices instead of relying on simple-mfd. Hi Krzysztof, I believe U-Boot's implementation is correct. As per simple-mfd binding: ``` simple-mfd" - this signifies that the operating system should consider all subnodes of the MFD device as separate devices akin to how "simple-bus" indicates when to see subnodes as children for a simple memory-mapped bus. ``` This reads to me as "if you want sub nodes to be populated as devices you need this." In our case there are "clock" and "reset" node sub nodes which should be probed as regular device, so it's true for us. Linux managed to work without "simple-mfd" only because clock subsystem is bypassing regular OF population process. Semantically we need this. Besides Linux as upstream of devicetree source had accepted U-Boot only stuff here, such as "bootph-all" property. Thanks - Jiaxun > >> + >> + reg: >> + maxItems: 1 >> + >> + clock-controller: >> + type: object >> + >> + description: Boston Clock Controller Device Node >> + The clock consumer should specify the desired clock by having the clock >> + ID in its "clocks" phandle cell. >> + See include/dt-bindings/clock/boston-clock.h for the full list of boston >> + clock IDs. >> + >> + properties: >> + "#clock-cells": >> + const: 1 >> + >> + compatible: >> + const: img,boston-clock > > Please put compatible first in the list of properties (and follow the > same order in "required"). It's the most important piece, so we want it > to be the first to see. It also follows the convention of DTS, where > compatible is expected to be first. > >> + >> + required: >> + - "#clock-cells" >> + - compatible >> + >> + additionalProperties: false >> + >> + reboot: >> + $ref: /schemas/power/reset/syscon-reboot.yaml# > > > Best regards, > Krzysztof -- - Jiaxun