aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2013-07-07 11:18:34 -0400
committerRussell King <rmk+kernel@arm.linux.org.uk>2013-08-25 12:11:10 -0400
commit97bd1a48adb87c2a68194b80227af56ca4df4cad (patch)
tree0634e062b96db322a85bf8272464e73a4d27b640
parentf2acf003cd399994172a5ec342b47741841746f1 (diff)
ARM: debug: move davinci debug to generic 8250 code
Davinci's debugging is just a copy of the old 8250_32 code with a different base address. Incorporate this into the generic 8250 debug code. Acked-by: Sekhar Nori <nsekhar@ti.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r--arch/arm/Kconfig.debug16
-rw-r--r--arch/arm/mach-davinci/include/mach/debug-macro.S65
2 files changed, 15 insertions, 66 deletions
diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
index cd2f88e22609..0498a3a311f0 100644
--- a/arch/arm/Kconfig.debug
+++ b/arch/arm/Kconfig.debug
@@ -119,6 +119,7 @@ choice
119 config DEBUG_DAVINCI_DA8XX_UART1 119 config DEBUG_DAVINCI_DA8XX_UART1
120 bool "Kernel low-level debugging on DaVinci DA8XX using UART1" 120 bool "Kernel low-level debugging on DaVinci DA8XX using UART1"
121 depends on ARCH_DAVINCI_DA8XX 121 depends on ARCH_DAVINCI_DA8XX
122 select DEBUG_UART_8250
122 help 123 help
123 Say Y here if you want the debug print routines to direct 124 Say Y here if you want the debug print routines to direct
124 their output to UART1 serial port on DaVinci DA8XX devices. 125 their output to UART1 serial port on DaVinci DA8XX devices.
@@ -126,6 +127,7 @@ choice
126 config DEBUG_DAVINCI_DA8XX_UART2 127 config DEBUG_DAVINCI_DA8XX_UART2
127 bool "Kernel low-level debugging on DaVinci DA8XX using UART2" 128 bool "Kernel low-level debugging on DaVinci DA8XX using UART2"
128 depends on ARCH_DAVINCI_DA8XX 129 depends on ARCH_DAVINCI_DA8XX
130 select DEBUG_UART_8250
129 help 131 help
130 Say Y here if you want the debug print routines to direct 132 Say Y here if you want the debug print routines to direct
131 their output to UART2 serial port on DaVinci DA8XX devices. 133 their output to UART2 serial port on DaVinci DA8XX devices.
@@ -133,6 +135,7 @@ choice
133 config DEBUG_DAVINCI_DMx_UART0 135 config DEBUG_DAVINCI_DMx_UART0
134 bool "Kernel low-level debugging on DaVinci DMx using UART0" 136 bool "Kernel low-level debugging on DaVinci DMx using UART0"
135 depends on ARCH_DAVINCI_DMx 137 depends on ARCH_DAVINCI_DMx
138 select DEBUG_UART_8250
136 help 139 help
137 Say Y here if you want the debug print routines to direct 140 Say Y here if you want the debug print routines to direct
138 their output to UART0 serial port on DaVinci DMx devices. 141 their output to UART0 serial port on DaVinci DMx devices.
@@ -140,6 +143,7 @@ choice
140 config DEBUG_DAVINCI_TNETV107X_UART1 143 config DEBUG_DAVINCI_TNETV107X_UART1
141 bool "Kernel low-level debugging on DaVinci TNETV107x using UART1" 144 bool "Kernel low-level debugging on DaVinci TNETV107x using UART1"
142 depends on ARCH_DAVINCI_TNETV107X 145 depends on ARCH_DAVINCI_TNETV107X
146 select DEBUG_UART_8250
143 help 147 help
144 Say Y here if you want the debug print routines to direct 148 Say Y here if you want the debug print routines to direct
145 their output to UART1 serial port on DaVinci TNETV107X 149 their output to UART1 serial port on DaVinci TNETV107X
@@ -901,11 +905,15 @@ config DEBUG_UART_8250
901 905
902config DEBUG_UART_PHYS 906config DEBUG_UART_PHYS
903 hex "Physical base address of debug UART" 907 hex "Physical base address of debug UART"
908 default 0x01c20000 if DEBUG_DAVINCI_DMx_UART0
904 default 0x01c28000 if DEBUG_SUNXI_UART0 909 default 0x01c28000 if DEBUG_SUNXI_UART0
905 default 0x01c28400 if DEBUG_SUNXI_UART1 910 default 0x01c28400 if DEBUG_SUNXI_UART1
911 default 0x01d0c000 if DEBUG_DAVINCI_DA8XX_UART1
912 default 0x01d0d000 if DEBUG_DAVINCI_DA8XX_UART2
906 default 0x02530c00 if DEBUG_KEYSTONE_UART0 913 default 0x02530c00 if DEBUG_KEYSTONE_UART0
907 default 0x02531000 if DEBUG_KEYSTONE_UART1 914 default 0x02531000 if DEBUG_KEYSTONE_UART1
908 default 0x03010fe0 if ARCH_RPC 915 default 0x03010fe0 if ARCH_RPC
916 default 0x08108300 if DEBUG_DAVINCI_TNETV107X_UART1
909 default 0x10009000 if DEBUG_REALVIEW_STD_PORT || DEBUG_CNS3XXX || \ 917 default 0x10009000 if DEBUG_REALVIEW_STD_PORT || DEBUG_CNS3XXX || \
910 DEBUG_VEXPRESS_UART0_CA9 918 DEBUG_VEXPRESS_UART0_CA9
911 default 0x1010c000 if DEBUG_REALVIEW_PB1176_PORT 919 default 0x1010c000 if DEBUG_REALVIEW_PB1176_PORT
@@ -982,9 +990,13 @@ config DEBUG_UART_VIRT
982 default 0xfed64000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2 990 default 0xfed64000 if DEBUG_RK29_UART1 || DEBUG_RK3X_UART2
983 default 0xfed68000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3 991 default 0xfed68000 if DEBUG_RK29_UART2 || DEBUG_RK3X_UART3
984 default 0xfec02000 if DEBUG_SOCFPGA_UART 992 default 0xfec02000 if DEBUG_SOCFPGA_UART
993 default 0xfec20000 if DEBUG_DAVINCI_DMx_UART0
994 default 0xfed0c000 if DEBUG_DAVINCI_DA8XX_UART1
995 default 0xfed0d000 if DEBUG_DAVINCI_DA8XX_UART2
985 default 0xfed12000 if ARCH_KIRKWOOD 996 default 0xfed12000 if ARCH_KIRKWOOD
986 default 0xfedc0000 if ARCH_EP93XX 997 default 0xfedc0000 if ARCH_EP93XX
987 default 0xfee003f8 if FOOTBRIDGE 998 default 0xfee003f8 if FOOTBRIDGE
999 default 0xfee08300 if DEBUG_DAVINCI_TNETV107X_UART1
988 default 0xfee20000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART 1000 default 0xfee20000 if DEBUG_NSPIRE_CLASSIC_UART || DEBUG_NSPIRE_CX_UART
989 default 0xfee36000 if DEBUG_HIGHBANK_UART 1001 default 0xfee36000 if DEBUG_HIGHBANK_UART
990 default 0xfee82340 if ARCH_IOP13XX 1002 default 0xfee82340 if ARCH_IOP13XX
@@ -1007,7 +1019,9 @@ config DEBUG_UART_8250_WORD
1007 depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250 1019 depends on DEBUG_LL_UART_8250 || DEBUG_UART_8250
1008 depends on DEBUG_UART_8250_SHIFT >= 2 1020 depends on DEBUG_UART_8250_SHIFT >= 2
1009 default y if DEBUG_PICOXCELL_UART || DEBUG_SOCFPGA_UART || \ 1021 default y if DEBUG_PICOXCELL_UART || DEBUG_SOCFPGA_UART || \
1010 ARCH_KEYSTONE 1022 ARCH_KEYSTONE || \
1023 DEBUG_DAVINCI_DMx_UART0 || DEBUG_DAVINCI_DA8XX_UART1 || \
1024 DEBUG_DAVINCI_DA8XX_UART2 || DEBUG_DAVINCI_TNETV107X_UART1
1011 1025
1012config DEBUG_UART_8250_FLOW_CONTROL 1026config DEBUG_UART_8250_FLOW_CONTROL
1013 bool "Enable flow control for 8250 UART" 1027 bool "Enable flow control for 8250 UART"
diff --git a/arch/arm/mach-davinci/include/mach/debug-macro.S b/arch/arm/mach-davinci/include/mach/debug-macro.S
deleted file mode 100644
index b18b8ebc6508..000000000000
--- a/arch/arm/mach-davinci/include/mach/debug-macro.S
+++ /dev/null
@@ -1,65 +0,0 @@
1/*
2 * Debugging macro for DaVinci
3 *
4 * Author: Kevin Hilman, MontaVista Software, Inc. <source@mvista.com>
5 *
6 * 2007 (c) MontaVista Software, Inc. This file is licensed under
7 * the terms of the GNU General Public License version 2. This program
8 * is licensed "as is" without any warranty of any kind, whether express
9 * or implied.
10 */
11
12/* Modifications
13 * Jan 2009 Chaithrika U S Added senduart, busyuart, waituart
14 * macros, based on debug-8250.S file
15 * but using 32-bit accesses required for
16 * some davinci devices.
17 */
18
19#include <linux/serial_reg.h>
20
21#include <mach/serial.h>
22
23#define UART_SHIFT 2
24
25#if defined(CONFIG_DEBUG_DAVINCI_DMx_UART0)
26#define UART_BASE DAVINCI_UART0_BASE
27#elif defined(CONFIG_DEBUG_DAVINCI_DA8XX_UART1)
28#define UART_BASE DA8XX_UART1_BASE
29#elif defined(CONFIG_DEBUG_DAVINCI_DA8XX_UART2)
30#define UART_BASE DA8XX_UART2_BASE
31#elif defined(CONFIG_DEBUG_DAVINCI_TNETV107X_UART1)
32#define UART_BASE TNETV107X_UART2_BASE
33#define UART_VIRTBASE TNETV107X_UART2_VIRT
34#else
35#error "Select a specifc port for DEBUG_LL"
36#endif
37
38#ifndef UART_VIRTBASE
39#define UART_VIRTBASE IO_ADDRESS(UART_BASE)
40#endif
41
42 .macro addruart, rp, rv, tmp
43 ldr \rp, =UART_BASE
44 ldr \rv, =UART_VIRTBASE
45 .endm
46
47 .macro senduart,rd,rx
48 str \rd, [\rx, #UART_TX << UART_SHIFT]
49 .endm
50
51 .macro busyuart,rd,rx
521002: ldr \rd, [\rx, #UART_LSR << UART_SHIFT]
53 and \rd, \rd, #UART_LSR_TEMT | UART_LSR_THRE
54 teq \rd, #UART_LSR_TEMT | UART_LSR_THRE
55 bne 1002b
56 .endm
57
58 .macro waituart,rd,rx
59#ifdef FLOW_CONTROL
601001: ldr \rd, [\rx, #UART_MSR << UART_SHIFT]
61 tst \rd, #UART_MSR_CTS
62 beq 1001b
63#endif
64 .endm
65