linux/arch/arm/include/debug/efm32.S
<<
>>
Prefs
   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
  331001:           ldr     \rd, [\rx, #UARTn_STATUS]
  34                tst     \rd, #UARTn_STATUS_TXBL
  35                beq     1001b
  36                .endm
  37
  38                .macro  busyuart,rd,rx
  391001:           ldr     \rd, [\rx, UARTn_STATUS]
  40                tst     \rd, #UARTn_STATUS_TXC
  41                bne     1001b
  42                .endm
  43