From 90b576f55ea6854a70c8ed77095b42e57b744723 Mon Sep 17 00:00:00 2001 From: Dominik Wenger Date: Mon, 26 Oct 2009 18:16:58 +0000 Subject: Many more drivers for mini2440. Now the main binary compiles and runs. Flyspray: FS#10725 Author: Bob Cousins git-svn-id: svn://svn.rockbox.org/rockbox/trunk@23362 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/s3c2440/uart-s3c2440.c | 108 +++++++++++++++++++---------- 1 file changed, 73 insertions(+), 35 deletions(-) (limited to 'firmware/target/arm/s3c2440/uart-s3c2440.c') diff --git a/firmware/target/arm/s3c2440/uart-s3c2440.c b/firmware/target/arm/s3c2440/uart-s3c2440.c index 2a61b61a39..84282f731a 100644 --- a/firmware/target/arm/s3c2440/uart-s3c2440.c +++ b/firmware/target/arm/s3c2440/uart-s3c2440.c @@ -30,13 +30,32 @@ #include "kernel.h" #include "thread.h" +#include "system-target.h" #include "uart-s3c2440.h" -#define FCLK 405000000 -#define HCLK (FCLK/4) /* = 101,250,000 */ -#define PCLK (HCLK/2) /* = 50,625,000 */ +#define MAX_PRINTF_BUF 1024 -#define MAX_TX_BUF 1024 +/**************************************************************************** + * serial driver API + ****************************************************************************/ +void serial_setup (void) +{ + uart_init(); + uart_init_device(DEBUG_UART_PORT); +} + +int tx_rdy(void) +{ + if (uart_tx_ready (DEBUG_UART_PORT)) + return 1; + else + return 0; +} + +void tx_writec(unsigned char c) +{ + uart_send_byte (DEBUG_UART_PORT, c); +} /**************************************************************************** @@ -46,10 +65,12 @@ void uart_printf (const char *format, ...) { static bool debug_uart_init = false; - static char tx_buf [MAX_TX_BUF]; + static char tx_buf [MAX_PRINTF_BUF]; int len; unsigned char *ptr; + int j; + va_list ap; va_start(ap, format); @@ -59,11 +80,16 @@ void uart_printf (const char *format, ...) if (!debug_uart_init) { - uart_init_device(UART_DEBUG); + uart_init_device(DEBUG_UART_PORT); debug_uart_init = true; } - uart_send (UART_DEBUG, tx_buf, len); + for (j=0; j