msm.S 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. *
  4. * Copyright (C) 2007 Google, Inc.
  5. * Copyright (c) 2011, Code Aurora Forum. All rights reserved.
  6. * Author: Brian Swetland <[email protected]>
  7. */
  8. .macro addruart, rp, rv, tmp
  9. ldr \rp, =CONFIG_DEBUG_UART_PHYS
  10. ldr \rv, =CONFIG_DEBUG_UART_VIRT
  11. .endm
  12. .macro senduart, rd, rx
  13. ARM_BE8(rev \rd, \rd )
  14. @ Write the 1 character to UARTDM_TF
  15. str \rd, [\rx, #0x70]
  16. .endm
  17. .macro waituartcts,rd,rx
  18. .endm
  19. .macro waituarttxrdy, rd, rx
  20. @ check for TX_EMT in UARTDM_SR
  21. ldr \rd, [\rx, #0x08]
  22. ARM_BE8(rev \rd, \rd )
  23. tst \rd, #0x08
  24. bne 1002f
  25. @ wait for TXREADY in UARTDM_ISR
  26. 1001: ldr \rd, [\rx, #0x14]
  27. ARM_BE8(rev \rd, \rd )
  28. tst \rd, #0x80
  29. beq 1001b
  30. 1002:
  31. @ Clear TX_READY by writing to the UARTDM_CR register
  32. mov \rd, #0x300
  33. ARM_BE8(rev \rd, \rd )
  34. str \rd, [\rx, #0x10]
  35. @ Write 0x1 to NCF register
  36. mov \rd, #0x1
  37. ARM_BE8(rev \rd, \rd )
  38. str \rd, [\rx, #0x40]
  39. @ UARTDM reg. Read to induce delay
  40. ldr \rd, [\rx, #0x08]
  41. .endm
  42. .macro busyuart, rd, rx
  43. .endm