| From 58e7b1d5826ac6a64b1101d8a70162bc084a7d1e Mon Sep 17 00:00:00 2001 |
| From: Ludovic Desroches <ludovic.desroches@atmel.com> |
| Date: Fri, 22 Nov 2013 17:08:43 +0100 |
| Subject: ARM: at91: sama5d3: reduce TWI internal clock frequency |
| |
| From: Ludovic Desroches <ludovic.desroches@atmel.com> |
| |
| commit 58e7b1d5826ac6a64b1101d8a70162bc084a7d1e upstream. |
| |
| With some devices, transfer hangs during I2C frame transmission. This issue |
| disappears when reducing the internal frequency of the TWI IP. Even if it is |
| indicated that internal clock max frequency is 66MHz, it seems we have |
| oversampling on I2C signals making TWI believe that a transfer in progress |
| is done. |
| |
| This fix has no impact on the I2C bus frequency. |
| |
| Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com> |
| Acked-by: Wolfram Sang <wsa@the-dreams.de> |
| Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> |
| Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/arm/mach-at91/sama5d3.c | 6 +++--- |
| 1 file changed, 3 insertions(+), 3 deletions(-) |
| |
| --- a/arch/arm/mach-at91/sama5d3.c |
| +++ b/arch/arm/mach-at91/sama5d3.c |
| @@ -95,19 +95,19 @@ static struct clk twi0_clk = { |
| .name = "twi0_clk", |
| .pid = SAMA5D3_ID_TWI0, |
| .type = CLK_TYPE_PERIPHERAL, |
| - .div = AT91_PMC_PCR_DIV2, |
| + .div = AT91_PMC_PCR_DIV8, |
| }; |
| static struct clk twi1_clk = { |
| .name = "twi1_clk", |
| .pid = SAMA5D3_ID_TWI1, |
| .type = CLK_TYPE_PERIPHERAL, |
| - .div = AT91_PMC_PCR_DIV2, |
| + .div = AT91_PMC_PCR_DIV8, |
| }; |
| static struct clk twi2_clk = { |
| .name = "twi2_clk", |
| .pid = SAMA5D3_ID_TWI2, |
| .type = CLK_TYPE_PERIPHERAL, |
| - .div = AT91_PMC_PCR_DIV2, |
| + .div = AT91_PMC_PCR_DIV8, |
| }; |
| static struct clk mmc0_clk = { |
| .name = "mci0_clk", |