Message ID | 20220331211653.175200-1-krzysztof.kozlowski@linaro.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [1/2] regulator: dt-bindings: maxim,max8997: correct array of voltages | expand |
On Thu, Mar 31, 2022 at 11:17 PM Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> 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:". > > 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 > > Fixes: 1d2104f21618 ("regulator: dt-bindings: maxim,max8997: convert to dtschema") > Reported-by: Geert Uytterhoeven <geert@linux-m68k.org> > Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Thanks! Warning going, and if I add one entry too much, it still complains, so: Tested-by: Geert Uytterhoeven <geert+renesas@glider.be> Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
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. Rob
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
diff --git a/Documentation/devicetree/bindings/regulator/maxim,max8997.yaml b/Documentation/devicetree/bindings/regulator/maxim,max8997.yaml index d5a44ca3df04..6305a9abaead 100644 --- a/Documentation/devicetree/bindings/regulator/maxim,max8997.yaml +++ b/Documentation/devicetree/bindings/regulator/maxim,max8997.yaml @@ -32,8 +32,9 @@ properties: max8997,pmic-buck1-dvs-voltage: $ref: /schemas/types.yaml#/definitions/uint32-array - minItems: 1 - maxItems: 8 + items: + minItems: 1 + maxItems: 8 description: | A set of 8 voltage values in micro-volt (uV) units for buck1 when changing voltage using GPIO DVS. @@ -44,8 +45,9 @@ properties: max8997,pmic-buck2-dvs-voltage: $ref: /schemas/types.yaml#/definitions/uint32-array - minItems: 1 - maxItems: 8 + items: + minItems: 1 + maxItems: 8 description: | A set of 8 voltage values in micro-volt (uV) units for buck2 when changing voltage using GPIO DVS. @@ -56,8 +58,9 @@ properties: max8997,pmic-buck5-dvs-voltage: $ref: /schemas/types.yaml#/definitions/uint32-array - minItems: 1 - maxItems: 8 + items: + minItems: 1 + maxItems: 8 description: | A set of 8 voltage values in micro-volt (uV) units for buck5 when changing voltage using GPIO DVS. @@ -267,14 +270,17 @@ if: then: properties: max8997,pmic-buck1-dvs-voltage: - minItems: 8 - maxItems: 8 + items: + minItems: 8 + maxItems: 8 max8997,pmic-buck2-dvs-voltage: - minItems: 8 - maxItems: 8 + items: + minItems: 8 + maxItems: 8 max8997,pmic-buck5-dvs-voltage: - minItems: 8 - maxItems: 8 + items: + minItems: 8 + maxItems: 8 examples: - | @@ -303,20 +309,21 @@ examples: <&gpx0 6 GPIO_ACTIVE_HIGH>, <&gpl0 0 GPIO_ACTIVE_HIGH>; - max8997,pmic-buck1-dvs-voltage = <1350000>, <1300000>, - <1250000>, <1200000>, - <1150000>, <1100000>, - <1000000>, <950000>; + max8997,pmic-buck1-dvs-voltage = <1350000 1300000 + 1250000 1200000 + 1150000 1100000 + 1000000 950000>; + + max8997,pmic-buck2-dvs-voltage = <1100000 1000000 + 950000 900000 + 1100000 1000000 + 950000 900000>; - max8997,pmic-buck2-dvs-voltage = <1100000>, <1000000>, - <950000>, <900000>, - <1100000>, <1000000>, - <950000>, <900000>; - max8997,pmic-buck5-dvs-voltage = <1200000>, <1200000>, - <1200000>, <1200000>, - <1200000>, <1200000>, - <1200000>, <1200000>; + max8997,pmic-buck5-dvs-voltage = <1200000 1200000 + 1200000 1200000 + 1200000 1200000 + 1200000 1200000>; pinctrl-0 = <&max8997_irq>, <&otg_gp>, <&usb_sel>; pinctrl-names = "default";
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:". 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 Fixes: 1d2104f21618 ("regulator: dt-bindings: maxim,max8997: convert to dtschema") Reported-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> --- Patch is independent of DTS. --- .../bindings/regulator/maxim,max8997.yaml | 55 +++++++++++-------- 1 file changed, 31 insertions(+), 24 deletions(-)