Linux Audio

Check our new training course

Loading...
 1/*
 2 * arch/arm/mach-at91/include/mach/debug-macro.S
 3 *
 4 *  Copyright (C) 2003-2005 SAN People
 5 *
 6 * Debugging macro include header
 7 *
 8 * This program is free software; you can redistribute it and/or modify
 9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation.
11 *
12*/
13
14#include <mach/hardware.h>
15#include <mach/at91_dbgu.h>
16
17#if defined(CONFIG_AT91_DEBUG_LL_DBGU0)
18#define AT91_DBGU AT91_BASE_DBGU0
19#else
20#define AT91_DBGU AT91_BASE_DBGU1
21#endif
22
23	.macro	addruart, rp, rv, tmp
24	ldr	\rp, =AT91_DBGU				@ System peripherals (phys address)
25	ldr	\rv, =AT91_IO_P2V(AT91_DBGU)		@ System peripherals (virt address)
26	.endm
27
28	.macro	senduart,rd,rx
29	strb	\rd, [\rx, #(AT91_DBGU_THR)]		@ Write to Transmitter Holding Register
30	.endm
31
32	.macro	waituart,rd,rx
331001:	ldr	\rd, [\rx, #(AT91_DBGU_SR)]		@ Read Status Register
34	tst	\rd, #AT91_DBGU_TXRDY			@ DBGU_TXRDY = 1 when ready to transmit
35	beq	1001b
36	.endm
37
38	.macro	busyuart,rd,rx
391001:	ldr	\rd, [\rx, #(AT91_DBGU_SR)]		@ Read Status Register
40	tst	\rd, #AT91_DBGU_TXEMPTY			@ DBGU_TXEMPTY = 1 when transmission complete
41	beq	1001b
42	.endm
43