summaryrefslogtreecommitdiff
path: root/nuttx/arch/sh/src
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-11-20 19:59:40 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-11-20 19:59:40 +0000
commit9db0ee6bd40f94fe5e11e9f53a5cf32e1f20ba3f (patch)
tree769074a903e6aa382d304299134132ce1e1723a9 /nuttx/arch/sh/src
parent77ad659e51fb38eb5c827aa4c6d0b8ac3415a580 (diff)
downloadpx4-nuttx-9db0ee6bd40f94fe5e11e9f53a5cf32e1f20ba3f.tar.gz
px4-nuttx-9db0ee6bd40f94fe5e11e9f53a5cf32e1f20ba3f.tar.bz2
px4-nuttx-9db0ee6bd40f94fe5e11e9f53a5cf32e1f20ba3f.zip
Change how UARTs are enabled for i.MX, M16C, and ez80 to make them compatible with other chips
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5374 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/arch/sh/src')
-rw-r--r--nuttx/arch/sh/src/m16c/Kconfig16
-rw-r--r--nuttx/arch/sh/src/m16c/m16c_lowputc.c8
-rw-r--r--nuttx/arch/sh/src/m16c/m16c_serial.c102
3 files changed, 70 insertions, 56 deletions
diff --git a/nuttx/arch/sh/src/m16c/Kconfig b/nuttx/arch/sh/src/m16c/Kconfig
index 56db601be..1b7318e20 100644
--- a/nuttx/arch/sh/src/m16c/Kconfig
+++ b/nuttx/arch/sh/src/m16c/Kconfig
@@ -4,6 +4,20 @@
#
if ARCH_M16C
-comment "M16C Configuration Options"
+
+config M16C_UART0
+ bool "UART0"
+ select ARCH_HAVE_UART0
+ default n
+
+config M16C_UART1
+ bool "UART1"
+ select ARCH_HAVE_UART1
+ default n
+
+config M16C_UART2
+ bool "UART2"
+ select ARCH_HAVE_UART2
+ default n
endif
diff --git a/nuttx/arch/sh/src/m16c/m16c_lowputc.c b/nuttx/arch/sh/src/m16c/m16c_lowputc.c
index a473351f3..8d55d361f 100644
--- a/nuttx/arch/sh/src/m16c/m16c_lowputc.c
+++ b/nuttx/arch/sh/src/m16c/m16c_lowputc.c
@@ -63,7 +63,7 @@
* not have serial ports but supports stdout through, say, an LCD.
*/
-#if defined(CONFIG_UART0_DISABLE) || defined(CONFIG_UART1_DISABLE) || defined(CONFIG_UART2_DISABLE)
+#if defined(CONFIG_M16C_UART0) || defined(CONFIG_M16C_UART1) || defined(CONFIG_M16C_UART2)
# define HAVE_SERIAL
#else
# undef HAVE_SERIAL
@@ -71,15 +71,15 @@
/* Is one of the serial ports a console? */
-#if defined(CONFIG_UART0_SERIAL_CONSOLE) && !defined(CONFIG_UART0_DISABLE)
+#if defined(CONFIG_UART0_SERIAL_CONSOLE) && defined(CONFIG_M16C_UART0)
# define HAVE_SERIALCONSOLE 1
# undef CONFIG_UART1_SERIAL_CONSOLE
# undef CONFIG_UART2_SERIAL_CONSOLE
-#elif defined(CONFIG_UART1_SERIAL_CONSOLE) && !defined(CONFIG_UART1_DISABLE)
+#elif defined(CONFIG_UART1_SERIAL_CONSOLE) && defined(CONFIG_M16C_UART1)
# define HAVE_SERIALCONSOLE 1
# undef CONFIG_UART0_SERIAL_CONSOLE
# undef CONFIG_UART2_SERIAL_CONSOLE
-#elif defined(CONFIG_UART2_SERIAL_CONSOLE) && !defined(CONFIG_UART2_DISABLE)
+#elif defined(CONFIG_UART2_SERIAL_CONSOLE) && defined(CONFIG_M16C_UART2)
# define HAVE_SERIALCONSOLE 1
# undef CONFIG_UART0_SERIAL_CONSOLE
# undef CONFIG_UART1_SERIAL_CONSOLE
diff --git a/nuttx/arch/sh/src/m16c/m16c_serial.c b/nuttx/arch/sh/src/m16c/m16c_serial.c
index 0027d423a..a725d6217 100644
--- a/nuttx/arch/sh/src/m16c/m16c_serial.c
+++ b/nuttx/arch/sh/src/m16c/m16c_serial.c
@@ -63,7 +63,7 @@
* not have serial ports but supports a console through, say, an LCD.
*/
-#if !defined(CONFIG_UART0_DISABLE) && !defined(CONFIG_UART1_DISABLE) && !defined(CONFIG_UART2_DISABLE)
+#if defined(CONFIG_M16C_UART0) || defined(CONFIG_M16C_UART1) || defined(CONFIG_M16C_UART2)
/****************************************************************************
* Definitions
@@ -100,24 +100,24 @@
/* Are there any UARTs? */
-#if defined(CONFIG_UART0_DISABLE) && defined(CONFIG_UART1_DISABLE) && defined(CONFIG_UART2_DISABLE)
+#if !defined(CONFIG_M16C_UART0) && !defined(CONFIG_M16C_UART1) && !defined(CONFIG_M16C_UART2)
# ifdef USE_SERIALDRIVER
-# error "Serial driver selected, but UARTs not enabled"
+# error "Serial driver selected, but No UARTs is enabled"
# undef USE_SERIALDRIVER
# endif
#endif
/* Is there a serial console? */
-#if defined(CONFIG_UART0_SERIAL_CONSOLE) && !defined(CONFIG_UART0_DISABLE)
+#if defined(CONFIG_UART0_SERIAL_CONSOLE) && defined(CONFIG_M16C_UART0)
# define HAVE_SERIALCONSOLE 1
# undef CONFIG_UART1_SERIAL_CONSOLE
# undef CONFIG_UART2_SERIAL_CONSOLE
-#elif defined(CONFIG_UART1_SERIAL_CONSOLE) && !defined(CONFIG_UART1_DISABLE)
+#elif defined(CONFIG_UART1_SERIAL_CONSOLE) && defined(CONFIG_M16C_UART1)
# define HAVE_SERIALCONSOLE 1
# undef CONFIG_UART0_SERIAL_CONSOLE
# undef CONFIG_UART2_SERIAL_CONSOLE
-#elif defined(CONFIG_UART2_SERIAL_CONSOLE) && !defined(CONFIG_UART2_DISABLE)
+#elif defined(CONFIG_UART2_SERIAL_CONSOLE) && defined(CONFIG_M16C_UART2)
# define HAVE_SERIALCONSOLE 1
# undef CONFIG_UART0_SERIAL_CONSOLE
# undef CONFIG_UART1_SERIAL_CONSOLE
@@ -141,18 +141,18 @@
/* Which UART with be tty0/console and which tty1 and tty2? */
-/* CONFIG_UART0_SERIAL_CONSOLE (implies CONFIG_UART0_DISABLE also un-defined) */
+/* CONFIG_UART0_SERIAL_CONSOLE (implies CONFIG_M16C_UART0 also defined) */
#if defined(CONFIG_UART0_SERIAL_CONSOLE)
# define CONSOLE_DEV g_uart0port /* UART0 is console */
# define TTYS0_DEV g_uart0port /* UART0 is tty0 */
-# ifndef CONFIG_UART1_DISABLE
+# ifdef CONFIG_M16C_UART1
# define TTYS1_DEV g_uart1port /* UART1 is tty1 */
-# ifndef CONFIG_UART2_DISABLE
+# ifdef CONFIG_M16C_UART2
# define TTYS2_DEV g_uart2port /* UART2 is tty2 */
# endif
# else
-# ifndef CONFIG_UART2_DISABLE
+# ifdef CONFIG_M16C_UART2
# define TTYS2_DEV g_uart2port /* UART2 is tty1 */
# else
# undef TTYS1_DEV /* No tty1 */
@@ -160,18 +160,18 @@
# undef TTYS2_DEV /* No tty2 */
# endif
-/* CONFIG_UART1_SERIAL_CONSOLE (implies CONFIG_UART1_DISABLE also un-defined) */
+/* CONFIG_UART1_SERIAL_CONSOLE (implies CONFIG_M16C_UART1 also defined) */
#elif defined(CONFIG_UART1_SERIAL_CONSOLE)
# define CONSOLE_DEV g_uart1port /* UART1 is console */
# define TTYS0_DEV g_uart1port /* UART1 is tty0 */
-# ifndef CONFIG_UART0_DISABLE
+# ifdef CONFIG_M16C_UART0
# define TTYS1_DEV g_uart0port /* UART0 is tty1 */
-# ifndef CONFIG_UART2_DISABLE
+# ifdef CONFIG_M16C_UART2
# define TTYS2_DEV g_uart2port /* UART2 is tty2 */
# endif
# else
-# ifndef CONFIG_UART2_DISABLE
+# ifdef CONFIG_M16C_UART2
# define TTYS2_DEV g_uart2port /* UART2 is tty1 */
# else
# undef TTYS1_DEV /* No tty1 */
@@ -179,18 +179,18 @@
# undef TTYS2_DEV /* No tty2 */
# endif
-/* CONFIG_UART2_SERIAL_CONSOLE (implies CONFIG_UART2_DISABLE also un-defined) */
+/* CONFIG_UART2_SERIAL_CONSOLE (implies CONFIG_M16C_UART2 also defined) */
#elif defined(CONFIG_UART2_SERIAL_CONSOLE)
# define CONSOLE_DEV g_uart2port /* UART2 is console */
# define TTYS0_DEV g_uart2port /* UART2 is tty0 */
-# ifndef CONFIG_UART0_DISABLE
+# ifdef CONFIG_M16C_UART0
# define TTYS1_DEV g_uart0port /* UART0 is tty1 */
-# ifndef CONFIG_UART1_DISABLE
+# ifdef CONFIG_M16C_UART1
# define TTYS2_DEV g_uart1port /* UART1 is tty2 */
# endif
# else
-# ifndef CONFIG_UART1_DISABLE
+# ifdef CONFIG_M16C_UART1
# define TTYS1_DEV g_uart1port /* UART1 is tty1 */
# else
# undef TTYS1_DEV /* No tty1 */
@@ -198,18 +198,18 @@
# undef TTYS2_DEV /* No tty2 */
# endif
-/* No console, at least one of CONFIG_UART0/1/2_DISABLE defined */
+/* No console, at least one of CONFIG_M16C_UART0/1/2 defined */
-#elif !defined(CONFIG_UART0_DISABLE)
+#elif defined(CONFIG_M16C_UART0)
# undef CONSOLE_DEV /* No console */
# define TTYS0_DEV g_uart0port /* UART0 is tty0 */
-# ifndef CONFIG_UART1_DISABLE
+# ifdef CONFIG_M16C_UART1
# define TTYS1_DEV g_uart1port /* UART1 is tty1 */
-# ifndef CONFIG_UART2_DISABLE
+# ifdef CONFIG_M16C_UART2
# define TTYS2_DEV g_uart2port /* UART2 is tty2 */
# endif
# else
-# ifndef CONFIG_UART2_DISABLE
+# ifdef CONFIG_M16C_UART2
# define TTYS1_DEV g_uart1port /* UART2 is tty1 */
# else
# undef TTYS1_DEV /* No tty1 */
@@ -217,17 +217,17 @@
# undef TTYS2_DEV /* No tty2 */
# endif
-elif !defined(CONFIG_UART1_DISABLE)
+elif defined(CONFIG_M16C_UART1)
# undef CONSOLE_DEV /* No console */
# undef TTYS2_DEV /* No tty2 */
# define TTYS0_DEV g_uart1port /* UART1 is tty0 */
-# ifndef CONFIG_UART2_DISABLE
+# ifdef CONFIG_M16C_UART2
# define TTYS1_DEV g_uart2port /* UART2 is tty1 */
# else
# undef TTYS1_DEV /* No tty1 */
# endif
-/* Otherwise, there is no console and only CONFIG_UART2_DISABLE is un-defined */
+/* Otherwise, there is no console and only CONFIG_M16C_UART2 is defined */
#else
# undef CONSOLE_DEV /* No console */
@@ -300,22 +300,22 @@ struct uart_ops_s g_uart_ops =
/* I/O buffers */
-#ifndef CONFIG_UART0_DISABLE
+#ifdef CONFIG_M16C_UART0
static char g_uart0rxbuffer[CONFIG_UART0_RXBUFSIZE];
static char g_uart0txbuffer[CONFIG_UART0_TXBUFSIZE];
#endif
-#ifndef CONFIG_UART1_DISABLE
+#ifdef CONFIG_M16C_UART1
static char g_uart1rxbuffer[CONFIG_UART1_RXBUFSIZE];
static char g_uart1txbuffer[CONFIG_UART1_TXBUFSIZE];
#endif
-#ifndef CONFIG_UART2_DISABLE
+#ifdef CONFIG_M16C_UART2
static char g_uart2rxbuffer[CONFIG_UART2_RXBUFSIZE];
static char g_uart2txbuffer[CONFIG_UART2_TXBUFSIZE];
#endif
/* This describes the state of the M16C UART0 port. */
-#ifndef CONFIG_UART0_DISABLE
+#ifdef CONFIG_M16C_UART0
static struct up_dev_s g_uart0priv =
{
.baud = CONFIG_UART0_BAUD,
@@ -347,7 +347,7 @@ static uart_dev_t g_uart0port =
/* This describes the state of the M16C UART1 port. */
-#ifndef CONFIG_UART1_DISABLE
+#ifdef CONFIG_M16C_UART1
static struct up_dev_s g_uart1priv =
{
.baud = CONFIG_UART1_BAUD,
@@ -379,7 +379,7 @@ static uart_dev_t g_uart1port =
/* This describes the state of the M16C UART2 port. */
-#ifndef CONFIG_UART2_DISABLE
+#ifdef CONFIG_M16C_UART2
static struct up_dev_s g_uart2priv =
{
.baud = CONFIG_UART2_BAUD,
@@ -558,7 +558,7 @@ static int up_setup(struct uart_dev_s *dev)
/* Set interrupt cause=TX complete and continuous receive mode */
-#ifndef CONFIG_UART0_DISABLE
+#ifdef CONFIG_M16C_UART0
if (priv->uartno == 0)
{
regval = getreg8(M16C_UCON);
@@ -567,7 +567,7 @@ static int up_setup(struct uart_dev_s *dev)
}
else
#endif
-#ifndef CONFIG_UART1_DISABLE
+#ifdef CONFIG_M16C_UART1
if (priv->uartno == 1)
{
regval = getreg8(M16C_UCON);
@@ -576,7 +576,7 @@ static int up_setup(struct uart_dev_s *dev)
}
else
#endif
-#ifndef CONFIG_UART2_DISABLE
+#ifdef CONFIG_M16C_UART2
if (priv->uartno == 2)
{
regval = getreg8(M16C_U2C1);
@@ -632,7 +632,7 @@ static int up_setup(struct uart_dev_s *dev)
/* Set port direction registers for Rx/TX pins */
-#ifndef CONFIG_UART0_DISABLE
+#ifdef CONFIG_M16C_UART0
if (priv->uartno == 0)
{
regval = getreg8(M16C_PD6);
@@ -642,7 +642,7 @@ static int up_setup(struct uart_dev_s *dev)
}
else
#endif
-#ifndef CONFIG_UART1_DISABLE
+#ifdef CONFIG_M16C_UART1
if (priv->uartno == 1)
{
regval = getreg8(M16C_PD6);
@@ -652,7 +652,7 @@ static int up_setup(struct uart_dev_s *dev)
}
else
#endif
-#ifndef CONFIG_UART2_DISABLE
+#ifdef CONFIG_M16C_UART2
if (priv->uartno == 2)
{
regval = getreg8(M16C_PD7);
@@ -766,21 +766,21 @@ static int up_rcvinterrupt(int irq, void *context)
{
struct uart_dev_s *dev = NULL;
-#ifndef CONFIG_UART0_DISABLE
+#ifdef CONFIG_M16C_UART0
if (irq == g_uart0priv.rcvirq)
{
dev = &g_uart0port;
}
else
#endif
-#ifndef CONFIG_UART1_DISABLE
+#ifdef CONFIG_M16C_UART1
if (irq == g_uart1priv.rcvirq)
{
dev = &g_uart1port;
}
else
#endif
-#ifndef CONFIG_UART2_DISABLE
+#ifdef CONFIG_M16C_UART2
if (irq = g_uart2priv.rcvirq)
{
dev = &g_uart2port;
@@ -845,7 +845,7 @@ static void m16c_rxint(struct up_dev_s *dev, bool enable)
/* Pick the SxTIC register and enable interrupt priority */
-#ifndef CONFIG_UART0_DISABLE
+#ifdef CONFIG_M16C_UART0
if (dev->uartno == 0)
{
regaddr = M16C_S0RIC;
@@ -853,7 +853,7 @@ static void m16c_rxint(struct up_dev_s *dev, bool enable)
}
else
#endif
-#ifndef CONFIG_UART1_DISABLE
+#ifdef CONFIG_M16C_UART1
if (dev->uartno == 1)
{
regaddr = M16C_S1RIC;
@@ -861,7 +861,7 @@ static void m16c_rxint(struct up_dev_s *dev, bool enable)
}
else
#endif
-#ifndef CONFIG_UART2_DISABLE
+#ifdef CONFIG_M16C_UART2
if (dev->uartno == 2)
{
regaddr = M16C_S2RIC;
@@ -932,21 +932,21 @@ static int up_xmtinterrupt(int irq, void *context)
{
struct uart_dev_s *dev = NULL;
-#ifndef CONFIG_UART0_DISABLE
+#ifdef CONFIG_M16C_UART0
if (irq == g_uart0priv.xmtirq)
{
dev = &g_uart0port;
}
else
#endif
-#ifndef CONFIG_UART1_DISABLE
+#ifdef CONFIG_M16C_UART1
if (irq == g_uart1priv.xmtirq)
{
dev = &g_uart1port;
}
else
#endif
-#ifndef CONFIG_UART2_DISABLE
+#ifdef CONFIG_M16C_UART2
if (irq == g_uart2priv.xmtirq)
{
dev = &g_uart1port;
@@ -1000,7 +1000,7 @@ static void m16c_txint(struct up_dev_s *dev, bool enable)
/* Pick the SxTIC register and enable interrupt priority */
-#ifndef CONFIG_UART0_DISABLE
+#ifdef CONFIG_M16C_UART0
if (dev->uartno == 0)
{
regaddr = M16C_S0TIC;
@@ -1008,7 +1008,7 @@ static void m16c_txint(struct up_dev_s *dev, bool enable)
}
else
#endif
-#ifndef CONFIG_UART1_DISABLE
+#ifdef CONFIG_M16C_UART1
if (dev->uartno == 1)
{
regaddr = M16C_S1TIC;
@@ -1016,7 +1016,7 @@ static void m16c_txint(struct up_dev_s *dev, bool enable)
}
else
#endif
-#ifndef CONFIG_UART2_DISABLE
+#ifdef CONFIG_M16C_UART2
if (dev->uartno == 2)
{
regaddr = M16C_S2TIC;
@@ -1202,5 +1202,5 @@ int up_putc(int ch)
#endif /* USE_SERIALDRIVER */
#elif defined(CONFIG_UART0_SERIAL_CONSOLE) || defined(CONFIG_UART1_SERIAL_CONSOLE)|| defined(CONFIG_UART2_SERIAL_CONSOLE)
# error "A serial console selected, but corresponding UART not enabled"
-#endif /* !CONFIG_UART0_DISABLE && !CONFIG_UART1_DISABLE && !CONFIG_UART2_DISABLE */
+#endif /* CONFIG_M16C_UART0 || CONFIG_M16C_UART1 || CONFIG_M16C_UART2 */