[PATCH 1/2] regulator: dt-bindings: maxim, max8997: correct array of voltages

Rob Herring robh at kernel.org
Sun Apr 3 08:11:28 PDT 2022


On Thu, Mar 31, 2022 at 11:16:52PM +0200, Krzysztof Kozlowski wrote:
> uint32-array with voltages should be within one bracket pair <>, not
> each number in its own <>.  Also the number of elements in the array
> should be defined within "items:".

Which encoding an array uses has been a source of pain.

> 
> This fixes DT schema warnings like:
> 
>   maxim,max8997.example.dtb: pmic at 66: max8997,pmic-buck1-dvs-voltage:
>     [[1350000, 1300000, 1250000, 1200000, 1150000, 1100000, 1000000, 950000]] is too short

These exist due to the move from validating yaml files to DTBs and I 
haven't come up with how to fix the warning. The schema was correct as 
it was. The change leaks the encoding (everything is a matrix) into the 
schema which we don't want to do.

The issue is in the if/then schema, the tools don't know if the type is 
an array or matrix. It gets it wrong (or different from the top-level) 
and thus the warning. I think the fix will be using the extracted type 
information to do the right transformation. The code for all this is 
pretty horrible and I've lost count of how many times I've re-written 
it. I think a lot of it can be removed when/if support for yaml encoded 
DT is removed which I think can happen in a kernel cycle or 2.

Perhaps in the short term the example can just be removed or commented 
out though that doesn't help on dts files.

Rob



More information about the linux-arm-kernel mailing list