summaryrefslogtreecommitdiff
path: root/src/cpu
diff options
context:
space:
mode:
authorKyösti Mälkki <kyosti.malkki@gmail.com>2014-02-14 10:31:38 +0200
committerKyösti Mälkki <kyosti.malkki@gmail.com>2014-03-04 15:40:34 +0100
commit0567c91b22e36eb07e7c7b8a67cbf6b41778db30 (patch)
tree1d8ee38c3e001f8be09b677554c02addf36292e9 /src/cpu
parentab94bbf07221483ec52d072940a8b6206b69dc62 (diff)
downloadcoreboot-0567c91b22e36eb07e7c7b8a67cbf6b41778db30.tar.xz
console: Use single driver entry for UARTs
UARTs now have unified prototypes and can use a single entry in the list of drivers for ramstage. Change-Id: I315daaf9a83cfa60f1a270146c729907a1d6d45b Signed-off-by: Kyösti Mälkki <kyosti.malkki@gmail.com> Reviewed-on: http://review.coreboot.org/5308 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
Diffstat (limited to 'src/cpu')
-rw-r--r--src/cpu/allwinner/a10/uart_console.c33
-rw-r--r--src/cpu/samsung/exynos5250/uart.c15
-rw-r--r--src/cpu/samsung/exynos5420/uart.c15
-rw-r--r--src/cpu/ti/am335x/uart.c25
4 files changed, 13 insertions, 75 deletions
diff --git a/src/cpu/allwinner/a10/uart_console.c b/src/cpu/allwinner/a10/uart_console.c
index af66cb7f6b..aea1189e66 100644
--- a/src/cpu/allwinner/a10/uart_console.c
+++ b/src/cpu/allwinner/a10/uart_console.c
@@ -11,7 +11,6 @@
#include <console/uart.h>
#include <arch/io.h>
-#include <console/console.h>
#include <cpu/allwinner/a10/uart.h>
static void *get_console_uart_base_addr(void)
@@ -44,7 +43,7 @@ unsigned int uart_platform_refclk(void)
return 24000000;
}
-static void a10_uart_init_dev(void)
+void uart_init(void)
{
void *uart_base = get_console_uart_base_addr();
@@ -54,46 +53,24 @@ static void a10_uart_init_dev(void)
a10_uart_enable_fifos(uart_base);
}
-static unsigned char a10_uart_rx_byte(void)
+unsigned char uart_rx_byte(void)
{
return a10_uart_rx_blocking(get_console_uart_base_addr());
}
-static void a10_uart_tx_byte(unsigned char data)
+void uart_tx_byte(unsigned char data)
{
a10_uart_tx_blocking(get_console_uart_base_addr(), data);
}
+#if !defined(__PRE_RAM__)
uint32_t uartmem_getbaseaddr(void)
{
return (uint32_t) get_console_uart_base_addr();
}
-
-#if !defined(__PRE_RAM__)
-static const struct console_driver a10_uart_console __console = {
- .init = a10_uart_init_dev,
- .tx_byte = a10_uart_tx_byte,
- .rx_byte = a10_uart_rx_byte,
-};
-#else
-
-void uart_init(void)
-{
- a10_uart_init_dev();
-}
-
-unsigned char uart_rx_byte(void)
-{
- return a10_uart_rx_byte();
-}
-
-void uart_tx_byte(unsigned char data)
-{
- a10_uart_tx_byte(data);
-}
+#endif
void uart_tx_flush(void)
{
}
-#endif
diff --git a/src/cpu/samsung/exynos5250/uart.c b/src/cpu/samsung/exynos5250/uart.c
index c9d8d252ad..14d140c4dc 100644
--- a/src/cpu/samsung/exynos5250/uart.c
+++ b/src/cpu/samsung/exynos5250/uart.c
@@ -17,7 +17,6 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#include <console/console.h> /* for __console definition */
#include <console/uart.h>
#include <arch/io.h>
#include "uart.h"
@@ -169,21 +168,11 @@ static void exynos5_uart_tx_flush(void)
}
#if !defined(__PRE_RAM__)
-
-static const struct console_driver exynos5_uart_console __console = {
- .init = exynos5_init_dev,
- .tx_byte = exynos5_uart_tx_byte,
- .tx_flush = exynos5_uart_tx_flush,
- .rx_byte = exynos5_uart_rx_byte,
-// .tst_byte = exynos5_uart_tst_byte,
-};
-
uint32_t uartmem_getbaseaddr(void)
{
return base_port;
}
-
-#else
+#endif
void uart_init(void)
{
@@ -204,5 +193,3 @@ void uart_tx_flush(void)
{
exynos5_uart_tx_flush();
}
-
-#endif
diff --git a/src/cpu/samsung/exynos5420/uart.c b/src/cpu/samsung/exynos5420/uart.c
index f9dd26837f..d05adcd903 100644
--- a/src/cpu/samsung/exynos5420/uart.c
+++ b/src/cpu/samsung/exynos5420/uart.c
@@ -17,7 +17,6 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#include <console/console.h> /* for __console definition */
#include <console/uart.h>
#include <arch/io.h>
#include "uart.h"
@@ -159,21 +158,11 @@ static void exynos5_uart_tx_byte(unsigned char data)
}
#if !defined(__PRE_RAM__)
-
-static const struct console_driver exynos5_uart_console __console = {
- .init = exynos5_init_dev,
- .tx_byte = exynos5_uart_tx_byte,
-// .tx_flush = exynos5_uart_tx_flush,
- .rx_byte = exynos5_uart_rx_byte,
-// .tst_byte = exynos5_uart_tst_byte,
-};
-
uint32_t uartmem_getbaseaddr(void)
{
return base_port;
}
-
-#else
+#endif
void uart_init(void)
{
@@ -193,5 +182,3 @@ void uart_tx_byte(unsigned char data)
void uart_tx_flush(void)
{
}
-
-#endif
diff --git a/src/cpu/ti/am335x/uart.c b/src/cpu/ti/am335x/uart.c
index f6f1a8d137..27051ea2cc 100644
--- a/src/cpu/ti/am335x/uart.c
+++ b/src/cpu/ti/am335x/uart.c
@@ -20,9 +20,6 @@
#include <types.h>
#include <console/uart.h>
#include <arch/io.h>
-
-#include <console/console.h> /* for __console definition */
-
#include <cpu/ti/am335x/uart.h>
#define EFR_ENHANCED_EN (1 << 4)
@@ -162,28 +159,18 @@ unsigned int uart_platform_refclk(void)
return 48000000;
}
-static void am335x_uart_init_dev(void)
-{
- uint16_t div = (uint16_t) uart_baudrate_divisor(
- default_baudrate(), uart_platform_refclk(), 16);
- am335x_uart_init(div);
-}
-
#if !defined(__PRE_RAM__)
uint32_t uartmem_getbaseaddr(void)
{
return CONFIG_CONSOLE_SERIAL_UART_ADDRESS;
}
+#endif
-static const struct console_driver exynos5_uart_console __console = {
- .init = am335x_uart_init_dev,
- .tx_byte = am335x_uart_tx_byte,
- .rx_byte = am335x_uart_rx_byte,
-};
-#else
void uart_init(void)
{
- am335x_uart_init_dev();
+ uint16_t div = (uint16_t) uart_baudrate_divisor(
+ default_baudrate(), uart_platform_refclk(), 16);
+ am335x_uart_init(div);
}
unsigned char uart_rx_byte(void)
@@ -196,6 +183,6 @@ void uart_tx_byte(unsigned char data)
am335x_uart_tx_byte(data);
}
-void uart_tx_flush(void) {
+void uart_tx_flush(void)
+{
}
-#endif