From: RONETIX - Asen Dimov <dimov@ronetix.at>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH] pm9263 converted to at91 soc access
Date: Tue, 13 Apr 2010 10:43:08 +0300 [thread overview]
Message-ID: <4BC4208C.80303@ronetix.at> (raw)
In-Reply-To: <4BC3A646.1000502@windriver.com>
Tom wrote:
> 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 ?
>
The two leds are on PIOB, no leds on PIO: C, D or E.
It is 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?
>
AT91_MATRIX_EBI0_CS3A_SMC_SMARTMEDIA sets the SMARTMEDIA bit and
AT91_MATRIX_CSA_EBI_CS3A sets the SMARTMEDIA bit too.
It is 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
Ok. I will #define the values.
>
> Tom
Regards,
Asen
next prev parent reply other threads:[~2010-04-13 7:43 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
2010-04-13 7:43 ` RONETIX - Asen Dimov [this message]
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=4BC4208C.80303@ronetix.at \
--to=dimov@ronetix.at \
--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.