2017-09-28 04:04:17

by Kalyan Kinthada

[permalink] [raw]
Subject: [PATCH 0/2] Fix I2C repeated start timing violation on Armada-38x.

All the Armada 38x(380, 385, 388) have a silicon issue in
the I2C controller which violates the I2C repeated start timing
(errata FE-8471889).

Activate the compatible string "marvell,mv78230-a0-i2c" in the
device tree file of Armada-38x to fx this errata (FE-8471889).

Updated the Documentation for the compatible string
"marvell,mv78230-a0-i2c" by removing the "notes" because
this is applicable for a number of SoCs such as early revisions
of Armada XP and the Armada 38x variants.

Thank You Gregory Clement for suggesting to reuse the
"marvell,mv78230-a0-i2c" compatible string on Armada-38x SoCs.

------
Kalyan Kinthada (2):
ARM: dts: Fix I2C repeated start issue on Armada-38x
dt-bindings: i2c: Update documentation for "mv78230-a0-i2c"

Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt | 4 ----
arch/arm/boot/dts/armada-38x.dtsi | 4 ++--
2 files changed, 2 insertions(+), 6 deletions(-)

--
2.14.1


2017-09-28 04:04:19

by Kalyan Kinthada

[permalink] [raw]
Subject: [PATCH 2/2] dt-bindings: i2c: Update documentation for "mv78230-a0-i2c"

This commit modifies the documentation for
"marvell,mv78230-a0-i2c" compatible string.

The "marvell,mv78230-a0-i2c" compatible string enables the workaround
for an i2c repeated start timing violation, but unlike
"marvell,mv78230-i2c" it disables the i2c offload support. This is
applicable to a number of SoCs such as early revisions of the Armada XP
and the Armada 38x.

Deleted the special note for "marvell,mv78230-a0-i2c" as it can
be used by other SoCs as well.

Signed-off-by: Kalyan Kinthada <[email protected]>
---
Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt | 4 ----
1 file changed, 4 deletions(-)

diff --git a/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt b/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt
index 5c30026921ae..37c00ad1c0bb 100644
--- a/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt
+++ b/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt
@@ -10,10 +10,6 @@ Required properties :
- "marvell,mv64xxx-i2c"
- "marvell,mv78230-i2c"
- "marvell,mv78230-a0-i2c"
- * 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.
- interrupts : The interrupt number

Optional properties :
--
2.14.1

2017-09-28 04:04:15

by Kalyan Kinthada

[permalink] [raw]
Subject: [PATCH 1/2] ARM: dts: Fix I2C repeated start issue on Armada-38x

All the Armada 38x(380, 385, 388) have a silicon issue in
the I2C controller which violates the I2C repeated start timing
(errata FE-8471889).

i2c-mv64xxx driver handles this errata based on the compatible string
"marvell,mv78230-a0-i2c".

This patch activates the "marvell,mv78230-a0-i2c" compatible string
for the I2C controller on armada-38x SoC based devices.

Signed-off-by: Kalyan Kinthada <[email protected]>
---
arch/arm/boot/dts/armada-38x.dtsi | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
index 7ff0811e61db..4960722aab32 100644
--- a/arch/arm/boot/dts/armada-38x.dtsi
+++ b/arch/arm/boot/dts/armada-38x.dtsi
@@ -178,7 +178,7 @@
};

i2c0: i2c@11000 {
- compatible = "marvell,mv64xxx-i2c";
+ compatible = "marvell,mv78230-a0-i2c", "marvell,mv64xxx-i2c";
reg = <0x11000 0x20>;
#address-cells = <1>;
#size-cells = <0>;
@@ -189,7 +189,7 @@
};

i2c1: i2c@11100 {
- compatible = "marvell,mv64xxx-i2c";
+ compatible = "marvell,mv78230-a0-i2c", "marvell,mv64xxx-i2c";
reg = <0x11100 0x20>;
#address-cells = <1>;
#size-cells = <0>;
--
2.14.1

2017-09-28 07:56:41

by Gregory CLEMENT

[permalink] [raw]
Subject: Re: [PATCH 2/2] dt-bindings: i2c: Update documentation for "mv78230-a0-i2c"

Hi Kalyan,

On jeu., sept. 28 2017, Kalyan Kinthada <[email protected]> wrote:

> This commit modifies the documentation for
> "marvell,mv78230-a0-i2c" compatible string.
>
> The "marvell,mv78230-a0-i2c" compatible string enables the workaround
> for an i2c repeated start timing violation, but unlike
> "marvell,mv78230-i2c" it disables the i2c offload support. This is
> applicable to a number of SoCs such as early revisions of the Armada XP
> and the Armada 38x.
>
> Deleted the special note for "marvell,mv78230-a0-i2c" as it can
> be used by other SoCs as well.
>
> Signed-off-by: Kalyan Kinthada <[email protected]>
> ---
> Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt | 4 ----
> 1 file changed, 4 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt b/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt
> index 5c30026921ae..37c00ad1c0bb 100644
> --- a/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt
> +++ b/Documentation/devicetree/bindings/i2c/i2c-mv64xxx.txt
> @@ -10,10 +10,6 @@ Required properties :
> - "marvell,mv64xxx-i2c"
> - "marvell,mv78230-i2c"
> - "marvell,mv78230-a0-i2c"
> - * 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.

I think here we should pour more details like what you wrote in the
commit log. Maybe something like:

- "marvell,mv78230-a0-i2c": for controller which
do not support offload but still have the i2c
repeated start timing violation issue, such as
the ones found in the Armada XP A0 and the
Armada 38x SoCs.


And I still have to check it for Armada 375 and Armada 39x, but of
course it is not preventing merging your patches.

Gregory




> - 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