Subject: [PATCH 1/2] ARM: dts: armada388-clearfog: increase speed of i2c0 to 400kHz

From: [email-masked] (Gregory CLEMENT)
Date: Mon, 05 Mar 2018 16:48:54 +0100

Hi Russell,
 
 On mar., f?vr. 27 2018, Russell King <[email-masked]> wrote:

> All the devices on I2C0 support fast mode, so increase the bus speed
> to match.

I agree with this part. I didn't pay attention to it in the initial
submission but now I've checked it, and indeed according to the
datasheet the MCP3021 support "standard (100 kHz) and Fast (400 kHz) I2C
Compatible modes"

> The Armada 388 is known to have a timing issue when in
> standard mode, which we believe causes the ficticious device at 0x64
> to appear.

This errata "FE-8471889 I2C Repeated Start is not supported in standard
mode (up to 100K)" was supposed to be fixed with the commit c1d15b68aab8
("i2c: mv64xxx: Fix timing issue on Armada XP (errata FE-8471889)"). And
it was used on the Armada 38x SoCs since fbffee74986c ("ARM: dts: Fix I2C
repeated start issue on Armada-38x") in 4.14.

So I think that now even at 100kHz the ficticious device should not
appear any more. If it is still the case then there might be an issue
with the fix in the 2c driver.

Gregory

>
> Signed-off-by: Russell King <[email-masked]>
> ---
>  arch/arm/boot/dts/armada-388-clearfog.dtsi | 7 ++-----
>  1 file changed, 2 insertions(+), 5 deletions(-)
>
> diff --git a/arch/arm/boot/dts/armada-388-clearfog.dtsi b/arch/arm/boot/dts/armada-388-clearfog.dtsi
> index 68acfc968706..0e3b1f140e6d 100644
> --- a/arch/arm/boot/dts/armada-388-clearfog.dtsi
> +++ b/arch/arm/boot/dts/armada-388-clearfog.dtsi
> @@ -143,8 +143,7 @@
>  };
>  
>  &i2c0 {
> -	/* Is there anything on this? */
> -	clock-frequency = <100000>;
> +	clock-frequency = <400000>;
>  	pinctrl-0 = <&i2c0_pins>;
>  	pinctrl-names = "default";
>  	status = "okay";
> @@ -239,13 +238,11 @@
>  		};
>  	};
>  
> -	/* The MCP3021 is 100kHz clock only */
> +	/* The MCP3021 supports standard and fast modes */
>  	mikrobus_adc: mcp3021 at 4c {
>  		compatible = "microchip,mcp3021";
>  		reg = <0x4c>;
>  	};
> -
> -	/* Also something at 0x64 */
>  };
>  
>  &i2c1 {
> -- 
> 2.7.4
>

-- 
Gregory Clement, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
http://bootlin.com