root/arch/arm/include/debug/efm32.S

/* [<][>][^][v][top][bottom][index][help] */
   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /*
   3  * Copyright (C) 2013 Pengutronix
   4  * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
   5  */
   6 
   7 #define UARTn_CMD               0x000c
   8 #define UARTn_CMD_TXEN                  0x0004
   9 
  10 #define UARTn_STATUS            0x0010
  11 #define UARTn_STATUS_TXC                0x0020
  12 #define UARTn_STATUS_TXBL               0x0040
  13 
  14 #define UARTn_TXDATA            0x0034
  15 
  16                 .macro  addruart, rx, tmp, tmp2
  17                 ldr     \rx, =(CONFIG_DEBUG_UART_PHYS)
  18 
  19                 /*
  20                  * enable TX. The driver might disable it to save energy. We
  21                  * don't care about disabling at the end as during debug power
  22                  * consumption isn't that important.
  23                  */
  24                 ldr     \tmp, =(UARTn_CMD_TXEN)
  25                 str     \tmp, [\rx, #UARTn_CMD]
  26                 .endm
  27 
  28                 .macro  senduart,rd,rx
  29                 strb    \rd, [\rx, #UARTn_TXDATA]
  30                 .endm
  31 
  32                 .macro  waituart,rd,rx
  33 1001:           ldr     \rd, [\rx, #UARTn_STATUS]
  34                 tst     \rd, #UARTn_STATUS_TXBL
  35                 beq     1001b
  36                 .endm
  37 
  38                 .macro  busyuart,rd,rx
  39 1001:           ldr     \rd, [\rx, UARTn_STATUS]
  40                 tst     \rd, #UARTn_STATUS_TXC
  41                 bne     1001b
  42                 .endm

/* [<][>][^][v][top][bottom][index][help] */