On Wed, Apr 27, 2022 at 1:29 AM Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx> wrote: > > On 27/04/2022 04:36, Rob Herring wrote: > > On Sat, Apr 23, 2022 at 5:46 AM Krzysztof Kozlowski > > <krzysztof.kozlowski@xxxxxxxxxx> wrote: > >> > >> Hi Rob, > >> > >> Dmitry pointed out interesting issue when writing PCI schema. Consider > >> the patch for Exynos PCI schema (which includes SNPS schema and > >> unevaluatedProperties:false): > >> https://pastebin.ubuntu.com/p/4SzxVP4N3j/ > >> > >> This passes `make dt_binding_check > >> DT_SCHEMA_FILES=Documentation/devicetree/bindings/pci/` without a > >> problem. It should not. The property is nowhere described, so > >> unevaluatedProperties should scream. > >> > >> Other bindings using unevaluated:false and some ref, also has this > >> issue. The additionalProperties:false (when there is no ref for other > >> schema) works correct. > > > > This is because I never committed the fix for all this which explains the issue: > > > > dtschema: Strip 'additionalProperties: true' from schemas > > > > An 'additionalProperties: true' makes all properties evaluated, so an > > 'unevaluatedProperties: false' schema doesn't work when referencing a > > schema with 'additionalProperties: true'. > > > > Really, 'additionalProperties: true' should be dropped, but it is used as > > a flag for common schemas which are usually incomplete and included by > > device specific schemas. Removing it would mean dropping the meta-schema > > requiring either 'additionalProperties' or 'unevaluatedProperties'. > > > > Signed-off-by: Rob Herring <robh@xxxxxxxxxx> > > > > Since snps,dw-pcie.yaml defines 'additionalProperties: true', > > everything is evaluated... > > Thanks for explanation. > > > > > This fix needed schema fixes to land before I committed this, but it > > was the end of the year and I guess I forgot about it. Now, it looks > > like we have more to fix. :( 25 to be exact: > > > > Documentation/devicetree/bindings/mfd/samsung,exynos5433-lpass.example.dtb: > > audio-subsystem@11400000: dma-controller@11420000: Unevaluated > > properties are not allowed ('#dma-channels', '#dma-requests', > > 'power-domains' were unexpected) > > I'll fix the power-domains, but dma-channels/dma-requests should not > fail. This should be accepted through: > arm,pl330.yaml -> dma-controller.yaml -> dma-common.yaml Except that the standard property names are 'dma-channels' and 'dma-requests' without the '#'. Thanks for the fixes. Unfortunately, it looks like NAND needs the same parent/child schema split that was done for SPI. Rob