public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
From: Tom <Tom.Rix@windriver.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] pm9263 converted to at91 soc access
Date: Mon, 12 Apr 2010 18:01:26 -0500	[thread overview]
Message-ID: <4BC3A646.1000502@windriver.com> (raw)
In-Reply-To: <1270632801-9399-1-git-send-email-dimov@ronetix.at>

Asen Dimov wrote:
> Signed-off-by: Asen Dimov <dimov@ronetix.at>
> ---
>  board/ronetix/pm9263/led.c    |   15 ++--
>  board/ronetix/pm9263/pm9263.c |  195 +++++++++++++++++++++--------------------
>  include/configs/pm9263.h      |   82 ++++++++---------
>  3 files changed, 146 insertions(+), 146 deletions(-)
> 
> diff --git a/board/ronetix/pm9263/led.c b/board/ronetix/pm9263/led.c
> index fe1a1d2..4e585a4 100644
> --- a/board/ronetix/pm9263/led.c
> +++ b/board/ronetix/pm9263/led.c
> @@ -26,18 +26,19 @@
>  #include <common.h>
>  #include <asm/arch/at91sam9263.h>
>  #include <asm/arch/at91_pmc.h>
> -#include <asm/arch/gpio.h>
> +#include <asm/arch/at91_pio.h>
>  #include <asm/arch/io.h>
>  
>  void coloured_LED_init(void)
>  {
> +	at91_pmc_t	*pmc	= (at91_pmc_t *) AT91_PMC_BASE;
> +
>  	/* Enable clock */
> -	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9263_ID_PIOB |
> -				      1 << AT91SAM9263_ID_PIOCDE);
> +	writel(1 << AT91SAM9263_ID_PIOB, &pmc->pcer);

Missing PICOCDE..
Is this ok ?

>  
> -	at91_set_gpio_output(CONFIG_RED_LED, 1);
> -	at91_set_gpio_output(CONFIG_GREEN_LED, 1);
> +	at91_set_pio_output(CONFIG_RED_LED, 1);
> +	at91_set_pio_output(CONFIG_GREEN_LED, 1);
>  
> -	at91_set_gpio_value(CONFIG_RED_LED, 0);
> -	at91_set_gpio_value(CONFIG_GREEN_LED, 1);
> +	at91_set_pio_value(CONFIG_RED_LED, 0);
> +	at91_set_pio_value(CONFIG_GREEN_LED, 1);
>  }
> diff --git a/board/ronetix/pm9263/pm9263.c b/board/ronetix/pm9263/pm9263.c
> index 23ea154..83371e5 100644
> --- a/board/ronetix/pm9263/pm9263.c
> +++ b/board/ronetix/pm9263/pm9263.c
> @@ -27,13 +27,13 @@
>  #include <common.h>
>  #include <asm/sizes.h>
>  #include <asm/arch/at91sam9263.h>
> -#include <asm/arch/at91sam9263_matrix.h>
>  #include <asm/arch/at91sam9_smc.h>
>  #include <asm/arch/at91_common.h>
>  #include <asm/arch/at91_pmc.h>
>  #include <asm/arch/at91_rstc.h>
> +#include <asm/arch/at91_matrix.h>
> +#include <asm/arch/at91_pio.h>
>  #include <asm/arch/clk.h>
> -#include <asm/arch/gpio.h>
>  #include <asm/arch/io.h>
>  #include <asm/arch/hardware.h>
>  #include <lcd.h>
> @@ -55,52 +55,59 @@ DECLARE_GLOBAL_DATA_PTR;
>  static void pm9263_nand_hw_init(void)
>  {
>  	unsigned long csa;
> +	at91_smc_t 	*smc 	= (at91_smc_t *) AT91_SMC0_BASE;
> +	at91_matrix_t 	*matrix = (at91_matrix_t *) AT91_MATRIX_BASE;
>  
>  	/* Enable CS3 */
> -	csa = at91_sys_read(AT91_MATRIX_EBI0CSA);
> -	at91_sys_write(AT91_MATRIX_EBI0CSA,
> -		       csa | AT91_MATRIX_EBI0_CS3A_SMC_SMARTMEDIA);
> +	csa = readl(&matrix->csa[0]) | AT91_MATRIX_CSA_EBI_CS3A;
> +	writel(csa, &matrix->csa[0]);

Missing SMARTMEDIA
Is this ok?

>  
>  	/* Configure SMC CS3 for NAND/SmartMedia */
> -	at91_sys_write(AT91_SMC_SETUP(3),
> -		       AT91_SMC_NWESETUP_(1) | AT91_SMC_NCS_WRSETUP_(1) |
> -		       AT91_SMC_NRDSETUP_(1) | AT91_SMC_NCS_RDSETUP_(1));
> -	at91_sys_write(AT91_SMC_PULSE(3),
> -		       AT91_SMC_NWEPULSE_(3) | AT91_SMC_NCS_WRPULSE_(3) |
> -		       AT91_SMC_NRDPULSE_(3) | AT91_SMC_NCS_RDPULSE_(3));
> -	at91_sys_write(AT91_SMC_CYCLE(3),
> -		       AT91_SMC_NWECYCLE_(5) | AT91_SMC_NRDCYCLE_(5));
> -	at91_sys_write(AT91_SMC_MODE(3),
> -		       AT91_SMC_READMODE | AT91_SMC_WRITEMODE |
> -		       AT91_SMC_EXNWMODE_DISABLE |
> +	writel(AT91_SMC_SETUP_NWE(1) | AT91_SMC_SETUP_NCS_WR(1) |
> +		AT91_SMC_SETUP_NRD(1) | AT91_SMC_SETUP_NCS_RD(1),
> +		&smc->cs[3].setup);
> +
> +	writel(AT91_SMC_PULSE_NWE(3) | AT91_SMC_PULSE_NCS_WR(3) |
> +		AT91_SMC_PULSE_NRD(3) | AT91_SMC_PULSE_NCS_RD(3),
> +		&smc->cs[3].pulse);
> +
> +	writel(AT91_SMC_CYCLE_NWE(5) | AT91_SMC_CYCLE_NRD(5),
> +		&smc->cs[3].cycle);
> +
> +	writel(AT91_SMC_MODE_RM_NRD | AT91_SMC_MODE_WM_NWE |
> +		AT91_SMC_MODE_EXNW_DISABLE |
>  #ifdef CONFIG_SYS_NAND_DBW_16
> -		       AT91_SMC_DBW_16 |
> +		AT91_SMC_MODE_DBW_16 |
>  #else /* CONFIG_SYS_NAND_DBW_8 */
> -		       AT91_SMC_DBW_8 |
> +		AT91_SMC_MODE_DBW_8 |
>  #endif
> -		       AT91_SMC_TDF_(2));
> +		AT91_SMC_MODE_TDF_CYCLE(2),
> +		&smc->cs[3].mode);
>  
>  	/* Configure RDY/BSY */
> -	at91_set_gpio_input(CONFIG_SYS_NAND_READY_PIN, 1);
> +	at91_set_pio_input(CONFIG_SYS_NAND_READY_PIN, 1);
>  
>  	/* Enable NandFlash */
> -	at91_set_gpio_output(CONFIG_SYS_NAND_ENABLE_PIN, 1);
> +	at91_set_pio_output(CONFIG_SYS_NAND_ENABLE_PIN, 1);
>  }
>  #endif
>  
>  #ifdef CONFIG_MACB
>  static void pm9263_macb_hw_init(void)
>  {
> +	at91_pmc_t	*pmc	= (at91_pmc_t *) AT91_PMC_BASE;
> +	at91_pio_t	*pio	= (at91_pio_t *) AT91_PIO_BASE;
> +
>  	/*
>  	 * PB27 enables the 50MHz oscillator for Ethernet PHY
>  	 * 1 - enable
>  	 * 0 - disable
>  	 */
> -	at91_set_gpio_output(AT91_PIN_PB27, 1);
> -	at91_set_gpio_value(AT91_PIN_PB27, 1); /* 1- enable, 0 - disable */
> +	at91_set_pio_output(AT91_PIO_PORTB, 27, 1);
> +	at91_set_pio_value(AT91_PIO_PORTB, 27, 1); /* 1- enable, 0 - disable */
>  
>  	/* Enable clock */
> -	at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9263_ID_EMAC);
> +	writel(1 << AT91SAM9263_ID_EMAC, &pmc->pcer);
>  
>  	/*
>  	 * Disable pull-up on:
> @@ -110,19 +117,12 @@ static void pm9263_macb_hw_init(void)
>  	 *
>  	 * PHY has internal pull-down
>  	 */
> -	writel(pin_to_mask(AT91_PIN_PC25),
> -	       pin_to_controller(AT91_PIN_PC0) + PIO_PUDR);
> -	writel(pin_to_mask(AT91_PIN_PE25) |
> -	       pin_to_mask(AT91_PIN_PE26),
> -	       pin_to_controller(AT91_PIN_PE0) + PIO_PUDR);
> -
> +	writel(1 << 25, &pio->pioc.pudr);
> +	writel((1 << 25) | (1 << 26), &pio->pioe.pudr);
>  

There should be #defines for these values.


>  	/* Re-enable pull-up */
> -	writel(pin_to_mask(AT91_PIN_PC25),
> -	       pin_to_controller(AT91_PIN_PC0) + PIO_PUER);
> -	writel(pin_to_mask(AT91_PIN_PE25) |
> -	       pin_to_mask(AT91_PIN_PE26),
> -	       pin_to_controller(AT91_PIN_PE0) + PIO_PUER);
> +	writel(1 << 25, &pio->pioc.puer);
> +	writel((1 << 25) | (1 << 26), &pio->pioe.puer);
>  

There should be #defines for these values.
There are similar cases where old #define's have be
converted to bit ops.  The old method of #defines is preferred

Tom

  reply	other threads:[~2010-04-12 23:01 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-07  9:33 [U-Boot] [PATCH] pm9263 converted to at91 soc access Asen Dimov
2010-04-12 23:01 ` Tom [this message]
2010-04-13  7:43   ` RONETIX - Asen Dimov
2010-04-17 21:09     ` Tom Rix

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=4BC3A646.1000502@windriver.com \
    --to=tom.rix@windriver.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