On Sun, 11 Sept 2022 at 16:57, Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> wrote: > > On 11/09/2022 15:45, Dmitry Baryshkov wrote: > > On Sun, 11 Sept 2022 at 14:27, Krzysztof Kozlowski > > <krzysztof.kozlowski@xxxxxxxxxx> wrote: > >> > >> On 10/09/2022 14:54, Dmitry Baryshkov wrote: > >>>> > >>>> However I think there is no such problem, as Dmitry said, that ref > >>>> changes anything. There will be always failure - either from parent > >>>> schema (using $ref) or from device child schema (the one which actually > >>>> misses the property). > >>> > >>> Initially I stumbled upon this issue with the dsi and dsi_phy nodes > >>> for msm8996 devices. If I have $ref here, dsi1/dsi1_phy nodes will > >>> emit warnings regarding the missing -supply properties despite nodes > >>> being disabled. If I use `compatible' here, the schema checks pass. > >>> Thus I'd prefer to leave `compatible' here. Not to mention that it > >>> also allows specifying a tighter binding than just using the $ref. > >> > >> I don't think we understood each other. I claim that error will be there > >> anyway, just from different schema. So your change fixes nothing in > >> total schema check... > > > > If the node is disabled, there will be no different schema check. > > As I wrote before, there was. The following results were captured with the following command, with most of the DSI and MDSS schema files fixed, using the following command: $ PATH=~/.local/bin/:$PATH make -C ../build-64/ ARCH=arm64 qcom/sda660-inforce-ifc6560.dtb CHECK_DTBS=y DT_SCHEMA_FILES=display/msm As you can see from the example below, when using 'compatible' I'm getting warnings just for the gpu@5000000 node, while using $ref I also got warnings for the dsi-phy@c996400 node (disabled in the DT file). For your reference the tree in question is uploaded to the: https://git.linaro.org/people/dmitry.baryshkov/kernel.git msm-mdss-yaml Logs: #1 mdss.yaml using compatible enum for dsi-phy: "^dsi-phy@[1-9a-f][0-9a-f]*$": type: object properties: compatible: enum: - qcom,dsi-phy-14nm - qcom,dsi-phy-14nm-660 - qcom,dsi-phy-20nm - qcom,dsi-phy-28nm-hpm - qcom,dsi-phy-28nm-lp make: Entering directory '/home/lumag/Projects/Qcomm/build-64' /home/lumag/Projects/Qcomm/kernel/arch/arm64/Makefile:36: Detected assembler with broken .inst; disassembly will be unreliable UPD include/config/kernel.release LINT Documentation/devicetree/bindings CHKDT Documentation/devicetree/bindings/processed-schema.json SCHEMA Documentation/devicetree/bindings/processed-schema.json /home/lumag/Projects/Qcomm/kernel/Documentation/devicetree/bindings/regulator/qcom,spmi-regulator.yaml: ignoring, error in schema: patternProperties: ^(5vs[1-2]|(l|s)[1-9][0-9]?|lvs[1-3])$: properties DTC/CHECK arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dtb /home/lumag/Projects/Qcomm/build-64/arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dtb: gpu@5000000: clock-names:4: 'anyOf' conditional failed, one must be fixed: 'core' was expected 'iface' was expected 'mem' was expected 'mem_iface' was expected 'alt_mem_iface' was expected 'gfx3d' was expected 'rbbmtimer' was expected >From schema: /home/lumag/Projects/Qcomm/kernel/Documentation/devicetree/bindings/display/msm/gpu.yaml make: Leaving directory '/home/lumag/Projects/Qcomm/build-64' #2 mdss.yaml having dsi-phy rewritten to $ref: "^dsi-phy@[1-9a-f][0-9a-f]*$": type: object oneOf: - $ref: dsi-phy-14nm.yaml - $ref: dsi-phy-20nm.yaml - $ref: dsi-phy-28nm.yaml make: Entering directory '/home/lumag/Projects/Qcomm/build-64' /home/lumag/Projects/Qcomm/kernel/arch/arm64/Makefile:36: Detected assembler with broken .inst; disassembly will be unreliable LINT Documentation/devicetree/bindings CHKDT Documentation/devicetree/bindings/processed-schema.json SCHEMA Documentation/devicetree/bindings/processed-schema.json /home/lumag/Projects/Qcomm/kernel/Documentation/devicetree/bindings/regulator/qcom,spmi-regulator.yaml: ignoring, error in schema: patternProperties: ^(5vs[1-2]|(l|s)[1-9][0-9]?|lvs[1-3])$: properties DTC/CHECK arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dtb /home/lumag/Projects/Qcomm/build-64/arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dtb: gpu@5000000: clock-names:4: 'anyOf' conditional failed, one must be fixed: 'core' was expected 'iface' was expected 'mem' was expected 'mem_iface' was expected 'alt_mem_iface' was expected 'gfx3d' was expected 'rbbmtimer' was expected >From schema: /home/lumag/Projects/Qcomm/kernel/Documentation/devicetree/bindings/display/msm/gpu.yaml /home/lumag/Projects/Qcomm/build-64/arch/arm64/boot/dts/qcom/sda660-inforce-ifc6560.dtb: mdss@c900000: dsi-phy@c996400: 'oneOf' conditional failed, one must be fixed: 'vcca-supply' is a required property 'vddio-supply' is a required property Unevaluated properties are not allowed ('compatible', 'reg-names' were unexpected) 'qcom,dsi-phy-20nm' was expected 'qcom,dsi-phy-14nm-660' is not one of ['qcom,dsi-phy-28nm-hpm', 'qcom,dsi-phy-28nm-lp', 'qcom,dsi-phy-28nm-8960'] 'dsi_pll' was expected 'dsi_phy' was expected 'dsi_phy_regulator' was expected >From schema: /home/lumag/Projects/Qcomm/kernel/Documentation/devicetree/bindings/display/msm/mdss.yaml make: Leaving directory '/home/lumag/Projects/Qcomm/build-64' -- With best wishes Dmitry