Re: [U-Boot] [PATCH] kw_spi: fix clock prescaler computation
Hi Prafulla, On 08/14/2012 03:15 PM, Prafulla Wadaskar wrote: -Original Message- From: Valentin Longchamp [mailto:valentin.longch...@keymile.com] Sent: 14 August 2012 15:02 To: Prafulla Wadaskar Cc: u-boot@lists.denx.de; Holger Brunck Subject: Re: [PATCH] kw_spi: fix clock prescaler computation Hi Prafulla, I haven't received feedback about this patch from you. Can I please kindly remind you about it since I am about to send patches that deal with SPI clk setting. Dear Valentin My bad :-( I am really sorry about this. I missed this patch. Please find my comments in lined. Thank you. On 06/29/2012 02:17 PM, Valentin Longchamp wrote: The computation was not correct with low clock values: setting a 1MHz clock would result in an overlap that would then configure a 25Mhz clock. This patch implements a correct computation method according to the kirkwood functionnal spec. table 629 (Serial Memory Interface Configuration Register). I think this is table 600 (ref: MV-S104860-00 Rev. E specs available on extranet) This is a cosmetic change. Otherwise I ack for this patch. Please kindly let me know, should I pull this patch or you will resend it with above change? Ok, I had taken rev. C of the document as a reference, I will resend the patch with the updated commit message. Valentin ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH] kw_spi: fix clock prescaler computation
Hi Prafulla, I haven't received feedback about this patch from you. Can I please kindly remind you about it since I am about to send patches that deal with SPI clk setting. Thank you. On 06/29/2012 02:17 PM, Valentin Longchamp wrote: The computation was not correct with low clock values: setting a 1MHz clock would result in an overlap that would then configure a 25Mhz clock. This patch implements a correct computation method according to the kirkwood functionnal spec. table 629 (Serial Memory Interface Configuration Register). Signed-off-by: Valentin Longchamp valentin.longch...@keymile.com cc: Holger Brunck holger.bru...@keymile.com cc: Prafulla Wadaskar prafu...@marvell.com --- arch/arm/include/asm/arch-kirkwood/spi.h |1 + drivers/spi/kirkwood_spi.c |5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/arm/include/asm/arch-kirkwood/spi.h b/arch/arm/include/asm/arch-kirkwood/spi.h index 1d5043f..5a38dc5 100644 --- a/arch/arm/include/asm/arch-kirkwood/spi.h +++ b/arch/arm/include/asm/arch-kirkwood/spi.h @@ -38,6 +38,7 @@ struct kwspi_registers { }; #define KWSPI_CLKPRESCL_MASK 0x1f +#define KWSPI_CLKPRESCL_MIN 0x12 #define KWSPI_CSN_ACT1 /* Activates serial memory interface */ #define KWSPI_SMEMRDY(1 1) /* SerMem Data xfer ready */ #define KWSPI_IRQUNMASK 1 /* unmask SPI interrupt */ diff --git a/drivers/spi/kirkwood_spi.c b/drivers/spi/kirkwood_spi.c index ee14669..9b3f6a4 100644 --- a/drivers/spi/kirkwood_spi.c +++ b/drivers/spi/kirkwood_spi.c @@ -57,8 +57,9 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs, writel(~KWSPI_CSN_ACT | KWSPI_SMEMRDY, spireg-ctrl); /* calculate spi clock prescaller using max_hz */ - data = ((CONFIG_SYS_TCLK / 2) / max_hz) KWSPI_CLKPRESCL_MASK; - data |= 0x10; + data = ((CONFIG_SYS_TCLK / 2) / max_hz) + 0x10; + data = data KWSPI_CLKPRESCL_MIN ? KWSPI_CLKPRESCL_MIN : data; + data = data KWSPI_CLKPRESCL_MASK ? KWSPI_CLKPRESCL_MASK : data; /* program spi clock prescaller using max_hz */ writel(KWSPI_ADRLEN_3BYTE | data, spireg-cfg); ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
Re: [U-Boot] [PATCH] kw_spi: fix clock prescaler computation
-Original Message- From: Valentin Longchamp [mailto:valentin.longch...@keymile.com] Sent: 14 August 2012 15:02 To: Prafulla Wadaskar Cc: u-boot@lists.denx.de; Holger Brunck Subject: Re: [PATCH] kw_spi: fix clock prescaler computation Hi Prafulla, I haven't received feedback about this patch from you. Can I please kindly remind you about it since I am about to send patches that deal with SPI clk setting. Dear Valentin My bad :-( I am really sorry about this. I missed this patch. Please find my comments in lined. Thank you. On 06/29/2012 02:17 PM, Valentin Longchamp wrote: The computation was not correct with low clock values: setting a 1MHz clock would result in an overlap that would then configure a 25Mhz clock. This patch implements a correct computation method according to the kirkwood functionnal spec. table 629 (Serial Memory Interface Configuration Register). I think this is table 600 (ref: MV-S104860-00 Rev. E specs available on extranet) This is a cosmetic change. Otherwise I ack for this patch. Please kindly let me know, should I pull this patch or you will resend it with above change? Regards... Prafulla . . . ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot
[U-Boot] [PATCH] kw_spi: fix clock prescaler computation
The computation was not correct with low clock values: setting a 1MHz clock would result in an overlap that would then configure a 25Mhz clock. This patch implements a correct computation method according to the kirkwood functionnal spec. table 629 (Serial Memory Interface Configuration Register). Signed-off-by: Valentin Longchamp valentin.longch...@keymile.com cc: Holger Brunck holger.bru...@keymile.com cc: Prafulla Wadaskar prafu...@marvell.com --- arch/arm/include/asm/arch-kirkwood/spi.h |1 + drivers/spi/kirkwood_spi.c |5 +++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/arm/include/asm/arch-kirkwood/spi.h b/arch/arm/include/asm/arch-kirkwood/spi.h index 1d5043f..5a38dc5 100644 --- a/arch/arm/include/asm/arch-kirkwood/spi.h +++ b/arch/arm/include/asm/arch-kirkwood/spi.h @@ -38,6 +38,7 @@ struct kwspi_registers { }; #define KWSPI_CLKPRESCL_MASK 0x1f +#define KWSPI_CLKPRESCL_MIN0x12 #define KWSPI_CSN_ACT 1 /* Activates serial memory interface */ #define KWSPI_SMEMRDY (1 1) /* SerMem Data xfer ready */ #define KWSPI_IRQUNMASK1 /* unmask SPI interrupt */ diff --git a/drivers/spi/kirkwood_spi.c b/drivers/spi/kirkwood_spi.c index ee14669..9b3f6a4 100644 --- a/drivers/spi/kirkwood_spi.c +++ b/drivers/spi/kirkwood_spi.c @@ -57,8 +57,9 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs, writel(~KWSPI_CSN_ACT | KWSPI_SMEMRDY, spireg-ctrl); /* calculate spi clock prescaller using max_hz */ - data = ((CONFIG_SYS_TCLK / 2) / max_hz) KWSPI_CLKPRESCL_MASK; - data |= 0x10; + data = ((CONFIG_SYS_TCLK / 2) / max_hz) + 0x10; + data = data KWSPI_CLKPRESCL_MIN ? KWSPI_CLKPRESCL_MIN : data; + data = data KWSPI_CLKPRESCL_MASK ? KWSPI_CLKPRESCL_MASK : data; /* program spi clock prescaller using max_hz */ writel(KWSPI_ADRLEN_3BYTE | data, spireg-cfg); -- 1.7.1 ___ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot