All of lore.kernel.org
 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 13:32:01 +0200	[thread overview]
Message-ID: <4FC4B3B1.4060105@keymile.com> (raw)
In-Reply-To: <F766E4F80769BD478052FB6533FA745D1A2FB9FBD7@SC-VEXCH4.marvell.com>

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

  reply	other threads:[~2012-05-29 11: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
2012-05-29 10:29       ` Prafulla Wadaskar
2012-05-29 11:32         ` Valentin Longchamp [this message]
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=4FC4B3B1.4060105@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 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.