On 03/04/2022 17:11, Rob Herring wrote: > 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@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. I think I already might be adding the same pattern to other bindings I convert, so maybe I should add at least comments to such cases so we can fix it later. Best regards, Krzysztof