public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Valentin Longchamp <valentin.longchamp@keymile.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 2/3] spi/kirkwood: support spi_claim/release_bus functions
Date: Tue, 29 May 2012 10:32:27 +0200	[thread overview]
Message-ID: <4FC4899B.4090303@keymile.com> (raw)
In-Reply-To: <F766E4F80769BD478052FB6533FA745D1A2FB28A2F@SC-VEXCH4.marvell.com>

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 . . .

  reply	other threads:[~2012-05-29  8:32 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 [this message]
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

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FC4899B.4090303@keymile.com \
    --to=valentin.longchamp@keymile.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox