Asen Dimov wrote: > Signed-off-by: Asen Dimov <di...@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 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot