[U-Boot] [PATCH 1/2] arm/km: speed up i2c access for keymile boards

We don't need 3us delay for our i2c bus. Decrease it to 1us. It would also be possible to use 100ns in the future, but currently kirkwood has no ndelay implementation.
Signed-off-by: Holger Brunck holger.brunck@keymile.com Cc: Valentin Longchamp valentin.longchamp@keymile.com Cc: Prafulla Wadaskar prafulla@marvell.com Cc: Heiko Schocher hs@denx.de --- include/configs/km/km_arm.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/include/configs/km/km_arm.h b/include/configs/km/km_arm.h index 700124c..ca84932 100644 --- a/include/configs/km/km_arm.h +++ b/include/configs/km/km_arm.h @@ -195,7 +195,7 @@ int get_scl(void); #define I2C_SCL(bit) kw_gpio_set_value(KM_KIRKWOOD_SCL_PIN, bit) #endif
-#define I2C_DELAY udelay(3) /* 1/4 I2C clock duration */ +#define I2C_DELAY udelay(1) #define I2C_SOFT_DECLARATIONS
#endif

Signed-off-by: Holger Brunck holger.brunck@keymile.com Cc: Valentin Longchamp valentin.longchamp@keymile.com Cc: Prafulla Wadaskar prafulla@marvell.com --- board/keymile/km_arm/km_arm.c | 23 +++++++++++------------ 1 files changed, 11 insertions(+), 12 deletions(-)
diff --git a/board/keymile/km_arm/km_arm.c b/board/keymile/km_arm/km_arm.c index ca33aae..9e9940c 100644 --- a/board/keymile/km_arm/km_arm.c +++ b/board/keymile/km_arm/km_arm.c @@ -416,13 +416,13 @@ const ulong REPEAT_PATTERN = 1000;
void bootcount_store(ulong a) { - volatile ulong *save_addr; - volatile ulong size = 0; + ulong *save_addr; + ulong size = 0; int i; - for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) { + + for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) size += gd->bd->bi_dram[i].size; - } - save_addr = (ulong*)(size - BOOTCOUNT_ADDR); + save_addr = (ulong *)(size - BOOTCOUNT_ADDR); writel(a, save_addr); writel(BOOTCOUNT_MAGIC, &save_addr[1]);
@@ -434,15 +434,14 @@ void bootcount_store(ulong a)
ulong bootcount_load(void) { - volatile ulong *save_addr; - volatile ulong size = 0; + ulong *save_addr; + ulong size = 0; ulong counter = 0; int i, tmp;
- for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) { + for (i = 0; i < CONFIG_NR_DRAM_BANKS; i++) size += gd->bd->bi_dram[i].size; - } - save_addr = (ulong*)(size - BOOTCOUNT_ADDR); + save_addr = (ulong *)(size - BOOTCOUNT_ADDR);
counter = readl(&save_addr[0]);
@@ -492,13 +491,13 @@ int post_hotkeys_pressed(void)
ulong post_word_load(void) { - volatile void* addr = (void *) (gd->ram_size - BOOTCOUNT_ADDR + POST_WORD_OFF); + void* addr = (void *) (gd->ram_size - BOOTCOUNT_ADDR + POST_WORD_OFF); return in_le32(addr);
} void post_word_store(ulong value) { - volatile void* addr = (void *) (gd->ram_size - BOOTCOUNT_ADDR + POST_WORD_OFF); + void* addr = (void *) (gd->ram_size - BOOTCOUNT_ADDR + POST_WORD_OFF); out_le32(addr, value); }

Hello Holger,
Holger Brunck wrote:
Signed-off-by: Holger Brunck holger.brunck@keymile.com Cc: Valentin Longchamp valentin.longchamp@keymile.com Cc: Prafulla Wadaskar prafulla@marvell.com
board/keymile/km_arm/km_arm.c | 23 +++++++++++------------ 1 files changed, 11 insertions(+), 12 deletions(-)
Acked-by: Heiko Schocher hs@denx.de
bye, Heiko

Hello Holger,
Holger Brunck wrote:
We don't need 3us delay for our i2c bus. Decrease it to 1us. It would also be possible to use 100ns in the future, but currently kirkwood has no ndelay implementation.
Signed-off-by: Holger Brunck holger.brunck@keymile.com Cc: Valentin Longchamp valentin.longchamp@keymile.com Cc: Prafulla Wadaskar prafulla@marvell.com Cc: Heiko Schocher hs@denx.de
include/configs/km/km_arm.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
Acked-by: Heiko Schocher hs@denx.de
bye, Heiko

Hi Prafulla,
On 12/14/2011 04:31 PM, Holger Brunck wrote:
We don't need 3us delay for our i2c bus. Decrease it to 1us. It would also be possible to use 100ns in the future, but currently kirkwood has no ndelay implementation.
Signed-off-by: Holger Brunck holger.brunck@keymile.com Cc: Valentin Longchamp valentin.longchamp@keymile.com Cc: Prafulla Wadaskar prafulla@marvell.com Cc: Heiko Schocher hs@denx.de
include/configs/km/km_arm.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
can you pull these two small updates for km_arm or is something misssing?
Thanks!
Regards Holger

-----Original Message----- From: Holger Brunck [mailto:holger.brunck@keymile.com] Sent: 08 February 2012 14:20 To: Prafulla Wadaskar Cc: u-boot@lists.denx.de; Valentin Longchamp; Heiko Schocher Subject: Re: [PATCH 1/2] arm/km: speed up i2c access for keymile boards
Hi Prafulla,
On 12/14/2011 04:31 PM, Holger Brunck wrote:
We don't need 3us delay for our i2c bus. Decrease it to 1us. It would also be possible to use 100ns in the future, but currently kirkwood has no ndelay implementation.
Signed-off-by: Holger Brunck holger.brunck@keymile.com Cc: Valentin Longchamp valentin.longchamp@keymile.com Cc: Prafulla Wadaskar prafulla@marvell.com Cc: Heiko Schocher hs@denx.de
include/configs/km/km_arm.h | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
can you pull these two small updates for km_arm or is something misssing?
Applied both to u-boot-marvell.git master branch
Regards.. Prafulla . . .
participants (3)
-
Heiko Schocher
-
Holger Brunck
-
Prafulla Wadaskar