On Wed, Jan 29, 2020 at 5:26 PM Doug Anderson <dianders@xxxxxxxxxxxx> wrote: > > Hi, > > On Wed, Jan 29, 2020 at 2:01 PM Rob Herring <robh+dt@xxxxxxxxxx> wrote: > > > > On Wed, Jan 29, 2020 at 3:23 PM Douglas Anderson <dianders@xxxxxxxxxxxx> wrote: > > > > > > The 'qcom,gcc.yaml' file failed self-validation (dt_binding_check) > > > because it required a property to be either (3 entries big), > > > (3 entries big), or (7 entries big), but not more than one of those > > > things. That didn't make a ton of sense. > > > > > > This patch splits all of the exceptional device trees (AKA those that > > > would have needed if/then/else rules) from qcom,gcc.yaml. It also > > > cleans up some cruft found while doing that. > > > > > > After this lands, this worked for me atop clk-next: > > > for f in \ > > > Documentation/devicetree/bindings/clock/qcom,gcc-apq8064.yaml \ > > > Documentation/devicetree/bindings/clock/qcom,gcc-ipq8074.yaml \ > > > Documentation/devicetree/bindings/clock/qcom,gcc-msm8996.yaml \ > > > Documentation/devicetree/bindings/clock/qcom,gcc-msm8998.yaml \ > > > Documentation/devicetree/bindings/clock/qcom,gcc-qcs404.yaml \ > > > Documentation/devicetree/bindings/clock/qcom,gcc-sc7180.yaml \ > > > Documentation/devicetree/bindings/clock/qcom,gcc-sm8150.yaml \ > > > Documentation/devicetree/bindings/clock/qcom,gcc.yaml; do \ > > > ARCH=arm64 make dt_binding_check DT_SCHEMA_FILES=$f; \ > > > ARCH=arm64 make dtbs_check DT_SCHEMA_FILES=$f; \ > > > done > > > > Note that using DT_SCHEMA_FILES may hide some errors in examples as > > all other schemas (including the core ones) are not used for > > validation. So just 'make dt_binding_check' needs to pass (ignoring > > any other unrelated errors as it breaks frequently). Supposedly a > > patch is coming explaining this in the documentation. > > That seems like it's going to be a huge pain going forward, but OK. Use of DT_SCHEMA_FILES hiding problems or having to run 'make dt_binding_check' on everything? I could probably rework things such that you can check a single binding example against all schema, but dtbs still get validated by just a single schema. The other option is proper makefiles in every directory so you can do 'make Documentation/devicetree/bindings/clk/'. But like compiling a directory, that doesn't catch all issues (linking). > I > kept running "dtbs_check" with the DT_SCHEMA_FILES since I guess this > was OK? Then I ran this atop next-20200129: Yes, that's really where DT_SCHEMA_FILES is most useful IMO. > # Delete broken yaml: > rm Documentation/devicetree/bindings/pci/intel-gw-pcie.yaml Been waiting on the fix to be applied since Dec... > ARCH=arm64 make dt_binding_check | grep 'clock/qcom' > > ...and that seemed OK to me. I've updated the commit message to > include what I did. Hopefully it's right. Probably is. There are cases where a new schema breaks another file's example. If someone has a gcc node in another example for example. Rob