[U-Boot] [PATCH] AT91: revise serial lines pullup configuration,

Currently pullups are incorrectly set for all AT91 SoCs: pullup for TXD line is enabled, what is not necessary, but pullup for RXD line, what may be necessary for some boards, is disabled. This patch fixes it: it enables pullup only for RXD line.
Signed-off-by: Andrzej Wolski awolski@poczta.fm --- cpu/arm926ejs/at91/at91cap9_devices.c | 16 ++++++++-------- cpu/arm926ejs/at91/at91sam9260_devices.c | 16 ++++++++-------- cpu/arm926ejs/at91/at91sam9261_devices.c | 16 ++++++++-------- cpu/arm926ejs/at91/at91sam9263_devices.c | 16 ++++++++-------- cpu/arm926ejs/at91/at91sam9m10g45_devices.c | 16 ++++++++-------- cpu/arm926ejs/at91/at91sam9rl_devices.c | 16 ++++++++-------- 6 files changed, 48 insertions(+), 48 deletions(-)
diff --git a/cpu/arm926ejs/at91/at91cap9_devices.c b/cpu/arm926ejs/at91/at91cap9_devices.c index 39e405f..681a8c1 100644 --- a/cpu/arm926ejs/at91/at91cap9_devices.c +++ b/cpu/arm926ejs/at91/at91cap9_devices.c @@ -34,29 +34,29 @@
void at91_serial0_hw_init(void) { - at91_set_A_periph(AT91_PIN_PA22, 1); /* TXD0 */ - at91_set_A_periph(AT91_PIN_PA23, 0); /* RXD0 */ + at91_set_A_periph(AT91_PIN_PA22, 0); /* TXD0 */ + at91_set_A_periph(AT91_PIN_PA23, 1); /* RXD0 */ at91_sys_write(AT91_PMC_PCER, 1 << AT91CAP9_ID_US0); }
void at91_serial1_hw_init(void) { - at91_set_A_periph(AT91_PIN_PD0, 1); /* TXD1 */ - at91_set_A_periph(AT91_PIN_PD1, 0); /* RXD1 */ + at91_set_A_periph(AT91_PIN_PD0, 0); /* TXD1 */ + at91_set_A_periph(AT91_PIN_PD1, 1); /* RXD1 */ at91_sys_write(AT91_PMC_PCER, 1 << AT91CAP9_ID_US1); }
void at91_serial2_hw_init(void) { - at91_set_A_periph(AT91_PIN_PD2, 1); /* TXD2 */ - at91_set_A_periph(AT91_PIN_PD3, 0); /* RXD2 */ + at91_set_A_periph(AT91_PIN_PD2, 0); /* TXD2 */ + at91_set_A_periph(AT91_PIN_PD3, 1); /* RXD2 */ at91_sys_write(AT91_PMC_PCER, 1 << AT91CAP9_ID_US2); }
void at91_serial3_hw_init(void) { - at91_set_A_periph(AT91_PIN_PC30, 0); /* DRXD */ - at91_set_A_periph(AT91_PIN_PC31, 1); /* DTXD */ + at91_set_A_periph(AT91_PIN_PC30, 1); /* DRXD */ + at91_set_A_periph(AT91_PIN_PC31, 0); /* DTXD */ at91_sys_write(AT91_PMC_PCER, 1 << AT91_ID_SYS); }
diff --git a/cpu/arm926ejs/at91/at91sam9260_devices.c b/cpu/arm926ejs/at91/at91sam9260_devices.c index 5309ba2..674fc88 100644 --- a/cpu/arm926ejs/at91/at91sam9260_devices.c +++ b/cpu/arm926ejs/at91/at91sam9260_devices.c @@ -30,29 +30,29 @@
void at91_serial0_hw_init(void) { - at91_set_A_periph(AT91_PIN_PB4, 1); /* TXD0 */ - at91_set_A_periph(AT91_PIN_PB5, 0); /* RXD0 */ + at91_set_A_periph(AT91_PIN_PB4, 0); /* TXD0 */ + at91_set_A_periph(AT91_PIN_PB5, 1); /* RXD0 */ at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9260_ID_US0); }
void at91_serial1_hw_init(void) { - at91_set_A_periph(AT91_PIN_PB6, 1); /* TXD1 */ - at91_set_A_periph(AT91_PIN_PB7, 0); /* RXD1 */ + at91_set_A_periph(AT91_PIN_PB6, 0); /* TXD1 */ + at91_set_A_periph(AT91_PIN_PB7, 1); /* RXD1 */ at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9260_ID_US1); }
void at91_serial2_hw_init(void) { - at91_set_A_periph(AT91_PIN_PB8, 1); /* TXD2 */ - at91_set_A_periph(AT91_PIN_PB9, 0); /* RXD2 */ + at91_set_A_periph(AT91_PIN_PB8, 0); /* TXD2 */ + at91_set_A_periph(AT91_PIN_PB9, 1); /* RXD2 */ at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9260_ID_US2); }
void at91_serial3_hw_init(void) { - at91_set_A_periph(AT91_PIN_PB14, 0); /* DRXD */ - at91_set_A_periph(AT91_PIN_PB15, 1); /* DTXD */ + at91_set_A_periph(AT91_PIN_PB14, 1); /* DRXD */ + at91_set_A_periph(AT91_PIN_PB15, 0); /* DTXD */ at91_sys_write(AT91_PMC_PCER, 1 << AT91_ID_SYS); }
diff --git a/cpu/arm926ejs/at91/at91sam9261_devices.c b/cpu/arm926ejs/at91/at91sam9261_devices.c index 16d411f..56a22c4 100644 --- a/cpu/arm926ejs/at91/at91sam9261_devices.c +++ b/cpu/arm926ejs/at91/at91sam9261_devices.c @@ -30,29 +30,29 @@
void at91_serial0_hw_init(void) { - at91_set_A_periph(AT91_PIN_PC8, 1); /* TXD0 */ - at91_set_A_periph(AT91_PIN_PC9, 0); /* RXD0 */ + at91_set_A_periph(AT91_PIN_PC8, 0); /* TXD0 */ + at91_set_A_periph(AT91_PIN_PC9, 1); /* RXD0 */ at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9261_ID_US0); }
void at91_serial1_hw_init(void) { - at91_set_A_periph(AT91_PIN_PC12, 1); /* TXD1 */ - at91_set_A_periph(AT91_PIN_PC13, 0); /* RXD1 */ + at91_set_A_periph(AT91_PIN_PC12, 0); /* TXD1 */ + at91_set_A_periph(AT91_PIN_PC13, 1); /* RXD1 */ at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9261_ID_US1); }
void at91_serial2_hw_init(void) { - at91_set_A_periph(AT91_PIN_PC14, 1); /* TXD2 */ - at91_set_A_periph(AT91_PIN_PC15, 0); /* RXD2 */ + at91_set_A_periph(AT91_PIN_PC14, 0); /* TXD2 */ + at91_set_A_periph(AT91_PIN_PC15, 1); /* RXD2 */ at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9261_ID_US2); }
void at91_serial3_hw_init(void) { - at91_set_A_periph(AT91_PIN_PA9, 0); /* DRXD */ - at91_set_A_periph(AT91_PIN_PA10, 1); /* DTXD */ + at91_set_A_periph(AT91_PIN_PA9, 1); /* DRXD */ + at91_set_A_periph(AT91_PIN_PA10, 0); /* DTXD */ at91_sys_write(AT91_PMC_PCER, 1 << AT91_ID_SYS); }
diff --git a/cpu/arm926ejs/at91/at91sam9263_devices.c b/cpu/arm926ejs/at91/at91sam9263_devices.c index f72efdf..6e7275d 100644 --- a/cpu/arm926ejs/at91/at91sam9263_devices.c +++ b/cpu/arm926ejs/at91/at91sam9263_devices.c @@ -34,29 +34,29 @@
void at91_serial0_hw_init(void) { - at91_set_A_periph(AT91_PIN_PA26, 1); /* TXD0 */ - at91_set_A_periph(AT91_PIN_PA27, 0); /* RXD0 */ + at91_set_A_periph(AT91_PIN_PA26, 0); /* TXD0 */ + at91_set_A_periph(AT91_PIN_PA27, 1); /* RXD0 */ at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9263_ID_US0); }
void at91_serial1_hw_init(void) { - at91_set_A_periph(AT91_PIN_PD0, 1); /* TXD1 */ - at91_set_A_periph(AT91_PIN_PD1, 0); /* RXD1 */ + at91_set_A_periph(AT91_PIN_PD0, 0); /* TXD1 */ + at91_set_A_periph(AT91_PIN_PD1, 1); /* RXD1 */ at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9263_ID_US1); }
void at91_serial2_hw_init(void) { - at91_set_A_periph(AT91_PIN_PD2, 1); /* TXD2 */ - at91_set_A_periph(AT91_PIN_PD3, 0); /* RXD2 */ + at91_set_A_periph(AT91_PIN_PD2, 0); /* TXD2 */ + at91_set_A_periph(AT91_PIN_PD3, 1); /* RXD2 */ at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9263_ID_US2); }
void at91_serial3_hw_init(void) { - at91_set_A_periph(AT91_PIN_PC30, 0); /* DRXD */ - at91_set_A_periph(AT91_PIN_PC31, 1); /* DTXD */ + at91_set_A_periph(AT91_PIN_PC30, 1); /* DRXD */ + at91_set_A_periph(AT91_PIN_PC31, 0); /* DTXD */ at91_sys_write(AT91_PMC_PCER, 1 << AT91_ID_SYS); }
diff --git a/cpu/arm926ejs/at91/at91sam9m10g45_devices.c b/cpu/arm926ejs/at91/at91sam9m10g45_devices.c index 98d90f2..f413855 100644 --- a/cpu/arm926ejs/at91/at91sam9m10g45_devices.c +++ b/cpu/arm926ejs/at91/at91sam9m10g45_devices.c @@ -30,29 +30,29 @@
void at91_serial0_hw_init(void) { - at91_set_A_periph(AT91_PIN_PB19, 1); /* TXD0 */ - at91_set_A_periph(AT91_PIN_PB18, 0); /* RXD0 */ + at91_set_A_periph(AT91_PIN_PB19, 0); /* TXD0 */ + at91_set_A_periph(AT91_PIN_PB18, 1); /* RXD0 */ at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9G45_ID_US0); }
void at91_serial1_hw_init(void) { - at91_set_A_periph(AT91_PIN_PB4, 1); /* TXD1 */ - at91_set_A_periph(AT91_PIN_PB5, 0); /* RXD1 */ + at91_set_A_periph(AT91_PIN_PB4, 0); /* TXD1 */ + at91_set_A_periph(AT91_PIN_PB5, 1); /* RXD1 */ at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9G45_ID_US1); }
void at91_serial2_hw_init(void) { - at91_set_A_periph(AT91_PIN_PD6, 1); /* TXD2 */ - at91_set_A_periph(AT91_PIN_PD7, 0); /* RXD2 */ + at91_set_A_periph(AT91_PIN_PD6, 0); /* TXD2 */ + at91_set_A_periph(AT91_PIN_PD7, 1); /* RXD2 */ at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9G45_ID_US2); }
void at91_serial3_hw_init(void) { - at91_set_A_periph(AT91_PIN_PB12, 0); /* DRXD */ - at91_set_A_periph(AT91_PIN_PB13, 1); /* DTXD */ + at91_set_A_periph(AT91_PIN_PB12, 1); /* DRXD */ + at91_set_A_periph(AT91_PIN_PB13, 0); /* DTXD */ at91_sys_write(AT91_PMC_PCER, 1 << AT91_ID_SYS);; }
diff --git a/cpu/arm926ejs/at91/at91sam9rl_devices.c b/cpu/arm926ejs/at91/at91sam9rl_devices.c index ebed193..82d1c63 100644 --- a/cpu/arm926ejs/at91/at91sam9rl_devices.c +++ b/cpu/arm926ejs/at91/at91sam9rl_devices.c @@ -30,29 +30,29 @@
void at91_serial0_hw_init(void) { - at91_set_A_periph(AT91_PIN_PA6, 1); /* TXD0 */ - at91_set_A_periph(AT91_PIN_PA7, 0); /* RXD0 */ + at91_set_A_periph(AT91_PIN_PA6, 0); /* TXD0 */ + at91_set_A_periph(AT91_PIN_PA7, 1); /* RXD0 */ at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9RL_ID_US0); }
void at91_serial1_hw_init(void) { - at91_set_A_periph(AT91_PIN_PA11, 1); /* TXD1 */ - at91_set_A_periph(AT91_PIN_PA12, 0); /* RXD1 */ + at91_set_A_periph(AT91_PIN_PA11, 0); /* TXD1 */ + at91_set_A_periph(AT91_PIN_PA12, 1); /* RXD1 */ at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9RL_ID_US1); }
void at91_serial2_hw_init(void) { - at91_set_A_periph(AT91_PIN_PA13, 1); /* TXD2 */ - at91_set_A_periph(AT91_PIN_PA14, 0); /* RXD2 */ + at91_set_A_periph(AT91_PIN_PA13, 0); /* TXD2 */ + at91_set_A_periph(AT91_PIN_PA14, 1); /* RXD2 */ at91_sys_write(AT91_PMC_PCER, 1 << AT91SAM9RL_ID_US2); }
void at91_serial3_hw_init(void) { - at91_set_A_periph(AT91_PIN_PA21, 0); /* DRXD */ - at91_set_A_periph(AT91_PIN_PA22, 1); /* DTXD */ + at91_set_A_periph(AT91_PIN_PA21, 1); /* DRXD */ + at91_set_A_periph(AT91_PIN_PA22, 0); /* DTXD */ at91_sys_write(AT91_PMC_PCER, 1 << AT91_ID_SYS); }
---------------------------------------------------------------------- Rowerem do pracy? Czemu nie! Kliknij >>> http://link.interia.pl/f2256

Currently pullups are incorrectly set for all AT91 SoCs: pullup for TXD line is enabled, what is not necessary, but pullup for RXD line, what may be necessary for some boards, is disabled. This patch fixes it: it enables pullup only for RXD line.
What about this patch?
Andrzej Wolski

Dear Tom,
In message 4A60EB7C.4010108@poczta.fm Andrzej Wolski wrote:
Currently pullups are incorrectly set for all AT91 SoCs: pullup for TXD line is enabled, what is not necessary, but pullup for RXD line, what may be necessary for some boards, is disabled. This patch fixes it: it enables pullup only for RXD line.
Signed-off-by: Andrzej Wolski awolski@poczta.fm
Could you please check the status of this patch: http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/64068
Best regards,
Wolfgang Denk

Wolfgang Denk wrote:
Dear Tom,
In message 4A60EB7C.4010108@poczta.fm Andrzej Wolski wrote:
Currently pullups are incorrectly set for all AT91 SoCs: pullup for TXD line is enabled, what is not necessary, but pullup for RXD line, what may be necessary for some boards, is disabled. This patch fixes it: it enables pullup only for RXD line.
Signed-off-by: Andrzej Wolski awolski@poczta.fm
Could you please check the status of this patch: http://thread.gmane.org/gmane.comp.boot-loaders.u-boot/64068
Best regards,
Wolfgang Denk
Andrzej, This patch looks similar to what was done recently for overo. Please add a comment in the code to the setting of the pullup. Please also add a comment to commit log explaining why this needs to change, just saying it is wrong is not enough of an explanation. In the case of overo, the problem that was fixed was random hangs when the serial wasn't connected.
Please also check is any new at91 boards were added since you first submitted this patch.
Tom
participants (3)
-
Andrzej Wolski
-
Tom
-
Wolfgang Denk