All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 0/3] kirkwood spi_claim/release_bus support
@ 2012-05-16 10:53 Valentin Longchamp
  2012-05-16 10:53 ` [U-Boot] [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore functions Valentin Longchamp
                   ` (2 more replies)
  0 siblings, 3 replies; 24+ messages in thread
From: Valentin Longchamp @ 2012-05-16 10:53 UTC (permalink / raw)
  To: u-boot

This series adds generic support for the spi_claim/release_bus functions for
the kirkwood processors.

The implementation was already discussed in another thread following my first
board specific submission of the patch.

The series adds two functions to the kirkwood mpp code to be able to temporarily
save and then restore the mpp configuration.

Valentin Longchamp (3):
  kirkwood: add kirkwood_mpp_save/restore functions
  spi/kirkwood: support spi_claim/release_bus functions
  spi/kirkwood: add weak functions board_spi_claim/release_bus

 arch/arm/cpu/arm926ejs/kirkwood/mpp.c    |   18 +++++++++++
 arch/arm/include/asm/arch-kirkwood/mpp.h |    2 +
 arch/arm/include/asm/arch-kirkwood/spi.h |    9 ++++++
 drivers/spi/kirkwood_spi.c               |   47 +++++++++++++++++++++++++++++-
 4 files changed, 75 insertions(+), 1 deletions(-)

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [U-Boot] [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore functions
  2012-05-16 10:53 [U-Boot] [PATCH 0/3] kirkwood spi_claim/release_bus support Valentin Longchamp
@ 2012-05-16 10:53 ` Valentin Longchamp
  2012-05-24  8:26   ` Prafulla Wadaskar
  2012-05-16 10:53 ` [U-Boot] [PATCH 2/3] spi/kirkwood: support spi_claim/release_bus functions Valentin Longchamp
  2012-05-16 10:53 ` [U-Boot] [PATCH 3/3] spi/kirkwood: add weak functions board_spi_claim/release_bus Valentin Longchamp
  2 siblings, 1 reply; 24+ messages in thread
From: Valentin Longchamp @ 2012-05-16 10:53 UTC (permalink / raw)
  To: u-boot

These 2 functions can be used in pair if one needs to set a mpp
configuration only for a given time and then switch back to the previous
mpp config.

Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
cc: Holger Brunck <holger.brunck@keymile.com>
cc: Prafulla Wadaskar <prafulla@marvell.com>
---
 arch/arm/cpu/arm926ejs/kirkwood/mpp.c    |   18 ++++++++++++++++++
 arch/arm/include/asm/arch-kirkwood/mpp.h |    2 ++
 2 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/arch/arm/cpu/arm926ejs/kirkwood/mpp.c b/arch/arm/cpu/arm926ejs/kirkwood/mpp.c
index 3da6c98..43f5053 100644
--- a/arch/arm/cpu/arm926ejs/kirkwood/mpp.c
+++ b/arch/arm/cpu/arm926ejs/kirkwood/mpp.c
@@ -80,3 +80,21 @@ void kirkwood_mpp_conf(u32 *mpp_list)
 	debug("\n");
 
 }
+
+u32 mpp_regs[MPP_NR_REGS];
+
+void kirkwood_mpp_save(void)
+{
+	int i;
+
+	for (i = 0; i < MPP_NR_REGS; i++)
+		mpp_regs[i] = readl(MPP_CTRL(i));
+}
+
+void kirkwood_mpp_restore(void)
+{
+	int i;
+
+	for (i = 0; i < MPP_NR_REGS; i++)
+		writel(mpp_regs[i], MPP_CTRL(i));
+}
diff --git a/arch/arm/include/asm/arch-kirkwood/mpp.h b/arch/arm/include/asm/arch-kirkwood/mpp.h
index b3c090e..da65b4d 100644
--- a/arch/arm/include/asm/arch-kirkwood/mpp.h
+++ b/arch/arm/include/asm/arch-kirkwood/mpp.h
@@ -313,5 +313,7 @@
 #define MPP_MAX			49
 
 void kirkwood_mpp_conf(unsigned int *mpp_list);
+void kirkwood_mpp_save(void);
+void kirkwood_mpp_restore(void);
 
 #endif
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [U-Boot] [PATCH 2/3] spi/kirkwood: support spi_claim/release_bus functions
  2012-05-16 10:53 [U-Boot] [PATCH 0/3] kirkwood spi_claim/release_bus support Valentin Longchamp
  2012-05-16 10:53 ` [U-Boot] [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore functions Valentin Longchamp
@ 2012-05-16 10:53 ` Valentin Longchamp
  2012-05-24  8:35   ` Prafulla Wadaskar
  2012-05-16 10:53 ` [U-Boot] [PATCH 3/3] spi/kirkwood: add weak functions board_spi_claim/release_bus Valentin Longchamp
  2 siblings, 1 reply; 24+ messages in thread
From: Valentin Longchamp @ 2012-05-16 10:53 UTC (permalink / raw)
  To: u-boot

These two function nows ensure that the MPP is configured correctly for
the SPI controller before any SPI access, and restore the initial
configuration when the access is over.

Since the used pins for the SPI controller can differ (2 possibilities
for each signal), the used pins are configured with CONFIG_SYS_KW_SPI_MPP.

Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
cc: Holger Brunck <holger.brunck@keymile.com>
cc: Prafulla Wadaskar <prafulla@marvell.com>
---
 arch/arm/include/asm/arch-kirkwood/spi.h |    9 ++++++++
 drivers/spi/kirkwood_spi.c               |   34 ++++++++++++++++++++++++++++++
 2 files changed, 43 insertions(+), 0 deletions(-)

diff --git a/arch/arm/include/asm/arch-kirkwood/spi.h b/arch/arm/include/asm/arch-kirkwood/spi.h
index 1d5043f..305c573 100644
--- a/arch/arm/include/asm/arch-kirkwood/spi.h
+++ b/arch/arm/include/asm/arch-kirkwood/spi.h
@@ -37,6 +37,15 @@ struct kwspi_registers {
 	u32 irq_mask;	/* 0x10614 */
 };
 
+#define CSn_MPP7	0x1
+#define MOSI_MPP6	0x2
+#define SCK_MPP10	0x4
+#define MISO_MPP11	0x8
+
+#ifndef CONFIG_SYS_KW_SPI_MPP
+#define CONFIG_SYS_KW_SPI_MPP	0x0
+#endif
+
 #define KWSPI_CLKPRESCL_MASK	0x1f
 #define KWSPI_CSN_ACT		1 /* Activates serial memory interface */
 #define KWSPI_SMEMRDY		(1 << 1) /* SerMem Data xfer ready */
diff --git a/drivers/spi/kirkwood_spi.c b/drivers/spi/kirkwood_spi.c
index db8ba8b..0877915 100644
--- a/drivers/spi/kirkwood_spi.c
+++ b/drivers/spi/kirkwood_spi.c
@@ -88,11 +88,45 @@ void spi_free_slave(struct spi_slave *slave)
 
 int spi_claim_bus(struct spi_slave *slave)
 {
+	u32 config;
+	u32 spi_mpp_config[5];
+
+	config = CONFIG_SYS_KW_SPI_MPP;
+
+	if (config & CSn_MPP7)
+		spi_mpp_config[0] = MPP7_SPI_SCn;
+	else
+		spi_mpp_config[0] = MPP0_SPI_SCn;
+
+	if (config & MOSI_MPP6)
+		spi_mpp_config[1] = MPP6_SPI_MOSI;
+	else
+		spi_mpp_config[1] = MPP1_SPI_MOSI;
+
+	if (config & SCK_MPP10)
+		spi_mpp_config[2] = MPP10_SPI_SCK;
+	else
+		spi_mpp_config[2] = MPP2_SPI_SCK;
+
+	if (config & MISO_MPP11)
+		spi_mpp_config[3] = MPP11_SPI_MISO;
+	else
+		spi_mpp_config[3] = MPP3_SPI_MISO;
+
+	spi_mpp_config[4] = 0;
+
+	/* save current mpp configuration */
+	kirkwood_mpp_save();
+
+	/* finally set chosen mpp spi configuration */
+	kirkwood_mpp_conf(spi_mpp_config);
+
 	return 0;
 }
 
 void spi_release_bus(struct spi_slave *slave)
 {
+	kirkwood_mpp_restore();
 }
 
 #ifndef CONFIG_SPI_CS_IS_VALID
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [U-Boot] [PATCH 3/3] spi/kirkwood: add weak functions board_spi_claim/release_bus
  2012-05-16 10:53 [U-Boot] [PATCH 0/3] kirkwood spi_claim/release_bus support Valentin Longchamp
  2012-05-16 10:53 ` [U-Boot] [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore functions Valentin Longchamp
  2012-05-16 10:53 ` [U-Boot] [PATCH 2/3] spi/kirkwood: support spi_claim/release_bus functions Valentin Longchamp
@ 2012-05-16 10:53 ` Valentin Longchamp
  2012-05-24  8:38   ` Prafulla Wadaskar
  2 siblings, 1 reply; 24+ messages in thread
From: Valentin Longchamp @ 2012-05-16 10:53 UTC (permalink / raw)
  To: u-boot

This allows a final, board specific, step in the claim/relase_bus
function for the SPI controller, which may be needed for some hardware
designs.

Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
cc: Holger Brunck <holger.brunck@keymile.com>
cc: Prafulla Wadaskar <prafulla@marvell.com>
---
 drivers/spi/kirkwood_spi.c |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)

diff --git a/drivers/spi/kirkwood_spi.c b/drivers/spi/kirkwood_spi.c
index 0877915..0e4db45 100644
--- a/drivers/spi/kirkwood_spi.c
+++ b/drivers/spi/kirkwood_spi.c
@@ -86,6 +86,11 @@ void spi_free_slave(struct spi_slave *slave)
 	free(slave);
 }
 
+__attribute__((weak)) int board_spi_claim_bus(struct spi_slave *slave)
+{
+	return 0;
+}
+
 int spi_claim_bus(struct spi_slave *slave)
 {
 	u32 config;
@@ -121,12 +126,18 @@ int spi_claim_bus(struct spi_slave *slave)
 	/* finally set chosen mpp spi configuration */
 	kirkwood_mpp_conf(spi_mpp_config);
 
-	return 0;
+	return board_spi_claim_bus(slave);
+}
+
+__attribute__((weak)) void board_spi_release_bus(struct spi_slave *slave)
+{
 }
 
 void spi_release_bus(struct spi_slave *slave)
 {
 	kirkwood_mpp_restore();
+
+	board_spi_release_bus(slave);
 }
 
 #ifndef CONFIG_SPI_CS_IS_VALID
-- 
1.7.1

^ permalink raw reply related	[flat|nested] 24+ messages in thread

* [U-Boot] [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore functions
  2012-05-16 10:53 ` [U-Boot] [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore functions Valentin Longchamp
@ 2012-05-24  8:26   ` Prafulla Wadaskar
  2012-05-28 22:07     ` Michael Walle
                       ` (2 more replies)
  0 siblings, 3 replies; 24+ messages in thread
From: Prafulla Wadaskar @ 2012-05-24  8:26 UTC (permalink / raw)
  To: u-boot



> -----Original Message-----
> From: Valentin Longchamp [mailto:valentin.longchamp at keymile.com]
> Sent: 16 May 2012 16:24
> To: Prafulla Wadaskar; holger.brunck at keymile.com
> Cc: Valentin Longchamp; u-boot at lists.denx.de; Holger Brunck; Prafulla
> Wadaskar
> Subject: [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore functions
> 
> These 2 functions can be used in pair if one needs to set a mpp
> configuration only for a given time and then switch back to the
> previous
> mpp config.
> 
> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
> cc: Holger Brunck <holger.brunck@keymile.com>
> cc: Prafulla Wadaskar <prafulla@marvell.com>
> ---
>  arch/arm/cpu/arm926ejs/kirkwood/mpp.c    |   18 ++++++++++++++++++
>  arch/arm/include/asm/arch-kirkwood/mpp.h |    2 ++
>  2 files changed, 20 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/cpu/arm926ejs/kirkwood/mpp.c
> b/arch/arm/cpu/arm926ejs/kirkwood/mpp.c
> index 3da6c98..43f5053 100644
> --- a/arch/arm/cpu/arm926ejs/kirkwood/mpp.c
> +++ b/arch/arm/cpu/arm926ejs/kirkwood/mpp.c
> @@ -80,3 +80,21 @@ void kirkwood_mpp_conf(u32 *mpp_list)
>  	debug("\n");
> 
>  }
> +
> +u32 mpp_regs[MPP_NR_REGS];

This is optional feature only used in this specific case.
No global here, this should be part of caller function.

> +
> +void kirkwood_mpp_save(void)
This should be 
void kirkwood_mpp_save(unsigned int *mpp_ctrl, int len)

> +{
> +	int i;
> +
> +	for (i = 0; i < MPP_NR_REGS; i++)
> +		mpp_regs[i] = readl(MPP_CTRL(i));
> +}
> +
> +void kirkwood_mpp_restore(void)
Same here
void kirkwood_mpp_restore(unsigned int *mpp_ctrl, int len)

> +{
> +	int i;
> +
> +	for (i = 0; i < MPP_NR_REGS; i++)
> +		writel(mpp_regs[i], MPP_CTRL(i));
> +}
> diff --git a/arch/arm/include/asm/arch-kirkwood/mpp.h
> b/arch/arm/include/asm/arch-kirkwood/mpp.h
> index b3c090e..da65b4d 100644
> --- a/arch/arm/include/asm/arch-kirkwood/mpp.h
> +++ b/arch/arm/include/asm/arch-kirkwood/mpp.h
> @@ -313,5 +313,7 @@
>  #define MPP_MAX			49
> 
>  void kirkwood_mpp_conf(unsigned int *mpp_list);
> +void kirkwood_mpp_save(void);
> +void kirkwood_mpp_restore(void);

Regards..
Prafulla . . .

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [U-Boot] [PATCH 2/3] spi/kirkwood: support spi_claim/release_bus functions
  2012-05-16 10:53 ` [U-Boot] [PATCH 2/3] spi/kirkwood: support spi_claim/release_bus functions Valentin Longchamp
@ 2012-05-24  8:35   ` Prafulla Wadaskar
  2012-05-29  8:32     ` Valentin Longchamp
  0 siblings, 1 reply; 24+ messages in thread
From: Prafulla Wadaskar @ 2012-05-24  8:35 UTC (permalink / raw)
  To: u-boot



> -----Original Message-----
> From: Valentin Longchamp [mailto:valentin.longchamp at keymile.com]
> Sent: 16 May 2012 16:24
> To: Prafulla Wadaskar; holger.brunck at keymile.com
> Cc: Valentin Longchamp; u-boot at lists.denx.de; Holger Brunck; Prafulla
> Wadaskar
> Subject: [PATCH 2/3] spi/kirkwood: support spi_claim/release_bus
> functions
> 
> These two function nows ensure that the MPP is configured correctly
> for
> the SPI controller before any SPI access, and restore the initial
> configuration when the access is over.
> 
> Since the used pins for the SPI controller can differ (2 possibilities
> for each signal), the used pins are configured with
> CONFIG_SYS_KW_SPI_MPP.
> 
> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
> cc: Holger Brunck <holger.brunck@keymile.com>
> cc: Prafulla Wadaskar <prafulla@marvell.com>
> ---
>  arch/arm/include/asm/arch-kirkwood/spi.h |    9 ++++++++
>  drivers/spi/kirkwood_spi.c               |   34
> ++++++++++++++++++++++++++++++
>  2 files changed, 43 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/arm/include/asm/arch-kirkwood/spi.h
> b/arch/arm/include/asm/arch-kirkwood/spi.h
> index 1d5043f..305c573 100644
> --- a/arch/arm/include/asm/arch-kirkwood/spi.h
> +++ b/arch/arm/include/asm/arch-kirkwood/spi.h
> @@ -37,6 +37,15 @@ struct kwspi_registers {
>  	u32 irq_mask;	/* 0x10614 */
>  };
> 
> +#define CSn_MPP7	0x1
> +#define MOSI_MPP6	0x2
> +#define SCK_MPP10	0x4
> +#define MISO_MPP11	0x8

Let's define above as (1 << x) to make it more readable.

> +
> +#ifndef CONFIG_SYS_KW_SPI_MPP
> +#define CONFIG_SYS_KW_SPI_MPP	0x0

Some more documentation is needed, you need to explain how each bit we are using to configure the SPI-MPPs

> +#endif
> +
>  #define KWSPI_CLKPRESCL_MASK	0x1f
>  #define KWSPI_CSN_ACT		1 /* Activates serial memory interface
> */
>  #define KWSPI_SMEMRDY		(1 << 1) /* SerMem Data xfer ready */
> diff --git a/drivers/spi/kirkwood_spi.c b/drivers/spi/kirkwood_spi.c
> index db8ba8b..0877915 100644
> --- a/drivers/spi/kirkwood_spi.c
> +++ b/drivers/spi/kirkwood_spi.c
> @@ -88,11 +88,45 @@ void spi_free_slave(struct spi_slave *slave)
> 
>  int spi_claim_bus(struct spi_slave *slave)
>  {

Instead define here
#ifdef CONFIG_SYS_KW_SPI_MPP, otherwise build with default.

> +	u32 config;
> +	u32 spi_mpp_config[5];
> +
> +	config = CONFIG_SYS_KW_SPI_MPP;
> +
> +	if (config & CSn_MPP7)
> +		spi_mpp_config[0] = MPP7_SPI_SCn;
> +	else
> +		spi_mpp_config[0] = MPP0_SPI_SCn;
> +
> +	if (config & MOSI_MPP6)
> +		spi_mpp_config[1] = MPP6_SPI_MOSI;
> +	else
> +		spi_mpp_config[1] = MPP1_SPI_MOSI;
> +
> +	if (config & SCK_MPP10)
> +		spi_mpp_config[2] = MPP10_SPI_SCK;
> +	else
> +		spi_mpp_config[2] = MPP2_SPI_SCK;
> +
> +	if (config & MISO_MPP11)
> +		spi_mpp_config[3] = MPP11_SPI_MISO;
> +	else
> +		spi_mpp_config[3] = MPP3_SPI_MISO;
> +
> +	spi_mpp_config[4] = 0;
> +
> +	/* save current mpp configuration */
> +	kirkwood_mpp_save();
> +
> +	/* finally set chosen mpp spi configuration */
> +	kirkwood_mpp_conf(spi_mpp_config);
> +
>  	return 0;
>  }
> 
>  void spi_release_bus(struct spi_slave *slave)
>  {
> +	kirkwood_mpp_restore();
>  }
> 
>  #ifndef CONFIG_SPI_CS_IS_VALID
> --

Regards..
Prafulla . . .
> 1.7.1

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [U-Boot] [PATCH 3/3] spi/kirkwood: add weak functions board_spi_claim/release_bus
  2012-05-16 10:53 ` [U-Boot] [PATCH 3/3] spi/kirkwood: add weak functions board_spi_claim/release_bus Valentin Longchamp
@ 2012-05-24  8:38   ` Prafulla Wadaskar
  2012-05-29  8:32     ` Valentin Longchamp
  0 siblings, 1 reply; 24+ messages in thread
From: Prafulla Wadaskar @ 2012-05-24  8:38 UTC (permalink / raw)
  To: u-boot



> -----Original Message-----
> From: Valentin Longchamp [mailto:valentin.longchamp at keymile.com]
> Sent: 16 May 2012 16:24
> To: Prafulla Wadaskar; holger.brunck at keymile.com
> Cc: Valentin Longchamp; u-boot at lists.denx.de; Holger Brunck; Prafulla
> Wadaskar
> Subject: [PATCH 3/3] spi/kirkwood: add weak functions
> board_spi_claim/release_bus
> 
> This allows a final, board specific, step in the claim/relase_bus
> function for the SPI controller, which may be needed for some hardware
> designs.

NAK, this is not needed if earlier two patches in the patch series are in place.

Regards..
Prafulla . . .

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [U-Boot] [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore functions
  2012-05-24  8:26   ` Prafulla Wadaskar
@ 2012-05-28 22:07     ` Michael Walle
  2012-05-29 12:42       ` Prafulla Wadaskar
  2012-05-29  8:44     ` Valentin Longchamp
  2012-05-29 14:47     ` Marek Vasut
  2 siblings, 1 reply; 24+ messages in thread
From: Michael Walle @ 2012-05-28 22:07 UTC (permalink / raw)
  To: u-boot

Am Donnerstag 24 Mai 2012, 10:26:44 schrieb Prafulla Wadaskar:
> > +
> > +void kirkwood_mpp_save(void)
> 
> This should be
> void kirkwood_mpp_save(unsigned int *mpp_ctrl, int len)
> 
> > +{
> > +	int i;
> > +
> > +	for (i = 0; i < MPP_NR_REGS; i++)
> > +		mpp_regs[i] = readl(MPP_CTRL(i));
> > +}
> > +
> > +void kirkwood_mpp_restore(void)
> 
> Same here
> void kirkwood_mpp_restore(unsigned int *mpp_ctrl, int len)
or even better kirkwood_mpp_restore(const unsigned int *mpp_ctrl, int len)

btw. sometimes "unsigned int" is used and sometimes "u32", could we agree on 
one? Eg. kirkwood_mpp_conf() is declared with unsigned int but defined with 
u32.

-- 
Michael

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [U-Boot] [PATCH 2/3] spi/kirkwood: support spi_claim/release_bus functions
  2012-05-24  8:35   ` Prafulla Wadaskar
@ 2012-05-29  8:32     ` Valentin Longchamp
  2012-05-29 10:29       ` Prafulla Wadaskar
  0 siblings, 1 reply; 24+ messages in thread
From: Valentin Longchamp @ 2012-05-29  8:32 UTC (permalink / raw)
  To: u-boot

On 05/24/2012 10:35 AM, Prafulla Wadaskar wrote:
>> -----Original Message-----
>> From: Valentin Longchamp [mailto:valentin.longchamp at keymile.com]
>> Sent: 16 May 2012 16:24
>> To: Prafulla Wadaskar; holger.brunck at keymile.com
>> Cc: Valentin Longchamp; u-boot at lists.denx.de; Holger Brunck; Prafulla
>> Wadaskar
>> Subject: [PATCH 2/3] spi/kirkwood: support spi_claim/release_bus
>> functions
>>
>> These two function nows ensure that the MPP is configured correctly
>> for
>> the SPI controller before any SPI access, and restore the initial
>> configuration when the access is over.
>>
>> Since the used pins for the SPI controller can differ (2 possibilities
>> for each signal), the used pins are configured with
>> CONFIG_SYS_KW_SPI_MPP.
>>
>> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
>> cc: Holger Brunck <holger.brunck@keymile.com>
>> cc: Prafulla Wadaskar <prafulla@marvell.com>
>> ---
>>  arch/arm/include/asm/arch-kirkwood/spi.h |    9 ++++++++
>>  drivers/spi/kirkwood_spi.c               |   34
>> ++++++++++++++++++++++++++++++
>>  2 files changed, 43 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/arm/include/asm/arch-kirkwood/spi.h
>> b/arch/arm/include/asm/arch-kirkwood/spi.h
>> index 1d5043f..305c573 100644
>> --- a/arch/arm/include/asm/arch-kirkwood/spi.h
>> +++ b/arch/arm/include/asm/arch-kirkwood/spi.h
>> @@ -37,6 +37,15 @@ struct kwspi_registers {
>>  	u32 irq_mask;	/* 0x10614 */
>>  };
>>
>> +#define CSn_MPP7	0x1
>> +#define MOSI_MPP6	0x2
>> +#define SCK_MPP10	0x4
>> +#define MISO_MPP11	0x8
> 
> Let's define above as (1 << x) to make it more readable.

OK

> 
>> +
>> +#ifndef CONFIG_SYS_KW_SPI_MPP
>> +#define CONFIG_SYS_KW_SPI_MPP	0x0
> 
> Some more documentation is needed, you need to explain how each bit we are using to configure the SPI-MPPs

Not sure I understand what you mean here. But I think that you mean that I would
have to document that bit 1 is for CSn signal (MPP0 or MPP7), bit 2 for MOSI
signal (MPP1 or MPP6) and so on ... OK will do it.

Would you want me to define CSn_MPP0 as 0x0 (or (0 << 0) ) and MOSI_MPP1 as 0x0
 and so on as well ?

> 
>> +#endif
>> +
>>  #define KWSPI_CLKPRESCL_MASK	0x1f
>>  #define KWSPI_CSN_ACT		1 /* Activates serial memory interface
>> */
>>  #define KWSPI_SMEMRDY		(1 << 1) /* SerMem Data xfer ready */
>> diff --git a/drivers/spi/kirkwood_spi.c b/drivers/spi/kirkwood_spi.c
>> index db8ba8b..0877915 100644
>> --- a/drivers/spi/kirkwood_spi.c
>> +++ b/drivers/spi/kirkwood_spi.c
>> @@ -88,11 +88,45 @@ void spi_free_slave(struct spi_slave *slave)
>>
>>  int spi_claim_bus(struct spi_slave *slave)
>>  {
> 
> Instead define here
> #ifdef CONFIG_SYS_KW_SPI_MPP, otherwise build with default.

OK, if you prefer it this way, it is fine for me. This implies that I have to
remove the above #ifndef CONFIG_SYS_KW_SPI_MPP and that the boards that want to
use this will have to #define CONFIG_SYS_KW_SPI_MPP in their config.

> 
>> +	u32 config;
>> +	u32 spi_mpp_config[5];
>> +
>> +	config = CONFIG_SYS_KW_SPI_MPP;
>> +
>> +	if (config & CSn_MPP7)
>> +		spi_mpp_config[0] = MPP7_SPI_SCn;
>> +	else
>> +		spi_mpp_config[0] = MPP0_SPI_SCn;
>> +
>> +	if (config & MOSI_MPP6)
>> +		spi_mpp_config[1] = MPP6_SPI_MOSI;
>> +	else
>> +		spi_mpp_config[1] = MPP1_SPI_MOSI;
>> +
>> +	if (config & SCK_MPP10)
>> +		spi_mpp_config[2] = MPP10_SPI_SCK;
>> +	else
>> +		spi_mpp_config[2] = MPP2_SPI_SCK;
>> +
>> +	if (config & MISO_MPP11)
>> +		spi_mpp_config[3] = MPP11_SPI_MISO;
>> +	else
>> +		spi_mpp_config[3] = MPP3_SPI_MISO;
>> +
>> +	spi_mpp_config[4] = 0;
>> +
>> +	/* save current mpp configuration */
>> +	kirkwood_mpp_save();
>> +
>> +	/* finally set chosen mpp spi configuration */
>> +	kirkwood_mpp_conf(spi_mpp_config);
>> +
>>  	return 0;
>>  }
>>
>>  void spi_release_bus(struct spi_slave *slave)
>>  {
>> +	kirkwood_mpp_restore();
>>  }
>>
>>  #ifndef CONFIG_SPI_CS_IS_VALID
>> --
> 
> Regards..
> Prafulla . . .

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [U-Boot] [PATCH 3/3] spi/kirkwood: add weak functions board_spi_claim/release_bus
  2012-05-24  8:38   ` Prafulla Wadaskar
@ 2012-05-29  8:32     ` Valentin Longchamp
  2012-05-29 12:13       ` Prafulla Wadaskar
  0 siblings, 1 reply; 24+ messages in thread
From: Valentin Longchamp @ 2012-05-29  8:32 UTC (permalink / raw)
  To: u-boot

On 05/24/2012 10:38 AM, Prafulla Wadaskar wrote:
>> -----Original Message-----
>> From: Valentin Longchamp [mailto:valentin.longchamp at keymile.com]
>> Sent: 16 May 2012 16:24
>> To: Prafulla Wadaskar; holger.brunck at keymile.com
>> Cc: Valentin Longchamp; u-boot at lists.denx.de; Holger Brunck; Prafulla
>> Wadaskar
>> Subject: [PATCH 3/3] spi/kirkwood: add weak functions
>> board_spi_claim/release_bus
>>
>> This allows a final, board specific, step in the claim/relase_bus
>> function for the SPI controller, which may be needed for some hardware
>> designs.
> 
> NAK, this is not needed if earlier two patches in the patch series are in place.
> 

In our case, this is still needed. As I had already explained you in the
previous discussion, even with the generic approach, our hardware design
requires one access to an additional signal (a GPIO) to configure an external HW
multiplexer which is present to electrically remove the Nand Flash device from
the signals used by the SPI bus and put it back when the accesses are over.

That's why my first implementation was only relying on these weak functions.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [U-Boot] [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore functions
  2012-05-24  8:26   ` Prafulla Wadaskar
  2012-05-28 22:07     ` Michael Walle
@ 2012-05-29  8:44     ` Valentin Longchamp
  2012-05-29 10:12       ` Prafulla Wadaskar
  2012-05-29 14:47     ` Marek Vasut
  2 siblings, 1 reply; 24+ messages in thread
From: Valentin Longchamp @ 2012-05-29  8:44 UTC (permalink / raw)
  To: u-boot

On 05/24/2012 10:26 AM, Prafulla Wadaskar wrote:
> 
> 
>> -----Original Message-----
>> From: Valentin Longchamp [mailto:valentin.longchamp at keymile.com]
>> Sent: 16 May 2012 16:24
>> To: Prafulla Wadaskar; holger.brunck at keymile.com
>> Cc: Valentin Longchamp; u-boot at lists.denx.de; Holger Brunck; Prafulla
>> Wadaskar
>> Subject: [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore functions
>>
>> These 2 functions can be used in pair if one needs to set a mpp
>> configuration only for a given time and then switch back to the
>> previous
>> mpp config.
>>
>> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
>> cc: Holger Brunck <holger.brunck@keymile.com>
>> cc: Prafulla Wadaskar <prafulla@marvell.com>
>> ---
>>  arch/arm/cpu/arm926ejs/kirkwood/mpp.c    |   18 ++++++++++++++++++
>>  arch/arm/include/asm/arch-kirkwood/mpp.h |    2 ++
>>  2 files changed, 20 insertions(+), 0 deletions(-)
>>
>> diff --git a/arch/arm/cpu/arm926ejs/kirkwood/mpp.c
>> b/arch/arm/cpu/arm926ejs/kirkwood/mpp.c
>> index 3da6c98..43f5053 100644
>> --- a/arch/arm/cpu/arm926ejs/kirkwood/mpp.c
>> +++ b/arch/arm/cpu/arm926ejs/kirkwood/mpp.c
>> @@ -80,3 +80,21 @@ void kirkwood_mpp_conf(u32 *mpp_list)
>>  	debug("\n");
>>
>>  }
>> +
>> +u32 mpp_regs[MPP_NR_REGS];
> 
> This is optional feature only used in this specific case.
> No global here, this should be part of caller function.

I wanted this patch to be independant of the SPI claim bus that _currently_ is
the only one using it, but who knows in the future.

Anyway if this isn't global here, it will have to be global in the
kirkwood_spi.c driver since it would have to be shared between spi_claim_bus and
spi_release_bus.

> 
>> +
>> +void kirkwood_mpp_save(void)
> This should be 
> void kirkwood_mpp_save(unsigned int *mpp_ctrl, int len)

Here we save _all_ mpp registers, with direct access to the registers. With your
proposed solution, I would save it in a dynamically allocated table of size len.

That's fine for me, but I would then need to export MPP_NR_REGS, because that is
what I would pass as len arg, is that OK ?

> 
>> +{
>> +	int i;
>> +
>> +	for (i = 0; i < MPP_NR_REGS; i++)
>> +		mpp_regs[i] = readl(MPP_CTRL(i));
>> +}
>> +
>> +void kirkwood_mpp_restore(void)
> Same here
> void kirkwood_mpp_restore(unsigned int *mpp_ctrl, int len)
> 
>> +{
>> +	int i;
>> +
>> +	for (i = 0; i < MPP_NR_REGS; i++)
>> +		writel(mpp_regs[i], MPP_CTRL(i));
>> +}
>> diff --git a/arch/arm/include/asm/arch-kirkwood/mpp.h
>> b/arch/arm/include/asm/arch-kirkwood/mpp.h
>> index b3c090e..da65b4d 100644
>> --- a/arch/arm/include/asm/arch-kirkwood/mpp.h
>> +++ b/arch/arm/include/asm/arch-kirkwood/mpp.h
>> @@ -313,5 +313,7 @@
>>  #define MPP_MAX			49
>>
>>  void kirkwood_mpp_conf(unsigned int *mpp_list);
>> +void kirkwood_mpp_save(void);
>> +void kirkwood_mpp_restore(void);
> 
> Regards..
> Prafulla . . .

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [U-Boot] [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore functions
  2012-05-29  8:44     ` Valentin Longchamp
@ 2012-05-29 10:12       ` Prafulla Wadaskar
  2012-05-29 11:28         ` Valentin Longchamp
  0 siblings, 1 reply; 24+ messages in thread
From: Prafulla Wadaskar @ 2012-05-29 10:12 UTC (permalink / raw)
  To: u-boot



> -----Original Message-----
> From: Valentin Longchamp [mailto:valentin.longchamp at keymile.com]
> Sent: 29 May 2012 14:15
> To: Prafulla Wadaskar
> Cc: holger.brunck at keymile.com; u-boot at lists.denx.de
> Subject: Re: [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore
> functions
> 
...snip...
> >
> >> +
> >> +void kirkwood_mpp_save(void)
> > This should be
> > void kirkwood_mpp_save(unsigned int *mpp_ctrl, int len)
> 
> Here we save _all_ mpp registers, with direct access to the registers.
> With your
> proposed solution, I would save it in a dynamically allocated table of
> size len.
> 
> That's fine for me, but I would then need to export MPP_NR_REGS,
> because that is
> what I would pass as len arg, is that OK ?

I think in your case you need configuration of 4 MPPs, i.e. from MPP6 to MPP11, so you may declare array of length 7 and backup and restore the same MPPs using len = 6.

No Need to backup and restore all MPPs.

Regards...
Prafulla . . .

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [U-Boot] [PATCH 2/3] spi/kirkwood: support spi_claim/release_bus functions
  2012-05-29  8:32     ` Valentin Longchamp
@ 2012-05-29 10:29       ` Prafulla Wadaskar
  2012-05-29 11:32         ` Valentin Longchamp
  0 siblings, 1 reply; 24+ messages in thread
From: Prafulla Wadaskar @ 2012-05-29 10:29 UTC (permalink / raw)
  To: u-boot



> -----Original Message-----
> From: Valentin Longchamp [mailto:valentin.longchamp at keymile.com]
> Sent: 29 May 2012 14:02
> To: Prafulla Wadaskar
> Cc: holger.brunck at keymile.com; u-boot at lists.denx.de
> Subject: Re: [PATCH 2/3] spi/kirkwood: support spi_claim/release_bus
> functions
> 
> On 05/24/2012 10:35 AM, Prafulla Wadaskar wrote:
> >> -----Original Message-----
> >> From: Valentin Longchamp [mailto:valentin.longchamp at keymile.com]
> >> Sent: 16 May 2012 16:24
> >> To: Prafulla Wadaskar; holger.brunck at keymile.com
> >> Cc: Valentin Longchamp; u-boot at lists.denx.de; Holger Brunck;
> Prafulla
> >> Wadaskar
> >> Subject: [PATCH 2/3] spi/kirkwood: support spi_claim/release_bus
> >> functions
> >>
> >> These two function nows ensure that the MPP is configured correctly
> >> for
> >> the SPI controller before any SPI access, and restore the initial
> >> configuration when the access is over.
> >>
> >> Since the used pins for the SPI controller can differ (2
> possibilities
> >> for each signal), the used pins are configured with
> >> CONFIG_SYS_KW_SPI_MPP.
> >>
> >> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
> >> cc: Holger Brunck <holger.brunck@keymile.com>
> >> cc: Prafulla Wadaskar <prafulla@marvell.com>
> >> ---
> >>  arch/arm/include/asm/arch-kirkwood/spi.h |    9 ++++++++
> >>  drivers/spi/kirkwood_spi.c               |   34
> >> ++++++++++++++++++++++++++++++
> >>  2 files changed, 43 insertions(+), 0 deletions(-)
> >>
> >> diff --git a/arch/arm/include/asm/arch-kirkwood/spi.h
> >> b/arch/arm/include/asm/arch-kirkwood/spi.h
> >> index 1d5043f..305c573 100644
> >> --- a/arch/arm/include/asm/arch-kirkwood/spi.h
> >> +++ b/arch/arm/include/asm/arch-kirkwood/spi.h
> >> @@ -37,6 +37,15 @@ struct kwspi_registers {
> >>  	u32 irq_mask;	/* 0x10614 */
> >>  };
> >>
> >> +#define CSn_MPP7	0x1
> >> +#define MOSI_MPP6	0x2
> >> +#define SCK_MPP10	0x4
> >> +#define MISO_MPP11	0x8
> >
> > Let's define above as (1 << x) to make it more readable.
> 
> OK
> 
> >
> >> +
> >> +#ifndef CONFIG_SYS_KW_SPI_MPP
> >> +#define CONFIG_SYS_KW_SPI_MPP	0x0
> >
> > Some more documentation is needed, you need to explain how each bit
> we are using to configure the SPI-MPPs
> 
> Not sure I understand what you mean here. But I think that you mean
> that I would
> have to document that bit 1 is for CSn signal (MPP0 or MPP7), bit 2
> for MOSI
> signal (MPP1 or MPP6) and so on ... OK will do it.

Exactly, 

> 
> Would you want me to define CSn_MPP0 as 0x0 (or (0 << 0) ) and
> MOSI_MPP1 as 0x0
>  and so on as well ?

Use any four bits for four configuration, I would suggest to use bit0 to bit-3.

Regards..
Prafulla . . .

> 
> >
> >> +#endif
> >> +
> >>  #define KWSPI_CLKPRESCL_MASK	0x1f
> >>  #define KWSPI_CSN_ACT		1 /* Activates serial memory interface
> >> */
> >>  #define KWSPI_SMEMRDY		(1 << 1) /* SerMem Data xfer ready */
> >> diff --git a/drivers/spi/kirkwood_spi.c
> b/drivers/spi/kirkwood_spi.c
> >> index db8ba8b..0877915 100644
> >> --- a/drivers/spi/kirkwood_spi.c
> >> +++ b/drivers/spi/kirkwood_spi.c
> >> @@ -88,11 +88,45 @@ void spi_free_slave(struct spi_slave *slave)
> >>
> >>  int spi_claim_bus(struct spi_slave *slave)
> >>  {
> >
> > Instead define here
> > #ifdef CONFIG_SYS_KW_SPI_MPP, otherwise build with default.
> 
> OK, if you prefer it this way, it is fine for me. This implies that I
> have to
> remove the above #ifndef CONFIG_SYS_KW_SPI_MPP and that the boards
> that want to
> use this will have to #define CONFIG_SYS_KW_SPI_MPP in their config.
> 
> >
> >> +	u32 config;
> >> +	u32 spi_mpp_config[5];
> >> +
> >> +	config = CONFIG_SYS_KW_SPI_MPP;
> >> +
> >> +	if (config & CSn_MPP7)
> >> +		spi_mpp_config[0] = MPP7_SPI_SCn;
> >> +	else
> >> +		spi_mpp_config[0] = MPP0_SPI_SCn;
> >> +
> >> +	if (config & MOSI_MPP6)
> >> +		spi_mpp_config[1] = MPP6_SPI_MOSI;
> >> +	else
> >> +		spi_mpp_config[1] = MPP1_SPI_MOSI;
> >> +
> >> +	if (config & SCK_MPP10)
> >> +		spi_mpp_config[2] = MPP10_SPI_SCK;
> >> +	else
> >> +		spi_mpp_config[2] = MPP2_SPI_SCK;
> >> +
> >> +	if (config & MISO_MPP11)
> >> +		spi_mpp_config[3] = MPP11_SPI_MISO;
> >> +	else
> >> +		spi_mpp_config[3] = MPP3_SPI_MISO;
> >> +
> >> +	spi_mpp_config[4] = 0;
> >> +
> >> +	/* save current mpp configuration */
> >> +	kirkwood_mpp_save();
> >> +
> >> +	/* finally set chosen mpp spi configuration */
> >> +	kirkwood_mpp_conf(spi_mpp_config);
> >> +
> >>  	return 0;
> >>  }
> >>
> >>  void spi_release_bus(struct spi_slave *slave)
> >>  {
> >> +	kirkwood_mpp_restore();
> >>  }
> >>
> >>  #ifndef CONFIG_SPI_CS_IS_VALID
> >> --
> >
> > Regards..
> > Prafulla . . .

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [U-Boot] [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore functions
  2012-05-29 10:12       ` Prafulla Wadaskar
@ 2012-05-29 11:28         ` Valentin Longchamp
  2012-05-29 12:06           ` Prafulla Wadaskar
  0 siblings, 1 reply; 24+ messages in thread
From: Valentin Longchamp @ 2012-05-29 11:28 UTC (permalink / raw)
  To: u-boot

>> -----Original Message-----
>> From: Valentin Longchamp [mailto:valentin.longchamp at keymile.com]
>> Sent: 29 May 2012 14:15
>> To: Prafulla Wadaskar
>> Cc: holger.brunck at keymile.com; u-boot at lists.denx.de
>> Subject: Re: [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore
>> functions
>>
> ...snip...
>>>
>>>> +
>>>> +void kirkwood_mpp_save(void)
>>> This should be
>>> void kirkwood_mpp_save(unsigned int *mpp_ctrl, int len)
>>
>> Here we save _all_ mpp registers, with direct access to the registers.
>> With your
>> proposed solution, I would save it in a dynamically allocated table of
>> size len.
>>
>> That's fine for me, but I would then need to export MPP_NR_REGS,
>> because that is
>> what I would pass as len arg, is that OK ?
> 
> I think in your case you need configuration of 4 MPPs, i.e. from MPP6 to MPP11, so you may declare array of length 7 and backup and restore the same MPPs using len = 6.
> 
> No Need to backup and restore all MPPs.
> 

Sorry, but this is exactly what you did in the kirkwood_mpp_conf function, you
read and write all the registers every time you need to change only one pin, I
took it from there for consistency:

> 4efb77d4 cpu/arm926ejs/kirkwood/mpp.c          (Prafulla Wadaskar  2009-06-20 11:01:53 +0200  76)       for (i = 0; i < MPP_NR_REGS; i++) {
> 4efb77d4 cpu/arm926ejs/kirkwood/mpp.c          (Prafulla Wadaskar  2009-06-20 11:01:53 +0200  77)               writel(mpp_ctrl[i], MPP_CTRL(i));
> 4efb77d4 cpu/arm926ejs/kirkwood/mpp.c          (Prafulla Wadaskar  2009-06-20 11:01:53 +0200  78)               debug(" %08x", mpp_ctrl[i]);
> 4efb77d4 cpu/arm926ejs/kirkwood/mpp.c          (Prafulla Wadaskar  2009-06-20 11:01:53 +0200  79)       }

And the way you did it is logical, if it was not done like that, a lot of
reading/masking/rewriting would be needed, and this for every single pin, so it
would be much less efficient than just reading all the regs and write them all back.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [U-Boot] [PATCH 2/3] spi/kirkwood: support spi_claim/release_bus functions
  2012-05-29 10:29       ` Prafulla Wadaskar
@ 2012-05-29 11:32         ` Valentin Longchamp
  0 siblings, 0 replies; 24+ messages in thread
From: Valentin Longchamp @ 2012-05-29 11:32 UTC (permalink / raw)
  To: u-boot

On 05/29/2012 12:29 PM, Prafulla Wadaskar wrote:
>> -----Original Message-----
>> From: Valentin Longchamp [mailto:valentin.longchamp at keymile.com]
>> Sent: 29 May 2012 14:02
>> To: Prafulla Wadaskar
>> Cc: holger.brunck at keymile.com; u-boot at lists.denx.de
>> Subject: Re: [PATCH 2/3] spi/kirkwood: support spi_claim/release_bus
>> functions
>>
>> On 05/24/2012 10:35 AM, Prafulla Wadaskar wrote:
>>>> -----Original Message-----
>>>> From: Valentin Longchamp [mailto:valentin.longchamp at keymile.com]
>>>> Sent: 16 May 2012 16:24
>>>> To: Prafulla Wadaskar; holger.brunck at keymile.com
>>>> Cc: Valentin Longchamp; u-boot at lists.denx.de; Holger Brunck;
>> Prafulla
>>>> Wadaskar
>>>> Subject: [PATCH 2/3] spi/kirkwood: support spi_claim/release_bus
>>>> functions
>>>>
>>>> These two function nows ensure that the MPP is configured correctly
>>>> for
>>>> the SPI controller before any SPI access, and restore the initial
>>>> configuration when the access is over.
>>>>
>>>> Since the used pins for the SPI controller can differ (2
>> possibilities
>>>> for each signal), the used pins are configured with
>>>> CONFIG_SYS_KW_SPI_MPP.
>>>>
>>>> Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com>
>>>> cc: Holger Brunck <holger.brunck@keymile.com>
>>>> cc: Prafulla Wadaskar <prafulla@marvell.com>
>>>> ---
>>>>  arch/arm/include/asm/arch-kirkwood/spi.h |    9 ++++++++
>>>>  drivers/spi/kirkwood_spi.c               |   34
>>>> ++++++++++++++++++++++++++++++
>>>>  2 files changed, 43 insertions(+), 0 deletions(-)
>>>>
>>>> diff --git a/arch/arm/include/asm/arch-kirkwood/spi.h
>>>> b/arch/arm/include/asm/arch-kirkwood/spi.h
>>>> index 1d5043f..305c573 100644
>>>> --- a/arch/arm/include/asm/arch-kirkwood/spi.h
>>>> +++ b/arch/arm/include/asm/arch-kirkwood/spi.h
>>>> @@ -37,6 +37,15 @@ struct kwspi_registers {
>>>>  	u32 irq_mask;	/* 0x10614 */
>>>>  };
>>>>
>>>> +#define CSn_MPP7	0x1
>>>> +#define MOSI_MPP6	0x2
>>>> +#define SCK_MPP10	0x4
>>>> +#define MISO_MPP11	0x8
>>>
>>> Let's define above as (1 << x) to make it more readable.
>>
>> OK
>>
>>>
>>>> +
>>>> +#ifndef CONFIG_SYS_KW_SPI_MPP
>>>> +#define CONFIG_SYS_KW_SPI_MPP	0x0
>>>
>>> Some more documentation is needed, you need to explain how each bit
>> we are using to configure the SPI-MPPs
>>
>> Not sure I understand what you mean here. But I think that you mean
>> that I would
>> have to document that bit 1 is for CSn signal (MPP0 or MPP7), bit 2
>> for MOSI
>> signal (MPP1 or MPP6) and so on ... OK will do it.
> 
> Exactly, 
> 
>>
>> Would you want me to define CSn_MPP0 as 0x0 (or (0 << 0) ) and
>> MOSI_MPP1 as 0x0
>>  and so on as well ?
> 
> Use any four bits for four configuration, I would suggest to use bit0 to bit-3.

That's already how it is implemented ...:

bit 0: selects pin for CSn (MPP0 if 0, MPP7 if 1)
bit 1: selects pin for MOSI (MPP1 if 0, MPP6 if 1)
bit 2: selects pin for SCK (MPP2 if 0, MPP10 if 1)
bit 3: selects pin for MISO (MPP3 if 0, MPP11 if 1)

> 
> Regards..
> Prafulla . . .
> 
>>
>>>
>>>> +#endif
>>>> +
>>>>  #define KWSPI_CLKPRESCL_MASK	0x1f
>>>>  #define KWSPI_CSN_ACT		1 /* Activates serial memory interface
>>>> */
>>>>  #define KWSPI_SMEMRDY		(1 << 1) /* SerMem Data xfer ready */
>>>> diff --git a/drivers/spi/kirkwood_spi.c
>> b/drivers/spi/kirkwood_spi.c
>>>> index db8ba8b..0877915 100644
>>>> --- a/drivers/spi/kirkwood_spi.c
>>>> +++ b/drivers/spi/kirkwood_spi.c
>>>> @@ -88,11 +88,45 @@ void spi_free_slave(struct spi_slave *slave)
>>>>
>>>>  int spi_claim_bus(struct spi_slave *slave)
>>>>  {
>>>
>>> Instead define here
>>> #ifdef CONFIG_SYS_KW_SPI_MPP, otherwise build with default.
>>
>> OK, if you prefer it this way, it is fine for me. This implies that I
>> have to
>> remove the above #ifndef CONFIG_SYS_KW_SPI_MPP and that the boards
>> that want to
>> use this will have to #define CONFIG_SYS_KW_SPI_MPP in their config.
>>
>>>
>>>> +	u32 config;
>>>> +	u32 spi_mpp_config[5];
>>>> +
>>>> +	config = CONFIG_SYS_KW_SPI_MPP;
>>>> +
>>>> +	if (config & CSn_MPP7)
>>>> +		spi_mpp_config[0] = MPP7_SPI_SCn;
>>>> +	else
>>>> +		spi_mpp_config[0] = MPP0_SPI_SCn;
>>>> +
>>>> +	if (config & MOSI_MPP6)
>>>> +		spi_mpp_config[1] = MPP6_SPI_MOSI;
>>>> +	else
>>>> +		spi_mpp_config[1] = MPP1_SPI_MOSI;
>>>> +
>>>> +	if (config & SCK_MPP10)
>>>> +		spi_mpp_config[2] = MPP10_SPI_SCK;
>>>> +	else
>>>> +		spi_mpp_config[2] = MPP2_SPI_SCK;
>>>> +
>>>> +	if (config & MISO_MPP11)
>>>> +		spi_mpp_config[3] = MPP11_SPI_MISO;
>>>> +	else
>>>> +		spi_mpp_config[3] = MPP3_SPI_MISO;
>>>> +
>>>> +	spi_mpp_config[4] = 0;
>>>> +
>>>> +	/* save current mpp configuration */
>>>> +	kirkwood_mpp_save();
>>>> +
>>>> +	/* finally set chosen mpp spi configuration */
>>>> +	kirkwood_mpp_conf(spi_mpp_config);
>>>> +
>>>>  	return 0;
>>>>  }
>>>>
>>>>  void spi_release_bus(struct spi_slave *slave)
>>>>  {
>>>> +	kirkwood_mpp_restore();
>>>>  }
>>>>
>>>>  #ifndef CONFIG_SPI_CS_IS_VALID
>>>> --
>>>
>>> Regards..
>>> Prafulla . . .

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [U-Boot] [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore functions
  2012-05-29 11:28         ` Valentin Longchamp
@ 2012-05-29 12:06           ` Prafulla Wadaskar
  2012-05-29 12:50             ` Valentin Longchamp
  0 siblings, 1 reply; 24+ messages in thread
From: Prafulla Wadaskar @ 2012-05-29 12:06 UTC (permalink / raw)
  To: u-boot



> -----Original Message-----
> From: Valentin Longchamp [mailto:valentin.longchamp at keymile.com]
> Sent: 29 May 2012 16:59
> To: Prafulla Wadaskar
> Cc: holger.brunck at keymile.com; u-boot at lists.denx.de
> Subject: Re: [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore
> functions
> 
> >> -----Original Message-----
> >> From: Valentin Longchamp [mailto:valentin.longchamp at keymile.com]
> >> Sent: 29 May 2012 14:15
> >> To: Prafulla Wadaskar
> >> Cc: holger.brunck at keymile.com; u-boot at lists.denx.de
> >> Subject: Re: [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore
> >> functions
> >>
> > ...snip...
> >>>
> >>>> +
> >>>> +void kirkwood_mpp_save(void)
> >>> This should be
> >>> void kirkwood_mpp_save(unsigned int *mpp_ctrl, int len)
> >>
> >> Here we save _all_ mpp registers, with direct access to the
> registers.
> >> With your
> >> proposed solution, I would save it in a dynamically allocated table
> of
> >> size len.
> >>
> >> That's fine for me, but I would then need to export MPP_NR_REGS,
> >> because that is
> >> what I would pass as len arg, is that OK ?
> >
> > I think in your case you need configuration of 4 MPPs, i.e. from
> MPP6 to MPP11, so you may declare array of length 7 and backup and
> restore the same MPPs using len = 6.
> >
> > No Need to backup and restore all MPPs.
> >
> 
> Sorry, but this is exactly what you did in the kirkwood_mpp_conf
> function, you
> read and write all the registers every time you need to change only
> one pin, I
> took it from there for consistency:
> 
> > 4efb77d4 cpu/arm926ejs/kirkwood/mpp.c          (Prafulla Wadaskar
> 2009-06-20 11:01:53 +0200  76)       for (i = 0; i < MPP_NR_REGS; i++)
> {
> > 4efb77d4 cpu/arm926ejs/kirkwood/mpp.c          (Prafulla Wadaskar
> 2009-06-20 11:01:53 +0200  77)               writel(mpp_ctrl[i],
> MPP_CTRL(i));
> > 4efb77d4 cpu/arm926ejs/kirkwood/mpp.c          (Prafulla Wadaskar
> 2009-06-20 11:01:53 +0200  78)               debug(" %08x",
> mpp_ctrl[i]);
> > 4efb77d4 cpu/arm926ejs/kirkwood/mpp.c          (Prafulla Wadaskar
> 2009-06-20 11:01:53 +0200  79)       }
> 
> And the way you did it is logical, if it was not done like that, a lot
> of
> reading/masking/rewriting would be needed, and this for every single
> pin, so it
> would be much less efficient than just reading all the regs and write
> them all back.

Yes, but the idea is that mpp_config function is called just once during initialization, we have exposed a simple array to do this configuration.

but save/restore will be called very frequently, may be for each SPI transaction. So there must be some optimisation.
Secondly, we should only tweak only needed MPPs in run time, why all? It may lead to some other side effects (I don't know).

Regards..
Prafulla . . .

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [U-Boot] [PATCH 3/3] spi/kirkwood: add weak functions board_spi_claim/release_bus
  2012-05-29  8:32     ` Valentin Longchamp
@ 2012-05-29 12:13       ` Prafulla Wadaskar
  0 siblings, 0 replies; 24+ messages in thread
From: Prafulla Wadaskar @ 2012-05-29 12:13 UTC (permalink / raw)
  To: u-boot



> -----Original Message-----
> From: Valentin Longchamp [mailto:valentin.longchamp at keymile.com]
> Sent: 29 May 2012 14:03
> To: Prafulla Wadaskar
> Cc: holger.brunck at keymile.com; u-boot at lists.denx.de
> Subject: Re: [PATCH 3/3] spi/kirkwood: add weak functions
> board_spi_claim/release_bus
> 
> On 05/24/2012 10:38 AM, Prafulla Wadaskar wrote:
> >> -----Original Message-----
> >> From: Valentin Longchamp [mailto:valentin.longchamp at keymile.com]
> >> Sent: 16 May 2012 16:24
> >> To: Prafulla Wadaskar; holger.brunck at keymile.com
> >> Cc: Valentin Longchamp; u-boot at lists.denx.de; Holger Brunck;
> Prafulla
> >> Wadaskar
> >> Subject: [PATCH 3/3] spi/kirkwood: add weak functions
> >> board_spi_claim/release_bus
> >>
> >> This allows a final, board specific, step in the claim/relase_bus
> >> function for the SPI controller, which may be needed for some
> hardware
> >> designs.
> >
> > NAK, this is not needed if earlier two patches in the patch series
> are in place.
> >
> 
> In our case, this is still needed. As I had already explained you in
> the
> previous discussion, even with the generic approach, our hardware
> design
> requires one access to an additional signal (a GPIO) to configure an
> external HW
> multiplexer which is present to electrically remove the Nand Flash
> device from
> the signals used by the SPI bus and put it back when the accesses are
> over.
> 
> That's why my first implementation was only relying on these weak
> functions.

Okay, got it, on your board, apart from MPPs, you need additional control.

BTW: if NF_CEn could have been used this additional GPIO would not have needed.
But any ways we cannot change your h/w now :-)
So in that case it makes sense to expose these weak functions.

Regards..
Prafulla . . .

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [U-Boot] [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore functions
  2012-05-28 22:07     ` Michael Walle
@ 2012-05-29 12:42       ` Prafulla Wadaskar
  2012-05-29 17:02         ` Michael Walle
  0 siblings, 1 reply; 24+ messages in thread
From: Prafulla Wadaskar @ 2012-05-29 12:42 UTC (permalink / raw)
  To: u-boot



> -----Original Message-----
> From: Michael Walle [mailto:michael at walle.cc]
> Sent: 29 May 2012 03:38
> To: u-boot at lists.denx.de
> Cc: Prafulla Wadaskar; Valentin Longchamp; holger.brunck at keymile.com
> Subject: Re: [U-Boot] [PATCH 1/3] kirkwood: add
> kirkwood_mpp_save/restore functions
> 
> Am Donnerstag 24 Mai 2012, 10:26:44 schrieb Prafulla Wadaskar:
> > > +
> > > +void kirkwood_mpp_save(void)
> >
> > This should be
> > void kirkwood_mpp_save(unsigned int *mpp_ctrl, int len)
> >
> > > +{
> > > +	int i;
> > > +
> > > +	for (i = 0; i < MPP_NR_REGS; i++)
> > > +		mpp_regs[i] = readl(MPP_CTRL(i));
> > > +}
> > > +
> > > +void kirkwood_mpp_restore(void)
> >
> > Same here
> > void kirkwood_mpp_restore(unsigned int *mpp_ctrl, int len)
> or even better kirkwood_mpp_restore(const unsigned int *mpp_ctrl, int
> len)
> 
> btw. sometimes "unsigned int" is used and sometimes "u32", could we
> agree on
> one? Eg. kirkwood_mpp_conf() is declared with unsigned int but defined
> with
> u32.

Hi Michael

Thanks for your comments.

Yes, we should use u32.
And const will be a problem since mpp_ctrl will be array that will be dynamically modified.

Regards..
Prafulla . . .

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [U-Boot] [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore functions
  2012-05-29 12:06           ` Prafulla Wadaskar
@ 2012-05-29 12:50             ` Valentin Longchamp
  2012-05-29 13:15               ` Prafulla Wadaskar
  0 siblings, 1 reply; 24+ messages in thread
From: Valentin Longchamp @ 2012-05-29 12:50 UTC (permalink / raw)
  To: u-boot

On 05/29/2012 02:06 PM, Prafulla Wadaskar wrote:
> 
> 
>> -----Original Message-----
>> From: Valentin Longchamp [mailto:valentin.longchamp at keymile.com]
>> Sent: 29 May 2012 16:59
>> To: Prafulla Wadaskar
>> Cc: holger.brunck at keymile.com; u-boot at lists.denx.de
>> Subject: Re: [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore
>> functions
>>
>>>> -----Original Message-----
>>>> From: Valentin Longchamp [mailto:valentin.longchamp at keymile.com]
>>>> Sent: 29 May 2012 14:15
>>>> To: Prafulla Wadaskar
>>>> Cc: holger.brunck at keymile.com; u-boot at lists.denx.de
>>>> Subject: Re: [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore
>>>> functions
>>>>
>>> ...snip...
>>>>>
>>>>>> +
>>>>>> +void kirkwood_mpp_save(void)
>>>>> This should be
>>>>> void kirkwood_mpp_save(unsigned int *mpp_ctrl, int len)
>>>>
>>>> Here we save _all_ mpp registers, with direct access to the
>> registers.
>>>> With your
>>>> proposed solution, I would save it in a dynamically allocated table
>> of
>>>> size len.
>>>>
>>>> That's fine for me, but I would then need to export MPP_NR_REGS,
>>>> because that is
>>>> what I would pass as len arg, is that OK ?
>>>
>>> I think in your case you need configuration of 4 MPPs, i.e. from
>> MPP6 to MPP11, so you may declare array of length 7 and backup and
>> restore the same MPPs using len = 6.
>>>
>>> No Need to backup and restore all MPPs.
>>>
>>
>> Sorry, but this is exactly what you did in the kirkwood_mpp_conf
>> function, you
>> read and write all the registers every time you need to change only
>> one pin, I
>> took it from there for consistency:
>>
>>> 4efb77d4 cpu/arm926ejs/kirkwood/mpp.c          (Prafulla Wadaskar
>> 2009-06-20 11:01:53 +0200  76)       for (i = 0; i < MPP_NR_REGS; i++)
>> {
>>> 4efb77d4 cpu/arm926ejs/kirkwood/mpp.c          (Prafulla Wadaskar
>> 2009-06-20 11:01:53 +0200  77)               writel(mpp_ctrl[i],
>> MPP_CTRL(i));
>>> 4efb77d4 cpu/arm926ejs/kirkwood/mpp.c          (Prafulla Wadaskar
>> 2009-06-20 11:01:53 +0200  78)               debug(" %08x",
>> mpp_ctrl[i]);
>>> 4efb77d4 cpu/arm926ejs/kirkwood/mpp.c          (Prafulla Wadaskar
>> 2009-06-20 11:01:53 +0200  79)       }
>>
>> And the way you did it is logical, if it was not done like that, a lot
>> of
>> reading/masking/rewriting would be needed, and this for every single
>> pin, so it
>> would be much less efficient than just reading all the regs and write
>> them all back.
> 
> Yes, but the idea is that mpp_config function is called just once during initialization, we have exposed a simple array to do this configuration.
> 
> but save/restore will be called very frequently, may be for each SPI transaction. So there must be some optimisation.

> Secondly, we should only tweak only needed MPPs in run time, why all? It may lead to some other side effects (I don't know).
> 

With the proposed code, all are saved and restored, but not all are tweaked.
Furthermore, maybe reading and writing back 7 registers and is more efficient
than determining which one of the 7 have to be read/written back and then
performing the accesses.

However, if you tell me that mpp_config function is supposed to be called just
once during initialization, I will propose a new function that optimizes these
reg accesses as you would prefer it, but the best optimization potential is to
avoid to call the 2 mpp_config and mpp_save functions.

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [U-Boot] [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore functions
  2012-05-29 12:50             ` Valentin Longchamp
@ 2012-05-29 13:15               ` Prafulla Wadaskar
  0 siblings, 0 replies; 24+ messages in thread
From: Prafulla Wadaskar @ 2012-05-29 13:15 UTC (permalink / raw)
  To: u-boot



> -----Original Message-----
> From: Valentin Longchamp [mailto:valentin.longchamp at keymile.com]
> Sent: 29 May 2012 18:20
> To: Prafulla Wadaskar
> Cc: holger.brunck at keymile.com; u-boot at lists.denx.de
> Subject: Re: [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore
> functions
> 
> On 05/29/2012 02:06 PM, Prafulla Wadaskar wrote:
> >
> >
> >> -----Original Message-----
> >> From: Valentin Longchamp [mailto:valentin.longchamp at keymile.com]
> >> Sent: 29 May 2012 16:59
> >> To: Prafulla Wadaskar
> >> Cc: holger.brunck at keymile.com; u-boot at lists.denx.de
> >> Subject: Re: [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore
> >> functions
> >>
> >>>> -----Original Message-----
> >>>> From: Valentin Longchamp [mailto:valentin.longchamp at keymile.com]
> >>>> Sent: 29 May 2012 14:15
> >>>> To: Prafulla Wadaskar
> >>>> Cc: holger.brunck at keymile.com; u-boot at lists.denx.de
> >>>> Subject: Re: [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore
> >>>> functions
> >>>>
> >>> ...snip...
> >>>>>
> >>>>>> +
> >>>>>> +void kirkwood_mpp_save(void)
> >>>>> This should be
> >>>>> void kirkwood_mpp_save(unsigned int *mpp_ctrl, int len)
> >>>>
> >>>> Here we save _all_ mpp registers, with direct access to the
> >> registers.
> >>>> With your
> >>>> proposed solution, I would save it in a dynamically allocated
> table
> >> of
> >>>> size len.
> >>>>
> >>>> That's fine for me, but I would then need to export MPP_NR_REGS,
> >>>> because that is
> >>>> what I would pass as len arg, is that OK ?
> >>>
> >>> I think in your case you need configuration of 4 MPPs, i.e. from
> >> MPP6 to MPP11, so you may declare array of length 7 and backup and
> >> restore the same MPPs using len = 6.
> >>>
> >>> No Need to backup and restore all MPPs.
> >>>
> >>
> >> Sorry, but this is exactly what you did in the kirkwood_mpp_conf
> >> function, you
> >> read and write all the registers every time you need to change only
> >> one pin, I
> >> took it from there for consistency:
> >>
> >>> 4efb77d4 cpu/arm926ejs/kirkwood/mpp.c          (Prafulla Wadaskar
> >> 2009-06-20 11:01:53 +0200  76)       for (i = 0; i < MPP_NR_REGS;
> i++)
> >> {
> >>> 4efb77d4 cpu/arm926ejs/kirkwood/mpp.c          (Prafulla Wadaskar
> >> 2009-06-20 11:01:53 +0200  77)               writel(mpp_ctrl[i],
> >> MPP_CTRL(i));
> >>> 4efb77d4 cpu/arm926ejs/kirkwood/mpp.c          (Prafulla Wadaskar
> >> 2009-06-20 11:01:53 +0200  78)               debug(" %08x",
> >> mpp_ctrl[i]);
> >>> 4efb77d4 cpu/arm926ejs/kirkwood/mpp.c          (Prafulla Wadaskar
> >> 2009-06-20 11:01:53 +0200  79)       }
> >>
> >> And the way you did it is logical, if it was not done like that, a
> lot
> >> of
> >> reading/masking/rewriting would be needed, and this for every
> single
> >> pin, so it
> >> would be much less efficient than just reading all the regs and
> write
> >> them all back.
> >
> > Yes, but the idea is that mpp_config function is called just once
> during initialization, we have exposed a simple array to do this
> configuration.
> >
> > but save/restore will be called very frequently, may be for each SPI
> transaction. So there must be some optimisation.
> 
> > Secondly, we should only tweak only needed MPPs in run time, why
> all? It may lead to some other side effects (I don't know).
> >
> 
> With the proposed code, all are saved and restored, but not all are
> tweaked.
> Furthermore, maybe reading and writing back 7 registers and is more
> efficient
> than determining which one of the 7 have to be read/written back and
> then
> performing the accesses.
> 
> However, if you tell me that mpp_config function is supposed to be
> called just
> once during initialization, I will propose a new function that
> optimizes these

New ideas are always welcomed, let's keep is separate from this context.

> reg accesses as you would prefer it, but the best optimization
> potential is to
> avoid to call the 2 mpp_config and mpp_save functions.

I think, Kirkwood_mpp_config (already supported) finally writes the said MPP configurations to the SoC,

If we can have just Kirkwood_mpp_read() function that reads the MPP configuration for the said MPP will be enough from mpp.c prospective.
This function should return the MPP config value in the same way it is being programmed by Kirkwood_mpp_config() function.

In SPI driver we will use these functions to handle the claim/release/backup the MPP attributes.

Regards..
Prafulla . . .

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [U-Boot] [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore functions
  2012-05-24  8:26   ` Prafulla Wadaskar
  2012-05-28 22:07     ` Michael Walle
  2012-05-29  8:44     ` Valentin Longchamp
@ 2012-05-29 14:47     ` Marek Vasut
  2012-05-30 14:28       ` [U-Boot] patchwork cleanup Prafulla Wadaskar
  2 siblings, 1 reply; 24+ messages in thread
From: Marek Vasut @ 2012-05-29 14:47 UTC (permalink / raw)
  To: u-boot

Dear Prafulla Wadaskar,

this is offtopic in this thread, but I tried contacting you about thrice by now 
via email, maybe you didn't get those mails. To get quickly to the point, can 
you please try cleaning up the patches in patchwork?

Thanks!

Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [U-Boot] [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore functions
  2012-05-29 12:42       ` Prafulla Wadaskar
@ 2012-05-29 17:02         ` Michael Walle
  0 siblings, 0 replies; 24+ messages in thread
From: Michael Walle @ 2012-05-29 17:02 UTC (permalink / raw)
  To: u-boot

Am Dienstag 29 Mai 2012, 14:42:08 schrieb Prafulla Wadaskar:
> And const will be a problem since mpp_ctrl will be array that will be
> dynamically modified.
But not within kirkwood_mpp_restore(), right? So an mpp_ctrl array would be 
implicitly casted from u32* to const u32*.

so we would have the following declarations:
 kirkwood_mpp_restore(const u32 *mpp_list)
 kirkwood_mpp_conf(const u32 *mpp_list)
 kirkwood_mpp_save(u32 *mpp_list)

where only the latter modifies mpp_list.

-- 
michael

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [U-Boot] patchwork cleanup
  2012-05-29 14:47     ` Marek Vasut
@ 2012-05-30 14:28       ` Prafulla Wadaskar
  2012-06-01 15:27         ` Marek Vasut
  0 siblings, 1 reply; 24+ messages in thread
From: Prafulla Wadaskar @ 2012-05-30 14:28 UTC (permalink / raw)
  To: u-boot

Dear Marek

I did few cleanups in patchwork?
I will check if further more is needed.

Regards..
Prafulla . . .


> -----Original Message-----
> From: Marek Vasut [mailto:marek.vasut at gmail.com]
> Sent: 29 May 2012 20:17
> To: u-boot at lists.denx.de
> Cc: Prafulla Wadaskar; Valentin Longchamp; holger.brunck at keymile.com
> Subject: Re: [U-Boot] [PATCH 1/3] kirkwood: add
> kirkwood_mpp_save/restore functions
> 
> Dear Prafulla Wadaskar,
> 
> this is offtopic in this thread, but I tried contacting you about
> thrice by now
> via email, maybe you didn't get those mails. To get quickly to the
> point, can
> you please try cleaning up the patches in patchwork?
> 
> Thanks!
> 
> Best regards,
> Marek Vasut

^ permalink raw reply	[flat|nested] 24+ messages in thread

* [U-Boot] patchwork cleanup
  2012-05-30 14:28       ` [U-Boot] patchwork cleanup Prafulla Wadaskar
@ 2012-06-01 15:27         ` Marek Vasut
  0 siblings, 0 replies; 24+ messages in thread
From: Marek Vasut @ 2012-06-01 15:27 UTC (permalink / raw)
  To: u-boot

Dear Prafulla Wadaskar,

> Dear Marek
> 
> I did few cleanups in patchwork?
> I will check if further more is needed.

I just checked, it seems it's all gone now, only a few crumbles left :)

Sorry I kept pestering you so much.

Thanks a lot for cleaning it up!

> 
> Regards..
> Prafulla . . .
> 
> > -----Original Message-----
> > From: Marek Vasut [mailto:marek.vasut at gmail.com]
> > Sent: 29 May 2012 20:17
> > To: u-boot at lists.denx.de
> > Cc: Prafulla Wadaskar; Valentin Longchamp; holger.brunck at keymile.com
> > Subject: Re: [U-Boot] [PATCH 1/3] kirkwood: add
> > kirkwood_mpp_save/restore functions
> > 
> > Dear Prafulla Wadaskar,
> > 
> > this is offtopic in this thread, but I tried contacting you about
> > thrice by now
> > via email, maybe you didn't get those mails. To get quickly to the
> > point, can
> > you please try cleaning up the patches in patchwork?
> > 
> > Thanks!
> > 
> > Best regards,
> > Marek Vasut

Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 24+ messages in thread

end of thread, other threads:[~2012-06-01 15:27 UTC | newest]

Thread overview: 24+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-05-16 10:53 [U-Boot] [PATCH 0/3] kirkwood spi_claim/release_bus support Valentin Longchamp
2012-05-16 10:53 ` [U-Boot] [PATCH 1/3] kirkwood: add kirkwood_mpp_save/restore functions Valentin Longchamp
2012-05-24  8:26   ` Prafulla Wadaskar
2012-05-28 22:07     ` Michael Walle
2012-05-29 12:42       ` Prafulla Wadaskar
2012-05-29 17:02         ` Michael Walle
2012-05-29  8:44     ` Valentin Longchamp
2012-05-29 10:12       ` Prafulla Wadaskar
2012-05-29 11:28         ` Valentin Longchamp
2012-05-29 12:06           ` Prafulla Wadaskar
2012-05-29 12:50             ` Valentin Longchamp
2012-05-29 13:15               ` Prafulla Wadaskar
2012-05-29 14:47     ` Marek Vasut
2012-05-30 14:28       ` [U-Boot] patchwork cleanup Prafulla Wadaskar
2012-06-01 15:27         ` Marek Vasut
2012-05-16 10:53 ` [U-Boot] [PATCH 2/3] spi/kirkwood: support spi_claim/release_bus functions Valentin Longchamp
2012-05-24  8:35   ` Prafulla Wadaskar
2012-05-29  8:32     ` Valentin Longchamp
2012-05-29 10:29       ` Prafulla Wadaskar
2012-05-29 11:32         ` Valentin Longchamp
2012-05-16 10:53 ` [U-Boot] [PATCH 3/3] spi/kirkwood: add weak functions board_spi_claim/release_bus Valentin Longchamp
2012-05-24  8:38   ` Prafulla Wadaskar
2012-05-29  8:32     ` Valentin Longchamp
2012-05-29 12:13       ` Prafulla Wadaskar

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.