6b041d0b1d
There are no external users (last one was PCI driver) for these headers, so move them to arch directory. Few macroses from ar231x.h header moved to devices.h and file was removed. Signed-off-by: Sergey Ryazanov <ryazanov.s.a@gmail.com> SVN-Revision: 44724
70 lines
1.6 KiB
Diff
70 lines
1.6 KiB
Diff
--- /dev/null
|
|
+++ b/arch/mips/ath25/early_printk.c
|
|
@@ -0,0 +1,46 @@
|
|
+/*
|
|
+ * This file is subject to the terms and conditions of the GNU General Public
|
|
+ * License. See the file "COPYING" in the main directory of this archive
|
|
+ * for more details.
|
|
+ *
|
|
+ * Copyright (C) 2010 Gabor Juhos <juhosg@openwrt.org>
|
|
+ */
|
|
+
|
|
+#include <linux/mm.h>
|
|
+#include <linux/io.h>
|
|
+#include <linux/serial_reg.h>
|
|
+#include <asm/addrspace.h>
|
|
+
|
|
+#include "devices.h"
|
|
+#include "ar2315_regs.h"
|
|
+#include "ar5312_regs.h"
|
|
+
|
|
+static inline void prom_uart_wr(void __iomem *base, unsigned reg,
|
|
+ unsigned char ch)
|
|
+{
|
|
+ __raw_writel(ch, base + 4 * reg);
|
|
+}
|
|
+
|
|
+static inline unsigned char prom_uart_rr(void __iomem *base, unsigned reg)
|
|
+{
|
|
+ return __raw_readl(base + 4 * reg);
|
|
+}
|
|
+
|
|
+void prom_putchar(unsigned char ch)
|
|
+{
|
|
+ static void __iomem *base;
|
|
+
|
|
+ if (unlikely(base == NULL)) {
|
|
+ if (is_ar2315())
|
|
+ base = (void __iomem *)(KSEG1ADDR(AR2315_UART0));
|
|
+ else
|
|
+ base = (void __iomem *)(KSEG1ADDR(AR5312_UART0));
|
|
+ }
|
|
+
|
|
+ while ((prom_uart_rr(base, UART_LSR) & UART_LSR_THRE) == 0)
|
|
+ ;
|
|
+ prom_uart_wr(base, UART_TX, ch);
|
|
+ while ((prom_uart_rr(base, UART_LSR) & UART_LSR_THRE) == 0)
|
|
+ ;
|
|
+}
|
|
+
|
|
--- a/arch/mips/ath25/Makefile
|
|
+++ b/arch/mips/ath25/Makefile
|
|
@@ -9,5 +9,8 @@
|
|
#
|
|
|
|
obj-y += board.o prom.o devices.o
|
|
+
|
|
+obj-$(CONFIG_EARLY_PRINTK) += early_printk.o
|
|
+
|
|
obj-$(CONFIG_SOC_AR5312) += ar5312.o
|
|
obj-$(CONFIG_SOC_AR2315) += ar2315.o
|
|
--- a/arch/mips/Kconfig
|
|
+++ b/arch/mips/Kconfig
|
|
@@ -106,6 +106,7 @@ config ATH25
|
|
select SYS_SUPPORTS_BIG_ENDIAN
|
|
select SYS_SUPPORTS_32BIT_KERNEL
|
|
select ARCH_REQUIRE_GPIOLIB
|
|
+ select SYS_HAS_EARLY_PRINTK
|
|
help
|
|
Support for AR231x and AR531x based boards
|
|
|