| From foo@baz Sun May 27 17:33:38 CEST 2018 |
| From: Gregory CLEMENT <gregory.clement@bootlin.com> |
| Date: Wed, 14 Mar 2018 18:03:40 +0100 |
| Subject: i2c: mv64xxx: Apply errata delay only in standard mode |
| |
| From: Gregory CLEMENT <gregory.clement@bootlin.com> |
| |
| [ Upstream commit 31184d8c6ea49ea0676d100cdd7e1f102ad025b5 ] |
| |
| The errata FE-8471889 description has been updated. There is still a |
| timing violation for repeated start. But the errata now states that it |
| was only the case for the Standard mode (100 kHz), in Fast mode (400 kHz) |
| there is no issue. |
| |
| This patch limit the errata fix to the Standard mode. |
| |
| It has been tesed successfully on the clearfog (Aramda 388 based board). |
| |
| Signed-off-by: Wolfram Sang <wsa@the-dreams.de> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/i2c/busses/i2c-mv64xxx.c | 8 ++++++-- |
| 1 file changed, 6 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/i2c/busses/i2c-mv64xxx.c |
| +++ b/drivers/i2c/busses/i2c-mv64xxx.c |
| @@ -848,12 +848,16 @@ mv64xxx_of_config(struct mv64xxx_i2c_dat |
| */ |
| if (of_device_is_compatible(np, "marvell,mv78230-i2c")) { |
| drv_data->offload_enabled = true; |
| - drv_data->errata_delay = true; |
| + /* The delay is only needed in standard mode (100kHz) */ |
| + if (bus_freq <= 100000) |
| + drv_data->errata_delay = true; |
| } |
| |
| if (of_device_is_compatible(np, "marvell,mv78230-a0-i2c")) { |
| drv_data->offload_enabled = false; |
| - drv_data->errata_delay = true; |
| + /* The delay is only needed in standard mode (100kHz) */ |
| + if (bus_freq <= 100000) |
| + drv_data->errata_delay = true; |
| } |
| |
| if (of_device_is_compatible(np, "allwinner,sun6i-a31-i2c")) |