[U-Boot] [PATCH 02/20] arm/km: use correct kw_gpio function for NAND/SPI switching
Prafulla Wadaskar
prafulla at marvell.com
Tue Jun 12 06:39:21 CEST 2012
> -----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...
Regards..
Prafulla . . .
More information about the U-Boot
mailing list