12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- /*
- * Early serial debug output macro for Keystone SOCs
- *
- * Copyright 2013 Texas Instruments, Inc.
- * Santosh Shilimkar <santosh.shilimkar@ti.com>
- *
- * Based on RMKs low level debug code.
- * Copyright (C) 1994-1999 Russell King
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
- #include <linux/serial_reg.h>
- #define UART_SHIFT 2
- #if defined(CONFIG_DEBUG_KEYSTONE_UART0)
- #define UART_PHYS 0x02530c00
- #define UART_VIRT 0xfeb30c00
- #elif defined(CONFIG_DEBUG_KEYSTONE_UART1)
- #define UART_PHYS 0x02531000
- #define UART_VIRT 0xfeb31000
- #endif
- .macro addruart, rp, rv, tmp
- ldr \rv, =UART_VIRT @ physical base address
- ldr \rp, =UART_PHYS @ virtual base address
- .endm
- .macro senduart,rd,rx
- str \rd, [\rx, #UART_TX << UART_SHIFT]
- .endm
- .macro busyuart,rd,rx
- 1002: ldr \rd, [\rx, #UART_LSR << UART_SHIFT]
- and \rd, \rd, #UART_LSR_TEMT | UART_LSR_THRE
- teq \rd, #UART_LSR_TEMT | UART_LSR_THRE
- bne 1002b
- .endm
- .macro waituart,rd,rx
- .endm
|