Re: [RFC PATCH] dt-bindings: display: ti,tfp410.txt: convert to yaml

Ricardo Cañuelo
2020-04-29T08:54:57Z

On mar 28-04-2020 21:21:17, Sam Ravnborg wrote:
> Hi Ricardo.
>
> Thanks for looking into this bridge binding.
> Some comments in the following.

Thanks for reviewing it, Sam. I agree with your suggestions, some
comments below:

> Can you define it as an enum like this:
>
> enum: [-4, -3, -2, -1, 0, 1, 2, 3]
>
> And then maybe in the descrition describe how they map to 0..7.
> The problem is that the binding is an API so we cannot just change
> the interpretation of the value 0 etc.

This is similar to what I wanted to do at first, specifying minimum and
maximum values, but it'd have the same problem with the yaml
checker. See, problem is in the yaml checking itself, the actual
parameter parsing in the driver already works with negative integers.

The issue with this particular property is that:

- it's vendor specific, so it must have a type definition.

- the actual value is signed, so the proper type definition to use
should be a signed integer.

- but then, if you use a negative value for this it will be cast into
a very large u32 (that's what cells are, after all) beyond the
maximum value of a positive int32.

- Range constraints can't be properly checked either, since any
negative integer interpreted as unsigned will result in a positive
number beyond the top end of the value range (3 in this case).

So unless there's a way of making the yaml check process aware of
negative integers, I think the only way to pass the checks is to use
unsigned integers and avoid defining the range constraints.

FWIW, the only other similar case I found (adi,ltc2983.yaml) uses uint64
and no range constraints.

Cheers,
Ricardo