M7350/kernel/arch/arm/include/debug/msm.S

63 lines
1.5 KiB
ArmAsm
Raw Normal View History

2024-09-09 08:52:07 +00:00
/*
*
* Copyright (C) 2007 Google, Inc.
2024-09-09 08:57:42 +00:00
* Copyright (c) 2011, Code Aurora Forum. All rights reserved.
2024-09-09 08:52:07 +00:00
* Author: Brian Swetland <swetland@google.com>
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
*/
2024-09-09 08:57:42 +00:00
.macro addruart, rp, rv, tmp
#ifdef CONFIG_DEBUG_UART_PHYS
ldr \rp, =CONFIG_DEBUG_UART_PHYS
ldr \rv, =CONFIG_DEBUG_UART_VIRT
#endif
2024-09-09 08:52:07 +00:00
.endm
2024-09-09 08:57:42 +00:00
.macro senduart, rd, rx
#ifdef CONFIG_DEBUG_QCOM_UARTDM
2024-09-09 08:52:07 +00:00
@ Write the 1 character to UARTDM_TF
2024-09-09 08:57:42 +00:00
str \rd, [\rx, #0x70]
2024-09-09 08:52:07 +00:00
#else
2024-09-09 08:57:42 +00:00
str \rd, [\rx, #0x0C]
2024-09-09 08:52:07 +00:00
#endif
.endm
2024-09-09 08:57:42 +00:00
.macro waituart, rd, rx
#ifdef CONFIG_DEBUG_QCOM_UARTDM
2024-09-09 08:52:07 +00:00
@ check for TX_EMT in UARTDM_SR
2024-09-09 08:57:42 +00:00
ldr \rd, [\rx, #0x08]
2024-09-09 08:52:07 +00:00
tst \rd, #0x08
bne 1002f
@ wait for TXREADY in UARTDM_ISR
2024-09-09 08:57:42 +00:00
1001: ldr \rd, [\rx, #0x14]
2024-09-09 08:52:07 +00:00
tst \rd, #0x80
beq 1001b
2024-09-09 08:57:42 +00:00
1002:
@ Clear TX_READY by writing to the UARTDM_CR register
mov \rd, #0x300
str \rd, [\rx, #0x10]
@ Write 0x1 to NCF register
mov \rd, #0x1
str \rd, [\rx, #0x40]
@ UARTDM reg. Read to induce delay
ldr \rd, [\rx, #0x08]
2024-09-09 08:52:07 +00:00
#else
@ wait for TX_READY
2024-09-09 08:57:42 +00:00
1001: ldr \rd, [\rx, #0x08]
tst \rd, #0x04
beq 1001b
2024-09-09 08:52:07 +00:00
#endif
.endm
2024-09-09 08:57:42 +00:00
.macro busyuart, rd, rx
2024-09-09 08:52:07 +00:00
.endm