Re: [PATCH v4 2/3] dt-bindings: gpio: gpio-mvebu: deprecate armadaxp-gpio

From: Chris Packham
Date: Mon Nov 28 2022 - 15:17:10 EST


Hi Pali,

On 28/11/22 20:59, Pali Rohár wrote:
> On Thursday 26 May 2022 13:29:45 Chris Packham wrote:
>> Commit 5f79c651e81e ("arm: mvebu: use global interrupts for GPIOs on
>> Armada XP") the marvell,armadaxp-gpio compatible obsolete.
> No, marvell,armadaxp-gpio is required for per-cpu interrupt support. I fixed it recently:
> https://lore.kernel.org/linux-devicetree/20220714115515.5748-2-pali@xxxxxxxxxx/
> https://lore.kernel.org/linux-devicetree/20220714183328.4137-3-pali@xxxxxxxxxx/

I'll reply to these directly but when you changed the compatible to
armadaxp you changed the meaning of the 2nd reg property.

>
>> The driver code still exists to handle the armadaxp behaviour but all
>> the in-tree boards use the marvell,armada-370-gpio. Document the
>> marvell,armadaxp-gpio compatible as deprecated.
> For per-cpu interrupt support is marvell,armadaxp-gpio needed and
> therefore it cannot be deprecated.
OK. We can make it un-deprecated (as you say the code exists, just no
board uses it currently).
>
> What can be deprecated is marvell,armada-370-gpio and it can be replaced
> by marvell,orion-gpio, which covers _all_ SoCs starting from the oldest
> one = Orion. See discussion for more details:
> https://lore.kernel.org/linux-devicetree/20220725200417.nwthxzvdv2bzd5ej@xxxxxxxxxxxxxx/

Yes I can see that they're treated the same internally. There had been a
trend of adding specialization compatible strings just in case they were
needed in the future even if there was currently no difference between
the base variant and the newer version. That argument falls a bit flat
since we never added armada-38x-gpio.

So what path forward would you like to see? I'd happily send a patch
un-deprecating the armadaxp compatible. I'm a little hesitant to mark
the armada-370 as deprecated given it's current usage with the in-tree
dtses.

>
>> Signed-off-by: Chris Packham <chris.packham@xxxxxxxxxxxxxxxxxxx>
>> ---
>>
>> Notes:
>> This could potentially be squashed into the first commit but it seemed
>> more proper to do a straight 1:1 conversion of the old binding then
>> clean things up to match reality.
>>
>> Changes in v4:
>> - New
>>
>> .../devicetree/bindings/gpio/gpio-mvebu.yaml | 24 +++++++------------
>> 1 file changed, 8 insertions(+), 16 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml b/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
>> index d1695e7bd825..459ec35864fe 100644
>> --- a/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
>> +++ b/Documentation/devicetree/bindings/gpio/gpio-mvebu.yaml
>> @@ -21,17 +21,21 @@ properties:
>> - enum:
>> - marvell,mv78200-gpio
>> - marvell,armada-370-gpio
>> - - marvell,armadaxp-gpio
>> - const: marvell,orion-gpio
>>
>> + - description: Deprecated binding
>> + items:
>> + - const: marvell,armadaxp-gpio
>> + - const: marvell,orion-gpio
>> + deprecated: true
>> +
>> reg:
>> description: |
>> Address and length of the register set for the device. Not used for
>> marvell,armada-8k-gpio.
>>
>> - For the "marvell,armadaxp-gpio" variant a second entry is expected for
>> - the per-cpu registers. For other variants second entry can be provided,
>> - for the PWM function using the GPIO Blink Counter on/off registers.
>> + A second entry can be provided, for the PWM function using the GPIO Blink
>> + Counter on/off registers.
>> minItems: 1
>> maxItems: 2
>>
>> @@ -103,18 +107,6 @@ allOf:
>> required:
>> - reg
>>
>> - - if:
>> - properties:
>> - compatible:
>> - contains:
>> - const: marvell,armadaxp-gpio
>> - then:
>> - properties:
>> - reg:
>> - minItems: 2
>> - reg-names:
>> - minItems: 2
>> -
>> unevaluatedProperties: true
>>
>> examples:
>> --
>> 2.36.1
>>