2011-11-08 10:33:03 -08:00
/ *
2007-11-26 04:11:43 -08:00
*
* Copyright ( C ) 2 0 0 7 G o o g l e , I n c .
2011-11-08 10:33:04 -08:00
* Copyright ( c ) 2 0 1 1 , C o d e A u r o r a F o r u m . A l l r i g h t s r e s e r v e d .
2007-11-26 04:11:43 -08:00
* Author : Brian S w e t l a n d < s w e t l a n d @google.com>
*
* This s o f t w a r e i s l i c e n s e d u n d e r t h e t e r m s o f t h e G N U G e n e r a l P u b l i c
* License v e r s i o n 2 , a s p u b l i s h e d b y t h e F r e e S o f t w a r e F o u n d a t i o n , a n d
* may b e c o p i e d , d i s t r i b u t e d , a n d m o d i f i e d u n d e r t h o s e t e r m s .
*
* This p r o g r a m i s d i s t r i b u t e d i n t h e h o p e t h a t i t w i l l b e u s e f u l ,
* but W I T H O U T A N Y W A R R A N T Y ; without even the implied warranty of
* MERCHANTABILITY o r F I T N E S S F O R A P A R T I C U L A R P U R P O S E . S e e t h e
* GNU G e n e r a l P u b l i c L i c e n s e f o r m o r e d e t a i l s .
*
* /
2011-08-31 22:55:46 -04:00
.macro addruart, r p , r v , t m p
2014-04-14 16:47:34 +03:00
ldr \ r p , =CONFIG_DEBUG_UART_PHYS
ldr \ r v , =CONFIG_DEBUG_UART_VIRT
2007-11-26 04:11:43 -08:00
.endm
2011-11-08 10:33:04 -08:00
.macro senduart, r d , r x
2014-06-30 14:49:39 -07:00
ARM_ B E 8 ( r e v \ r d , \ r d )
2011-11-08 10:33:04 -08:00
@ Write the 1 character to UARTDM_TF
str \ r d , [ \ r x , #0x70 ]
2007-11-26 04:11:43 -08:00
.endm
2011-11-08 10:33:04 -08:00
.macro waituart, r d , r x
@ check for TX_EMT in UARTDM_SR
ldr \ r d , [ \ r x , #0x08 ]
2014-06-30 14:49:39 -07:00
ARM_ B E 8 ( r e v \ r d , \ r d )
2011-11-08 10:33:04 -08:00
tst \ r d , #0x08
bne 1 0 0 2 f
@ wait for TXREADY in UARTDM_ISR
1001 : ldr \ r d , [ \ r x , #0x14 ]
2014-06-30 14:49:39 -07:00
ARM_ B E 8 ( r e v \ r d , \ r d )
2011-11-08 10:33:04 -08:00
tst \ r d , #0x80
beq 1 0 0 1 b
1002 :
@ Clear TX_READY by writing to the UARTDM_CR register
mov \ r d , #0x300
2014-06-30 14:49:39 -07:00
ARM_ B E 8 ( r e v \ r d , \ r d )
2011-11-08 10:33:04 -08:00
str \ r d , [ \ r x , #0x10 ]
@ Write 0x1 to NCF register
mov \ r d , #0x1
2014-06-30 14:49:39 -07:00
ARM_ B E 8 ( r e v \ r d , \ r d )
2011-11-08 10:33:04 -08:00
str \ r d , [ \ r x , #0x40 ]
@ UARTDM reg. Read to induce delay
ldr \ r d , [ \ r x , #0x08 ]
2009-11-02 11:48:29 +01:00
.endm
2010-10-27 15:25:59 -07:00
2011-11-08 10:33:04 -08:00
.macro busyuart, r d , r x
2010-10-27 15:25:59 -07:00
.endm