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

Krzysztof Kozlowski
2022-04-03T15:47:25Z

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