public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/2] serial: opencores_yanu: Fix build error
@ 2014-01-16  7:01 Axel Lin
  2014-01-16  7:03 ` [U-Boot] [PATCH 2/2] serial: opencores_yanu: Avoid duplicate oc_serial_setbrg() implementation Axel Lin
  0 siblings, 1 reply; 2+ messages in thread
From: Axel Lin @ 2014-01-16  7:01 UTC (permalink / raw)
  To: u-boot

Fix build error due to missing include of serial.h and a trivial typo.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
---
 drivers/serial/opencores_yanu.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/serial/opencores_yanu.c b/drivers/serial/opencores_yanu.c
index 8de2eca..80e9ae5 100644
--- a/drivers/serial/opencores_yanu.c
+++ b/drivers/serial/opencores_yanu.c
@@ -8,6 +8,7 @@
 #include <watchdog.h>
 #include <asm/io.h>
 #include <nios2-yanu.h>
+#include <serial.h>
 
 DECLARE_GLOBAL_DATA_PTR;
 
@@ -154,7 +155,7 @@ static int oc_serial_tstc(void)
 		 ((1 << YANU_RFIFO_CHARS_N) - 1)) > 0);
 }
 
-statoc int oc_serial_getc(void)
+static int oc_serial_getc(void)
 {
 	while (serial_tstc() == 0)
 		WATCHDOG_RESET ();
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [U-Boot] [PATCH 2/2] serial: opencores_yanu: Avoid duplicate oc_serial_setbrg() implementation
  2014-01-16  7:01 [U-Boot] [PATCH 1/2] serial: opencores_yanu: Fix build error Axel Lin
@ 2014-01-16  7:03 ` Axel Lin
  0 siblings, 0 replies; 2+ messages in thread
From: Axel Lin @ 2014-01-16  7:03 UTC (permalink / raw)
  To: u-boot

The implementation of oc_serial_setbrg() for CONFIG_SYS_NIOS_FIXEDBAUD and
!CONFIG_SYS_NIOS_FIXEDBAUD are very similar.
Add a baudrate variable and set it to either CONFIG_BAUDRATE or gd->baudrate.
Then we can unify the code for both cases.

Signed-off-by: Axel Lin <axel.lin@ingics.com>
---
 drivers/serial/opencores_yanu.c | 49 ++++++++---------------------------------
 1 file changed, 9 insertions(+), 40 deletions(-)

diff --git a/drivers/serial/opencores_yanu.c b/drivers/serial/opencores_yanu.c
index 80e9ae5..d4ed60c 100644
--- a/drivers/serial/opencores_yanu.c
+++ b/drivers/serial/opencores_yanu.c
@@ -18,62 +18,34 @@ DECLARE_GLOBAL_DATA_PTR;
 
 static yanu_uart_t *uart = (yanu_uart_t *)CONFIG_SYS_NIOS_CONSOLE;
 
-#if defined(CONFIG_SYS_NIOS_FIXEDBAUD)
-
-/* Everything's already setup for fixed-baud PTF assignment*/
-
 static void oc_serial_setbrg(void)
 {
 	int n, k;
 	const unsigned max_uns = 0xFFFFFFFF;
 	unsigned best_n, best_m, baud;
+	unsigned baudrate;
 
-	/* compute best N and M couple */
-	best_n = YANU_MAX_PRESCALER_N;
-	for (n = YANU_MAX_PRESCALER_N; n >= 0; n--) {
-		if ((unsigned)CONFIG_SYS_CLK_FREQ / (1 << (n + 4)) >=
-		    (unsigned)CONFIG_BAUDRATE) {
-			best_n = n;
-			break;
-		}
-	}
-	for (k = 0;; k++) {
-		if ((unsigned)CONFIG_BAUDRATE <= (max_uns >> (15+n-k)))
-			break;
-	}
-	best_m =
-	    ((unsigned)CONFIG_BAUDRATE * (1 << (15 + n - k))) /
-	    ((unsigned)CONFIG_SYS_CLK_FREQ >> k);
-
-	baud = best_m + best_n * YANU_BAUDE;
-	writel(baud, &uart->baud);
-
-	return;
-}
-
+#if defined(CONFIG_SYS_NIOS_FIXEDBAUD)
+	/* Everything's already setup for fixed-baud PTF assignment */
+	baudrate = CONFIG_BAUDRATE;
 #else
-
-static void oc_serial_setbrg(void)
-{
-	int n, k;
-	const unsigned max_uns = 0xFFFFFFFF;
-	unsigned best_n, best_m, baud;
-
+	baudrate = gd->baudrate;
+#endif
 	/* compute best N and M couple */
 	best_n = YANU_MAX_PRESCALER_N;
 	for (n = YANU_MAX_PRESCALER_N; n >= 0; n--) {
 		if ((unsigned)CONFIG_SYS_CLK_FREQ / (1 << (n + 4)) >=
-		    gd->baudrate) {
+		    baudrate) {
 			best_n = n;
 			break;
 		}
 	}
 	for (k = 0;; k++) {
-		if (gd->baudrate <= (max_uns >> (15+n-k)))
+		if (baudrate <= (max_uns >> (15+n-k)))
 			break;
 	}
 	best_m =
-	    (gd->baudrate * (1 << (15 + n - k))) /
+	    (baudrate * (1 << (15 + n - k))) /
 	    ((unsigned)CONFIG_SYS_CLK_FREQ >> k);
 
 	baud = best_m + best_n * YANU_BAUDE;
@@ -82,9 +54,6 @@ static void oc_serial_setbrg(void)
 	return;
 }
 
-
-#endif /* CONFIG_SYS_NIOS_FIXEDBAUD */
-
 static int oc_serial_init(void)
 {
 	unsigned action,control;
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2014-01-16  7:03 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-01-16  7:01 [U-Boot] [PATCH 1/2] serial: opencores_yanu: Fix build error Axel Lin
2014-01-16  7:03 ` [U-Boot] [PATCH 2/2] serial: opencores_yanu: Avoid duplicate oc_serial_setbrg() implementation Axel Lin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox