AT91: fix at91cap9 SoC files
Subsystems (2)
PATCH 1/1 AT91: fix at91cap9 SoC files
--- arch/arm/cpu/arm926ejs/at91/at91cap9_devices.c | 88 +++++----- arch/arm/include/asm/arch-at91/at91cap9.h | 214 +++++++++++----------- arch/arm/include/asm/arch-at91/at91cap9_matrix.h | 147 +++++----------- 3 files changed, 191 insertions(+), 258 deletions(-)
arch/arm/cpu/arm926ejs/at91/at91cap9_devices.c +42 -46
@@ -27,77 +27,73 @@*/ #include <common.h> +#include <asm/io.h> #include <asm/arch/at91_common.h> #include <asm/arch/at91_pmc.h> #include <asm/arch/gpio.h> -#include <asm/arch/io.h> + +/* +* if CONFIG_AT91_GPIO_PULLUP ist set, keep pullups on on all +* peripheral pins. Good to have if hardware is soldered optionally +* or in case of SPI no slave is selected. Avoid lines to float +* needlessly. Use a short local PUP define. +* +* Due to errata "TXD floats when CTS is inactive" pullups are always +* on for TXD pins. +*/ +#ifdef CONFIG_AT91_GPIO_PULLUP +# define PUP CONFIG_AT91_GPIO_PULLUP +#else +# define PUP 0 +#endif void at91_serial0_hw_init (void ) { -at91_pmc_t *pmc = (at91_pmc_t *)AT91_PMC_BASE ; +at91_pmc_t *pmc = (at91_pmc_t *)ATMEL_BASE_PMC ;at91_set_a_periph (AT91_PIO_PORTA ,22 ,1 );/* TXD0 */ -at91_set_a_periph (AT91_PIO_PORTA ,23 ,0 );/* RXD0 */ -writel (1 <<AT91CAP9_ID_US0 , &pmc->pcer); +at91_set_a_periph (AT91_PIO_PORTA ,23 ,PUP );/* RXD0 */ +writel (1 <<ATMEL_ID_USART0 , &pmc->pcer); }void at91_serial1_hw_init (void ) { -at91_pmc_t *pmc = (at91_pmc_t *)AT91_PMC_BASE ; +at91_pmc_t *pmc = (at91_pmc_t *)ATMEL_BASE_PMC ;at91_set_a_periph (AT91_PIO_PORTD ,0 ,1 );/* TXD1 */ -at91_set_a_periph (AT91_PIO_PORTD ,1 ,0 );/* RXD1 */ -writel (1 <<AT91CAP9_ID_US1 , &pmc->pcer); +at91_set_a_periph (AT91_PIO_PORTD ,1 ,PUP );/* RXD1 */ +writel (1 <<ATMEL_ID_USART1 , &pmc->pcer); }void at91_serial2_hw_init (void ) { -at91_pmc_t *pmc = (at91_pmc_t *)AT91_PMC_BASE ; +at91_pmc_t *pmc = (at91_pmc_t *)ATMEL_BASE_PMC ;at91_set_a_periph (AT91_PIO_PORTD ,2 ,1 );/* TXD2 */ -at91_set_a_periph (AT91_PIO_PORTD ,3 ,0 );/* RXD2 */ -writel (1 <<AT91CAP9_ID_US2 , &pmc->pcer); +at91_set_a_periph (AT91_PIO_PORTD ,3 ,PUP );/* RXD2 */ +writel (1 <<ATMEL_ID_USART2 , &pmc->pcer); } -void at91_serial3_hw_init (void ) +void at91_seriald_hw_init (void ) { -at91_pmc_t *pmc = (at91_pmc_t *)AT91_PMC_BASE ; +at91_pmc_t *pmc = (at91_pmc_t *)ATMEL_BASE_PMC ; -at91_set_a_periph (AT91_PIO_PORTC ,30 ,0 );/* DRXD */ +at91_set_a_periph (AT91_PIO_PORTC ,30 ,PUP );/* DRXD */ at91_set_a_periph (AT91_PIO_PORTC ,31 ,1 );/* DTXD */ -writel (1 <<AT91_ID_SYS , &pmc->pcer); -} - -void at91_serial_hw_init (void ) -{ -#ifdef CONFIG_USART0 -at91_serial0_hw_init (); -#endif - -#ifdef CONFIG_USART1 -at91_serial1_hw_init (); -#endif - -#ifdef CONFIG_USART2 -at91_serial2_hw_init (); -#endif - -#ifdef CONFIG_USART3 /* DBGU */ -at91_serial3_hw_init (); -#endif +writel (1 <<ATMEL_ID_SYS , &pmc->pcer); } -#ifdef CONFIG_HAS_DATAFLASH +#if defined(CONFIG_HAS_DATAFLASH ) || defined(CONFIG_ATMEL_SPI )void at91_spi0_hw_init (unsigned long cs_mask) { -at91_pmc_t *pmc = (at91_pmc_t *)AT91_PMC_BASE ; +at91_pmc_t *pmc = (at91_pmc_t *)ATMEL_BASE_PMC ; -at91_set_b_periph (AT91_PIO_PORTA ,0 ,0 );/* SPI0_MISO */ -at91_set_b_periph (AT91_PIO_PORTA ,1 ,0 );/* SPI0_MOSI */ -at91_set_b_periph (AT91_PIO_PORTA ,2 ,0 );/* SPI0_SPCK */ +at91_set_b_periph (AT91_PIO_PORTA ,0 ,PUP );/* SPI0_MISO */ +at91_set_b_periph (AT91_PIO_PORTA ,1 ,PUP );/* SPI0_MOSI */ +at91_set_b_periph (AT91_PIO_PORTA ,2 ,PUP );/* SPI0_SPCK */ /* Enable clock */ -writel (1 <<AT91CAP9_ID_SPI0 , &pmc->pcer); +writel (1 <<ATMEL_ID_SPI0 , &pmc->pcer);if (cs_mask & (1 <<0 )) {at91_set_b_periph (AT91_PIO_PORTA ,5 ,1 );
@@ -127,14 +123,14 @@ void at91_spi0_hw_init(unsigned long cs_mask)void at91_spi1_hw_init (unsigned long cs_mask) { -at91_pmc_t *pmc = (at91_pmc_t *)AT91_PMC_BASE ; +at91_pmc_t *pmc = (at91_pmc_t *)ATMEL_BASE_PMC ; -at91_set_a_periph (AT91_PIO_PORTB ,12 ,0 );/* SPI1_MISO */ -at91_set_a_periph (AT91_PIO_PORTB ,13 ,0 );/* SPI1_MOSI */ -at91_set_a_periph (AT91_PIO_PORTB ,14 ,0 );/* SPI1_SPCK */ +at91_set_a_periph (AT91_PIO_PORTB ,12 ,PUP );/* SPI1_MISO */ +at91_set_a_periph (AT91_PIO_PORTB ,13 ,PUP );/* SPI1_MOSI */ +at91_set_a_periph (AT91_PIO_PORTB ,14 ,PUP );/* SPI1_SPCK */ /* Enable clock */ -writel (1 <<AT91CAP9_ID_SPI1 , &pmc->pcer); +writel (1 <<ATMEL_ID_SPI1 , &pmc->pcer);if (cs_mask & (1 <<0 )) {at91_set_a_periph (AT91_PIO_PORTB ,15 ,1 );
@@ -194,12 +190,12 @@ void at91_macb_hw_init(void)#ifdef CONFIG_AT91_CAN void at91_can_hw_init (void ) { -at91_pmc_t *pmc = (at91_pmc_t *)AT91_PMC_BASE ; +at91_pmc_t *pmc = (at91_pmc_t *)ATMEL_BASE_PMC ;at91_set_a_periph (AT91_PIO_PORTA ,12 ,0 );/* CAN_TX */ at91_set_a_periph (AT91_PIO_PORTA ,13 ,1 );/* CAN_RX */ /* Enable clock */ -writel (1 <<AT91CAP9_ID_CAN , &pmc->pcer); +writel (1 <<ATMEL_ID_CAN , &pmc->pcer); }#endif
arch/arm/include/asm/arch-at91/at91cap9.h +107 -107
240 lines not on this page · raw message
arch/arm/include/asm/arch-at91/at91cap9_matrix.h +42 -105
158 lines not on this page · raw message
Signature · 1 line
1.7.4.1
PATCH 1/1 AT91: fix at91cap9 SoC files
Hi Reinhard,
Quoted 2 lines · Reinhard Meyer
Signed-off-by Reinhard Meyer<[email protected]>---
FYI, there are two consecutive commits in your u-boot-atmel/fix-at91cap9 branch with this same exact title of "AT91: fix at91cap9 SoC files".
Somehow this can't be correct: either both patches contribute to the same atomic change and should be merged under their common title, or they do different things and their titles do not reflex what they each do.
Amicalement,
Signature · 1 line
Albert.
PATCH 1/1 AT91: fix at91cap9 SoC files
Dear Albert,
Quoted 6 lines
Quoted 2 lines
Signed-off-by Reinhard Meyer<[email protected]>---
FYI, there are two consecutive commits in your u-boot-atmel/fix-at91cap9 branch with this same exact title of "AT91: fix at91cap9 SoC files".
Somehow this can't be correct: either both patches contribute to the same atomic change and should be merged under their common title, or they do different things and their titles do not reflex what they each do.
I tried to provide a fix myself, but that is imcomplete. I am waiting on SOMEONE ELSE to continue this fix effort, or to provide a complete new one...
At the end *ALL* would be merged into one patch, of course.
Best Regards,
Reinhard