Re: [PATCH] dt-bindings: pinctrl: qcom,pmic-mpp: Fix schema for "qcom,paired"

From: Krzysztof Kozlowski
Date: Tue Jun 13 2023 - 02:49:07 EST


On 09/06/2023 23:34, Rob Herring wrote:
> On Fri, Apr 21, 2023 at 1:48 PM Rob Herring <robh@xxxxxxxxxx> wrote:
>>
>> On Wed, Apr 19, 2023 at 2:56 PM Krzysztof Kozlowski
>> <krzysztof.kozlowski@xxxxxxxxxx> wrote:
>>>
>>> On 18/04/2023 17:06, Rob Herring wrote:
>>>> The "qcom,paired" schema is all wrong. First, it's a list rather than an
>>>> object(dictionary). Second, it is missing a required type. The meta-schema
>>>> normally catches this, but schemas under "$defs" was not getting checked.
>>>> A fix for that is pending.
>>>>
>>>> Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
>>>> ---
>>>> Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.yaml | 5 +++--
>>>> 1 file changed, 3 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.yaml b/Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.yaml
>>>> index 9412b9362328..4c3e9ff82105 100644
>>>> --- a/Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.yaml
>>>> +++ b/Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.yaml
>>>> @@ -144,8 +144,9 @@ $defs:
>>>> enum: [0, 1, 2, 3, 4, 5, 6, 7]
>>>>
>>>> qcom,paired:
>>>> - - description:
>>>> - Indicates that the pin should be operating in paired mode.
>>>> + type: boolean
>>>> + description:
>>>> + Indicates that the pin should be operating in paired mode.
>>>
>>> Current Linux implementation uses it as a generic pinconf param
>>> pinconf_generic_params which is parsed by:
>>>
>>> pinconf_generic_parse_dt_config() -> parse_dt_cfg() ->
>>> of_property_read_u32()
>>>
>>>
>>> The pinctrl-spmi-mpp.c driver, using this schema, treat it as a bool,
>>> but I still wonder how the code will parse bool with
>>> of_property_read_u32(). Maybe it should be uint32 with value of 0 and 1?
>>
>> That should be an error because the length is too short so it should
>> go with some default from the code.
>>
>> Looks like there is no user, though no property could mean keep the
>> default/bootloader setting. Can you sort out which type is really
>> desired here and hopefully we can get rid of the other type. It's not
>> the first case of pinctrl properties with multiple types, but we don't
>> really need more.
>
> Still an issue here. Please sort out what functionality QCom wants here.
>
> dtschema (main br) will now throw a warning on it.

I think we can go with your patch, after double checking my previous
concerns are not relevant here - driver reads it as bool just like other
bool properties.

Best regards,
Krzysztof