[U-Boot] [PATCH 02/20] arm/km: use correct kw_gpio function for NAND/SPI switching

Holger Brunck holger.brunck at keymile.com
Tue Jun 12 12:29:05 CEST 2012


On 06/12/2012 11:32 AM, Prafulla Wadaskar wrote:
> 
> 
>> -----Original Message-----
>> From: Holger Brunck [mailto:holger.brunck at keymile.com]
>> Sent: 12 June 2012 14:08
>> To: Prafulla Wadaskar
>> Cc: Valentin Longchamp; prafulla at mavell.com; u-boot at lists.denx.de;
>> Gerlando Falauto
>> Subject: Re: [PATCH 02/20] arm/km: use correct kw_gpio function for
>> NAND/SPI switching
>>
>> On 06/12/2012 06:39 AM, Prafulla Wadaskar wrote:
>>>
>>>
>>>> -----Original Message-----
>>>> From: Valentin Longchamp [mailto:valentin.longchamp at keymile.com]
>>>> Sent: 07 June 2012 15:37
>>>> To: prafulla at mavell.com
>>>> Cc: Valentin Longchamp; holger.brunck at keymile.com; u-
>>>> boot at lists.denx.de; Gerlando Falauto; Prafulla Wadaskar
>>>> Subject: [PATCH 02/20] arm/km: use correct kw_gpio function for
>>>> NAND/SPI switching
>>>>
>>>> This used to be done with registers direct access, which is not
>> clear
>>>> and optimal.
>>>>
>>>> Signed-off-by: Valentin Longchamp <valentin.longchamp at keymile.com>
>>>> Signed-off-by: Holger Brunck <holger.brunck at keymile.com>
>>>> cc: Gerlando Falauto <gerlando.falauto at keymile.com>
>>>> cc: Prafulla Wadaskar <prafulla at marvell.com>
>>>> ---
>>>>  board/keymile/km_arm/km_arm.c |   53 +++++++++++++++++++++--------
>> ---
>>>> --------
>>>>  include/configs/km/km_arm.h   |    1 +
>>>>  2 files changed, 29 insertions(+), 25 deletions(-)
>>>>
>>>> diff --git a/board/keymile/km_arm/km_arm.c
>>>> b/board/keymile/km_arm/km_arm.c
>>>> index ed12b5c..e4ae1fb 100644
>>>> --- a/board/keymile/km_arm/km_arm.c
>>>> +++ b/board/keymile/km_arm/km_arm.c
>>>> @@ -247,15 +247,12 @@ int board_early_init_f(void)
>>>>  	kirkwood_mpp_conf(kwmpp_config, NULL);
>>>>
>>>>  	/*
>>>> -	 * The FLASH_GPIO_PIN switches between using a
>>>> +	 * The KM_FLASH_GPIO_PIN switches between using a
>>>>  	 * NAND or a SPI FLASH. Set this pin on start
>>>>  	 * to NAND mode.
>>>>  	 */
>>>> -	tmp = readl(KW_GPIO0_BASE);
>>>> -	writel(tmp | FLASH_GPIO_PIN , KW_GPIO0_BASE);
>>>> -	tmp = readl(KW_GPIO0_BASE + 4);
>>>> -	writel(tmp & (~FLASH_GPIO_PIN) , KW_GPIO0_BASE + 4);
>>>> -
>>>> +	kw_gpio_set_valid(KM_FLASH_GPIO_PIN, 1);
>>>> +	kw_gpio_direction_output(KM_FLASH_GPIO_PIN, 1);
>>>>  #if defined(CONFIG_SOFT_I2C)
>>>>  	/* init the GPIO for I2C Bitbang driver */
>>>>  	kw_gpio_set_valid(KM_KIRKWOOD_SDA_PIN, 1);
>>>> @@ -284,35 +281,41 @@ int board_init(void)
>>>>  	return 0;
>>>>  }
>>>>
>>>> +int km_hw_spi_bus_claim(int on)
>>>> +{
>>>> +	int gpio_value = !on;
>>>> +
>>>> +	if (on) {
>>>> +		kwmpp_config[0] = MPP0_SPI_SCn;
>>>> +		kwmpp_config[1] = MPP1_SPI_MOSI;
>>>> +		kwmpp_config[2] = MPP2_SPI_SCK;
>>>> +		kwmpp_config[3] = MPP3_SPI_MISO;
>>>> +	} else {
>>>> +		kwmpp_config[0] = MPP0_NF_IO2;
>>>> +		kwmpp_config[1] = MPP1_NF_IO3;
>>>> +		kwmpp_config[2] = MPP2_NF_IO4;
>>>> +		kwmpp_config[3] = MPP3_NF_IO5;
>>>> +	}
>>>
>>> NACK...
>>>
>>
>> Could you please be a bit more verbose. Why do you NACK this? This
>> code is only
>> related to our boards...
> 
> Dear Holger
> We have already patches for Kirkwood-spi in place that address this.
> So we have to use this framework.
> 
> Ref: http://lists.denx.de/pipermail/u-boot/2012-June/125574.html
> 

ok I see what you mean. We make use of it later on:
[PATCH 18/20] arm/km: implement weak function board_spi_clam_bus/release
I'll squash this one together with 02/20 then it is more clear.

Regards
Holger


More information about the U-Boot mailing list