Re: [PATCH] dt-bindings: i2c: Add armada-38x i2c binding

From: Chris Packham
Date: Tue Sep 26 2017 - 21:15:29 EST


Hi Gregory,

On 27/09/17 00:56, Gregory CLEMENT wrote:
> Hi Kalyan,
>
> Please try avoid top-posting.
>
> On dim., sept. 24 2017, Kalyan Kinthada <Kalyan.Kinthada@xxxxxxxxxxxxxxxxxxx> wrote:
>
>> Hi Gregory,
>>
>> I got this information from Armada-38x functional errata document.
>
> OK but in any case just adding a new compatible was not enough you have
> to update the driver in the same time, however for this case we won't
> need it, see below.
>
>>
>> I can add the "marvell,mv78230-i2c" compatible string to the appropriate device tree files
>> but the i2c-mv64xxx driver enables an additional feature (offload i2c transactions)
>> based on the compatible string "marvell,mv78230-i2c".
>>
>> I am not sure if this feature (offload i2c transactions) should be enabled for Armada-38x devices.
>> That is the reason I felt for the need of a new compatible string
>> specifically for Armada-38x SoCs.
>
> Indeed the Armada-38x SoCs does not support hardware offloading (at
> least according the datasheet). But it happens that in the earlier
> version of the Armada XP the hardware offloading was buggy, so we
> introduced a compatible for this case: marvell,mv78230-a0-i2c. This
> compatible enable the errata fix but not the offloading feature. That
> means that it is exactly the compatible you need for Armada 38x (and
> Armada 39x and 375 I think).

The "mv78230-a0-i2c" dt-binding has the following note

Note: Only use "marvell,mv78230-a0-i2c" for a
very rare, initial version of the SoC which
had broken offload support. Linux
auto-detects this and sets it appropriately.

If we are going to re-use this binding for armada-38x we should probably
remove this note. Personally my preference would be an armada-38x
compatible string (or 370 if that's the common base of these SoCs). But
of course we'll go with whatever your preference is as maintainer.

>
> Gregory
>
>>
>> Thanks,
>> Kalyan
>> ________________________________________
>> From: Gregory CLEMENT <gregory.clement@xxxxxxxxxxxxxxxxxx>
>> Sent: Friday, 22 September 2017 7:30 p.m.
>> To: Kalyan Kinthada
>> Cc: devicetree@xxxxxxxxxxxxxxx; wsa@xxxxxxxxxxxxx; robh+dt@xxxxxxxxxx;
>> pawel.moll@xxxxxxx; mark.rutland@xxxxxxx;
>> ijc+devicetree@xxxxxxxxxxxxxx; galak@xxxxxxxxxxxxxx;
>> linux-i2c@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Chris Packham
>> Subject: Re: [PATCH] dt-bindings: i2c: Add armada-38x i2c binding
>>
>> Hi Kalyan,
>>
>> On ven., sept. 22 2017, Kalyan Kinthada <kalyan.kinthada@xxxxxxxxxxxxxxxxxxx> wrote:
>>
>>> All armada-38x variants(380, 385, 388) SoCs have an issue
>>> in i2c controller which violates the i2c repeated start timing.
>>
>>
>> Did you had an issue with one of the SoC ?
>> If yes what was your setting ?
>> On my side I never managed to have this sort of issue on Armada 38x.
>>
>>>
>>> This errata is fixed in the i2c-mv64xxx driver but enabled
>>> only for devices with compatible string "marvell,mv78230-i2c".
>>
>> In this case why not just adding the "marvell,mv78230-i2c" as compatible
>> string in the appropriate device tree files ?
>>
>> Gregory
>>
>>>
>>> This patch introduces a new compatible string
>>> "marvell,armada-38x-i2c" for the i2c controller on armada-38x SoCs
>>> so that the workaound is enabled.
>>
>>
>>>
>>> Signed-off-by: Kalyan Kinthada <kalyan.kinthada@xxxxxxxxxxxxxxxxxxx>
>>> ---
>>> Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt | 1 +
>>> 1 file changed, 1 insertion(+)
>>>
>>> diff --git a/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt b/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt
>>> index 5c30026921..fc100b6bdb 100644
>>> --- a/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt
>>> +++ b/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt
>>> @@ -14,6 +14,7 @@ Required properties :
>>> very rare, initial version of the SoC which
>>> had broken offload support. Linux
>>> auto-detects this and sets it appropriately.
>>> + - "marvell,armada-38x-i2c"
>>> - interrupts : The interrupt number
>>>
>>> Optional properties :
>>> --
>>> 2.14.1
>>>
>>
>> --
>> Gregory Clement, Free Electrons
>> Kernel, drivers, real-time and embedded Linux
>> development, consulting, training and support.
>> http://free-electrons.com
>