Re: [PATCH 1/2] dt-bindings: pinctrl: qcom: Add SM6350 pinctrl bindings

From: Konrad Dybcio
Date: Sat Aug 28 2021 - 08:40:20 EST



>>> +        #include <dt-bindings/interrupt-controller/arm-gic.h>
>>> +        pinctrl@f100000 {
>>> +                compatible = "qcom,sm6350-tlmm";
>>> +                reg = <0x0f100000 0x300000>;
>>> +                interrupts = <GIC_SPI 208 IRQ_TYPE_LEVEL_HIGH>,
>>> +                            <GIC_SPI 209 IRQ_TYPE_LEVEL_HIGH>,
>>> +                            <GIC_SPI 210 IRQ_TYPE_LEVEL_HIGH>,
>>> +                            <GIC_SPI 211 IRQ_TYPE_LEVEL_HIGH>,
>>> +                            <GIC_SPI 212 IRQ_TYPE_LEVEL_HIGH>,
>>> +                            <GIC_SPI 213 IRQ_TYPE_LEVEL_HIGH>,
>>> +                            <GIC_SPI 214 IRQ_TYPE_LEVEL_HIGH>,
>>> +                            <GIC_SPI 215 IRQ_TYPE_LEVEL_HIGH>,
>>> +                            <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
>>> +                gpio-controller;
>>> +                #gpio-cells = <2>;
>>> +                interrupt-controller;
>>> +                #interrupt-cells = <2>;
>>> +                gpio-ranges = <&tlmm 0 0 156>;
>> Shouldn't this be 157?

Yes, it should. Good catch.


>>
>>> +
>>> +                gpio-wo-subnode-state {
>>> +                        pins = "gpio1";
>>> +                        function = "gpio";
>>> +                };
>>> +
>>> +                uart-w-subnodes-state {
>>> +                        rx {
>>> +                                pins = "gpio25";
>>> +                                function = "qup13_f2";
>>> +                                bias-disable;
>>> +                        };
>>> +
>>> +                        tx {
>>> +                                pins = "gpio26";
>>> +                                function = "qup13_f2";
>>> +                                bias-disable;
>>> +                        };
>>> +                };
>>> +        };
>>> +...
>>> diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,tlmm-common.yaml b/Documentation/devicetree/bindings/pinctrl/qcom,tlmm-common.yaml
>>> index 3b37cf102d41..99975122a2ce 100644
>>> --- a/Documentation/devicetree/bindings/pinctrl/qcom,tlmm-common.yaml
>>> +++ b/Documentation/devicetree/bindings/pinctrl/qcom,tlmm-common.yaml
>>> @@ -17,7 +17,7 @@ properties:
>>>     interrupts:
>>>       description:
>>>         Specifies the TLMM summary IRQ
>>> -    maxItems: 1
>>> +    maxItems: 9
>> Is this to support direct connected interrupts?
>>
>> Don't you need to add minItems: 1, to permit the other bindings to not
>> define these? I think that's what Rob's automatic reply complains about
>> at least.
>>
>>
>> PS. Any plans to work up support for direct connected interrupts? I
>> think that and "egpio" is the only downstream delta these days... That
>> said, I don't know if anyone actually uses direct connected interrupts?

I haven't really gotten into that piece yet, trying to get the platform up first..



>
> Using .wakeirq_dual_edge_errata = true, in pinctrl-sm6350.c (msm_pinctrl_soc_data structure) in [1] should help. The direct connect interrupt were added to support dual edge in downstream driver but in upstream setting this flag should help.
>
> This was used in sc7180 but should apply SM6350 too.
>
> That way you don't need other TLMM interrupts to be listed here.
>
> [1] https://patchwork.kernel.org/project/linux-arm-msm/patch/20210820203751.232645-3-konrad.dybcio@xxxxxxxxxxxxxx/
>
> Thanks,
> Maulik
>
Thanks, I'll check and respin a v2 with that.


Konrad