pm9263 converted to at91 soc access
PATCH 1/1 pm9263 converted to at91 soc access
--- board/ronetix/pm9263/led.c | 15 ++-- board/ronetix/pm9263/pm9263.c | 195 +++++++++++++++++++++-------------------- include/configs/pm9263.h | 82 ++++++++--------- 3 files changed, 146 insertions(+), 146 deletions(-)
board/ronetix/pm9263/led.c +8 -7
@@ -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); -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 ); }
board/ronetix/pm9263/pm9263.c +100 -95
311 lines not on this page · raw message
include/configs/pm9263.h +38 -44
143 lines not on this page · raw message
Signature · 1 line
1.5.5.6
PATCH 1/1 pm9263 converted to at91 soc access
Quoted 17 lines · Asen Dimov
Signed-off-by Asen Dimov <[email protected]>--- board/ronetix/pm9263/led.c | 15 ++-- board/ronetix/pm9263/pm9263.c | 195 +++++++++++++++++++++-------------------- include/configs/pm9263.h | 82 ++++++++--------- 3 files changed, 146 insertions(+), 146 deletions(-)board/ronetix/pm9263/led.c +1
-1@@ -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>
board/ronetix/pm9263/led.c line 37
Quoted 10 lines
board/ronetix/pm9263/led.c +3
-2#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 ?
Quoted 34 lines
board/ronetix/pm9263/led.c +4
-4-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 ); }board/ronetix/pm9263/pm9263.c +2
-2@@ -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 ) {
board/ronetix/pm9263/pm9263.c DECLARE_GLOBAL_DATA_PTR; · line 63
Quoted 10 lines
board/ronetix/pm9263/pm9263.c +4
-3unsigned 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?
Quoted 72 lines
board/ronetix/pm9263/pm9263.c +25
-19/* 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
board/ronetix/pm9263/pm9263.c static void pm9263_macb_hw_init(void) · line 122
Quoted 10 lines
board/ronetix/pm9263/pm9263.c +2
-6*/ -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.
board/ronetix/pm9263/pm9263.c static void pm9263_macb_hw_init(void) · line 126
Quoted 9 lines
board/ronetix/pm9263/pm9263.c +2
-5/* 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
PATCH 1/1 pm9263 converted to at91 soc access
Quoted 21 lines · Tom
Quoted 20 lines · Asen Dimov
Signed-off-by Asen Dimov <[email protected]>--- board/ronetix/pm9263/led.c | 15 ++-- board/ronetix/pm9263/pm9263.c | 195 +++++++++++++++++++++-------------------- include/configs/pm9263.h | 82 ++++++++--------- 3 files changed, 146 insertions(+), 146 deletions(-)board/ronetix/pm9263/led.c +1
-1@@ -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>
Quoted 12 lines
board/ronetix/pm9263/led.c line 37
Quoted 8 lines
board/ronetix/pm9263/led.c +3
-2void 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.
Quoted 39 lines
Quoted 39 lines
board/ronetix/pm9263/led.c +4
-4-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 ); }board/ronetix/pm9263/pm9263.c +4
-2@@ -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 ;
Quoted 10 lines
board/ronetix/pm9263/pm9263.c DECLARE_GLOBAL_DATA_PTR; · line 63
Quoted 6 lines
board/ronetix/pm9263/pm9263.c +2
-3/* 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.
Quoted 97 lines
Quoted 73 lines
board/ronetix/pm9263/pm9263.c +24
-18/* 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 */board/ronetix/pm9263/pm9263.c +1
-1-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 board/ronetix/pm9263/pm9263.c static void pm9263_macb_hw_init(void) · line 122
Quoted 10 lines
board/ronetix/pm9263/pm9263.c +2
-6*/ -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.
board/ronetix/pm9263/pm9263.c static void pm9263_macb_hw_init(void) · line 126
Quoted 9 lines
board/ronetix/pm9263/pm9263.c +2
-5/* 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);
Quoted 3 lines
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.
Quoted 2 lines
Tom
Regards,
Asen
PATCH 1/1 pm9263 converted to at91 soc access
Quoted 9 lines · RONETIX - Asen Dimov
Quoted 8 lines · Tom
Quoted 7 lines · Asen Dimov
Signed-off-by Asen Dimov <[email protected]>--- board/ronetix/pm9263/led.c | 15 ++-- board/ronetix/pm9263/pm9263.c | 195 +++++++++++++++++++++-------------------- include/configs/pm9263.h | 82 ++++++++--------- 3 files changed, 146 insertions(+), 146 deletions(-)
<snip>
Quoted 11 lines
Quoted 8 lines
board/ronetix/pm9263/led.c line 37
Quoted 5 lines
board/ronetix/pm9263/led.c +2
-2+/* 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.
Quoted 1 line
Quoted 1 line
ok
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
board/ronetix/pm9263/led.c +0
-2-at91_set_gpio_output (CONFIG_RED_LED ,1 ); -at91_set_gpio_output (CONFIG_GREEN_LED ,1 );
<snip>
Quoted 9 lines
Quoted 6 lines
board/ronetix/pm9263/pm9263.c DECLARE_GLOBAL_DATA_PTR; · line 63
Quoted 3 lines
board/ronetix/pm9263/pm9263.c +2
-1- 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_SMARTMEDIAsets the SMARTMEDIA bit andAT91_MATRIX_CSA_EBI_CS3Asets the SMARTMEDIA bit too. It is ok.
ok
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
/* Configure SMC CS3 for NAND/SmartMedia */
<snip>
Quoted 10 lines
Quoted 6 lines
board/ronetix/pm9263/pm9263.c static void pm9263_macb_hw_init(void) · line 125
Quoted 3 lines
board/ronetix/pm9263/pm9263.c +2
-0+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 preferredOk. I will #define the values.
Quoted 1 line
Tom
Regards,
Asen
Tom