mirror of
https://github.com/apache/nuttx.git
synced 2026-06-07 01:05:54 +08:00
Fix LM4F120 LaunchPad serial output. Add support for all 7 LM4F120 UARTs
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5782 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
@@ -167,8 +167,8 @@
|
||||
# define GPIO_UART1_RX_2 (GPIO_FUNC_PFINPUT | GPIO_ALT_2 | GPIO_PORTC | GPIO_PIN_4)
|
||||
# define GPIO_UART1_TX_1 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTB | GPIO_PIN_1)
|
||||
# define GPIO_UART1_TX_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_2 | GPIO_PORTC | GPIO_PIN_5)
|
||||
# define GPIO_UART2_RX_1 (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTD | GPIO_PIN_6)
|
||||
# define GPIO_UART2_TX_2 (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTD | GPIO_PIN_7)
|
||||
# define GPIO_UART2_RX (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTD | GPIO_PIN_6)
|
||||
# define GPIO_UART2_TX (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTD | GPIO_PIN_7)
|
||||
# define GPIO_UART3_RX (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_6)
|
||||
# define GPIO_UART3_TX (GPIO_FUNC_PFOUTPUT | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_7)
|
||||
# define GPIO_UART4_RX (GPIO_FUNC_PFINPUT | GPIO_ALT_1 | GPIO_PORTC | GPIO_PIN_4)
|
||||
|
||||
+18
-18
@@ -123,24 +123,24 @@
|
||||
|
||||
#ifdef LM4F
|
||||
# define GPIO_ALT_SHIFT 16 /* Bits 16-19: Alternate function */
|
||||
# define GPIO_ALT_MASK (15 << GPIO_INT_SHIFT)
|
||||
# define GPIO_ALT(n) ((n) << GPIO_INT_SHIFT)
|
||||
# define GPIO_ALT_NONE (0 << GPIO_INT_SHIFT)
|
||||
# define GPIO_ALT_1 (1 << GPIO_INT_SHIFT)
|
||||
# define GPIO_ALT_2 (2 << GPIO_INT_SHIFT)
|
||||
# define GPIO_ALT_3 (3 << GPIO_INT_SHIFT)
|
||||
# define GPIO_ALT_4 (4 << GPIO_INT_SHIFT)
|
||||
# define GPIO_ALT_5 (5 << GPIO_INT_SHIFT)
|
||||
# define GPIO_ALT_6 (6 << GPIO_INT_SHIFT)
|
||||
# define GPIO_ALT_7 (7 << GPIO_INT_SHIFT)
|
||||
# define GPIO_ALT_8 (8 << GPIO_INT_SHIFT)
|
||||
# define GPIO_ALT_9 (9 << GPIO_INT_SHIFT)
|
||||
# define GPIO_ALT_10 (10 << GPIO_INT_SHIFT)
|
||||
# define GPIO_ALT_11 (11 << GPIO_INT_SHIFT)
|
||||
# define GPIO_ALT_12 (12 << GPIO_INT_SHIFT)
|
||||
# define GPIO_ALT_13 (13 << GPIO_INT_SHIFT)
|
||||
# define GPIO_ALT_14 (14 << GPIO_INT_SHIFT)
|
||||
# define GPIO_ALT_15 (15 << GPIO_INT_SHIFT)
|
||||
# define GPIO_ALT_MASK (15 << GPIO_ALT_SHIFT)
|
||||
# define GPIO_ALT(n) ((n) << GPIO_ALT_SHIFT)
|
||||
# define GPIO_ALT_NONE (0 << GPIO_ALT_SHIFT)
|
||||
# define GPIO_ALT_1 (1 << GPIO_ALT_SHIFT)
|
||||
# define GPIO_ALT_2 (2 << GPIO_ALT_SHIFT)
|
||||
# define GPIO_ALT_3 (3 << GPIO_ALT_SHIFT)
|
||||
# define GPIO_ALT_4 (4 << GPIO_ALT_SHIFT)
|
||||
# define GPIO_ALT_5 (5 << GPIO_ALT_SHIFT)
|
||||
# define GPIO_ALT_6 (6 << GPIO_ALT_SHIFT)
|
||||
# define GPIO_ALT_7 (7 << GPIO_ALT_SHIFT)
|
||||
# define GPIO_ALT_8 (8 << GPIO_ALT_SHIFT)
|
||||
# define GPIO_ALT_9 (9 << GPIO_ALT_SHIFT)
|
||||
# define GPIO_ALT_10 (10 << GPIO_ALT_SHIFT)
|
||||
# define GPIO_ALT_11 (11 << GPIO_ALT_SHIFT)
|
||||
# define GPIO_ALT_12 (12 << GPIO_ALT_SHIFT)
|
||||
# define GPIO_ALT_13 (13 << GPIO_ALT_SHIFT)
|
||||
# define GPIO_ALT_14 (14 << GPIO_ALT_SHIFT)
|
||||
# define GPIO_ALT_15 (15 << GPIO_ALT_SHIFT)
|
||||
#endif
|
||||
|
||||
/* If the pin is an GPIO digital output, then this identifies the initial output value:
|
||||
|
||||
@@ -54,41 +54,8 @@
|
||||
/**************************************************************************
|
||||
* Pre-processor Definitions
|
||||
**************************************************************************/
|
||||
|
||||
/* Configuration **********************************************************/
|
||||
|
||||
#if LM_NUARTS < 2
|
||||
# undef CONFIG_LM_UART1
|
||||
# undef CONFIG_UART1_SERIAL_CONSOLE
|
||||
#endif
|
||||
|
||||
#if LM_NUARTS < 3
|
||||
# undef CONFIG_LM_UART2
|
||||
# undef CONFIG_UART2_SERIAL_CONSOLE
|
||||
#endif
|
||||
|
||||
/* Is there a serial console? */
|
||||
|
||||
#if defined(CONFIG_UART0_SERIAL_CONSOLE) && defined(CONFIG_LM_UART0)
|
||||
# undef CONFIG_UART1_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART2_SERIAL_CONSOLE
|
||||
# define HAVE_CONSOLE 1
|
||||
#elif defined(CONFIG_UART1_SERIAL_CONSOLE) && defined(CONFIG_LM_UART1)
|
||||
# undef CONFIG_UART0_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART2_SERIAL_CONSOLE
|
||||
# define HAVE_CONSOLE 1
|
||||
#elif defined(CONFIG_UART2_SERIAL_CONSOLE) && defined(CONFIG_LM_UART2)
|
||||
# undef CONFIG_UART0_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART1_SERIAL_CONSOLE
|
||||
# define HAVE_CONSOLE 1
|
||||
#else
|
||||
# warning "No valid CONFIG_UARTn_SERIAL_CONSOLE Setting"
|
||||
# undef CONFIG_UART0_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART1_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART2_SERIAL_CONSOLE
|
||||
# undef HAVE_CONSOLE
|
||||
#endif
|
||||
|
||||
/* Select UART parameters for the selected console */
|
||||
|
||||
#if defined(CONFIG_UART0_SERIAL_CONSOLE)
|
||||
@@ -109,6 +76,36 @@
|
||||
# define LM_CONSOLE_BITS CONFIG_UART2_BITS
|
||||
# define LM_CONSOLE_PARITY CONFIG_UART2_PARITY
|
||||
# define LM_CONSOLE_2STOP CONFIG_UART2_2STOP
|
||||
#elif defined(CONFIG_UART3_SERIAL_CONSOLE)
|
||||
# define LM_CONSOLE_BASE LM_UART2_BASE
|
||||
# define LM_CONSOLE_BAUD CONFIG_UART3_BAUD
|
||||
# define LM_CONSOLE_BITS CONFIG_UART3_BITS
|
||||
# define LM_CONSOLE_PARITY CONFIG_UART3_PARITY
|
||||
# define LM_CONSOLE_2STOP CONFIG_UART3_2STOP
|
||||
#elif defined(CONFIG_UART4_SERIAL_CONSOLE)
|
||||
# define LM_CONSOLE_BASE LM_UART2_BASE
|
||||
# define LM_CONSOLE_BAUD CONFIG_UART4_BAUD
|
||||
# define LM_CONSOLE_BITS CONFIG_UART4_BITS
|
||||
# define LM_CONSOLE_PARITY CONFIG_UART4_PARITY
|
||||
# define LM_CONSOLE_2STOP CONFIG_UART4_2STOP
|
||||
#elif defined(CONFIG_UART5_SERIAL_CONSOLE)
|
||||
# define LM_CONSOLE_BASE LM_UART2_BASE
|
||||
# define LM_CONSOLE_BAUD CONFIG_UART5_BAUD
|
||||
# define LM_CONSOLE_BITS CONFIG_UART5_BITS
|
||||
# define LM_CONSOLE_PARITY CONFIG_UART5_PARITY
|
||||
# define LM_CONSOLE_2STOP CONFIG_UART5_2STOP
|
||||
#elif defined(CONFIG_UART6_SERIAL_CONSOLE)
|
||||
# define LM_CONSOLE_BASE LM_UART2_BASE
|
||||
# define LM_CONSOLE_BAUD CONFIG_UART6_BAUD
|
||||
# define LM_CONSOLE_BITS CONFIG_UART6_BITS
|
||||
# define LM_CONSOLE_PARITY CONFIG_UART6_PARITY
|
||||
# define LM_CONSOLE_2STOP CONFIG_UART6_2STOP
|
||||
#elif defined(CONFIG_UART7_SERIAL_CONSOLE)
|
||||
# define LM_CONSOLE_BASE LM_UART2_BASE
|
||||
# define LM_CONSOLE_BAUD CONFIG_UART7_BAUD
|
||||
# define LM_CONSOLE_BITS CONFIG_UART7_BITS
|
||||
# define LM_CONSOLE_PARITY CONFIG_UART7_PARITY
|
||||
# define LM_CONSOLE_2STOP CONFIG_UART7_2STOP
|
||||
#else
|
||||
# error "No CONFIG_UARTn_SERIAL_CONSOLE Setting"
|
||||
#endif
|
||||
@@ -226,7 +223,7 @@
|
||||
|
||||
void up_lowputc(char ch)
|
||||
{
|
||||
#ifdef HAVE_CONSOLE
|
||||
#ifdef HAVE_SERIAL_CONSOLE
|
||||
/* Wait until the TX FIFO is not full */
|
||||
|
||||
while ((getreg32(LM_CONSOLE_BASE+LM_UART_FR_OFFSET) & UART_FR_TXFF) != 0);
|
||||
@@ -250,11 +247,11 @@ void up_lowputc(char ch)
|
||||
void up_lowsetup(void)
|
||||
{
|
||||
uint32_t regval;
|
||||
#if defined(HAVE_CONSOLE) && !defined(CONFIG_SUPPRESS_UART_CONFIG)
|
||||
#if defined(HAVE_SERIAL_CONSOLE) && !defined(CONFIG_SUPPRESS_UART_CONFIG)
|
||||
uint32_t ctl;
|
||||
#endif
|
||||
|
||||
/* Enable the selected UARTs and configure GPIO pins to need by the
|
||||
/* Enable the selected UARTs and configure GPIO pins needed by the
|
||||
* the selected UARTs. NOTE: The serial driver later depends on
|
||||
* this pin configuration -- whether or not a serial console is selected.
|
||||
*/
|
||||
@@ -277,9 +274,63 @@ void up_lowsetup(void)
|
||||
lm_configgpio(GPIO_UART1_TX);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_LM_UART2
|
||||
regval = getreg32(LM_SYSCON_RCGC1);
|
||||
regval |= SYSCON_RCGC1_UART2;
|
||||
putreg32(regval, LM_SYSCON_RCGC1);
|
||||
|
||||
lm_configgpio(GPIO_UART2_RX);
|
||||
lm_configgpio(GPIO_UART2_TX);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_LM_UART3
|
||||
regval = getreg32(LM_SYSCON_RCGCUART);
|
||||
regval |= SYSCON_RCGCUART_R3;
|
||||
putreg32(regval, LM_SYSCON_RCGCUART);
|
||||
|
||||
lm_configgpio(GPIO_UART3_RX);
|
||||
lm_configgpio(GPIO_UART3_TX);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_LM_UART4
|
||||
regval = getreg32(LM_SYSCON_RCGCUART);
|
||||
regval |= SYSCON_RCGCUART_R4;
|
||||
putreg32(regval, LM_SYSCON_RCGCUART);
|
||||
|
||||
lm_configgpio(GPIO_UART4_RX);
|
||||
lm_configgpio(GPIO_UART4_TX);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_LM_UART5
|
||||
regval = getreg32(LM_SYSCON_RCGCUART);
|
||||
regval |= SYSCON_RCGCUART_R5;
|
||||
putreg32(regval, LM_SYSCON_RCGCUART);
|
||||
|
||||
lm_configgpio(GPIO_UART5_RX);
|
||||
lm_configgpio(GPIO_UART5_TX);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_LM_UART6
|
||||
regval = getreg32(LM_SYSCON_RCGCUART);
|
||||
regval |= SYSCON_RCGCUART_R6;
|
||||
putreg32(regval, LM_SYSCON_RCGCUART);
|
||||
|
||||
lm_configgpio(GPIO_UART6_RX);
|
||||
lm_configgpio(GPIO_UART6_TX);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_LM_UART7
|
||||
regval = getreg32(LM_SYSCON_RCGCUART);
|
||||
regval |= SYSCON_RCGCUART_R7;
|
||||
putreg32(regval, LM_SYSCON_RCGCUART);
|
||||
|
||||
lm_configgpio(GPIO_UART7_RX);
|
||||
lm_configgpio(GPIO_UART7_TX);
|
||||
#endif
|
||||
|
||||
/* Enable the selected console device */
|
||||
|
||||
#if defined(HAVE_CONSOLE) && !defined(CONFIG_SUPPRESS_UART_CONFIG)
|
||||
#if defined(HAVE_SERIAL_CONSOLE) && !defined(CONFIG_SUPPRESS_UART_CONFIG)
|
||||
/* Disable the UART by clearing the UARTEN bit in the UART CTL register */
|
||||
|
||||
ctl = getreg32(LM_CONSOLE_BASE+LM_UART_CTL_OFFSET);
|
||||
|
||||
@@ -45,6 +45,124 @@
|
||||
/************************************************************************************
|
||||
* Pre-processor Definitions
|
||||
************************************************************************************/
|
||||
/* Configuration *******************************************************************/
|
||||
|
||||
#if LM_NUARTS < 8
|
||||
# undef CONFIG_LM_UART7
|
||||
# undef CONFIG_UART7_SERIAL_CONSOLE
|
||||
# if LM_NUARTS < 7
|
||||
# undef CONFIG_LM_UART6
|
||||
# undef CONFIG_UART6_SERIAL_CONSOLE
|
||||
# if LM_NUARTS < 6
|
||||
# undef CONFIG_LM_UART5
|
||||
# undef CONFIG_UART5_SERIAL_CONSOLE
|
||||
# if LM_NUARTS < 5
|
||||
# undef CONFIG_LM_UART4
|
||||
# undef CONFIG_UART4_SERIAL_CONSOLE
|
||||
# if LM_NUARTS < 4
|
||||
# undef CONFIG_LM_UART3
|
||||
# undef CONFIG_UART3_SERIAL_CONSOLE
|
||||
# if LM_NUARTS < 3
|
||||
# undef CONFIG_LM_UART2
|
||||
# undef CONFIG_UART2_SERIAL_CONSOLE
|
||||
# if LM_NUARTS < 2
|
||||
# undef CONFIG_LM_UART1
|
||||
# undef CONFIG_UART1_SERIAL_CONSOLE
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Is there a serial console? */
|
||||
|
||||
#if defined(CONFIG_UART0_SERIAL_CONSOLE) && defined(CONFIG_LM_UART0)
|
||||
# undef CONFIG_UART1_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART2_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART3_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART4_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART5_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART6_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART7_SERIAL_CONSOLE
|
||||
# define HAVE_SERIAL_CONSOLE 1
|
||||
#elif defined(CONFIG_UART1_SERIAL_CONSOLE) && defined(CONFIG_LM_UART1)
|
||||
# undef CONFIG_UART0_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART2_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART3_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART4_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART5_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART6_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART7_SERIAL_CONSOLE
|
||||
# define HAVE_SERIAL_CONSOLE 1
|
||||
#elif defined(CONFIG_UART2_SERIAL_CONSOLE) && defined(CONFIG_LM_UART2)
|
||||
# undef CONFIG_UART0_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART1_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART3_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART4_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART5_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART6_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART7_SERIAL_CONSOLE
|
||||
# define HAVE_SERIAL_CONSOLE 1
|
||||
#elif defined(CONFIG_UART3_SERIAL_CONSOLE) && defined(CONFIG_LM_UART2)
|
||||
# undef CONFIG_UART0_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART1_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART2_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART4_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART5_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART6_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART7_SERIAL_CONSOLE
|
||||
# define HAVE_SERIAL_CONSOLE 1
|
||||
#elif defined(CONFIG_UART4_SERIAL_CONSOLE) && defined(CONFIG_LM_UART2)
|
||||
# undef CONFIG_UART0_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART1_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART2_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART3_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART5_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART6_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART7_SERIAL_CONSOLE
|
||||
# define HAVE_SERIAL_CONSOLE 1
|
||||
#elif defined(CONFIG_UART5_SERIAL_CONSOLE) && defined(CONFIG_LM_UART2)
|
||||
# undef CONFIG_UART0_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART1_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART2_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART3_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART4_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART6_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART7_SERIAL_CONSOLE
|
||||
# define HAVE_SERIAL_CONSOLE 1
|
||||
#elif defined(CONFIG_UART6_SERIAL_CONSOLE) && defined(CONFIG_LM_UART2)
|
||||
# undef CONFIG_UART0_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART1_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART2_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART3_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART4_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART5_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART7_SERIAL_CONSOLE
|
||||
# define HAVE_SERIAL_CONSOLE 1
|
||||
#elif defined(CONFIG_UART7_SERIAL_CONSOLE) && defined(CONFIG_LM_UART2)
|
||||
# undef CONFIG_UART0_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART1_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART2_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART3_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART4_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART5_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART6_SERIAL_CONSOLE
|
||||
# define HAVE_SERIAL_CONSOLE 1
|
||||
#else
|
||||
# warning "No valid CONFIG_UARTn_SERIAL_CONSOLE Setting"
|
||||
# undef CONFIG_UART0_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART1_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART2_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART3_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART4_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART5_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART6_SERIAL_CONSOLE
|
||||
# undef CONFIG_UART7_SERIAL_CONSOLE
|
||||
# undef HAVE_SERIAL_CONSOLE
|
||||
#endif
|
||||
|
||||
|
||||
/************************************************************************************
|
||||
* Public Types
|
||||
|
||||
+419
-128
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user