Edit the file:
arch/arm/mact-at91/board-sam9x5ek.c
Inside the function ek_map_io() modify these lines:
static void __init ek_map_io(void) { /* Initialize processor and DBGU */ cm_map_io(); at91_register_uart(AT91SAM9X5_ID_USART0, 1, 0); // USART0 on ttyS1 (only Rx,Tx) at91_register_uart(AT91SAM9X5_ID_USART1, 2, 0); // USART0 on ttyS2 (only Rx,Tx) at91_register_uart(AT91SAM9X5_ID_USART2, 3, 0); // USART0 on ttyS3 (only Rx,Tx) at91_register_uart(AT91SAM9X5_ID_USART3, 4, 0); // USART0 on ttyS4 (only Rx,Tx) at91_set_A_periph(AT91_PIN_PA1, 1); // Pull-up on RXD0 at91_set_A_periph(AT91_PIN_PA6, 1); // Pull-up on RXD1 at91_set_A_periph(AT91_PIN_PA8, 1); // Pull-up on RXD2 at91_set_A_periph(AT91_PIN_PC23, 1); // Pull-up on RXD3 }
Se il terzo parametro passato a at91_register_uart e' 0 vengono usati solo i segnali TXD e RXD.
Se si specificano dei valori si attivano anche i criteri se previsti dall'hardware:
I due valori si possono mettere in or
Le istruzioni tipo:
at91_set_A_periph(AT91_PIN_PA1, 1); // Pull-up on RXD0
le ho messe per attivare la resistenza di pull-up sull'RXD di ogni porta.